// File: /workspace/github_c_makefile_star2_O2/samtools[P]htslib/kfunc.c
// Function: kf_erfc
double kf_erfc(double x)
{
	const double p0 = 220.2068679123761;
	const double p1 = 221.2135961699311;
	const double p2 = 112.0792914978709;
	const double p3 = 33.912866078383;
	const double p4 = 6.37396220353165;
	const double p5 = .7003830644436881;
	const double p6 = .03526249659989109;
	const double q0 = 440.4137358247522;
	const double q1 = 793.8265125199484;
	const double q2 = 637.3336333788311;
	const double q3 = 296.5642487796737;
	const double q4 = 86.78073220294608;
	const double q5 = 16.06417757920695;
	const double q6 = 1.755667163182642;
	const double q7 = .08838834764831844;
	double expntl, z, p;
	z = fabs(x) * M_SQRT2;
	if (z > 37.) return x > 0.? 0. : 2.;
	expntl = exp(z * z * - .5);
	if (z < 10. / M_SQRT2) // for small z
	    p = expntl * ((((((p6 * z + p5) * z + p4) * z + p3) * z + p2) * z + p1) * z + p0)
			/ (((((((q7 * z + q6) * z + q5) * z + q4) * z + q3) * z + q2) * z + q1) * z + q0);
	else p = expntl / 2.506628274631001 / (z + 1. / (z + 2. / (z + 3. / (z + 4. / (z + .65)))));
	return x > 0.? 2. * p : 2. * (1. - p);
}

// Assembly:
movapd %xmm0, %xmm1
movapd 0x18c3(%rip), %xmm2     # 0x3010
andpd %xmm0, %xmm2
mulsd 0x1a67(%rip), %xmm2     # 0x31c0
ucomisd 0x1a67(%rip), %xmm2     # 0x31c8
jbe 0x1779
xorpd %xmm0, %xmm0
cmpltsd %xmm1, %xmm0
movsd 0x1a7c(%rip), %xmm1     # 0x31f0
andnpd %xmm1, %xmm0
retq
subq $0x28, %rsp
movapd %xmm1, 0x10(%rsp)
movapd %xmm2, %xmm0
mulsd %xmm2, %xmm0
mulsd 0x1a1d(%rip), %xmm0     # 0x31b0
movapd %xmm2, (%rsp)
callq 0x1060
movapd (%rsp), %xmm3
movsd 0x1a26(%rip), %xmm1     # 0x31d0
ucomisd %xmm3, %xmm1
jbe 0x186a
movsd 0x1a3c(%rip), %xmm1     # 0x31f8
mulsd %xmm3, %xmm1
addsd 0x1a38(%rip), %xmm1     # 0x3200
mulsd %xmm3, %xmm1
addsd 0x1a34(%rip), %xmm1     # 0x3208
mulsd %xmm3, %xmm1
addsd 0x1a30(%rip), %xmm1     # 0x3210
mulsd %xmm3, %xmm1
addsd 0x1a2c(%rip), %xmm1     # 0x3218
mulsd %xmm3, %xmm1
addsd 0x1a28(%rip), %xmm1     # 0x3220
mulsd %xmm3, %xmm1
addsd 0x1a24(%rip), %xmm1     # 0x3228
movsd 0x1a24(%rip), %xmm2     # 0x3230
mulsd %xmm3, %xmm2
addsd 0x1a20(%rip), %xmm2     # 0x3238
mulsd %xmm3, %xmm2
addsd 0x1a1c(%rip), %xmm2     # 0x3240
mulsd %xmm3, %xmm2
addsd 0x1a18(%rip), %xmm2     # 0x3248
mulsd %xmm3, %xmm2
addsd 0x1a14(%rip), %xmm2     # 0x3250
mulsd %xmm3, %xmm2
addsd 0x1a10(%rip), %xmm2     # 0x3258
mulsd %xmm0, %xmm1
mulsd %xmm3, %xmm2
addsd 0x1a08(%rip), %xmm2     # 0x3260
mulsd %xmm3, %xmm2
addsd 0x1a04(%rip), %xmm2     # 0x3268
divsd %xmm2, %xmm1
jmp 0x18d3
movsd 0x1966(%rip), %xmm1     # 0x31d8
addsd %xmm3, %xmm1
movsd 0x1962(%rip), %xmm2     # 0x31e0
divsd %xmm1, %xmm2
addsd %xmm3, %xmm2
movsd 0x195a(%rip), %xmm1     # 0x31e8
divsd %xmm2, %xmm1
addsd %xmm3, %xmm1
movsd 0x1952(%rip), %xmm2     # 0x31f0
divsd %xmm1, %xmm2
addsd %xmm3, %xmm2
shufpd $0x2, 0x18c1(%rip), %xmm0 # xmm0 = xmm0[0],mem[1]
movapd 0x18c9(%rip), %xmm1     # 0x3180
unpcklpd %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0]
divpd %xmm1, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm3, %xmm1
divsd %xmm1, %xmm0
movapd %xmm0, %xmm1
movsd 0x174d(%rip), %xmm2     # 0x3028
subsd %xmm1, %xmm2
xorpd %xmm0, %xmm0
cmpltsd 0x10(%rsp), %xmm0
movapd %xmm0, %xmm3
andnpd %xmm2, %xmm3
andpd %xmm1, %xmm0
orpd %xmm3, %xmm0
addsd %xmm0, %xmm0
addq $0x28, %rsp
retq