// File: /workspace/github_c_makefile_star2_O0/SimpleDoger[P]Darknet_CPU_Only/box.c
// Function: derivative
dbox derivative(box a, box b)
{
    dbox d;
    d.dx = 0;
    d.dw = 0;
    float l1 = a.x - a.w/2;
    float l2 = b.x - b.w/2;
    if (l1 > l2){
        d.dx -= 1;
        d.dw += .5;
    }
    float r1 = a.x + a.w/2;
    float r2 = b.x + b.w/2;
    if(r1 < r2){
        d.dx += 1;
        d.dw += .5;
    }
    if (l1 > r2) {
        d.dx = -1;
        d.dw = 0;
    }
    if (r1 < l2){
        d.dx = 1;
        d.dw = 0;
    }

    d.dy = 0;
    d.dh = 0;
    float t1 = a.y - a.h/2;
    float t2 = b.y - b.h/2;
    if (t1 > t2){
        d.dy -= 1;
        d.dh += .5;
    }
    float b1 = a.y + a.h/2;
    float b2 = b.y + b.h/2;
    if(b1 < b2){
        d.dy += 1;
        d.dh += .5;
    }
    if (t1 > b2) {
        d.dy = -1;
        d.dh = 0;
    }
    if (b1 < t2){
        d.dy = 1;
        d.dh = 0;
    }
    return d;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movlpd %xmm0, -0x20(%rbp)
movlpd %xmm1, -0x18(%rbp)
movlpd %xmm2, -0x30(%rbp)
movlpd %xmm3, -0x28(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x10(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x8(%rbp)
movss -0x20(%rbp), %xmm0
movss -0x18(%rbp), %xmm1
movss 0x2c1f6(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x30(%rbp), %xmm0
movss -0x28(%rbp), %xmm1
movss 0x2c1d7(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x38(%rbp)
movss -0x34(%rbp), %xmm0
ucomiss -0x38(%rbp), %xmm0
jbe 0x45085
movss -0x10(%rbp), %xmm0
movss 0x2bfae(%rip), %xmm1    # 0x7100c
subss %xmm1, %xmm0
movss %xmm0, -0x10(%rbp)
movss -0x8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2ddd0(%rip), %xmm1    # 0x72e48
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x8(%rbp)
movss -0x20(%rbp), %xmm0
movss -0x18(%rbp), %xmm1
movss 0x2c179(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
addss %xmm1, %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x30(%rbp), %xmm0
movss -0x28(%rbp), %xmm1
movss 0x2c15a(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
addss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x3c(%rbp), %xmm1
movss -0x40(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x45102
movss 0x2bf32(%rip), %xmm0    # 0x7100c
addss -0x10(%rbp), %xmm0
movss %xmm0, -0x10(%rbp)
movss -0x8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2dd53(%rip), %xmm1    # 0x72e48
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x8(%rbp)
movss -0x34(%rbp), %xmm0
ucomiss -0x40(%rbp), %xmm0
jbe 0x45122
movss 0x2efc7(%rip), %xmm0    # 0x740dc
movss %xmm0, -0x10(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x8(%rbp)
movss -0x3c(%rbp), %xmm1
movss -0x38(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x45146
movss 0x2bed3(%rip), %xmm0    # 0x7100c
movss %xmm0, -0x10(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x8(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xc(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x1c(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
movss 0x2c0a8(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x44(%rbp)
movss -0x2c(%rbp), %xmm0
movss -0x24(%rbp), %xmm1
movss 0x2c089(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x48(%rbp)
movss -0x44(%rbp), %xmm0
ucomiss -0x48(%rbp), %xmm0
jbe 0x451d3
movss -0xc(%rbp), %xmm0
movss 0x2be60(%rip), %xmm1    # 0x7100c
subss %xmm1, %xmm0
movss %xmm0, -0xc(%rbp)
movss -0x4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2dc82(%rip), %xmm1    # 0x72e48
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x1c(%rbp), %xmm0
movss -0x14(%rbp), %xmm1
movss 0x2c02b(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
addss %xmm1, %xmm0
movss %xmm0, -0x4c(%rbp)
movss -0x2c(%rbp), %xmm0
movss -0x24(%rbp), %xmm1
movss 0x2c00c(%rip), %xmm2    # 0x71210
divss %xmm2, %xmm1
addss %xmm1, %xmm0
movss %xmm0, -0x50(%rbp)
movss -0x4c(%rbp), %xmm1
movss -0x50(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x45250
movss 0x2bde4(%rip), %xmm0    # 0x7100c
addss -0xc(%rbp), %xmm0
movss %xmm0, -0xc(%rbp)
movss -0x4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2dc05(%rip), %xmm1    # 0x72e48
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x44(%rbp), %xmm0
ucomiss -0x50(%rbp), %xmm0
jbe 0x45270
movss 0x2ee79(%rip), %xmm0    # 0x740dc
movss %xmm0, -0xc(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x4c(%rbp), %xmm1
movss -0x48(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x45294
movss 0x2bd85(%rip), %xmm0    # 0x7100c
movss %xmm0, -0xc(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x4(%rbp)
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
popq %rbp
retq