// File: /workspace/github_c_makefile_star2_O1/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 0x37089
callq 0x36ecd
movaps 0x207fd(%rip), %xmm1    # 0x57910
movss 0x1c119(%rip), %xmm2    # 0x53234
movaps 0x2080e(%rip), %xmm3    # 0x57930
xorps %xmm0, %xmm0
callq 0x36754
movss 0x1bed6(%rip), %xmm1    # 0x53008
subss %xmm0, %xmm1
mulss %xmm1, %xmm1
movss %xmm1, 0x14(%rsp)
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
leaq 0x2176a(%rip), %rdi     # 0x588b8
movb $0x1, %al
callq 0x3170
leaq 0x2086b(%rip), %rdi     # 0x579c7
movsd 0x1bfbc(%rip), %xmm0    # 0x53120
movsd 0x2084c(%rip), %xmm2    # 0x579b8
xorps %xmm1, %xmm1
movaps %xmm2, %xmm3
movb $0x4, %al
callq 0x3170
movss 0x20783(%rip), %xmm0    # 0x57904
movaps 0x20788(%rip), %xmm1    # 0x57910
movss 0x1c0a4(%rip), %xmm2    # 0x53234
movaps 0x20799(%rip), %xmm3    # 0x57930
callq 0x36754
movss %xmm0, 0x8(%rsp)
movsd 0x207c6(%rip), %xmm0    # 0x57970
movaps 0x2075f(%rip), %xmm1    # 0x57910
movss 0x1c07b(%rip), %xmm2    # 0x53234
movaps 0x20770(%rip), %xmm3    # 0x57930
callq 0x36754
movss %xmm0, 0xc(%rsp)
movsd 0x207ad(%rip), %xmm1    # 0x57980
xorps %xmm0, %xmm0
movss 0x1c056(%rip), %xmm2    # 0x53234
movaps 0x2074b(%rip), %xmm3    # 0x57930
callq 0x36754
movss %xmm0, 0x10(%rsp)
movsd 0x20798(%rip), %xmm1    # 0x57990
xorps %xmm0, %xmm0
movss 0x1c031(%rip), %xmm2    # 0x53234
movaps 0x20726(%rip), %xmm3    # 0x57930
callq 0x36754
movss 0x1bdf1(%rip), %xmm5    # 0x53008
movaps %xmm5, %xmm1
subss 0x8(%rsp), %xmm1
mulss %xmm1, %xmm1
movss 0x14(%rsp), %xmm6
subss %xmm6, %xmm1
xorps %xmm2, %xmm2
cvtss2sd %xmm1, %xmm2
movsd 0x1bef3(%rip), %xmm1    # 0x53130
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 0x2075c(%rip), %rdi     # 0x57a1c
movb $0x4, %al
addq $0x18, %rsp
jmp 0x3170