// File: /workspace/github_c_makefile_star2_O1/c-zhou[P]yahs/binomlite.c
// Function: qnorm
double qnorm(double p, double mu, double sigma, int lower_tail, int log_p)
{
    double p_, q, r, val;

    if(sigma == 0)
        return mu;

    p_ = R_DT_qIv(p);/* real lower_tail prob. p */
    q = p_ - 0.5;
/*-- use AS 241 --- */
/* double ppnd16_(double *p, long *ifault)*/
/*      ALGORITHM AS241  APPL. STATIST. (1988) VOL. 37, NO. 3

        Produces the normal deviate Z corresponding to a given lower
        tail area of P; Z is accurate to about 1 part in 10**16.

        (original fortran code used PARAMETER(..) for the coefficients
         and provided hash codes for checking them...)
*/
    if (fabs(q) <= .425) {/* 0.075 <= p <= 0.925 */
        r = .180625 - q * q;
        val =
            q * (((((((r * 2509.0809287301226727 +
                       33430.575583588128105) * r + 67265.770927008700853) * r +
                     45921.953931549871457) * r + 13731.693765509461125) * r +
                   1971.5909503065514427) * r + 133.14166789178437745) * r +
                 3.387132872796366608)
            / (((((((r * 5226.495278852854561 +
                     28729.085735721942674) * r + 39307.89580009271061) * r +
                   21213.794301586595867) * r + 5394.1960214247511077) * r +
                 687.1870074920579083) * r + 42.313330701600911252) * r + 1.);
    } else { /* closer than 0.075 from {0,1} boundary */
        /* r = min(p, 1-p) < 0.075 */
        if (q > 0)
            r = R_DT_CIv(p); /* 1-p */
        else
            r = p_;/* = R_DT_Iv(p) ^=  p */

        r = sqrt(- ((log_p &&
                        ((lower_tail && q <= 0) || (!lower_tail && q > 0))) ?
                    p : /* else */ log(r)));
        /* r = sqrt(-log(r))  <==>  min(p, 1-p) = exp( - r^2 ) */
        if (r <= 5.) { /* <==> min(p,1-p) >= exp(-25) ~= 1.3888e-11 */
            r += -1.6;
            val = (((((((r * 7.7454501427834140764e-4 +
                       .0227238449892691845833) * r + .24178072517745061177) *
                     r + 1.27045825245236838258) * r +
                    3.64784832476320460504) * r + 5.7694972214606914055) *
                  r + 4.6303378461565452959) * r +
                 1.42343711074968357734)
                / (((((((r *
                         1.05075007164441684324e-9 + 5.475938084995344946e-4) *
                        r + .0151986665636164571966) * r +
                       .14810397642748007459) * r + .68976733498510000455) *
                     r + 1.6763848301838038494) * r +
                    2.05319162663775882187) * r + 1.);
        } else { /* very close to  0 or 1 */
            r += -5.;
            val = (((((((r * 2.01033439929228813265e-7 +
                       2.71155556874348757815e-5) * r +
                      .0012426609473880784386) * r + .026532189526576123093) *
                    r + .29656057182850489123) * r +
                   1.7848265399172913358) * r + 5.4637849111641143699) *
                 r + 6.6579046435011037772)
                / (((((((r *
                         2.04426310338993978564e-15 + 1.4215117583164458887e-7)*
                        r + 1.8463183175100546818e-5) * r +
                       7.868691311456132591e-4) * r + .0148753612908506148525)
                     * r + .13692988092273580531) * r +
                    .59983220655588793769) * r + 1.);
        }

        if(q < 0.0)
            val = -val;
        /* return (q >= 0.)? r : -r ;*/
    }

    return mu + sigma * val;
}

