double dcs_pair_production_KKP(double Z, double A_, double mass, double K,
                               double q) {
  if ((Z <= 0) || (A_ <= 0) || (mass <= 0) || (K <= 0) || (q <= 0))
    return 0.;
  double qmin, qmax;
  dcs_pair_production_range(Z, mass, K, &qmin, &qmax);
  if ((q < qmin) || (q > qmax))
    return 0.;
  const double nu = q / (K + mass);
  const double r = mass / 0.510998910E-03;
  const double beta = 0.5 * nu * nu / (1. - nu);
  const double xi_factor = 0.5 * r * r * beta;
  const double A = radiation_logarithm(Z);
  const double Z13 = pow(Z, 1. / 3.);
  const double AZ13 = A / Z13;
  const double sqrte = 1.6487212707;
  const double cL = 2. * sqrte * 0.510998910E-03 * AZ13;
  const double cLe = 2.25 * Z13 * Z13 / (r * r);
  const double gamma = 1. + K / mass;
  const double x0 = 4. * 0.510998910E-03 / q;
  const double x1 = 6. / (gamma * (gamma - q / mass));
  const double argmin =
      (x0 + 2. * (1. - x0) * x1) / (1. + (1. - x1) * sqrt(1. - x0));
  if ((argmin >= 1.) || (argmin <= 0.))
    return 0.;
  const double tmin = log(argmin);
  const double *xGQ, *wGQ;
  math_gauss_quad_coefficients(12, &xGQ, &wGQ);
  double I = 0.;
  int i;
  for (i = 0; i < 12; i++) {
    const double eps = exp(xGQ[i] * tmin);
    const double rho = 1. - eps;
    const double rho2 = rho * rho;
    const double rho21 = eps * (2. - eps);
    const double xi = xi_factor * rho21;
    const double xi_i = 1. / xi;
    double Be;
    if (xi >= 1E+03)
      Be = 0.5 * xi_i * ((3 - rho2) + 2. * beta * (1. + rho2));
    else
      Be = ((2. + rho2) * (1. + beta) + xi * (3. + rho2)) * log(1. + xi_i) +
           (rho21 - beta) / (1. + xi) - 3. - rho2;
    const double Ye = (5. - rho2 + 4. * beta * (1. + rho2)) /
                      (2. * (1. + 3. * beta) * log(3. + xi_i) - rho2 -
                       2. * beta * (2. - rho2));
    const double xe = (1. + xi) * (1. + Ye);
    const double cLi = cL / rho21;
    const double Le =
        log(AZ13 * sqrt(xe) * q / (q + cLi * xe)) - 0.5 * log(1. + cLe * xe);
    double Phi_e = Be * Le;
    if (Phi_e < 0.)
      Phi_e = 0.;
    double Bmu;
    if (xi <= 1E-03)
      Bmu = 0.5 * xi * (5. - rho2 + beta * (3. + rho2));
    else
      Bmu =
          ((1. + rho2) * (1. + 1.5 * beta) - xi_i * (1. + 2. * beta) * rho21) *
              log(1. + xi) +
          xi * (rho21 - beta) / (1. + xi) + (1. + 2. * beta) * rho21;
    const double Ymu =
        (4. + rho2 + 3. * beta * (1. + rho2)) /
        ((1. + rho2) * (1.5 + 2. * beta) * log(3. + xi) + 1. - 1.5 * rho2);
    const double xmu = (1. + xi) * (1. + Ymu);
    const double Lmu = log(r * AZ13 * q / (1.5 * Z13 * (q + cLi * xmu)));
    double Phi_mu = Bmu * Lmu;
    if (Phi_mu < 0.)
      Phi_mu = 0.;
    I -= (Phi_e + Phi_mu / (r * r)) * (1. - rho) * wGQ[i] * tmin;
  }
  double zeta;
  if (gamma <= 35.)
    zeta = 0.;
  else {
    double gamma1, gamma2;
    if (Z == 1.) {
      gamma1 = 4.4E-05;
      gamma2 = 4.8E-05;
    } else {
      gamma1 = 1.95E-05;
      gamma2 = 5.30E-05;
    }
    zeta = 0.073 * log(gamma / (1. + gamma1 * gamma * Z13 * Z13)) - 0.26;
    if (zeta <= 0.)
      zeta = 0.;
    else {
      zeta /= 0.058 * log(gamma / (1. + gamma2 * gamma * Z13)) - 0.14;
    }
  }
  const double E = K + mass;
  const double dcs = 1.794664E-34 * Z * (Z + zeta) * (E - q) * I / (q * E);
  return (dcs < 0.) ? 0. : dcs;
}


