// File: /workspace/github_c_makefile_star2_O0/c-zhou[P]yahs/binomlite.c
// Function: rlog1
static double rlog1(double x)
{
/* -----------------------------------------------------------------------
 *             Evaluation of the function  x - ln(1 + x)
 * ----------------------------------------------------------------------- */

    static double a = .0566749439387324;
    static double b = .0456512608815524;
    static double p0 = .333333333333333;
    static double p1 = -.224696413112536;
    static double p2 = .00620886815375787;
    static double q1 = -1.27408923933623;
    static double q2 = .354508718369557;

    double h, r, t, w, w1;
    if (x < -0.39 || x > 0.57) { /* direct evaluation */
    w = x + 0.5 + 0.5;
    return x - log(w);
    }
    /* else */
    if (x < -0.18) { /* L10: */
    h = x + .3;
    h /= .7;
    w1 = a - h * .3;
    }
    else if (x > 0.18) { /* L20: */
    h = x * .75 - .25;
    w1 = b + h / 3.;
    }
    else { /*        Argument Reduction */
    h = x;
    w1 = 0.;
    }

/* L30:                  Series Expansion */

    r = h / (h + 2.);
    t = r * r;
    w = ((p2 * t + p1) * t + p0) / ((q2 * t + q1) * t + 1.);
    return t * 2. * (1. / (1. - r) - r * w) + w1;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movsd %xmm0, -0x10(%rbp)
movsd 0xb8d3(%rip), %xmm0     # 0x32a78
ucomisd -0x10(%rbp), %xmm0
ja 0x271bf
movsd -0x10(%rbp), %xmm0
movsd 0xb8c7(%rip), %xmm1     # 0x32a80
ucomisd %xmm1, %xmm0
jbe 0x27207
movsd 0xa439(%rip), %xmm0     # 0x31600
addsd -0x10(%rbp), %xmm0
movsd 0xa42c(%rip), %xmm1     # 0x31600
addsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x30(%rbp), %xmm0
callq 0x2250
movaps %xmm0, %xmm1
movsd -0x40(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x273de
movsd 0xb879(%rip), %xmm0     # 0x32a88
ucomisd -0x10(%rbp), %xmm0
jbe 0x27279
movsd 0xb5d2(%rip), %xmm0     # 0x327f0
addsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
movsd 0xb59b(%rip), %xmm1     # 0x327d0
divsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd 0x12502(%rip), %xmm1    # 0x39748
movsd -0x18(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0xb586(%rip), %xmm2     # 0x327f0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
jmp 0x272e6
movsd -0x10(%rbp), %xmm0
movsd 0xb80a(%rip), %xmm1     # 0x32a90
ucomisd %xmm1, %xmm0
jbe 0x272d2
movsd -0x10(%rbp), %xmm0
movsd 0xb7ff(%rip), %xmm1     # 0x32a98
mulsd %xmm1, %xmm0
movsd 0xb7fb(%rip), %xmm1     # 0x32aa0
addsd %xmm1, %xmm0
movsd %xmm0, -0x18(%rbp)
movsd 0x1249a(%rip), %xmm0    # 0x39750
movsd -0x18(%rbp), %xmm1
movsd 0xb4cd(%rip), %xmm2     # 0x32790
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
jmp 0x272e4
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x38(%rbp)
jmp 0x272e6
movsd -0x18(%rbp), %xmm0
movsd 0x9ecd(%rip), %xmm1     # 0x311c0
addsd -0x18(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x20(%rbp), %xmm0
mulsd -0x20(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0x12450(%rip), %xmm0    # 0x39768
movsd -0x28(%rbp), %xmm2
movsd 0x1243b(%rip), %xmm1    # 0x39760
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0x28(%rbp), %xmm2
movsd 0x1241e(%rip), %xmm1    # 0x39758
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x1242e(%rip), %xmm1    # 0x39778
movsd -0x28(%rbp), %xmm3
movsd 0x12419(%rip), %xmm2    # 0x39770
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movsd -0x28(%rbp), %xmm2
mulsd %xmm2, %xmm1
movsd 0xa288(%rip), %xmm2     # 0x315f8
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x9e3b(%rip), %xmm0     # 0x311c0
mulsd -0x28(%rbp), %xmm0
movsd 0xa266(%rip), %xmm2     # 0x315f8
subsd -0x20(%rbp), %xmm2
movsd 0xa259(%rip), %xmm1     # 0x315f8
divsd %xmm2, %xmm1
movsd -0x20(%rbp), %xmm2
movsd -0x30(%rbp), %xmm3
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm3, %xmm2
addsd %xmm1, %xmm2
movsd -0x38(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x8(%rbp)
movsd -0x8(%rbp), %xmm0
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)