// Assembly:
movapd %xmm0, %xmm3
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm2
jne 0x1a6a7
jp 0x1a6a7
movaps %xmm1, %xmm0
retq
pushq %rbp
pushq %rbx
subq $0x38, %rsp
movl %esi, %ebp
movl %edi, %ebx
testl %esi, %esi
movsd %xmm2, 0x8(%rsp)
movsd %xmm1, 0x30(%rsp)
movapd %xmm3, 0x20(%rsp)
je 0x1a6d6
movapd %xmm3, %xmm0
testl %ebx, %ebx
je 0x1a6e0
callq 0x2550
jmp 0x1a703
testl %ebx, %ebx
je 0x1a6ef
movapd %xmm3, %xmm0
jmp 0x1a703
callq 0x22f0
xorpd 0x88f3(%rip), %xmm0     # 0x22fe0
jmp 0x1a703
movsd 0x6b01(%rip), %xmm1     # 0x211f8
movapd %xmm1, %xmm0
subsd %xmm3, %xmm0
addsd %xmm1, %xmm0
movsd 0x817d(%rip), %xmm3     # 0x22888
addsd %xmm0, %xmm3
movapd 0x88b9(%rip), %xmm1     # 0x22fd0
andpd %xmm3, %xmm1
movsd 0x8485(%rip), %xmm2     # 0x22ba8
ucomisd %xmm1, %xmm2
jae 0x1a76f
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm3
movapd 0x20(%rsp), %xmm2
movapd %xmm3, 0x10(%rsp)
jbe 0x1a87d
testl %ebp, %ebp
je 0x1a84e
movapd %xmm2, %xmm0
testl %ebx, %ebx
je 0x1a86c
callq 0x22f0
movapd 0x20(%rsp), %xmm2
xorpd 0x8876(%rip), %xmm0     # 0x22fe0
jmp 0x1a877
movapd %xmm3, %xmm1
mulsd %xmm3, %xmm1
movsd 0x8431(%rip), %xmm0     # 0x22bb0
subsd %xmm1, %xmm0
movsd 0x842d(%rip), %xmm1     # 0x22bb8
mulsd %xmm0, %xmm1
addsd 0x8429(%rip), %xmm1     # 0x22bc0
mulsd %xmm0, %xmm1
addsd 0x8425(%rip), %xmm1     # 0x22bc8
mulsd %xmm0, %xmm1
addsd 0x8421(%rip), %xmm1     # 0x22bd0
mulsd %xmm0, %xmm1
addsd 0x841d(%rip), %xmm1     # 0x22bd8
mulsd %xmm0, %xmm1
addsd 0x8419(%rip), %xmm1     # 0x22be0
mulsd %xmm0, %xmm1
addsd 0x8415(%rip), %xmm1     # 0x22be8
mulsd %xmm0, %xmm1
addsd 0x8411(%rip), %xmm1     # 0x22bf0
movsd 0x8411(%rip), %xmm2     # 0x22bf8
mulsd %xmm0, %xmm2
addsd 0x840d(%rip), %xmm2     # 0x22c00
mulsd %xmm0, %xmm2
addsd 0x8409(%rip), %xmm2     # 0x22c08
mulsd %xmm0, %xmm2
addsd 0x8405(%rip), %xmm2     # 0x22c10
mulsd %xmm0, %xmm2
addsd 0x8401(%rip), %xmm2     # 0x22c18
mulsd %xmm0, %xmm2
addsd 0x83fd(%rip), %xmm2     # 0x22c20
mulsd %xmm3, %xmm1
mulsd %xmm0, %xmm2
addsd 0x83f5(%rip), %xmm2     # 0x22c28
mulsd %xmm0, %xmm2
addsd 0x6df1(%rip), %xmm2     # 0x21630
divsd %xmm2, %xmm1
movsd 0x8(%rsp), %xmm0
jmp 0x1aa86
movapd %xmm2, %xmm0
testl %ebx, %ebx
je 0x1a87d
movsd 0x699a(%rip), %xmm1     # 0x211f8
movapd %xmm1, %xmm0
subsd %xmm2, %xmm0
addsd %xmm1, %xmm0
jmp 0x1a87d
callq 0x2550
movapd 0x20(%rsp), %xmm2
movapd 0x10(%rsp), %xmm3
testl %ebp, %ebp
je 0x1a8a5
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm3
seta %al
ucomisd %xmm3, %xmm1
setae %dl
testl %ebx, %ebx
setne %sil
sete %cl
testb %dl, %sil
jne 0x1a8b4
andb %al, %cl
jne 0x1a8b4
callq 0x2240
movapd 0x10(%rsp), %xmm3
movapd %xmm0, %xmm2
movapd 0x8724(%rip), %xmm0     # 0x22fe0
xorpd %xmm2, %xmm0
movsd 0x8368(%rip), %xmm1     # 0x22c30
ucomisd %xmm2, %xmm1
jb 0x1a8d4
sqrtsd %xmm0, %xmm0
jmp 0x1a8df
callq 0x24f0
movapd 0x10(%rsp), %xmm3
movsd 0x8351(%rip), %xmm1     # 0x22c38
ucomisd %xmm0, %xmm1
jae 0x1a9aa
addsd 0x83c7(%rip), %xmm0     # 0x22cc0
movsd 0x83c7(%rip), %xmm1     # 0x22cc8
mulsd %xmm0, %xmm1
addsd 0x83c3(%rip), %xmm1     # 0x22cd0
mulsd %xmm0, %xmm1
addsd 0x83bf(%rip), %xmm1     # 0x22cd8
mulsd %xmm0, %xmm1
addsd 0x83bb(%rip), %xmm1     # 0x22ce0
mulsd %xmm0, %xmm1
addsd 0x83b7(%rip), %xmm1     # 0x22ce8
mulsd %xmm0, %xmm1
addsd 0x83b3(%rip), %xmm1     # 0x22cf0
mulsd %xmm0, %xmm1
addsd 0x83af(%rip), %xmm1     # 0x22cf8
mulsd %xmm0, %xmm1
addsd 0x83ab(%rip), %xmm1     # 0x22d00
movsd 0x83ab(%rip), %xmm2     # 0x22d08
mulsd %xmm0, %xmm2
addsd 0x83a7(%rip), %xmm2     # 0x22d10
mulsd %xmm0, %xmm2
addsd 0x83a3(%rip), %xmm2     # 0x22d18
mulsd %xmm0, %xmm2
addsd 0x839f(%rip), %xmm2     # 0x22d20
mulsd %xmm0, %xmm2
addsd 0x839b(%rip), %xmm2     # 0x22d28
mulsd %xmm0, %xmm2
addsd 0x8397(%rip), %xmm2     # 0x22d30
mulsd %xmm0, %xmm2
addsd 0x8393(%rip), %xmm2     # 0x22d38
jmp 0x1aa5e
addsd 0x828e(%rip), %xmm0     # 0x22c40
movsd 0x828e(%rip), %xmm1     # 0x22c48
mulsd %xmm0, %xmm1
addsd 0x828a(%rip), %xmm1     # 0x22c50
mulsd %xmm0, %xmm1
addsd 0x8286(%rip), %xmm1     # 0x22c58
mulsd %xmm0, %xmm1
addsd 0x8282(%rip), %xmm1     # 0x22c60
mulsd %xmm0, %xmm1
addsd 0x827e(%rip), %xmm1     # 0x22c68
mulsd %xmm0, %xmm1
addsd 0x827a(%rip), %xmm1     # 0x22c70
mulsd %xmm0, %xmm1
addsd 0x8276(%rip), %xmm1     # 0x22c78
mulsd %xmm0, %xmm1
addsd 0x8272(%rip), %xmm1     # 0x22c80
movsd 0x8272(%rip), %xmm2     # 0x22c88
mulsd %xmm0, %xmm2
addsd 0x826e(%rip), %xmm2     # 0x22c90
mulsd %xmm0, %xmm2
addsd 0x826a(%rip), %xmm2     # 0x22c98
mulsd %xmm0, %xmm2
addsd 0x8266(%rip), %xmm2     # 0x22ca0
mulsd %xmm0, %xmm2
addsd 0x8262(%rip), %xmm2     # 0x22ca8
mulsd %xmm0, %xmm2
addsd 0x825e(%rip), %xmm2     # 0x22cb0
mulsd %xmm0, %xmm2
addsd 0x825a(%rip), %xmm2     # 0x22cb8
mulsd %xmm0, %xmm2
addsd 0x6bc6(%rip), %xmm2     # 0x21630
divsd %xmm2, %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm3, %xmm0
movsd 0x8(%rsp), %xmm0
jbe 0x1aa86
xorpd 0x855a(%rip), %xmm1     # 0x22fe0
mulsd %xmm1, %xmm0
addsd 0x30(%rsp), %xmm0
addq $0x38, %rsp
popq %rbx
popq %rbp
retq