x86 assembly (clang, -O0):
<dcs_pair_production_KKP>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1e0,%rsp
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
movsd  %xmm3,-0x28(%rbp)
movsd  %xmm4,-0x30(%rbp)
xorps  %xmm0,%xmm0
ucomisd -0x10(%rbp),%xmm0
jae    11da <dcs_pair_production_KKP+0x6a>
xorps  %xmm0,%xmm0
ucomisd -0x18(%rbp),%xmm0
jae    11da <dcs_pair_production_KKP+0x6a>
xorps  %xmm0,%xmm0
ucomisd -0x20(%rbp),%xmm0
jae    11da <dcs_pair_production_KKP+0x6a>
xorps  %xmm0,%xmm0
ucomisd -0x28(%rbp),%xmm0
jae    11da <dcs_pair_production_KKP+0x6a>
xorps  %xmm0,%xmm0
ucomisd -0x30(%rbp),%xmm0
jb     11e7 <dcs_pair_production_KKP+0x77>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1e19 <dcs_pair_production_KKP+0xca9>
movsd  -0x10(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
lea    -0x38(%rbp),%rdi
lea    -0x40(%rbp),%rsi
mov    $0x3,%al
call   1080 <dcs_pair_production_range@plt>
movsd  -0x30(%rbp),%xmm1
movsd  -0x38(%rbp),%xmm0
ucomisd %xmm1,%xmm0
ja     1229 <dcs_pair_production_KKP+0xb9>
movsd  -0x30(%rbp),%xmm0
ucomisd -0x40(%rbp),%xmm0
jbe    1236 <dcs_pair_production_KKP+0xc6>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1e19 <dcs_pair_production_KKP+0xca9>
movsd  -0x30(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
addsd  -0x20(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xded(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0xdd4(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  0xd82(%rip),%xmm1
subsd  -0x48(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0xdac(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
mulsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x10(%rbp),%xmm0
mov    $0x1,%al
call   1090 <radiation_logarithm@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xd6e(%rip),%xmm1
call   1060 <pow@plt>
movsd  %xmm0,-0x70(%rbp)
movsd  -0x68(%rbp),%xmm0
divsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  0xd45(%rip),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0xd30(%rip),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0xd13(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
mulsd  -0x50(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x28(%rbp),%xmm1
divsd  -0x20(%rbp),%xmm1
movsd  0xcc1(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0xcc5(%rip),%xmm0
divsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x30(%rbp),%xmm2
divsd  -0x20(%rbp),%xmm2
subsd  %xmm2,%xmm0
mulsd  %xmm0,%xmm1
movsd  0xc86(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm1
ff
movsd  0xc5a(%rip),%xmm2
subsd  -0xa0(%rbp),%xmm2
ff
movsd  0xc52(%rip),%xmm0
mulsd  %xmm2,%xmm0
movsd  -0xa8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  0xc26(%rip),%xmm0
subsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x198(%rbp)
ff
movsd  0xc0e(%rip),%xmm0
subsd  -0xa0(%rbp),%xmm0
ff
call   1070 <sqrt@plt>
movsd  -0x198(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x190(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
movsd  0xbe2(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  0xbc2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jae    1459 <dcs_pair_production_KKP+0x2e9>
xorps  %xmm0,%xmm0
ucomisd -0xb0(%rbp),%xmm0
ff
jb     1466 <dcs_pair_production_KKP+0x2f6>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1e19 <dcs_pair_production_KKP+0xca9>
movsd  -0xb0(%rbp),%xmm0
ff
call   1050 <log@plt>
movsd  %xmm0,-0xb8(%rbp)
ff
mov    $0xc,%edi
lea    -0xc0(%rbp),%rsi
lea    -0xc8(%rbp),%rdx
mov    $0x0,%al
call   1030 <math_gauss_quad_coefficients@plt>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movl   $0x0,-0xd4(%rbp)
cmpl   $0xc,-0xd4(%rbp)
jge    1c0b <dcs_pair_production_KKP+0xa9b>
mov    -0xc0(%rbp),%rax
movslq -0xd4(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
call   1040 <exp@plt>
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  0xb19(%rip),%xmm0
subsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  0xae9(%rip),%xmm1
subsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
mulsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  0xab0(%rip),%xmm0
divsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  0xb30(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     15d0 <dcs_pair_production_KKP+0x460>
movsd  0xabe(%rip),%xmm0
mulsd  -0x108(%rbp),%xmm0
ff
movsd  0xb16(%rip),%xmm2
subsd  -0xf0(%rbp),%xmm2
ff
movsd  0xa66(%rip),%xmm1
mulsd  -0x58(%rbp),%xmm1
movsd  0xa51(%rip),%xmm3
addsd  -0xf0(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
jmp    167e <dcs_pair_production_KKP+0x50e>
movsd  0xa30(%rip),%xmm0
addsd  -0xf0(%rbp),%xmm0
ff
movsd  0xa18(%rip),%xmm2
addsd  -0x58(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm1
ff
movsd  0xaab(%rip),%xmm3
addsd  -0xf0(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  0x9df(%rip),%xmm0
addsd  -0x108(%rbp),%xmm0
ff
call   1050 <log@plt>
movaps %xmm0,%xmm2
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0xf8(%rbp),%xmm1
ff
subsd  -0x58(%rbp),%xmm1
movsd  0x9b2(%rip),%xmm3
addsd  -0x100(%rbp),%xmm3
ff
divsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xa3e(%rip),%xmm1
subsd  %xmm1,%xmm0
subsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0xa3a(%rip),%xmm1
subsd  -0xf0(%rbp),%xmm1
ff
movsd  0xa22(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
movsd  0x95d(%rip),%xmm2
addsd  -0xf0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x58(%rbp),%xmm1
movsd  0x9e0(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0x92c(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0x928(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  0x9b4(%rip),%xmm0
addsd  -0x108(%rbp),%xmm0
ff
call   1050 <log@plt>
movsd  -0x1c0(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0x8c5(%rip),%xmm1
mulsd  -0x58(%rbp),%xmm1
movsd  0x8b8(%rip),%xmm3
subsd  -0xf0(%rbp),%xmm3
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  0x875(%rip),%xmm0
addsd  -0x100(%rbp),%xmm0
ff
movsd  0x865(%rip),%xmm1
addsd  -0x118(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
divsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
call   1070 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x1b0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  -0x30(%rbp),%xmm2
movsd  -0x128(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
call   1050 <log@plt>
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0x120(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x7c1(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1050 <log@plt>
movsd  -0x1a8(%rbp),%xmm1
ff
movsd  0x858(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
mulsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
xorps  %xmm0,%xmm0
ucomisd -0x138(%rbp),%xmm0
ff
jbe    189c <dcs_pair_production_KKP+0x72c>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  0x824(%rip),%xmm0
ucomisd -0x100(%rbp),%xmm0
ff
jb     1900 <dcs_pair_production_KKP+0x790>
movsd  0x786(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  0x7f6(%rip),%xmm2
subsd  -0xf0(%rbp),%xmm2
ff
movsd  -0x58(%rbp),%xmm1
movsd  0x7c9(%rip),%xmm3
addsd  -0xf0(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
jmp    19ff <dcs_pair_production_KKP+0x88f>
movsd  0x6f8(%rip),%xmm0
addsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x58(%rbp),%xmm2
movsd  0x7b3(%rip),%xmm1
mulsd  %xmm1,%xmm2
movsd  0x6d7(%rip),%xmm1
addsd  %xmm1,%xmm2
movsd  -0x108(%rbp),%xmm1
ff
movsd  -0x58(%rbp),%xmm3
addsd  %xmm3,%xmm3
movsd  0x6ba(%rip),%xmm4
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  0x67b(%rip),%xmm0
addsd  -0x100(%rbp),%xmm0
ff
call   1050 <log@plt>
movsd  -0x1c8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0xf8(%rbp),%xmm3
ff
subsd  -0x58(%rbp),%xmm3
mulsd  %xmm3,%xmm0
movsd  0x642(%rip),%xmm3
addsd  -0x100(%rbp),%xmm3
ff
divsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
addsd  %xmm0,%xmm0
movsd  0x61d(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  -0xf8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  0x6b1(%rip),%xmm1
addsd  -0xf0(%rbp),%xmm1
ff
movsd  0x691(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
movsd  0x5dc(%rip),%xmm2
addsd  -0xf0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  0x5bc(%rip),%xmm0
addsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x58(%rbp),%xmm1
addsd  %xmm1,%xmm1
movsd  0x673(%rip),%xmm2
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  0x633(%rip),%xmm0
addsd  -0x100(%rbp),%xmm0
ff
call   1050 <log@plt>
movsd  -0x1d8(%rbp),%xmm2
ff
movaps %xmm0,%xmm1
movsd  -0x1d0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm2
movsd  0x55f(%rip),%xmm1
addsd  %xmm1,%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movsd  0x623(%rip),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  0x52f(%rip),%xmm0
addsd  -0x100(%rbp),%xmm0
ff
movsd  0x51f(%rip),%xmm1
addsd  -0x148(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  0x5c4(%rip),%xmm1
mulsd  -0x70(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm3
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0x150(%rbp),%xmm4
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
call   1050 <log@plt>
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
mulsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
xorps  %xmm0,%xmm0
ucomisd -0x160(%rbp),%xmm0
ff
jbe    1b77 <dcs_pair_production_KKP+0xa07>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0x160(%rbp),%xmm1
ff
movsd  -0x50(%rbp),%xmm2
mulsd  -0x50(%rbp),%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  0x45f(%rip),%xmm1
subsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
mov    -0xc8(%rbp),%rax
movslq -0xd4(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  -0xb8(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0xd4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd4(%rbp)
jmp    14aa <dcs_pair_production_KKP+0x33a>
movsd  0x43d(%rip),%xmm0
ucomisd -0x98(%rbp),%xmm0
ff
jb     1c31 <dcs_pair_production_KKP+0xac1>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
jmp    1d79 <dcs_pair_production_KKP+0xc09>
movsd  -0x10(%rbp),%xmm0
movsd  0x3c2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1c73 <dcs_pair_production_KKP+0xb03>
jp     1c73 <dcs_pair_production_KKP+0xb03>
movsd  0x41a(%rip),%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0x402(%rip),%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
jmp    1c93 <dcs_pair_production_KKP+0xb23>
movsd  0x3e5(%rip),%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0x3cd(%rip),%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x170(%rbp),%xmm1
ff
mulsd  -0x98(%rbp),%xmm1
ff
mulsd  -0x70(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm2
mulsd  %xmm2,%xmm1
movsd  0x33f(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
call   1050 <log@plt>
movsd  0x3a2(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x39e(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
xorps  %xmm0,%xmm0
ucomisd -0x168(%rbp),%xmm0
ff
jb     1d0f <dcs_pair_production_KKP+0xb9f>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
jmp    1d74 <dcs_pair_production_KKP+0xc04>
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x178(%rbp),%xmm1
ff
mulsd  -0x98(%rbp),%xmm1
ff
movsd  -0x70(%rbp),%xmm2
mulsd  %xmm2,%xmm1
movsd  0x2c8(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
call   1050 <log@plt>
movaps %xmm0,%xmm1
movsd  0x338(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0x334(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  -0x168(%rbp),%xmm0
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
jmp    1d79 <dcs_pair_production_KKP+0xc09>
movsd  -0x28(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  0x305(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
addsd  -0x168(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x180(%rbp),%xmm1
ff
subsd  -0x30(%rbp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x30(%rbp),%xmm1
mulsd  -0x180(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
xorps  %xmm0,%xmm0
ucomisd -0x188(%rbp),%xmm0
ff
jbe    1dfc <dcs_pair_production_KKP+0xc8c>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
jmp    1e0c <dcs_pair_production_KKP+0xc9c>
movsd  -0x188(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x1e0(%rbp),%xmm0
ff
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
add    $0x1e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<dcs_pair_production_KKP>:
push   %rbx
sub    $0x190,%rsp
movsd  %xmm2,(%rsp)
xorpd  %xmm6,%xmm6
ucomisd %xmm0,%xmm6
jae    1b13 <dcs_pair_production_KKP+0x9a3>
xorpd  %xmm2,%xmm2
ucomisd %xmm1,%xmm2
jae    1b13 <dcs_pair_production_KKP+0x9a3>
ucomisd (%rsp),%xmm2
jae    1b13 <dcs_pair_production_KKP+0x9a3>
xorpd  %xmm1,%xmm1
ucomisd %xmm3,%xmm1
jae    1b13 <dcs_pair_production_KKP+0x9a3>
ucomisd %xmm4,%xmm1
jae    1b13 <dcs_pair_production_KKP+0x9a3>
lea    0x128(%rsp),%rdi
lea    0x120(%rsp),%rsi
movsd  %xmm0,0x30(%rsp)
movsd  (%rsp),%xmm1
movsd  %xmm3,0x48(%rsp)
movapd %xmm3,%xmm2
mov    $0x3,%al
movsd  %xmm4,0x8(%rsp)
call   1080 <dcs_pair_production_range@plt>
movsd  0x8(%rsp),%xmm1
movsd  0x128(%rsp),%xmm0
ucomisd %xmm1,%xmm0
xorpd  %xmm6,%xmm6
ja     1b13 <dcs_pair_production_KKP+0x9a3>
ucomisd 0x120(%rsp),%xmm1
ja     1b13 <dcs_pair_production_KKP+0x9a3>
movsd  0x30(%rsp),%xmm0
mov    $0x1,%al
call   1090 <radiation_logarithm@plt>
mov    %eax,%ebx
movsd  0xde7(%rip),%xmm1
movsd  0x30(%rsp),%xmm0
call   1060 <pow@plt>
movsd  0x8(%rsp),%xmm8
movsd  %xmm0,0x40(%rsp)
movsd  0x48(%rsp),%xmm3
movsd  (%rsp),%xmm2
divsd  %xmm2,%xmm3
movsd  0xdb0(%rip),%xmm4
addsd  %xmm4,%xmm3
movsd  0xdc4(%rip),%xmm1
divsd  %xmm8,%xmm1
movapd %xmm8,%xmm0
divsd  %xmm2,%xmm0
movapd %xmm3,%xmm2
subsd  %xmm0,%xmm2
movsd  %xmm3,0x70(%rsp)
mulsd  %xmm3,%xmm2
movsd  0xda4(%rip),%xmm3
divsd  %xmm2,%xmm3
movapd %xmm4,%xmm0
subsd  %xmm1,%xmm0
movapd %xmm0,%xmm5
addsd  %xmm0,%xmm5
mulsd  %xmm3,%xmm5
addsd  %xmm1,%xmm5
movapd %xmm4,%xmm1
subsd  %xmm3,%xmm1
xorpd  %xmm6,%xmm6
ucomisd %xmm6,%xmm0
jb     12cc <dcs_pair_production_KKP+0x15c>
movapd %xmm4,%xmm2
sqrtsd %xmm0,%xmm0
jmp    12fc <dcs_pair_production_KKP+0x18c>
movsd  %xmm5,0x20(%rsp)
movsd  %xmm1,0x18(%rsp)
call   1070 <sqrt@plt>
movsd  0x18(%rsp),%xmm1
movsd  0x20(%rsp),%xmm5
xorpd  %xmm6,%xmm6
movsd  0xd1b(%rip),%xmm2
movsd  0x8(%rsp),%xmm8
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm5
ucomisd %xmm2,%xmm5
jae    1b13 <dcs_pair_production_KKP+0x9a3>
xorpd  %xmm0,%xmm0
ucomisd %xmm5,%xmm0
jae    1b13 <dcs_pair_production_KKP+0x9a3>
movsd  0x48(%rsp),%xmm1
movsd  (%rsp),%xmm6
addsd  %xmm6,%xmm1
movapd %xmm8,%xmm0
movsd  %xmm1,0x48(%rsp)
divsd  %xmm1,%xmm0
movsd  0xcc2(%rip),%xmm3
divsd  0xcb2(%rip),%xmm6
movsd  %xmm6,(%rsp)
movapd %xmm0,%xmm1
mulsd  %xmm3,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,%xmm4
movapd %xmm2,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm6,%xmm0
cvtsi2sd %ebx,%xmm7
mulsd  %xmm3,%xmm0
movsd  0xca9(%rip),%xmm2
movsd  0x40(%rsp),%xmm3
mulsd  %xmm3,%xmm2
divsd  %xmm1,%xmm4
movapd %xmm4,0x90(%rsp)
mulsd  %xmm6,%xmm0
divsd  %xmm3,%xmm7
movsd  %xmm7,0x80(%rsp)
mulsd  %xmm3,%xmm2
movapd %xmm6,%xmm1
mulsd  %xmm6,%xmm1
mulsd  %xmm4,%xmm0
movsd  %xmm0,0xf0(%rsp)
movsd  0xc58(%rip),%xmm0
mulsd  %xmm7,%xmm0
movsd  %xmm0,0xd8(%rsp)
movsd  %xmm1,0xe0(%rsp)
divsd  %xmm1,%xmm2
movsd  %xmm2,0xe8(%rsp)
movapd %xmm5,%xmm0
call   1050 <log@plt>
movsd  %xmm0,0x78(%rsp)
xor    %ebx,%ebx
lea    0x118(%rsp),%rsi
lea    0x110(%rsp),%rdx
mov    $0xc,%edi
xor    %eax,%eax
call   1030 <math_gauss_quad_coefficients@plt>
movsd  0x78(%rsp),%xmm1
movsd  0xbea(%rip),%xmm0
movsd  0xc12(%rip),%xmm2
movapd 0x90(%rsp),%xmm5
mulsd  %xmm5,%xmm2
movsd  %xmm2,0xd0(%rsp)
addsd  %xmm0,%xmm2
addsd  %xmm2,%xmm2
movsd  %xmm2,0xc8(%rsp)
movapd %xmm5,%xmm2
unpcklpd %xmm5,%xmm2
mulpd  0xc6b(%rip),%xmm2
movapd %xmm2,0x180(%rsp)
movapd %xmm5,%xmm2
addsd  %xmm5,%xmm2
movsd  0xbca(%rip),%xmm3
movapd %xmm2,%xmm4
addsd  %xmm3,%xmm4
movapd %xmm4,0x170(%rsp)
movsd  (%rsp),%xmm4
mulsd  0x80(%rsp),%xmm4
mulsd  0x8(%rsp),%xmm4
movsd  %xmm4,(%rsp)
movsd  0x40(%rsp),%xmm4
mulsd  %xmm3,%xmm4
movsd  %xmm4,0xc0(%rsp)
movapd %xmm5,%xmm4
addsd  %xmm0,%xmm4
movapd %xmm4,0x150(%rsp)
mulsd  %xmm5,%xmm3
addsd  %xmm0,%xmm3
movsd  %xmm3,0xb8(%rsp)
movapd %xmm2,0x160(%rsp)
addsd  %xmm0,%xmm2
movapd %xmm2,0x130(%rsp)
xorpd  %xmm5,%xmm5
jmp    16a5 <dcs_pair_production_KKP+0x535>
nopl   0x0(%rax)
movsd  0x88(%rsp),%xmm0
mulsd  0x130(%rsp),%xmm0
mulsd  0x10(%rsp),%xmm0
movapd 0x20(%rsp),%xmm1
mulsd  0xb8(%rsp),%xmm1
subsd  %xmm0,%xmm1
movapd %xmm1,0x60(%rsp)
movsd  0x38(%rsp),%xmm0
call   1050 <log@plt>
movapd 0x20(%rsp),%xmm4
movsd  0x58(%rsp),%xmm3
movapd 0x130(%rsp),%xmm1
movsd  0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm1
subsd  0x90(%rsp),%xmm2
mulsd  %xmm3,%xmm2
divsd  0x38(%rsp),%xmm2
mulsd  0x60(%rsp),%xmm0
addsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xab6(%rip),%xmm1
movsd  0x18(%rsp),%xmm2
movapd %xmm2,%xmm0
addsd  0xae4(%rip),%xmm0
movsd  0xd0(%rsp),%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm0,%xmm5
movsd  %xmm5,0x60(%rsp)
mulsd  0x170(%rsp),%xmm4
movapd %xmm4,0x20(%rsp)
addsd  %xmm1,%xmm3
movapd %xmm3,%xmm0
call   1050 <log@plt>
mulsd  0x20(%rsp),%xmm0
movsd  0xa33(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0x18(%rsp),%xmm2
mulsd  0xa99(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  0x60(%rsp),%xmm0
divsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm0,%xmm1
movsd  0x38(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movsd  0x100(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
mulsd  0xc0(%rsp),%xmm1
movsd  (%rsp),%xmm0
divsd  %xmm1,%xmm0
call   1050 <log@plt>
movsd  0x9cf(%rip),%xmm2
mulsd  0x10(%rsp),%xmm0
xorpd  %xmm1,%xmm1
maxsd  %xmm0,%xmm1
divsd  0xe0(%rsp),%xmm1
movsd  0xa0(%rsp),%xmm3
addsd  %xmm1,%xmm3
movapd %xmm2,%xmm0
subsd  0x108(%rsp),%xmm0
mulsd  %xmm3,%xmm0
mov    0x110(%rsp),%rax
mulsd  (%rax,%rbx,8),%xmm0
movsd  0x78(%rsp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x50(%rsp),%xmm5
subsd  %xmm0,%xmm5
add    $0x1,%rbx
cmp    $0xc,%rbx
je     19d3 <dcs_pair_production_KKP+0x863>
movsd  %xmm5,0x50(%rsp)
mov    0x118(%rsp),%rax
movsd  (%rax,%rbx,8),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  0x947(%rip),%xmm2
movapd %xmm2,%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x108(%rsp)
movapd %xmm1,%xmm4
mulsd  %xmm1,%xmm4
movsd  0x966(%rip),%xmm1
movapd %xmm1,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm0,%xmm3
movsd  0xf0(%rsp),%xmm5
mulsd  %xmm3,%xmm5
movapd %xmm2,%xmm6
divsd  %xmm5,%xmm6
ucomisd 0x945(%rip),%xmm5
movsd  %xmm4,0x18(%rsp)
movsd  %xmm5,0x58(%rsp)
movsd  %xmm6,0x88(%rsp)
movsd  %xmm3,0x10(%rsp)
jae    17e0 <dcs_pair_production_KKP+0x670>
movapd %xmm4,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x150(%rsp),%xmm0
movsd  0x8f3(%rip),%xmm3
addsd  %xmm3,%xmm4
mulsd  %xmm5,%xmm4
addsd  %xmm0,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd %xmm6,%xmm0
addsd  %xmm2,%xmm0
call   1050 <log@plt>
movsd  0x88(%rsp),%xmm6
movsd  0x18(%rsp),%xmm4
movsd  0x8bc(%rip),%xmm8
movsd  0x10(%rsp),%xmm1
subsd  0x90(%rsp),%xmm1
movsd  0x58(%rsp),%xmm2
movsd  0x86f(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  %xmm2,0x38(%rsp)
divsd  %xmm2,%xmm1
mulsd  0x20(%rsp),%xmm0
addsd  %xmm1,%xmm0
addsd  0x89f(%rip),%xmm0
subsd  %xmm4,%xmm0
movapd %xmm0,0x140(%rsp)
movapd %xmm4,%xmm0
addsd  %xmm3,%xmm0
movapd %xmm0,0x20(%rsp)
jmp    1834 <dcs_pair_production_KKP+0x6c4>
xchg   %ax,%ax
movapd %xmm6,%xmm0
mulsd  0x81c(%rip),%xmm0
movsd  0x84b(%rip),%xmm8
movapd %xmm8,%xmm1
subsd  %xmm4,%xmm1
movapd %xmm4,%xmm3
addsd  %xmm2,%xmm3
movapd 0x160(%rsp),%xmm7
movapd %xmm3,0x20(%rsp)
mulsd  %xmm3,%xmm7
addsd  %xmm1,%xmm7
mulsd  %xmm0,%xmm7
movapd %xmm7,0x140(%rsp)
addsd  %xmm2,%xmm5
movsd  %xmm5,0x38(%rsp)
movsd  0x82c(%rip),%xmm0
subsd  %xmm4,%xmm0
movapd %xmm0,0x60(%rsp)
movapd %xmm6,%xmm0
addsd  %xmm8,%xmm0
call   1050 <log@plt>
mulsd  0xc8(%rsp),%xmm0
movsd  0x18(%rsp),%xmm2
subsd  %xmm2,%xmm0
movsd  0x7e1(%rip),%xmm1
subsd  %xmm2,%xmm1
movapd 0x20(%rsp),%xmm2
unpcklpd %xmm1,%xmm2
mulpd  0x180(%rsp),%xmm2
movapd 0x60(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
addpd  %xmm2,%xmm1
movapd %xmm1,%xmm0
unpckhpd %xmm1,%xmm0
divsd  %xmm0,%xmm1
addsd  0x768(%rip),%xmm1
mulsd  0x38(%rsp),%xmm1
ucomisd 0x80a(%rip),%xmm1
movapd %xmm1,0xa0(%rsp)
jb     18d0 <dcs_pair_production_KKP+0x760>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    18d9 <dcs_pair_production_KKP+0x769>
nopw   0x0(%rax,%rax,1)
movapd %xmm1,%xmm0
call   1070 <sqrt@plt>
movsd  0x8(%rsp),%xmm2
movsd  0x10(%rsp),%xmm3
movsd  0xd8(%rsp),%xmm1
divsd  %xmm3,%xmm1
mulsd  0x80(%rsp),%xmm0
mulsd  %xmm2,%xmm0
movsd  %xmm1,0x100(%rsp)
mulsd  0xa0(%rsp),%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
call   1050 <log@plt>
movsd  %xmm0,0xf8(%rsp)
movapd 0xa0(%rsp),%xmm0
mulsd  0xe8(%rsp),%xmm0
addsd  0x6cf(%rip),%xmm0
call   1050 <log@plt>
mulsd  0x722(%rip),%xmm0
addsd  0xf8(%rsp),%xmm0
movapd 0x140(%rsp),%xmm1
mulsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
maxsd  %xmm1,%xmm0
movsd  %xmm0,0xa0(%rsp)
movsd  0x6fb(%rip),%xmm0
movsd  0x58(%rsp),%xmm3
ucomisd %xmm3,%xmm0
jb     1500 <dcs_pair_production_KKP+0x390>
movapd %xmm3,%xmm0
mulsd  0x66f(%rip),%xmm0
movsd  0x18(%rsp),%xmm2
movapd %xmm2,%xmm4
movsd  0x695(%rip),%xmm1
addsd  %xmm1,%xmm4
mulsd  0x90(%rsp),%xmm4
addsd  0x60(%rsp),%xmm4
mulsd  %xmm0,%xmm4
movsd  %xmm4,0x10(%rsp)
movapd 0x20(%rsp),%xmm4
jmp    1590 <dcs_pair_production_KKP+0x420>
xorpd  %xmm6,%xmm6
movsd  0x6b1(%rip),%xmm0
movsd  0x70(%rsp),%xmm4
ucomisd %xmm4,%xmm0
xorpd  %xmm0,%xmm0
movsd  0x30(%rsp),%xmm3
jae    1adb <dcs_pair_production_KKP+0x96b>
movapd %xmm3,%xmm0
cmpeqsd %xmm2,%xmm0
movq   %xmm0,%rbx
mov    %ebx,%eax
and    $0x1,%eax
lea    0x6cd(%rip),%rcx
movsd  (%rcx,%rax,8),%xmm1
mulsd  %xmm4,%xmm1
movsd  0x40(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movapd %xmm4,%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm5,0x50(%rsp)
call   1050 <log@plt>
xorpd  %xmm6,%xmm6
movsd  0x50(%rsp),%xmm5
movsd  0x70(%rsp),%xmm2
movsd  0x5b7(%rip),%xmm1
movsd  0x30(%rsp),%xmm3
movapd %xmm0,%xmm4
mulsd  0x62d(%rip),%xmm4
addsd  0x62d(%rip),%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm4,%xmm0
jae    1adb <dcs_pair_production_KKP+0x96b>
and    $0x1,%ebx
lea    0x669(%rip),%rax
movsd  (%rax,%rbx,8),%xmm0
mulsd  %xmm2,%xmm0
mulsd  0x40(%rsp),%xmm0
addsd  %xmm1,%xmm0
divsd  %xmm0,%xmm2
movapd %xmm2,%xmm0
movsd  %xmm4,0x20(%rsp)
call   1050 <log@plt>
xorpd  %xmm6,%xmm6
movsd  0x50(%rsp),%xmm5
movsd  0x30(%rsp),%xmm3
mulsd  0x5e3(%rip),%xmm0
addsd  0x5e3(%rip),%xmm0
movsd  0x20(%rsp),%xmm1
divsd  %xmm0,%xmm1
movapd %xmm1,%xmm0
addsd  %xmm3,%xmm0
mulsd  0x5d1(%rip),%xmm3
mulsd  %xmm0,%xmm3
movsd  0x48(%rsp),%xmm1
movapd %xmm1,%xmm0
movsd  0x8(%rsp),%xmm2
subsd  %xmm2,%xmm0
mulsd  %xmm3,%xmm0
mulsd  %xmm0,%xmm5
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm5
maxsd  %xmm5,%xmm6
movapd %xmm6,%xmm0
add    $0x190,%rsp
pop    %rbx
ret

LLVM IR (-O0):
define double @dcs_pair_production_KKP(double %0, double %1, double %2, double %3, double %4) {
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double*
%30 = alloca double*
%31 = alloca double
%32 = alloca i32
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca double
%53 = alloca double
%54 = alloca double
store double %0, double* %7
store double %1, double* %8
store double %2, double* %9
store double %3, double* %10
store double %4, double* %11
%55 = load double, double* %7
%56 = fcmp ole double %55, 0.000000e+00
br i1 %56, label %69, label %57
57: ; preds = %5
%58 = load double, double* %8
%59 = fcmp ole double %58, 0.000000e+00
br i1 %59, label %69, label %60
60: ; preds = %57
%61 = load double, double* %9
%62 = fcmp ole double %61, 0.000000e+00
br i1 %62, label %69, label %63
63: ; preds = %60
%64 = load double, double* %10
%65 = fcmp ole double %64, 0.000000e+00
br i1 %65, label %69, label %66
66: ; preds = %63
%67 = load double, double* %11
%68 = fcmp ole double %67, 0.000000e+00
br i1 %68, label %69, label %70
69: ; preds = %66, %63, %60, %57, %5
store double 0.000000e+00, double* %6
br label %451
70: ; preds = %66
%71 = load double, double* %7
%72 = load double, double* %9
%73 = load double, double* %10
%74 = call i32 (double, double, double, double*, double*, ...) bitcast (i32 (...)* @dcs_pair_production_range to i32 (double, double, double, double*, double*, ...)*)(double %71, double %72, double %73, double* %12, double* %13)
%75 = load double, double* %11
%76 = load double, double* %12
%77 = fcmp olt double %75, %76
br i1 %77, label %82, label %78
78: ; preds = %70
%79 = load double, double* %11
%80 = load double, double* %13
%81 = fcmp ogt double %79, %80
br i1 %81, label %82, label %83
82: ; preds = %78, %70
store double 0.000000e+00, double* %6
br label %451
83: ; preds = %78
%84 = load double, double* %11
%85 = load double, double* %10
%86 = load double, double* %9
%87 = fadd double %85, %86
%88 = fdiv double %84, %87
store double %88, double* %14
%89 = load double, double* %9
%90 = fdiv double %89, 0x3F40BE91CDA9B5D6
store double %90, double* %15
%91 = load double, double* %14
%92 = fmul double 5.000000e-01, %91
%93 = load double, double* %14
%94 = fmul double %92, %93
%95 = load double, double* %14
%96 = fsub double 1.000000e+00, %95
%97 = fdiv double %94, %96
store double %97, double* %16
%98 = load double, double* %15
%99 = fmul double 5.000000e-01, %98
%100 = load double, double* %15
%101 = fmul double %99, %100
%102 = load double, double* %16
%103 = fmul double %101, %102
store double %103, double* %17
%104 = load double, double* %7
%105 = call i32 (double, ...) bitcast (i32 (...)* @radiation_logarithm to i32 (double, ...)*)(double %104)
%106 = sitofp i32 %105 to double
store double %106, double* %18
%107 = load double, double* %7
%108 = call double @pow(double %107, double 0x3FD5555555555555)
store double %108, double* %19
%109 = load double, double* %18
%110 = load double, double* %19
%111 = fdiv double %109, %110
store double %111, double* %20
store double 0x3FFA61298E1E045B, double* %21
%112 = load double, double* %20
%113 = fmul double 0x3F5B9B5BBF32F33F, %112
store double %113, double* %22
%114 = load double, double* %19
%115 = fmul double 2.250000e+00, %114
%116 = load double, double* %19
%117 = fmul double %115, %116
%118 = load double, double* %15
%119 = load double, double* %15
%120 = fmul double %118, %119
%121 = fdiv double %117, %120
store double %121, double* %23
%122 = load double, double* %10
%123 = load double, double* %9
%124 = fdiv double %122, %123
%125 = fadd double 1.000000e+00, %124
store double %125, double* %24
%126 = load double, double* %11
%127 = fdiv double 0x3F60BE91CDA9B5D6, %126
store double %127, double* %25
%128 = load double, double* %24
%129 = load double, double* %24
%130 = load double, double* %11
%131 = load double, double* %9
%132 = fdiv double %130, %131
%133 = fsub double %129, %132
%134 = fmul double %128, %133
%135 = fdiv double 6.000000e+00, %134
store double %135, double* %26
%136 = load double, double* %25
%137 = load double, double* %25
%138 = fsub double 1.000000e+00, %137
%139 = fmul double 2.000000e+00, %138
%140 = load double, double* %26
%141 = call double @llvm.fmuladd.f64(double %139, double %140, double %136)
%142 = load double, double* %26
%143 = fsub double 1.000000e+00, %142
%144 = load double, double* %25
%145 = fsub double 1.000000e+00, %144
%146 = call double @sqrt(double %145)
%147 = call double @llvm.fmuladd.f64(double %143, double %146, double 1.000000e+00)
%148 = fdiv double %141, %147
store double %148, double* %27
%149 = load double, double* %27
%150 = fcmp oge double %149, 1.000000e+00
br i1 %150, label %154, label %151
151: ; preds = %83
%152 = load double, double* %27
%153 = fcmp ole double %152, 0.000000e+00
br i1 %153, label %154, label %155
154: ; preds = %151, %83
store double 0.000000e+00, double* %6
br label %451
155: ; preds = %151
%156 = load double, double* %27
%157 = call double @log(double %156)
store double %157, double* %28
%158 = call i32 (i32, double**, double**, ...) bitcast (i32 (...)* @math_gauss_quad_coefficients to i32 (i32, double**, double**, ...)*)(i32 12, double** %29, double** %30)
store double 0.000000e+00, double* %31
store i32 0, i32* %32
br label %159
159: ; preds = %384, %155
%160 = load i32, i32* %32
%161 = icmp slt i32 %160, 12
br i1 %161, label %162, label %387
162: ; preds = %159
%163 = load double*, double** %29
%164 = load i32, i32* %32
%165 = sext i32 %164 to i64
%166 = getelementptr inbounds double, double* %163, i64 %165
%167 = load double, double* %166
%168 = load double, double* %28
%169 = fmul double %167, %168
%170 = call double @exp(double %169)
store double %170, double* %33
%171 = load double, double* %33
%172 = fsub double 1.000000e+00, %171
store double %172, double* %34
%173 = load double, double* %34
%174 = load double, double* %34
%175 = fmul double %173, %174
store double %175, double* %35
%176 = load double, double* %33
%177 = load double, double* %33
%178 = fsub double 2.000000e+00, %177
%179 = fmul double %176, %178
store double %179, double* %36
%180 = load double, double* %17
%181 = load double, double* %36
%182 = fmul double %180, %181
store double %182, double* %37
%183 = load double, double* %37
%184 = fdiv double 1.000000e+00, %183
store double %184, double* %38
%185 = load double, double* %37
%186 = fcmp oge double %185, 1.000000e+03
br i1 %186, label %187, label %198
187: ; preds = %162
%188 = load double, double* %38
%189 = fmul double 5.000000e-01, %188
%190 = load double, double* %35
%191 = fsub double 3.000000e+00, %190
%192 = load double, double* %16
%193 = fmul double 2.000000e+00, %192
%194 = load double, double* %35
%195 = fadd double 1.000000e+00, %194
%196 = call double @llvm.fmuladd.f64(double %193, double %195, double %191)
%197 = fmul double %189, %196
store double %197, double* %39
br label %221
198: ; preds = %162
%199 = load double, double* %35
%200 = fadd double 2.000000e+00, %199
%201 = load double, double* %16
%202 = fadd double 1.000000e+00, %201
%203 = load double, double* %37
%204 = load double, double* %35
%205 = fadd double 3.000000e+00, %204
%206 = fmul double %203, %205
%207 = call double @llvm.fmuladd.f64(double %200, double %202, double %206)
%208 = load double, double* %38
%209 = fadd double 1.000000e+00, %208
%210 = call double @log(double %209)
%211 = load double, double* %36
%212 = load double, double* %16
%213 = fsub double %211, %212
%214 = load double, double* %37
%215 = fadd double 1.000000e+00, %214
%216 = fdiv double %213, %215
%217 = call double @llvm.fmuladd.f64(double %207, double %210, double %216)
%218 = fsub double %217, 3.000000e+00
%219 = load double, double* %35
%220 = fsub double %218, %219
store double %220, double* %39
br label %221
221: ; preds = %198, %187
%222 = load double, double* %35
%223 = fsub double 5.000000e+00, %222
%224 = load double, double* %16
%225 = fmul double 4.000000e+00, %224
%226 = load double, double* %35
%227 = fadd double 1.000000e+00, %226
%228 = call double @llvm.fmuladd.f64(double %225, double %227, double %223)
%229 = load double, double* %16
%230 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %229, double 1.000000e+00)
%231 = fmul double 2.000000e+00, %230
%232 = load double, double* %38
%233 = fadd double 3.000000e+00, %232
%234 = call double @log(double %233)
%235 = load double, double* %35
%236 = fneg double %235
%237 = call double @llvm.fmuladd.f64(double %231, double %234, double %236)
%238 = load double, double* %16
%239 = fmul double 2.000000e+00, %238
%240 = load double, double* %35
%241 = fsub double 2.000000e+00, %240
%242 = fneg double %239
%243 = call double @llvm.fmuladd.f64(double %242, double %241, double %237)
%244 = fdiv double %228, %243
store double %244, double* %40
%245 = load double, double* %37
%246 = fadd double 1.000000e+00, %245
%247 = load double, double* %40
%248 = fadd double 1.000000e+00, %247
%249 = fmul double %246, %248
store double %249, double* %41
%250 = load double, double* %22
%251 = load double, double* %36
%252 = fdiv double %250, %251
store double %252, double* %42
%253 = load double, double* %20
%254 = load double, double* %41
%255 = call double @sqrt(double %254)
%256 = fmul double %253, %255
%257 = load double, double* %11
%258 = fmul double %256, %257
%259 = load double, double* %11
%260 = load double, double* %42
%261 = load double, double* %41
%262 = call double @llvm.fmuladd.f64(double %260, double %261, double %259)
%263 = fdiv double %258, %262
%264 = call double @log(double %263)
%265 = load double, double* %23
%266 = load double, double* %41
%267 = call double @llvm.fmuladd.f64(double %265, double %266, double 1.000000e+00)
%268 = call double @log(double %267)
%269 = call double @llvm.fmuladd.f64(double -5.000000e-01, double %268, double %264)
store double %269, double* %43
%270 = load double, double* %39
%271 = load double, double* %43
%272 = fmul double %270, %271
store double %272, double* %44
%273 = load double, double* %44
%274 = fcmp olt double %273, 0.000000e+00
br i1 %274, label %275, label %276
275: ; preds = %221
store double 0.000000e+00, double* %44
br label %276
276: ; preds = %275, %221
%277 = load double, double* %37
%278 = fcmp ole double %277, 1.000000e-03
br i1 %278, label %279, label %289
279: ; preds = %276
%280 = load double, double* %37
%281 = fmul double 5.000000e-01, %280
%282 = load double, double* %35
%283 = fsub double 5.000000e+00, %282
%284 = load double, double* %16
%285 = load double, double* %35
%286 = fadd double 3.000000e+00, %285
%287 = call double @llvm.fmuladd.f64(double %284, double %286, double %283)
%288 = fmul double %281, %287
store double %288, double* %45
br label %318
289: ; preds = %276
%290 = load double, double* %35
%291 = fadd double 1.000000e+00, %290
%292 = load double, double* %16
%293 = call double @llvm.fmuladd.f64(double 1.500000e+00, double %292, double 1.000000e+00)
%294 = load double, double* %38
%295 = load double, double* %16
%296 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %295, double 1.000000e+00)
%297 = fmul double %294, %296
%298 = load double, double* %36
%299 = fmul double %297, %298
%300 = fneg double %299
%301 = call double @llvm.fmuladd.f64(double %291, double %293, double %300)
%302 = load double, double* %37
%303 = fadd double 1.000000e+00, %302
%304 = call double @log(double %303)
%305 = load double, double* %37
%306 = load double, double* %36
%307 = load double, double* %16
%308 = fsub double %306, %307
%309 = fmul double %305, %308
%310 = load double, double* %37
%311 = fadd double 1.000000e+00, %310
%312 = fdiv double %309, %311
%313 = call double @llvm.fmuladd.f64(double %301, double %304, double %312)
%314 = load double, double* %16
%315 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %314, double 1.000000e+00)
%316 = load double, double* %36
%317 = call double @llvm.fmuladd.f64(double %315, double %316, double %313)
store double %317, double* %45
br label %318
318: ; preds = %289, %279
%319 = load double, double* %35
%320 = fadd double 4.000000e+00, %319
%321 = load double, double* %16
%322 = fmul double 3.000000e+00, %321
%323 = load double, double* %35
%324 = fadd double 1.000000e+00, %323
%325 = call double @llvm.fmuladd.f64(double %322, double %324, double %320)
%326 = load double, double* %35
%327 = fadd double 1.000000e+00, %326
%328 = load double, double* %16
%329 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %328, double 1.500000e+00)
%330 = fmul double %327, %329
%331 = load double, double* %37
%332 = fadd double 3.000000e+00, %331
%333 = call double @log(double %332)
%334 = call double @llvm.fmuladd.f64(double %330, double %333, double 1.000000e+00)
%335 = load double, double* %35
%336 = call double @llvm.fmuladd.f64(double -1.500000e+00, double %335, double %334)
%337 = fdiv double %325, %336
store double %337, double* %46
%338 = load double, double* %37
%339 = fadd double 1.000000e+00, %338
%340 = load double, double* %46
%341 = fadd double 1.000000e+00, %340
%342 = fmul double %339, %341
store double %342, double* %47
%343 = load double, double* %15
%344 = load double, double* %20
%345 = fmul double %343, %344
%346 = load double, double* %11
%347 = fmul double %345, %346
%348 = load double, double* %19
%349 = fmul double 1.500000e+00, %348
%350 = load double, double* %11
%351 = load double, double* %42
%352 = load double, double* %47
%353 = call double @llvm.fmuladd.f64(double %351, double %352, double %350)
%354 = fmul double %349, %353
%355 = fdiv double %347, %354
%356 = call double @log(double %355)
store double %356, double* %48
%357 = load double, double* %45
%358 = load double, double* %48
%359 = fmul double %357, %358
store double %359, double* %49
%360 = load double, double* %49
%361 = fcmp olt double %360, 0.000000e+00
br i1 %361, label %362, label %363
362: ; preds = %318
store double 0.000000e+00, double* %49
br label %363
363: ; preds = %362, %318
%364 = load double, double* %44
%365 = load double, double* %49
%366 = load double, double* %15
%367 = load double, double* %15
%368 = fmul double %366, %367
%369 = fdiv double %365, %368
%370 = fadd double %364, %369
%371 = load double, double* %34
%372 = fsub double 1.000000e+00, %371
%373 = fmul double %370, %372
%374 = load double*, double** %30
%375 = load i32, i32* %32
%376 = sext i32 %375 to i64
%377 = getelementptr inbounds double, double* %374, i64 %376
%378 = load double, double* %377
%379 = fmul double %373, %378
%380 = load double, double* %28
%381 = load double, double* %31
%382 = fneg double %379
%383 = call double @llvm.fmuladd.f64(double %382, double %380, double %381)
store double %383, double* %31
br label %384
384: ; preds = %363
%385 = load i32, i32* %32
%386 = add nsw i32 %385, 1
store i32 %386, i32* %32
br label %159
387: ; preds = %159
%388 = load double, double* %24
%389 = fcmp ole double %388, 3.500000e+01
br i1 %389, label %390, label %391
390: ; preds = %387
store double 0.000000e+00, double* %50
br label %424
391: ; preds = %387
%392 = load double, double* %7
%393 = fcmp oeq double %392, 1.000000e+00
br i1 %393, label %394, label %395
394: ; preds = %391
store double 4.400000e-05, double* %51
store double 4.800000e-05, double* %52
br label %396
395: ; preds = %391
store double 1.950000e-05, double* %51
store double 5.300000e-05, double* %52
br label %396
396: ; preds = %395, %394
%397 = load double, double* %24
%398 = load double, double* %51
%399 = load double, double* %24
%400 = fmul double %398, %399
%401 = load double, double* %19
%402 = fmul double %400, %401
%403 = load double, double* %19
%404 = call double @llvm.fmuladd.f64(double %402, double %403, double 1.000000e+00)
%405 = fdiv double %397, %404
%406 = call double @log(double %405)
%407 = call double @llvm.fmuladd.f64(double 0x3FB2B020C49BA5E3, double %406, double -2.600000e-01)
store double %407, double* %50
%408 = load double, double* %50
%409 = fcmp ole double %408, 0.000000e+00
br i1 %409, label %410, label %411
410: ; preds = %396
store double 0.000000e+00, double* %50
br label %423
411: ; preds = %396
%412 = load double, double* %24
%413 = load double, double* %52
%414 = load double, double* %24
%415 = fmul double %413, %414
%416 = load double, double* %19
%417 = call double @llvm.fmuladd.f64(double %415, double %416, double 1.000000e+00)
%418 = fdiv double %412, %417
%419 = call double @log(double %418)
%420 = call double @llvm.fmuladd.f64(double 5.800000e-02, double %419, double -1.400000e-01)
%421 = load double, double* %50
%422 = fdiv double %421, %420
store double %422, double* %50
br label %423
423: ; preds = %411, %410
br label %424
424: ; preds = %423, %390
%425 = load double, double* %10
%426 = load double, double* %9
%427 = fadd double %425, %426
store double %427, double* %53
%428 = load double, double* %7
%429 = fmul double 0x38EDD1A80B431F58, %428
%430 = load double, double* %7
%431 = load double, double* %50
%432 = fadd double %430, %431
%433 = fmul double %429, %432
%434 = load double, double* %53
%435 = load double, double* %11
%436 = fsub double %434, %435
%437 = fmul double %433, %436
%438 = load double, double* %31
%439 = fmul double %437, %438
%440 = load double, double* %11
%441 = load double, double* %53
%442 = fmul double %440, %441
%443 = fdiv double %439, %442
store double %443, double* %54
%444 = load double, double* %54
%445 = fcmp olt double %444, 0.000000e+00
br i1 %445, label %446, label %447
446: ; preds = %424
br label %449
447: ; preds = %424
%448 = load double, double* %54
br label %449
449: ; preds = %447, %446
%450 = phi double [ 0.000000e+00, %446 ], [ %448, %447 ]
store double %450, double* %6
br label %451
451: ; preds = %449, %154, %82, %69
%452 = load double, double* %6
ret double %452
}

LLVM IR (-O2):
define double @dcs_pair_production_KKP(double %0, double %1, double %2, double %3, double %4) {
%6 = alloca double
%7 = alloca double
%8 = alloca double*
%9 = alloca double*
%10 = fcmp ole double %0, 0.000000e+00
%11 = fcmp ole double %1, 0.000000e+00
%12 = or i1 %10, %11
%13 = fcmp ole double %2, 0.000000e+00
%14 = or i1 %12, %13
%15 = fcmp ole double %3, 0.000000e+00
%16 = or i1 %14, %15
%17 = fcmp ole double %4, 0.000000e+00
%18 = or i1 %16, %17
br i1 %18, label %235, label %19
19: ; preds = %5
%20 = bitcast double* %6 to i8*
%21 = bitcast double* %7 to i8*
%22 = call i32 (double, double, double, double*, double*, ...) bitcast (i32 (...)* @dcs_pair_production_range to i32 (double, double, double, double*, double*, ...)*)(double %0, double %2, double %3, double* %6, double* %7)
%23 = load double, double* %6
%24 = fcmp ogt double %23, %4
%25 = load double, double* %7
%26 = fcmp olt double %25, %4
%27 = select i1 %24, i1 true, i1 %26
br i1 %27, label %233, label %28
28: ; preds = %19
%29 = fadd double %2, %3
%30 = fdiv double %4, %29
%31 = fdiv double %2, 0x3F40BE91CDA9B5D6
%32 = fmul double %30, 5.000000e-01
%33 = fmul double %30, %32
%34 = fsub double 1.000000e+00, %30
%35 = fdiv double %33, %34
%36 = fmul double %31, 5.000000e-01
%37 = fmul double %31, %36
%38 = fmul double %37, %35
%39 = call i32 (double, ...) bitcast (i32 (...)* @radiation_logarithm to i32 (double, ...)*)(double %0)
%40 = sitofp i32 %39 to double
%41 = call double @pow(double %0, double 0x3FD5555555555555)
%42 = fdiv double %40, %41
%43 = fmul double %42, 0x3F5B9B5BBF32F33F
%44 = fmul double %41, 2.250000e+00
%45 = fmul double %41, %44
%46 = fmul double %31, %31
%47 = fdiv double %45, %46
%48 = fdiv double %3, %2
%49 = fadd double %48, 1.000000e+00
%50 = fdiv double 0x3F60BE91CDA9B5D6, %4
%51 = fdiv double %4, %2
%52 = fsub double %49, %51
%53 = fmul double %49, %52
%54 = fdiv double 6.000000e+00, %53
%55 = fsub double 1.000000e+00, %50
%56 = fmul double %55, 2.000000e+00
%57 = call double @llvm.fmuladd.f64(double %56, double %54, double %50)
%58 = fsub double 1.000000e+00, %54
%59 = call double @sqrt(double %55)
%60 = call double @llvm.fmuladd.f64(double %58, double %59, double 1.000000e+00)
%61 = fdiv double %57, %60
%62 = fcmp oge double %61, 1.000000e+00
%63 = fcmp ole double %61, 0.000000e+00
%64 = or i1 %62, %63
br i1 %64, label %233, label %65
65: ; preds = %28
%66 = call double @log(double %61)
%67 = bitcast double** %8 to i8*
%68 = bitcast double** %9 to i8*
%69 = call i32 (i32, double**, double**, ...) bitcast (i32 (...)* @math_gauss_quad_coefficients to i32 (i32, double**, double**, ...)*)(i32 12, double** %8, double** %9)
%70 = call double @llvm.fmuladd.f64(double %35, double 3.000000e+00, double 1.000000e+00)
%71 = fmul double %70, 2.000000e+00
%72 = insertelement <2 x double> poison, double %35, i64 0
%73 = shufflevector <2 x double> %72, <2 x double> poison, <2 x i32> zeroinitializer
%74 = fmul <2 x double> %73, <double 4.000000e+00, double -2.000000e+00>
%75 = fmul double %35, 3.000000e+00
%76 = call double @llvm.fmuladd.f64(double %35, double 2.000000e+00, double 1.500000e+00)
%77 = fmul double %31, %42
%78 = fmul double %77, %4
%79 = fmul double %41, 1.500000e+00
%80 = fmul double %35, 2.000000e+00
%81 = fadd double %35, 1.000000e+00
%82 = call double @llvm.fmuladd.f64(double %35, double 1.500000e+00, double 1.000000e+00)
%83 = call double @llvm.fmuladd.f64(double %35, double 2.000000e+00, double 1.000000e+00)
br label %84
84: ; preds = %65, %170
%85 = phi i64 [ 0, %65 ], [ %199, %170 ]
%86 = phi double [ 0.000000e+00, %65 ], [ %198, %170 ]
%87 = load double*, double** %8
%88 = getelementptr inbounds double, double* %87, i64 %85
%89 = load double, double* %88
%90 = fmul double %66, %89
%91 = call double @exp(double %90)
%92 = fsub double 1.000000e+00, %91
%93 = fmul double %92, %92
%94 = fsub double 2.000000e+00, %91
%95 = fmul double %91, %94
%96 = fmul double %38, %95
%97 = fdiv double 1.000000e+00, %96
%98 = fcmp ult double %96, 1.000000e+03
br i1 %98, label %106, label %99
99: ; preds = %84
%100 = fmul double %97, 5.000000e-01
%101 = fsub double 3.000000e+00, %93
%102 = fadd double %93, 1.000000e+00
%103 = call double @llvm.fmuladd.f64(double %80, double %102, double %101)
%104 = fmul double %103, %100
%105 = fadd double %96, 1.000000e+00
br label %120
106: ; preds = %84
%107 = fadd double %93, 2.000000e+00
%108 = fadd double %93, 3.000000e+00
%109 = fmul double %96, %108
%110 = call double @llvm.fmuladd.f64(double %107, double %81, double %109)
%111 = fadd double %97, 1.000000e+00
%112 = call double @log(double %111)
%113 = fsub double %95, %35
%114 = fadd double %96, 1.000000e+00
%115 = fdiv double %113, %114
%116 = call double @llvm.fmuladd.f64(double %110, double %112, double %115)
%117 = fadd double %116, -3.000000e+00
%118 = fsub double %117, %93
%119 = fadd double %93, 1.000000e+00
br label %120
120: ; preds = %106, %99
%121 = phi double [ %114, %106 ], [ %105, %99 ]
%122 = phi double [ %119, %106 ], [ %102, %99 ]
%123 = phi double [ %118, %106 ], [ %104, %99 ]
%124 = fsub double 5.000000e+00, %93
%125 = fadd double %97, 3.000000e+00
%126 = call double @log(double %125)
%127 = fneg double %93
%128 = call double @llvm.fmuladd.f64(double %71, double %126, double %127)
%129 = fsub double 2.000000e+00, %93
%130 = insertelement <2 x double> poison, double %122, i64 0
%131 = insertelement <2 x double> %130, double %129, i64 1
%132 = insertelement <2 x double> poison, double %124, i64 0
%133 = insertelement <2 x double> %132, double %128, i64 1
%134 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %74, <2 x double> %131, <2 x double> %133)
%135 = extractelement <2 x double> %134, i64 0
%136 = extractelement <2 x double> %134, i64 1
%137 = fdiv double %135, %136
%138 = fadd double %137, 1.000000e+00
%139 = fmul double %121, %138
%140 = fdiv double %43, %95
%141 = call double @sqrt(double %139)
%142 = fmul double %42, %141
%143 = fmul double %142, %4
%144 = call double @llvm.fmuladd.f64(double %140, double %139, double %4)
%145 = fdiv double %143, %144
%146 = call double @log(double %145)
%147 = call double @llvm.fmuladd.f64(double %47, double %139, double 1.000000e+00)
%148 = call double @log(double %147)
%149 = call double @llvm.fmuladd.f64(double %148, double -5.000000e-01, double %146)
%150 = fmul double %123, %149
%151 = fcmp olt double %150, 0.000000e+00
%152 = select i1 %151, double 0.000000e+00, double %150
%153 = fcmp ugt double %96, 1.000000e-03
br i1 %153, label %159, label %154
154: ; preds = %120
%155 = fmul double %96, 5.000000e-01
%156 = fadd double %93, 3.000000e+00
%157 = call double @llvm.fmuladd.f64(double %35, double %156, double %124)
%158 = fmul double %155, %157
br label %170
159: ; preds = %120
%160 = fneg double %97
%161 = fmul double %83, %160
%162 = fmul double %95, %161
%163 = call double @llvm.fmuladd.f64(double %122, double %82, double %162)
%164 = call double @log(double %121)
%165 = fsub double %95, %35
%166 = fmul double %96, %165
%167 = fdiv double %166, %121
%168 = call double @llvm.fmuladd.f64(double %163, double %164, double %167)
%169 = call double @llvm.fmuladd.f64(double %83, double %95, double %168)
br label %170
170: ; preds = %159, %154
%171 = phi double [ %158, %154 ], [ %169, %159 ]
%172 = fadd double %93, 4.000000e+00
%173 = call double @llvm.fmuladd.f64(double %75, double %122, double %172)
%174 = fmul double %76, %122
%175 = fadd double %96, 3.000000e+00
%176 = call double @log(double %175)
%177 = call double @llvm.fmuladd.f64(double %174, double %176, double 1.000000e+00)
%178 = call double @llvm.fmuladd.f64(double %93, double -1.500000e+00, double %177)
%179 = fdiv double %173, %178
%180 = fadd double %179, 1.000000e+00
%181 = fmul double %121, %180
%182 = call double @llvm.fmuladd.f64(double %140, double %181, double %4)
%183 = fmul double %79, %182
%184 = fdiv double %78, %183
%185 = call double @log(double %184)
%186 = fmul double %171, %185
%187 = fcmp olt double %186, 0.000000e+00
%188 = select i1 %187, double 0.000000e+00, double %186
%189 = fdiv double %188, %46
%190 = fadd double %152, %189
%191 = fsub double 1.000000e+00, %92
%192 = load double*, double** %9
%193 = getelementptr inbounds double, double* %192, i64 %85
%194 = load double, double* %193
%195 = fneg double %190
%196 = fmul double %191, %195
%197 = fmul double %194, %196
%198 = call double @llvm.fmuladd.f64(double %197, double %66, double %86)
%199 = add nuw nsw i64 %85, 1
%200 = icmp eq i64 %199, 12
br i1 %200, label %201, label %84
201: ; preds = %170
%202 = fcmp ugt double %49, 3.500000e+01
br i1 %202, label %203, label %221
203: ; preds = %201
%204 = fcmp oeq double %0, 1.000000e+00
%205 = select i1 %204, double 4.400000e-05, double 1.950000e-05
%206 = fmul double %205, %49
%207 = fmul double %206, %41
%208 = call double @llvm.fmuladd.f64(double %207, double %41, double 1.000000e+00)
%209 = fdiv double %49, %208
%210 = call double @log(double %209)
%211 = call double @llvm.fmuladd.f64(double %210, double 0x3FB2B020C49BA5E3, double -2.600000e-01)
%212 = fcmp ugt double %211, 0.000000e+00
br i1 %212, label %213, label %221
213: ; preds = %203
%214 = select i1 %204, double 4.800000e-05, double 5.300000e-05
%215 = fmul double %214, %49
%216 = call double @llvm.fmuladd.f64(double %215, double %41, double 1.000000e+00)
%217 = fdiv double %49, %216
%218 = call double @log(double %217)
%219 = call double @llvm.fmuladd.f64(double %218, double 5.800000e-02, double -1.400000e-01)
%220 = fdiv double %211, %219
br label %221
221: ; preds = %213, %203, %201
%222 = phi double [ 0.000000e+00, %201 ], [ %220, %213 ], [ 0.000000e+00, %203 ]
%223 = fmul double %0, 0x38EDD1A80B431F58
%224 = fadd double %222, %0
%225 = fmul double %223, %224
%226 = fsub double %29, %4
%227 = fmul double %226, %225
%228 = fmul double %198, %227
%229 = fmul double %29, %4
%230 = fdiv double %228, %229
%231 = fcmp olt double %230, 0.000000e+00
%232 = select i1 %231, double 0.000000e+00, double %230
br label %233
233: ; preds = %221, %28, %19
%234 = phi double [ 0.000000e+00, %19 ], [ %232, %221 ], [ 0.000000e+00, %28 ]
br label %235
235: ; preds = %5, %233
%236 = phi double [ %234, %233 ], [ 0.000000e+00, %5 ]
ret double %236
}