// File: /workspace/github_c_makefile_star2_O0/c-zhou[P]yahs/binomlite.c
// Function: gam1
static double gam1(double a)
{
/*     ------------------------------------------------------------------ */
/*     COMPUTATION OF 1/GAMMA(A+1) - 1  FOR -0.5 <= A <= 1.5 */
/*     ------------------------------------------------------------------ */

    double d, t, w, bot, top;

    t = a;
    d = a - 0.5;
    // t := if(a > 1/2)  a-1  else  a
    if (d > 0.)
    t = d - 0.5;
    if (t < 0.) { /* L30: */
    static double
        r[9] = { -.422784335098468,-.771330383816272,
             -.244757765222226,.118378989872749,9.30357293360349e-4,
             -.0118290993445146,.00223047661158249,2.66505979058923e-4,
             -1.32674909766242e-4 },
        s1 = .273076135303957,
        s2 = .0559398236957378;

    top = (((((((r[8] * t + r[7]) * t + r[6]) * t + r[5]) * t + r[4]
             ) * t + r[3]) * t + r[2]) * t + r[1]) * t + r[0];
    bot = (s2 * t + s1) * t + 1.;
    w = top / bot;
    if (d > 0.)
        return t * w / a;
    else
        return a * (w + 0.5 + 0.5);

    } else if (t == 0) { // L10: a in {0, 1}
    return 0.;

    } else { /* t > 0;  L20: */
    static double
        p[7] = { .577215664901533,-.409078193005776,
             -.230975380857675,.0597275330452234,.0076696818164949,
             -.00514889771323592,5.89597428611429e-4 },
        q[5] = { 1.,.427569613095214,.158451672430138,
             .0261132021441447,.00423244297896961 };

    top = (((((p[6] * t + p[5]) * t + p[4]) * t + p[3]) * t + p[2]
           ) * t + p[1]) * t + p[0];
    bot = (((q[4] * t + q[3]) * t + q[2]) * t + q[1]) * t + 1.;
    w = top / bot;
    if (d > 0.) /* L21: */
        return t / a * (w - 0.5 - 0.5);
    else
        return a * w;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x10(%rbp), %xmm0
movsd 0xa770(%rip), %xmm1     # 0x31600
subsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x26ebd
movsd -0x18(%rbp), %xmm0
movsd 0xa74c(%rip), %xmm1     # 0x31600
subsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x20(%rbp), %xmm0
jbe 0x27019
movsd 0x127ed(%rip), %xmm0    # 0x396c0
movsd -0x20(%rbp), %xmm2
movsd 0x127d8(%rip), %xmm1    # 0x396b8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x127bb(%rip), %xmm1    # 0x396b0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x1279e(%rip), %xmm1    # 0x396a8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12781(%rip), %xmm1    # 0x396a0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12764(%rip), %xmm1    # 0x39698
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12747(%rip), %xmm1    # 0x39690
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x1272a(%rip), %xmm1    # 0x39688
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x1270d(%rip), %xmm1    # 0x39680
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x12748(%rip), %xmm0    # 0x396d0
movsd -0x20(%rbp), %xmm2
movsd 0x12733(%rip), %xmm1    # 0x396c8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xa64a(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x38(%rbp), %xmm0
divsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x26fed
movsd -0x20(%rbp), %xmm0
mulsd -0x28(%rbp), %xmm0
divsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x27180
movsd -0x10(%rbp), %xmm0
movsd 0xa606(%rip), %xmm1     # 0x31600
addsd -0x28(%rbp), %xmm1
movsd 0xa5f9(%rip), %xmm2     # 0x31600
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x27180
movsd -0x20(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x27036
jp 0x27036
xorps %xmm0, %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x27180
movsd 0x126d2(%rip), %xmm0    # 0x39710
movsd -0x20(%rbp), %xmm2
movsd 0x126bd(%rip), %xmm1    # 0x39708
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x126a0(%rip), %xmm1    # 0x39700
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12683(%rip), %xmm1    # 0x396f8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12666(%rip), %xmm1    # 0x396f0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12649(%rip), %xmm1    # 0x396e8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x1262c(%rip), %xmm1    # 0x396e0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x12677(%rip), %xmm0    # 0x39740
movsd -0x20(%rbp), %xmm2
movsd 0x12662(%rip), %xmm1    # 0x39738
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12645(%rip), %xmm1    # 0x39730
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm2
movsd 0x12628(%rip), %xmm1    # 0x39728
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x20(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xa4df(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x38(%rbp), %xmm0
divsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x27171
movsd -0x20(%rbp), %xmm0
divsd -0x10(%rbp), %xmm0
movsd -0x28(%rbp), %xmm1
movsd 0xa4aa(%rip), %xmm2     # 0x31600
subsd %xmm2, %xmm1
movsd 0xa49e(%rip), %xmm2     # 0x31600
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x27180
movsd -0x10(%rbp), %xmm0
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
popq %rbp
retq
nopw (%rax,%rax)