// File: /workspace/github_c_makefile_star2_O0/c-zhou[P]yahs/binomlite.c
// Function: erfc1
static double erfc1(int ind, double x)
{
/* ----------------------------------------------------------------------- */
/*         EVALUATION OF THE COMPLEMENTARY ERROR FUNCTION */

/*          ERFC1(IND,X) = ERFC(X)            IF IND = 0 */
/*          ERFC1(IND,X) = EXP(X*X)*ERFC(X)   OTHERWISE */
/* ----------------------------------------------------------------------- */

    /* Initialized data */

    static double c = .564189583547756;
    static double a[5] = { 7.7105849500132e-5,-.00133733772997339,
        .0323076579225834,.0479137145607681,.128379167095513 };
    static double b[3] = { .00301048631703895,.0538971687740286,
        .375795757275549 };
    static double p[8] = { -1.36864857382717e-7,.564195517478974,
        7.21175825088309,43.1622272220567,152.98928504694,
        339.320816734344,451.918953711873,300.459261020162 };
    static double q[8] = { 1.,12.7827273196294,77.0001529352295,
        277.585444743988,638.980264465631,931.35409485061,
        790.950925327898,300.459260956983 };
    static double r[5] = { 2.10144126479064,26.2370141675169,
        21.3688200555087,4.6580782871847,.282094791773523 };
    static double s[4] = { 94.153775055546,187.11481179959,
        99.0191814623914,18.0124575948747 };

    double ret_val;
    double e, t, w, bot, top;

    double ax = fabs(x);
    //                |X| <= 0.5 */
    if (ax <= 0.5) {
    double t = x * x,
        top = (((a[0] * t + a[1]) * t + a[2]) * t + a[3]) * t + a[4] + 1.,
        bot = ((b[0] * t + b[1]) * t + b[2]) * t + 1.;
    ret_val = 0.5 - x * (top / bot) + 0.5;
    if (ind != 0) {
        ret_val = exp(t) * ret_val;
    }
    return ret_val;
    }
    // else (L10:):        0.5 < |X| <= 4
    if (ax <= 4.) {
    top = ((((((p[0] * ax + p[1]) * ax + p[2]) * ax + p[3]) * ax + p[4]) * ax
        + p[5]) * ax + p[6]) * ax + p[7];
    bot = ((((((q[0] * ax + q[1]) * ax + q[2]) * ax + q[3]) * ax + q[4]) * ax
        + q[5]) * ax + q[6]) * ax + q[7];
    ret_val = top / bot;

    } else { //            |X| > 4
    // L20:
    if (x <= -5.6) {
        // L50:                LIMIT VALUE FOR "LARGE" NEGATIVE X
        ret_val = 2.;
        if (ind != 0) {
        ret_val = exp(x * x) * 2.;
        }
        return ret_val;
    }
    if (ind == 0 && (x > 100. || x * x > -exparg(1))) {
        // LIMIT VALUE FOR LARGE POSITIVE X   WHEN IND = 0
        // L60:
        return 0.;
    }

    // L30:
    t = 1. / (x * x);
    top = (((r[0] * t + r[1]) * t + r[2]) * t + r[3]) * t + r[4];
    bot = (((s[0] * t + s[1]) * t + s[2]) * t + s[3]) * t + 1.;
    ret_val = (c - t * top / bot) / ax;
    }

    // L40:                 FINAL ASSEMBLY
    if (ind != 0) {
    if (x < 0.)
        ret_val = exp(x * x) * 2. - ret_val;
    } else {
    // L41:  ind == 0 :
    w = x * x;
    t = w;
    e = w - t;
    ret_val = (0.5 - e + 0.5) * exp(-t) * ret_val;
    if (x < 0.)
        ret_val = 2. - ret_val;
    }
    return ret_val;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %edi, -0xc(%rbp)
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
movaps 0xa4a1(%rip), %xmm1     # 0x32af0
pand %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd 0x8fa0(%rip), %xmm0     # 0x31600
ucomisd -0x50(%rbp), %xmm0
jb 0x287a3
movsd -0x18(%rbp), %xmm0
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x1126e(%rip), %xmm0    # 0x398f0
movsd -0x58(%rbp), %xmm2
movsd 0x11269(%rip), %xmm1    # 0x398f8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x58(%rbp), %xmm2
movsd 0x1125c(%rip), %xmm1    # 0x39900
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x58(%rbp), %xmm2
movsd 0x1124f(%rip), %xmm1    # 0x39908
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x58(%rbp), %xmm2
movsd 0x11242(%rip), %xmm1    # 0x39910
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x8f1a(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd 0x11231(%rip), %xmm0    # 0x39920
movsd -0x58(%rbp), %xmm2
movsd 0x1122c(%rip), %xmm1    # 0x39928
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x58(%rbp), %xmm2
movsd 0x1121f(%rip), %xmm1    # 0x39930
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x58(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x8ece(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x18(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
divsd -0x68(%rbp), %xmm1
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm1, %xmm0
movsd 0x8e9b(%rip), %xmm1     # 0x31600
addsd %xmm1, %xmm0
movsd 0x8e8f(%rip), %xmm1     # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
cmpl $0x0, -0xc(%rbp)
je 0x28794
movsd -0x58(%rbp), %xmm0
callq 0x2560
mulsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x28bb3
movsd 0xa2bd(%rip), %xmm0     # 0x32a68
ucomisd -0x50(%rbp), %xmm0
jb 0x2890a
movsd 0x11182(%rip), %xmm0    # 0x39940
movsd -0x50(%rbp), %xmm2
movsd 0x1117d(%rip), %xmm1    # 0x39948
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x11170(%rip), %xmm1    # 0x39950
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x11163(%rip), %xmm1    # 0x39958
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x11156(%rip), %xmm1    # 0x39960
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x11149(%rip), %xmm1    # 0x39968
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x1113c(%rip), %xmm1    # 0x39970
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x1112f(%rip), %xmm1    # 0x39978
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd 0x11122(%rip), %xmm0    # 0x39980
movsd -0x50(%rbp), %xmm2
movsd 0x1111d(%rip), %xmm1    # 0x39988
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x11110(%rip), %xmm1    # 0x39990
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x11103(%rip), %xmm1    # 0x39998
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x110f6(%rip), %xmm1    # 0x399a0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x110e9(%rip), %xmm1    # 0x399a8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x110dc(%rip), %xmm1    # 0x399b0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x50(%rbp), %xmm2
movsd 0x110cf(%rip), %xmm1    # 0x399b8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x48(%rbp), %xmm0
divsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x28ac1
movsd 0xa1ce(%rip), %xmm0     # 0x32ae0
ucomisd -0x18(%rbp), %xmm0
jb 0x2895b
movsd 0x889f(%rip), %xmm0     # 0x311c0
movsd %xmm0, -0x20(%rbp)
cmpl $0x0, -0xc(%rbp)
je 0x2894c
movsd -0x18(%rbp), %xmm0
mulsd -0x18(%rbp), %xmm0
callq 0x2560
movsd 0x887d(%rip), %xmm1     # 0x311c0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x28bb3
cmpl $0x0, -0xc(%rbp)
jne 0x289bf
movsd -0x18(%rbp), %xmm0
movsd 0x9e42(%rip), %xmm1     # 0x327b0
ucomisd %xmm1, %xmm0
ja 0x289b2
movsd -0x18(%rbp), %xmm0
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movl $0x1, %edi
callq 0x24f00
movaps %xmm0, %xmm1
movsd -0x70(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x289bf
xorps %xmm0, %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x28bb3
movsd -0x18(%rbp), %xmm1
mulsd -0x18(%rbp), %xmm1
movsd 0x8c27(%rip), %xmm0     # 0x315f8
divsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x10fde(%rip), %xmm0    # 0x399c0
movsd -0x30(%rbp), %xmm2
movsd 0x10fd9(%rip), %xmm1    # 0x399c8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x30(%rbp), %xmm2
movsd 0x10fcc(%rip), %xmm1    # 0x399d0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x30(%rbp), %xmm2
movsd 0x10fbf(%rip), %xmm1    # 0x399d8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x30(%rbp), %xmm2
movsd 0x10fb2(%rip), %xmm1    # 0x399e0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd 0x10fad(%rip), %xmm0    # 0x399f0
movsd -0x30(%rbp), %xmm2
movsd 0x10fa8(%rip), %xmm1    # 0x399f8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x30(%rbp), %xmm2
movsd 0x10f9b(%rip), %xmm1    # 0x39a00
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x30(%rbp), %xmm2
movsd 0x10f8e(%rip), %xmm1    # 0x39a08
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x30(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x8b65(%rip), %xmm1     # 0x315f8
addsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x10e3c(%rip), %xmm0    # 0x398e0
movsd -0x30(%rbp), %xmm1
mulsd -0x48(%rbp), %xmm1
divsd -0x40(%rbp), %xmm1
subsd %xmm1, %xmm0
divsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
cmpl $0x0, -0xc(%rbp)
je 0x28b0e
xorps %xmm0, %xmm0
ucomisd -0x18(%rbp), %xmm0
jbe 0x28b09
movsd -0x18(%rbp), %xmm0
mulsd -0x18(%rbp), %xmm0
callq 0x2560
movsd -0x20(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x28ba9
movsd -0x18(%rbp), %xmm0
mulsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x38(%rbp), %xmm0
subsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0x8ac2(%rip), %xmm0     # 0x31600
subsd -0x28(%rbp), %xmm0
movsd 0x8ab5(%rip), %xmm1     # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x30(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x2560
movaps %xmm0, %xmm1
movsd -0x78(%rbp), %xmm0
mulsd %xmm1, %xmm0
mulsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x18(%rbp), %xmm0
jbe 0x28ba7
movsd 0x8623(%rip), %xmm0     # 0x311c0
subsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x28ba9
movsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)