// File: /workspace/github_c_makefile_star2_O1/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:
subq $0x28, %rsp
movapd %xmm0, %xmm5
movapd 0x6685(%rip), %xmm1     # 0x22fd0
andpd %xmm0, %xmm1
movsd 0x48a1(%rip), %xmm0     # 0x211f8
ucomisd %xmm1, %xmm0
jae 0x1ca26
movsd 0x6007(%rip), %xmm0     # 0x22970
ucomisd %xmm1, %xmm0
jae 0x1cad6
movsd 0x664d(%rip), %xmm0     # 0x22fc8
ucomisd %xmm5, %xmm0
movapd %xmm5, %xmm0
mulsd %xmm5, %xmm0
jae 0x1cbb1
movsd 0x4c9b(%rip), %xmm3     # 0x21630
movapd %xmm3, %xmm2
divsd %xmm0, %xmm2
movsd 0x614b(%rip), %xmm0     # 0x22af0
mulsd %xmm2, %xmm0
addsd 0x6147(%rip), %xmm0     # 0x22af8
mulsd %xmm2, %xmm0
addsd 0x6143(%rip), %xmm0     # 0x22b00
mulsd %xmm2, %xmm0
addsd 0x613f(%rip), %xmm0     # 0x22b08
mulsd %xmm2, %xmm0
addsd 0x613b(%rip), %xmm0     # 0x22b10
movsd 0x613b(%rip), %xmm4     # 0x22b18
mulsd %xmm2, %xmm4
addsd 0x6137(%rip), %xmm4     # 0x22b20
mulsd %xmm2, %xmm4
addsd 0x6133(%rip), %xmm4     # 0x22b28
mulsd %xmm2, %xmm4
addsd 0x612f(%rip), %xmm4     # 0x22b30
mulsd %xmm2, %xmm4
addsd %xmm3, %xmm4
mulsd %xmm2, %xmm0
divsd %xmm4, %xmm0
movsd 0x611f(%rip), %xmm2     # 0x22b38
subsd %xmm0, %xmm2
divsd %xmm1, %xmm2
jmp 0x1cb8a
movapd %xmm5, %xmm0
mulsd %xmm5, %xmm0
movapd %xmm0, 0x10(%rsp)
movapd %xmm5, (%rsp)
callq 0x2550
movsd 0x5fea(%rip), %xmm1     # 0x22a30
movapd 0x10(%rsp), %xmm4
mulsd %xmm4, %xmm1
addsd 0x5fe0(%rip), %xmm1     # 0x22a38
mulsd %xmm4, %xmm1
addsd 0x5fdc(%rip), %xmm1     # 0x22a40
mulsd %xmm4, %xmm1
addsd 0x5fd8(%rip), %xmm1     # 0x22a48
mulsd %xmm4, %xmm1
addsd 0x5fd4(%rip), %xmm1     # 0x22a50
movsd 0x4bac(%rip), %xmm2     # 0x21630
movsd 0x5fcc(%rip), %xmm3     # 0x22a58
mulsd %xmm4, %xmm3
addsd 0x5fc8(%rip), %xmm3     # 0x22a60
addsd %xmm2, %xmm1
mulsd %xmm4, %xmm3
addsd 0x5fc0(%rip), %xmm3     # 0x22a68
mulsd %xmm4, %xmm3
addsd %xmm2, %xmm3
divsd %xmm3, %xmm1
mulsd (%rsp), %xmm1
movsd 0x4737(%rip), %xmm3     # 0x211f8
movapd %xmm3, %xmm2
subsd %xmm1, %xmm2
addsd %xmm3, %xmm2
mulsd %xmm0, %xmm2
jmp 0x1cbbe
movsd 0x5f92(%rip), %xmm2     # 0x22a70
mulsd %xmm1, %xmm2
addsd 0x5f8e(%rip), %xmm2     # 0x22a78
mulsd %xmm1, %xmm2
addsd 0x5f8a(%rip), %xmm2     # 0x22a80
mulsd %xmm1, %xmm2
addsd 0x5f86(%rip), %xmm2     # 0x22a88
mulsd %xmm1, %xmm2
addsd 0x5f82(%rip), %xmm2     # 0x22a90
mulsd %xmm1, %xmm2
addsd 0x5f7e(%rip), %xmm2     # 0x22a98
mulsd %xmm1, %xmm2
addsd 0x5f7a(%rip), %xmm2     # 0x22aa0
mulsd %xmm1, %xmm2
addsd 0x5f76(%rip), %xmm2     # 0x22aa8
movsd 0x5f76(%rip), %xmm0     # 0x22ab0
addsd %xmm1, %xmm0
mulsd %xmm1, %xmm0
addsd 0x5f6e(%rip), %xmm0     # 0x22ab8
mulsd %xmm1, %xmm0
addsd 0x5f6a(%rip), %xmm0     # 0x22ac0
mulsd %xmm1, %xmm0
addsd 0x5f66(%rip), %xmm0     # 0x22ac8
mulsd %xmm1, %xmm0
addsd 0x5f62(%rip), %xmm0     # 0x22ad0
mulsd %xmm1, %xmm0
addsd 0x5f5e(%rip), %xmm0     # 0x22ad8
mulsd %xmm1, %xmm0
addsd 0x5f5a(%rip), %xmm0     # 0x22ae0
divsd %xmm0, %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm5, %xmm0
jbe 0x1cbbe
mulsd %xmm5, %xmm5
movapd %xmm5, %xmm0
movsd %xmm2, (%rsp)
callq 0x2550
addsd %xmm0, %xmm0
subsd (%rsp), %xmm0
jmp 0x1cbc2
callq 0x2550
movapd %xmm0, %xmm2
addsd %xmm0, %xmm2
movapd %xmm2, %xmm0
addq $0x28, %rsp
retq
nop