// File: /workspace/github_c_makefile_star2_O0/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:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
callq 0x45910
callq 0x45700
movups 0x2f694(%rip), %xmm0    # 0x751d0
movaps %xmm0, -0x10(%rbp)
movups 0x2f6e9(%rip), %xmm0    # 0x75230
movaps %xmm0, -0x20(%rbp)
movups 0x2f6ee(%rip), %xmm0    # 0x75240
movaps %xmm0, -0x30(%rbp)
movups 0x2f6f3(%rip), %xmm0    # 0x75250
movaps %xmm0, -0x40(%rbp)
movups 0x2f6f8(%rip), %xmm0    # 0x75260
movaps %xmm0, -0x50(%rbp)
movups 0x2f6fd(%rip), %xmm0    # 0x75270
movaps %xmm0, -0x60(%rbp)
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
movsd -0x58(%rbp), %xmm3
callq 0x44cd0
movss %xmm0, -0x64(%rbp)
movss -0x64(%rbp), %xmm1
movss 0x2b46a(%rip), %xmm0    # 0x7100c
subss %xmm1, %xmm0
mulss %xmm0, %xmm0
movss %xmm0, -0x64(%rbp)
movss -0x64(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x305a3(%rip), %rdi     # 0x76162
movb $0x1, %al
callq 0x3130
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
movsd -0x58(%rbp), %xmm3
callq 0x45e20
movlpd %xmm0, -0x74(%rbp)
movlpd %xmm1, -0x6c(%rbp)
movss -0x74(%rbp), %xmm0
movss -0x70(%rbp), %xmm1
cvtss2sd %xmm0, %xmm0
cvtss2sd %xmm1, %xmm1
movss -0x6c(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
movss -0x68(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
leaq 0x2f673(%rip), %rdi     # 0x75287
movb $0x4, %al
callq 0x3130
movsd -0x20(%rbp), %xmm0
movsd -0x18(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
movsd -0x58(%rbp), %xmm3
callq 0x44cd0
movss %xmm0, -0x78(%rbp)
movsd -0x30(%rbp), %xmm0
movsd -0x28(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
movsd -0x58(%rbp), %xmm3
callq 0x44cd0
movss %xmm0, -0x7c(%rbp)
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
movsd -0x58(%rbp), %xmm3
callq 0x44cd0
movss %xmm0, -0x80(%rbp)
movsd -0x50(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
movsd -0x58(%rbp), %xmm3
callq 0x44cd0
movss %xmm0, -0x84(%rbp)
movss 0x2b36e(%rip), %xmm0    # 0x7100c
subss -0x78(%rbp), %xmm0
movss 0x2b361(%rip), %xmm2    # 0x7100c
subss -0x78(%rbp), %xmm2
movss -0x64(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2b452(%rip), %xmm1    # 0x71128
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x78(%rbp)
movss 0x2b321(%rip), %xmm0    # 0x7100c
subss -0x7c(%rbp), %xmm0
movss 0x2b314(%rip), %xmm2    # 0x7100c
subss -0x7c(%rbp), %xmm2
movss -0x64(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2b405(%rip), %xmm1    # 0x71128
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x7c(%rbp)
movss 0x2b2d4(%rip), %xmm0    # 0x7100c
subss -0x80(%rbp), %xmm0
movss 0x2b2c7(%rip), %xmm2    # 0x7100c
subss -0x80(%rbp), %xmm2
movss -0x64(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2b3b8(%rip), %xmm1    # 0x71128
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x80(%rbp)
movss 0x2b287(%rip), %xmm0    # 0x7100c
subss -0x84(%rbp), %xmm0
movss 0x2b277(%rip), %xmm2    # 0x7100c
subss -0x84(%rbp), %xmm2
movss -0x64(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2b365(%rip), %xmm1    # 0x71128
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x78(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x7c(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x80(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
movss -0x84(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
leaq 0x2f4db(%rip), %rdi     # 0x752dc
movb $0x4, %al
callq 0x3130
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)