// File: /workspace/github_c_makefile_star2_O3/SimpleDoger[P]Darknet_CPU_Only/box.c
// Function: test_box
void test_box()
{
    test_dintersect();
    test_dunion();
    box a = {0, 0, 1, 1};
    box dxa= {0+.00001, 0, 1, 1};
    box dya= {0, 0+.00001, 1, 1};
    box dwa= {0, 0, 1+.00001, 1};
    box dha= {0, 0, 1, 1+.00001};

    box b = {.5, 0, .2, .2};

    float iou = box_iou(a,b);
    iou = (1-iou)*(1-iou);
    printf("%f\n", iou);
    dbox d = diou(a, b);
    printf("%f %f %f %f\n", d.dx, d.dy, d.dw, d.dh);

    float xiou = box_iou(dxa, b);
    float yiou = box_iou(dya, b);
    float wiou = box_iou(dwa, b);
    float hiou = box_iou(dha, b);
    xiou = ((1-xiou)*(1-xiou) - iou)/(.00001);
    yiou = ((1-yiou)*(1-yiou) - iou)/(.00001);
    wiou = ((1-wiou)*(1-wiou) - iou)/(.00001);
    hiou = ((1-hiou)*(1-hiou) - iou)/(.00001);
    printf("manual %f %f %f %f\n", xiou, yiou, wiou, hiou);
}

// Assembly:
subq $0x18, %rsp
callq 0x3929b
callq 0x390df
movaps 0x1bfcb(%rip), %xmm1    # 0x552f0
movss 0x1bf37(%rip), %xmm2    # 0x55264
movaps 0x206dc(%rip), %xmm3    # 0x59a10
xorps %xmm0, %xmm0
callq 0x389b3
movss 0x1bcc4(%rip), %xmm1    # 0x55008
subss %xmm0, %xmm1
mulss %xmm1, %xmm1
movss %xmm1, 0x14(%rsp)
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
leaq 0x216b0(%rip), %rdi     # 0x5aa10
movb $0x1, %al
callq 0x3160
leaq 0x20741(%rip), %rdi     # 0x59aaf
movsd 0x1bdd2(%rip), %xmm0    # 0x55148
movsd 0x20722(%rip), %xmm2    # 0x59aa0
xorps %xmm1, %xmm1
movaps %xmm2, %xmm3
movb $0x4, %al
callq 0x3160
movss 0x206ed(%rip), %xmm0    # 0x59a80
movaps 0x1bf56(%rip), %xmm1    # 0x552f0
movss 0x1bec2(%rip), %xmm2    # 0x55264
movaps 0x20667(%rip), %xmm3    # 0x59a10
callq 0x389b3
movss %xmm0, 0x8(%rsp)
movsd 0x20694(%rip), %xmm0    # 0x59a50
movaps 0x1bf2d(%rip), %xmm1    # 0x552f0
movss 0x1be99(%rip), %xmm2    # 0x55264
movaps 0x2063e(%rip), %xmm3    # 0x59a10
callq 0x389b3
movss %xmm0, 0xc(%rsp)
movsd 0x2067b(%rip), %xmm1    # 0x59a60
xorps %xmm0, %xmm0
movss 0x1be74(%rip), %xmm2    # 0x55264
movaps 0x20619(%rip), %xmm3    # 0x59a10
callq 0x389b3
movss %xmm0, 0x10(%rsp)
movsd 0x20666(%rip), %xmm1    # 0x59a70
xorps %xmm0, %xmm0
movss 0x1be4f(%rip), %xmm2    # 0x55264
movaps 0x205f4(%rip), %xmm3    # 0x59a10
callq 0x389b3
movss 0x1bbdf(%rip), %xmm5    # 0x55008
movaps %xmm5, %xmm1
subss 0x8(%rsp), %xmm1
mulss %xmm1, %xmm1
movss 0x14(%rsp), %xmm6
subss %xmm6, %xmm1
xorps %xmm2, %xmm2
cvtss2sd %xmm1, %xmm2
movsd 0x1bd09(%rip), %xmm1    # 0x55158
divsd %xmm1, %xmm2
cvtsd2ss %xmm2, %xmm2
movaps %xmm5, %xmm3
subss 0xc(%rsp), %xmm3
mulss %xmm3, %xmm3
subss %xmm6, %xmm3
cvtss2sd %xmm3, %xmm3
divsd %xmm1, %xmm3
cvtsd2ss %xmm3, %xmm3
movaps %xmm5, %xmm4
subss 0x10(%rsp), %xmm4
mulss %xmm4, %xmm4
subss %xmm6, %xmm4
cvtss2sd %xmm4, %xmm4
divsd %xmm1, %xmm4
cvtsd2ss %xmm4, %xmm4
subss %xmm0, %xmm5
movaps %xmm5, %xmm0
mulss %xmm5, %xmm0
subss %xmm6, %xmm0
cvtss2sd %xmm0, %xmm0
divsd %xmm1, %xmm0
xorps %xmm5, %xmm5
cvtsd2ss %xmm0, %xmm5
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
xorps %xmm1, %xmm1
cvtss2sd %xmm3, %xmm1
xorps %xmm2, %xmm2
cvtss2sd %xmm4, %xmm2
xorps %xmm3, %xmm3
cvtss2sd %xmm5, %xmm3
leaq 0x20632(%rip), %rdi     # 0x59b04
movb $0x4, %al
addq $0x18, %rsp
jmp 0x3160