// File: /workspace/github_c_makefile_star2_O2/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 0x2b8e6
callq 0x2b75f
movaps 0x2082e(%rip), %xmm1    # 0x4c2b0
movss 0x207aa(%rip), %xmm2    # 0x4c234
movaps 0x24ecf(%rip), %xmm3    # 0x50960
xorps %xmm0, %xmm0
callq 0x2b1cb
movss 0x20567(%rip), %xmm1    # 0x4c008
subss %xmm0, %xmm1
mulss %xmm1, %xmm1
movss %xmm1, 0x14(%rsp)
cvtss2sd %xmm1, %xmm0
leaq 0x25e0e(%rip), %rdi     # 0x518c8
movb $0x1, %al
callq 0x3160
xorps %xmm0, %xmm0
movaps 0x207e5(%rip), %xmm1    # 0x4c2b0
movss 0x20761(%rip), %xmm2    # 0x4c234
movaps 0x24e86(%rip), %xmm3    # 0x50960
callq 0x2bc4b
cvtss2sd %xmm0, %xmm4
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
cvtss2sd %xmm0, %xmm5
cvtss2sd %xmm1, %xmm2
shufps $0x55, %xmm1, %xmm1     # xmm1 = xmm1[1,1,1,1]
cvtss2sd %xmm1, %xmm3
leaq 0x24ee1(%rip), %rdi     # 0x509df
movaps %xmm4, %xmm0
movaps %xmm5, %xmm1
movb $0x4, %al
callq 0x3160
movss 0x24e49(%rip), %xmm0    # 0x5095c
movaps 0x20796(%rip), %xmm1    # 0x4c2b0
movss 0x20712(%rip), %xmm2    # 0x4c234
movaps 0x24e37(%rip), %xmm3    # 0x50960
callq 0x2b1cb
movss %xmm0, 0x8(%rsp)
movsd 0x24e64(%rip), %xmm0    # 0x509a0
movaps 0x2076d(%rip), %xmm1    # 0x4c2b0
movss 0x206e9(%rip), %xmm2    # 0x4c234
movaps 0x24e0e(%rip), %xmm3    # 0x50960
callq 0x2b1cb
movss %xmm0, 0xc(%rsp)
movsd 0x24e4b(%rip), %xmm1    # 0x509b0
xorps %xmm0, %xmm0
movss 0x206c4(%rip), %xmm2    # 0x4c234
movaps 0x24de9(%rip), %xmm3    # 0x50960
callq 0x2b1cb
movss %xmm0, 0x10(%rsp)
movsd 0x24e36(%rip), %xmm1    # 0x509c0
xorps %xmm0, %xmm0
movss 0x2069f(%rip), %xmm2    # 0x4c234
movaps 0x24dc4(%rip), %xmm3    # 0x50960
callq 0x2b1cb
movss 0x2045f(%rip), %xmm5    # 0x4c008
movaps %xmm5, %xmm1
subss 0x8(%rsp), %xmm1
mulss %xmm1, %xmm1
movss 0x14(%rsp), %xmm6
subss %xmm6, %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x20564(%rip), %xmm1    # 0x4c130
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
cvtsd2ss %xmm0, %xmm5
cvtss2sd %xmm2, %xmm0
cvtss2sd %xmm3, %xmm1
cvtss2sd %xmm4, %xmm2
cvtss2sd %xmm5, %xmm3
leaq 0x24df4(%rip), %rdi     # 0x50a34
movb $0x4, %al
addq $0x18, %rsp
jmp 0x3160