void coulomb_screening_parameters(double Z, double A, double mass,
                                  double kinetic, double kinetic0,
                                  int *n_parameters, double *amplitude,
                                  double *screening) {
  const double aZE = 7.2973525693E-03 * Z * (kinetic + mass);
  const double p2 = kinetic * (kinetic + 2. * mass);
  const double zeta2 = aZE * aZE / p2;
  double f;
  if (zeta2 < 1) {
    f = 1. / (1. + zeta2) + 0.20205690315959424 - 0.03692775514336999 * zeta2 +
        0.008349277381922926 * zeta2 * zeta2;
    f *= zeta2;
  } else {
    const double r2i = 1. / (1. + zeta2);
    const double phi = -atan(sqrt(zeta2));
    f = -0.5 * log(r2i) + 0.5 * (1. - r2i) +
        1. / 12. * (1. - cos(2 * phi) * r2i) -
        1. / 120. * (1. - cos(4 * phi) * r2i * r2i) +
        1. / 252. * (1. - cos(6 * phi) * r2i * r2i * r2i);
  }
  const double ktv = exp(2 * f);
  static const double prefactor[2][103] = {
      {1.00000E+00, -2.25920E-01, 6.04537E-01, 3.27766E-01, 2.32684E-01,
       1.53676E-01, 9.95750E-02,  6.25130E-02, 3.68040E-02, 1.88410E-02,
       7.44440E-01, 6.42349E-01,  6.00152E-01, 5.15971E-01, 4.38675E-01,
       5.45871E-01, 7.24889E-01,  2.19124E+00, 4.85607E-02, 5.80017E-01,
       5.54340E-01, 1.11950E-02,  3.18350E-02, 1.07503E-01, 4.97556E-02,
       5.11841E-02, 5.00039E-02,  4.73509E-02, 7.70967E-02, 4.00041E-02,
       1.08344E-01, 6.09767E-02,  2.11561E-02, 4.83575E-01, 4.50364E-01,
       4.19036E-01, 1.73438E-01,  3.35694E-02, 6.88939E-02, 1.17552E-01,
       2.55689E-01, 2.69313E-01,  2.20138E-01, 2.75057E-01, 2.71053E-01,
       2.78363E-01, 2.56210E-01,  2.27100E-01, 2.49215E-01, 2.15313E-01,
       1.80560E-01, 1.30772E-01,  5.88293E-02, 4.45145E-01, 2.70796E-01,
       1.72814E-01, 1.94726E-01,  1.91338E-01, 1.86776E-01, 1.66461E-01,
       1.62350E-01, 1.58016E-01,  1.53759E-01, 1.58729E-01, 1.45327E-01,
       1.41260E-01, 1.37360E-01,  1.33614E-01, 1.29853E-01, 1.26659E-01,
       1.28806E-01, 1.30256E-01,  1.38420E-01, 1.50030E-01, 1.60803E-01,
       1.72164E-01, 1.83411E-01,  2.23043E-01, 2.28909E-01, 2.09753E-01,
       2.70821E-01, 2.37958E-01,  2.28771E-01, 1.94059E-01, 1.49995E-01,
       9.55262E-02, 3.19155E-01,  2.40406E-01, 2.26579E-01, 2.17619E-01,
       2.41294E-01, 2.44758E-01,  2.46231E-01, 2.55572E-01, 2.53567E-01,
       2.43832E-01, 2.41898E-01,  2.44050E-01, 2.40237E-01, 2.34997E-01,
       2.32114E-01, 2.27937E-01,  2.29571E-01},
      {0.00000E+00,  1.22592E+00,  3.95463E-01, 6.72234E-01, 7.67316E-01,
       8.46324E-01,  9.00425E-01,  9.37487E-01, 9.63196E-01, 9.81159E-01,
       2.55560E-01,  3.57651E-01,  3.99848E-01, 4.84029E-01, 5.61325E-01,
       -5.33329E-01, -7.54809E-01, -2.2852E+00, 7.75935E-01, 4.19983E-01,
       4.45660E-01,  6.83176E-01,  6.75303E-01, 7.16172E-01, 6.86632E-01,
       6.99533E-01,  7.14201E-01,  7.29404E-01, 7.95083E-01, 7.59034E-01,
       7.48941E-01,  7.15671E-01,  6.70932E-01, 5.16425E-01, 5.49636E-01,
       5.80964E-01,  7.25336E-01,  7.81581E-01, 7.20203E-01, 6.58088E-01,
       5.82051E-01,  5.75262E-01,  5.61797E-01, 5.94338E-01, 6.11921E-01,
       6.06653E-01,  6.50520E-01,  6.15496E-01, 6.43990E-01, 6.11497E-01,
       5.76688E-01,  5.50366E-01,  5.48174E-01, 5.54855E-01, 6.52415E-01,
       6.84485E-01,  6.38429E-01,  6.46684E-01, 6.55810E-01, 7.05677E-01,
       7.13311E-01,  7.20978E-01,  7.28385E-01, 7.02414E-01, 7.42619E-01,
       7.49352E-01,  7.55797E-01,  7.61947E-01, 7.68005E-01, 7.73365E-01,
       7.52781E-01,  7.32428E-01,  7.09596E-01, 6.87141E-01, 6.65932E-01,
       6.46849E-01,  6.30598E-01,  6.17575E-01, 6.11402E-01, 6.00426E-01,
       6.42829E-01,  6.30789E-01,  6.21959E-01, 6.10455E-01, 6.03147E-01,
       6.05994E-01,  6.23324E-01,  6.56665E-01, 6.42246E-01, 6.24013E-01,
       6.30394E-01,  6.29816E-01,  6.31596E-01, 6.49005E-01, 6.53604E-01,
       6.43738E-01,  6.48850E-01,  6.70318E-01, 6.76319E-01, 6.65571E-01,
       6.88406E-01,  6.94394E-01,  6.82014E-01}};
  static const double exponent[3][103] = {
      {1.11728E+00, 5.52725E+00, 2.81741E+00, 4.54302E+00, 5.99006E+00,
       8.04043E+00, 1.08122E+01, 1.48233E+01, 2.14001E+01, 3.49994E+01,
       4.12050E+00, 4.72663E+00, 5.14051E+00, 5.84918E+00, 6.67070E+00,
       6.37029E+00, 6.21183E+00, 5.54701E+00, 3.02597E+01, 6.32184E+00,
       6.63280E+00, 9.97569E+01, 4.25330E+01, 1.89587E+01, 3.18642E+01,
       3.18251E+01, 3.29153E+01, 3.47580E+01, 2.53264E+01, 4.03429E+01,
       2.01922E+01, 2.91996E+01, 6.24873E+01, 8.78242E+00, 9.33480E+00,
       9.91420E+00, 1.71659E+01, 5.52077E+01, 3.13659E+01, 2.20537E+01,
       1.42403E+01, 1.40442E+01, 1.59176E+01, 1.43137E+01, 1.46537E+01,
       1.46455E+01, 1.55878E+01, 1.69141E+01, 1.61552E+01, 1.77931E+01,
       1.98751E+01, 2.41540E+01, 3.99955E+01, 1.18053E+01, 1.65915E+01,
       2.23966E+01, 2.07637E+01, 2.12350E+01, 2.18033E+01, 2.39492E+01,
       2.45984E+01, 2.52966E+01, 2.60169E+01, 2.54973E+01, 2.75466E+01,
       2.83460E+01, 2.91604E+01, 2.99904E+01, 3.08345E+01, 3.16806E+01,
       3.13526E+01, 3.12166E+01, 3.00767E+01, 2.86302E+01, 2.75684E+01,
       2.65861E+01, 2.57339E+01, 2.29939E+01, 2.28644E+01, 2.44080E+01,
       2.09409E+01, 2.29872E+01, 2.37917E+01, 2.66951E+01, 3.18397E+01,
       4.34890E+01, 2.00150E+01, 2.45012E+01, 2.56843E+01, 2.65542E+01,
       2.51930E+01, 2.52522E+01, 2.54271E+01, 2.51526E+01, 2.55959E+01,
       2.65567E+01, 2.70360E+01, 2.72673E+01, 2.79152E+01, 2.86446E+01,
       2.93353E+01, 3.01040E+01, 3.02650E+01},
      {1.00000E+00, 2.39924E+00, 6.62463E-01, 9.85154E-01, 1.21347E+00,
       1.49129E+00, 1.76868E+00, 2.04035E+00, 2.30601E+00, 2.56621E+00,
       8.71798E-01, 1.00247E+00, 1.01529E+00, 1.17314E+00, 1.34102E+00,
       2.55169E+00, 3.38827E+00, 4.56873E+00, 3.12426E+00, 1.00935E+00,
       1.10227E+00, 4.12865E+00, 3.94043E+00, 3.06375E+00, 3.78110E+00,
       3.77161E+00, 3.79085E+00, 3.82989E+00, 3.39276E+00, 3.94645E+00,
       3.47325E+00, 4.12525E+00, 4.95015E+00, 1.69671E+00, 1.79002E+00,
       1.88354E+00, 3.11025E+00, 4.28418E+00, 4.24121E+00, 4.03254E+00,
       2.97020E+00, 2.86107E+00, 3.36719E+00, 2.73701E+00, 2.71828E+00,
       2.61549E+00, 2.74124E+00, 3.08408E+00, 2.88189E+00, 3.29372E+00,
       3.80921E+00, 4.61191E+00, 5.91318E+00, 1.79673E+00, 2.69645E+00,
       3.45951E+00, 3.46574E+00, 3.48193E+00, 3.50982E+00, 3.51987E+00,
       3.55603E+00, 3.59628E+00, 3.63834E+00, 3.73639E+00, 3.72882E+00,
       3.77625E+00, 3.82444E+00, 3.87344E+00, 3.92327E+00, 3.97271E+00,
       4.09040E+00, 4.20492E+00, 4.24918E+00, 4.24261E+00, 4.23412E+00,
       4.19992E+00, 4.14615E+00, 3.73461E+00, 3.69138E+00, 3.96429E+00,
       3.24563E+00, 3.62172E+00, 3.77959E+00, 4.25824E+00, 4.92848E+00,
       5.85205E+00, 2.90906E+00, 3.55241E+00, 3.79223E+00, 4.00437E+00,
       3.67795E+00, 3.63966E+00, 3.61328E+00, 3.43021E+00, 3.43474E+00,
       3.59089E+00, 3.59411E+00, 3.48061E+00, 3.50331E+00, 3.61870E+00,
       3.55697E+00, 3.58685E+00, 3.64085E+00},
      {1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,
       1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,
       1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,
       1.67534E+00, 1.85964E+00, 2.04455E+00, 7.32637E-01, 1.00000E+00,
       1.00000E+00, 1.00896E+00, 1.05333E+00, 1.00137E+00, 1.12787E+00,
       1.16064E+00, 1.19152E+00, 1.22089E+00, 1.14261E+00, 1.27594E+00,
       1.00643E+00, 1.18447E+00, 1.35819E+00, 1.00000E+00, 1.00000E+00,
       1.00000E+00, 7.17673E-01, 8.57842E-01, 9.47152E-01, 1.01806E+00,
       1.01699E+00, 1.05906E+00, 1.15477E+00, 1.10923E+00, 1.12336E+00,
       1.43183E+00, 1.14079E+00, 1.26189E+00, 9.94156E-01, 1.14781E+00,
       1.28288E+00, 1.41954E+00, 1.54707E+00, 1.00000E+00, 6.81361E-01,
       8.07311E-01, 8.91057E-01, 9.01112E-01, 9.10636E-01, 8.48620E-01,
       8.56929E-01, 8.65025E-01, 8.73083E-01, 9.54998E-01, 8.88981E-01,
       8.96917E-01, 9.04803E-01, 9.12768E-01, 9.20306E-01, 9.28838E-01,
       1.00717E+00, 1.09456E+00, 1.16966E+00, 1.23403E+00, 1.29699E+00,
       1.35350E+00, 1.40374E+00, 1.44284E+00, 1.48856E+00, 1.53432E+00,
       1.11214E+00, 1.23735E+00, 1.25338E+00, 1.35772E+00, 1.46828E+00,
       1.57359E+00, 7.20714E-01, 8.37599E-01, 9.33468E-01, 1.02385E+00,
       9.69895E-01, 9.82474E-01, 9.92527E-01, 9.32751E-01, 9.41671E-01,
       1.01827E+00, 1.02554E+00, 9.66447E-01, 9.74347E-01, 1.04137E+00,
       9.90568E-01, 9.98878E-01, 1.04473E+00}};
  const double p02 = kinetic0 * (kinetic0 + 2. * mass);
  const double d = 0.25 * 1.973269804E-16 * 1.973269804E-16 / p02 * ktv;
  int iZ = (int)Z - 1;
  const int nZ = sizeof(prefactor[0]) / sizeof(prefactor[0][0]);
  if (iZ >= nZ)
    iZ = nZ - 1;
  int n;
  if (exponent[2][iZ] == 1.) {
    if (iZ == 0) {
      n = 1;
      amplitude[0] = 1.;
    } else {
      n = 2;
      amplitude[0] = prefactor[0][iZ];
      amplitude[1] = 1. - amplitude[0];
    }
  } else {
    n = 3;
    amplitude[0] = prefactor[0][iZ];
    amplitude[1] = prefactor[1][iZ];
    amplitude[2] = 1. - (amplitude[0] + amplitude[1]);
  }
  int i;
  for (i = 0; i < n; i++) {
    const double a = exponent[i][iZ] / 0.529177210903E-10;
    screening[i] = d * a * a;
  }
  const double RN = data_nuclear_radius(Z, A);
  screening[n++] = 12. * d / (RN * RN);
  *n_parameters = n;
}


x86 assembly (clang, -O0):
<coulomb_screening_parameters>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movsd  %xmm3,-0x20(%rbp)
movsd  %xmm4,-0x28(%rbp)
mov    %rdi,-0x30(%rbp)
mov    %rsi,-0x38(%rbp)
mov    %rdx,-0x40(%rbp)
movsd  0xe70(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
addsd  -0x18(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm2
movsd  -0x18(%rbp),%xmm1
addsd  %xmm1,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x48(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0xe14(%rip),%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    1264 <coulomb_screening_parameters+0x104>
movsd  0xe01(%rip),%xmm1
addsd  -0x58(%rbp),%xmm1
movsd  0xdf4(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  0xe48(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  0xe2f(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xe17(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x58(%rbp),%xmm0
mulsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    140e <coulomb_screening_parameters+0x2ae>
movsd  0xd94(%rip),%xmm1
addsd  -0x58(%rbp),%xmm1
movsd  0xd87(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x58(%rbp),%xmm0
call   1080 <sqrt@plt>
call   1040 <atan@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x68(%rbp),%xmm0
call   1070 <log@plt>
movsd  0xd41(%rip),%xmm2
subsd  -0x68(%rbp),%xmm2
movsd  0xd7c(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xd68(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0xd48(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
call   1060 <cos@plt>
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0x68(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
movsd  0xcd6(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  0xcfa(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0xcda(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
call   1060 <cos@plt>
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  -0x68(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
movsd  0xc73(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  0xc87(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0xc67(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
call   1060 <cos@plt>
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  -0x68(%rbp),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
movsd  0xc0b(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  0xc0f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0xc22(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x78(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm2
movsd  -0x18(%rbp),%xmm1
addsd  %xmm1,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0xc1b(%rip),%xmm0
divsd  -0x80(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
cvttsd2si -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x8c(%rbp)
movl   $0x67,-0x90(%rbp)
cmpl   $0x67,-0x8c(%rbp)
jl     148e <coulomb_screening_parameters+0x32e>
movl   $0x66,-0x8c(%rbp)
movslq -0x8c(%rbp),%rcx
lea    0x1254(%rip),%rax
movsd  0x670(%rax,%rcx,8),%xmm0
movsd  0xb53(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    152c <coulomb_screening_parameters+0x3cc>
jp     152c <coulomb_screening_parameters+0x3cc>
cmpl   $0x0,-0x8c(%rbp)
jne    14e9 <coulomb_screening_parameters+0x389>
movl   $0x1,-0x94(%rbp)
mov    -0x38(%rbp),%rax
movsd  0xb20(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1527 <coulomb_screening_parameters+0x3c7>
movl   $0x2,-0x94(%rbp)
movslq -0x8c(%rbp),%rcx
lea    0xb7f(%rip),%rax
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x38(%rbp),%rax
movsd  0xae6(%rip),%xmm0
subsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
movsd  %xmm0,0x8(%rax)
jmp    1597 <coulomb_screening_parameters+0x437>
movl   $0x3,-0x94(%rbp)
movslq -0x8c(%rbp),%rcx
lea    0xb3c(%rip),%rax
movsd  (%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movsd  %xmm0,(%rax)
movslq -0x8c(%rbp),%rcx
lea    0xb21(%rip),%rax
movsd  0x338(%rax,%rcx,8),%xmm0
mov    -0x38(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x38(%rbp),%rax
addsd  0x8(%rax),%xmm1
movsd  0xa76(%rip),%xmm0
subsd  %xmm1,%xmm0
mov    -0x38(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movl   $0x0,-0x98(%rbp)
mov    -0x98(%rbp),%eax
cmp    -0x94(%rbp),%eax
jge    1627 <coulomb_screening_parameters+0x4c7>
movslq -0x98(%rbp),%rcx
lea    0x112f(%rip),%rax
imul   $0x338,%rcx,%rcx
add    %rcx,%rax
movslq -0x8c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xa99(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
mov    -0x40(%rbp),%rax
movslq -0x98(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x98(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x98(%rbp)
jmp    15a1 <coulomb_screening_parameters+0x441>
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
mov    $0x2,%al
call   1030 <data_nuclear_radius@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0xa24(%rip),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  -0xa8(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
mov    -0x40(%rbp),%rax
mov    -0x94(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x94(%rbp)
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x94(%rbp),%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<coulomb_screening_parameters>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x38,%rsp
mov    %rdx,%r15
mov    %rsi,%rbx
mov    %rdi,%r14
movapd %xmm0,%xmm6
movsd  0xe80(%rip),%xmm5
mulsd  %xmm0,%xmm5
movapd %xmm2,%xmm0
addsd  %xmm3,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm2,%xmm2
movapd %xmm2,%xmm5
addsd  %xmm3,%xmm5
mulsd  %xmm3,%xmm5
mulsd  %xmm0,%xmm0
divsd  %xmm5,%xmm0
movsd  0xe58(%rip),%xmm3
ucomisd %xmm0,%xmm3
movapd %xmm0,%xmm5
addsd  %xmm3,%xmm5
movapd %xmm3,%xmm7
divsd  %xmm5,%xmm7
movsd  %xmm1,0x10(%rsp)
movsd  %xmm6,0x30(%rsp)
movsd  %xmm2,0x28(%rsp)
movsd  %xmm4,0x20(%rsp)
jbe    1213 <coulomb_screening_parameters+0xb3>
addsd  0xe6a(%rip),%xmm7
movsd  0xe6a(%rip),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm7,%xmm2
movsd  0xe62(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
jmp    1323 <coulomb_screening_parameters+0x1c3>
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm0
movsd  %xmm7,(%rsp)
jb     1228 <coulomb_screening_parameters+0xc8>
sqrtsd %xmm0,%xmm0
jmp    122d <coulomb_screening_parameters+0xcd>
call   1080 <sqrt@plt>
call   1040 <atan@plt>
movsd  %xmm0,0x18(%rsp)
movsd  (%rsp),%xmm0
call   1070 <log@plt>
movapd %xmm0,%xmm1
movsd  0xdba(%rip),%xmm0
subsd  (%rsp),%xmm0
mulsd  0xdb5(%rip),%xmm0
mulsd  0xdb5(%rip),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xdab(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
call   1060 <cos@plt>
mulsd  (%rsp),%xmm0
movsd  0xd7b(%rip),%xmm1
subsd  %xmm0,%xmm1
mulsd  0xd8f(%rip),%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xd83(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
call   1060 <cos@plt>
movsd  (%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
movsd  0xd3b(%rip),%xmm1
subsd  %xmm0,%xmm1
mulsd  0xd5f(%rip),%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
mulsd  0xd4d(%rip),%xmm0
call   1060 <cos@plt>
movsd  (%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
movsd  0xcf7(%rip),%xmm1
subsd  %xmm0,%xmm1
mulsd  0xd2b(%rip),%xmm1
addsd  0x8(%rsp),%xmm1
addsd  %xmm1,%xmm1
movapd %xmm1,%xmm0
call   1050 <exp@plt>
movsd  0x28(%rsp),%xmm1
movsd  0x20(%rsp),%xmm2
addsd  %xmm2,%xmm1
mulsd  %xmm2,%xmm1
movsd  0xd1c(%rip),%xmm4
divsd  %xmm1,%xmm4
movsd  0x30(%rsp),%xmm3
cvttsd2si %xmm3,%eax
cmp    $0x67,%eax
mov    $0x67,%ecx
cmovl  %eax,%ecx
mulsd  %xmm0,%xmm4
movslq %ecx,%rax
lea    0x137d(%rip),%rcx
movsd  0x668(%rcx,%rax,8),%xmm0
add    $0xffffffffffffffff,%rax
ucomisd 0xc80(%rip),%xmm0
jne    13bc <coulomb_screening_parameters+0x25c>
jp     13bc <coulomb_screening_parameters+0x25c>
test   %eax,%eax
je     13f8 <coulomb_screening_parameters+0x298>
lea    0xce9(%rip),%rdx
movsd  (%rdx,%rax,8),%xmm0
movsd  %xmm0,(%rbx)
movsd  0xc60(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rbx)
mov    $0x2,%ebx
mov    $0x1,%dl
xor    %esi,%esi
jmp    140f <coulomb_screening_parameters+0x2af>
lea    0xcbd(%rip),%rdx
movsd  (%rdx,%rax,8),%xmm0
movsd  %xmm0,(%rbx)
movsd  0x338(%rdx,%rax,8),%xmm1
movsd  %xmm1,0x8(%rbx)
addsd  %xmm1,%xmm0
movsd  0xc22(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rbx)
mov    $0x3,%ebx
xor    %esi,%esi
jmp    140d <coulomb_screening_parameters+0x2ad>
movabs $0x3ff0000000000000,%rdx
mov    %rdx,(%rbx)
mov    $0x1,%ebx
mov    $0x1,%sil
xor    %edx,%edx
movsd  0x10(%rsp),%xmm1
movsd  (%rcx,%rax,8),%xmm0
divsd  0xc4e(%rip),%xmm0
movapd %xmm4,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%r15)
test   %sil,%sil
jne    1482 <coulomb_screening_parameters+0x322>
movsd  0x338(%rcx,%rax,8),%xmm0
divsd  0xc27(%rip),%xmm0
movapd %xmm4,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,0x8(%r15)
test   %dl,%dl
jne    1482 <coulomb_screening_parameters+0x322>
movsd  0x670(%rcx,%rax,8),%xmm0
divsd  0xc00(%rip),%xmm0
movapd %xmm4,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,0x10(%r15)
mov    %ebx,%r12d
movapd %xmm3,%xmm0
mov    $0x2,%al
movsd  %xmm4,(%rsp)
call   1030 <data_nuclear_radius@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  (%rsp),%xmm1
mulsd  0xbcf(%rip),%xmm1
mulsd  %xmm0,%xmm0
divsd  %xmm0,%xmm1
add    $0x1,%ebx
movsd  %xmm1,(%r15,%r12,8)
mov    %ebx,(%r14)
add    $0x38,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@coulomb_screening_parameters.prefactor = internal constant [2 x [103 x double]] [[103 x double] [double 1.000000e+00, double -2.259200e-01, double 6.045370e-01, double 3.277660e-01, double 2.326840e-01, double 1.536760e-01, double 0x3FB97DBF487FCB92, double 0x3FB000DA1A93293D, double 3.680400e-02, double 1.884100e-02, double 7.444400e-01, double 6.423490e-01, double 6.001520e-01, double 5.159710e-01, double 4.386750e-01, double 5.458710e-01, double 7.248890e-01, double 2.191240e+00, double 4.856070e-02, double 5.800170e-01, double 5.543400e-01, double 1.119500e-02, double 3.183500e-02, double 1.075030e-01, double 4.975560e-02, double 5.118410e-02, double 5.000390e-02, double 4.735090e-02, double 7.709670e-02, double 4.000410e-02, double 1.083440e-01, double 6.097670e-02, double 2.115610e-02, double 4.835750e-01, double 4.503640e-01, double 4.190360e-01, double 1.734380e-01, double 3.356940e-02, double 0x3FB1A307D764D643, double 1.175520e-01, double 2.556890e-01, double 2.693130e-01, double 2.201380e-01, double 2.750570e-01, double 2.710530e-01, double 2.783630e-01, double 2.562100e-01, double 2.271000e-01, double 2.492150e-01, double 2.153130e-01, double 1.805600e-01, double 1.307720e-01, double 5.882930e-02, double 4.451450e-01, double 2.707960e-01, double 1.728140e-01, double 1.947260e-01, double 1.913380e-01, double 1.867760e-01, double 1.664610e-01, double 1.623500e-01, double 1.580160e-01, double 1.537590e-01, double 1.587290e-01, double 1.453270e-01, double 1.412600e-01, double 1.373600e-01, double 1.336140e-01, double 1.298530e-01, double 1.266590e-01, double 1.288060e-01, double 1.302560e-01, double 1.384200e-01, double 1.500300e-01, double 1.608030e-01, double 1.721640e-01, double 1.834110e-01, double 2.230430e-01, double 2.289090e-01, double 2.097530e-01, double 2.708210e-01, double 2.379580e-01, double 2.287710e-01, double 1.940590e-01, double 1.499950e-01, double 9.552620e-02, double 3.191550e-01, double 2.404060e-01, double 2.265790e-01, double 2.176190e-01, double 2.412940e-01, double 2.447580e-01, double 2.462310e-01, double 2.555720e-01, double 2.535670e-01, double 2.438320e-01, double 2.418980e-01, double 2.440500e-01, double 2.402370e-01, double 2.349970e-01, double 2.321140e-01, double 2.279370e-01, double 2.295710e-01], [103 x double] [double 0.000000e+00, double 1.225920e+00, double 3.954630e-01, double 6.722340e-01, double 7.673160e-01, double 8.463240e-01, double 9.004250e-01, double 0x3FEDFFE4BCAD9AD8, double 9.631960e-01, double 9.811590e-01, double 2.555600e-01, double 3.576510e-01, double 3.998480e-01, double 4.840290e-01, double 5.613250e-01, double -5.333290e-01, double -7.548090e-01, double -2.285200e+00, double 7.759350e-01, double 4.199830e-01, double 4.456600e-01, double 6.831760e-01, double 6.753030e-01, double 7.161720e-01, double 6.866320e-01, double 0x3FE6629307AF20EA, double 7.142010e-01, double 7.294040e-01, double 0x3FE97151E75360D0, double 0x3FE84A01ABD1AA82, double 7.489410e-01, double 7.156710e-01, double 6.709320e-01, double 5.164250e-01, double 5.496360e-01, double 5.809640e-01, double 7.253360e-01, double 7.815810e-01, double 7.202030e-01, double 6.580880e-01, double 5.820510e-01, double 5.752620e-01, double 5.617970e-01, double 5.943380e-01, double 6.119210e-01, double 6.066530e-01, double 0x3FE4D10F51AC9AFE, double 6.154960e-01, double 6.439900e-01, double 0x3FE3916228134480, double 5.766880e-01, double 5.503660e-01, double 5.481740e-01, double 5.548550e-01, double 6.524150e-01, double 6.844850e-01, double 6.384290e-01, double 6.466840e-01, double 6.558100e-01, double 7.056770e-01, double 7.133110e-01, double 7.209780e-01, double 7.283850e-01, double 7.024140e-01, double 7.426190e-01, double 7.493520e-01, double 7.557970e-01, double 7.619470e-01, double 7.680050e-01, double 7.733650e-01, double 7.527810e-01, double 7.324280e-01, double 7.095960e-01, double 6.871410e-01, double 0x3FE54F50A02B8412, double 6.468490e-01, double 6.305980e-01, double 6.175750e-01, double 6.114020e-01, double 6.004260e-01, double 6.428290e-01, double 6.307890e-01, double 6.219590e-01, double 0x3FE388D8EC95BFF0, double 6.031470e-01, double 6.059940e-01, double 0x3FE3F2452C59FB1E, double 6.566650e-01, double 6.422460e-01, double 6.240130e-01, double 6.303940e-01, double 6.298160e-01, double 6.315960e-01, double 6.490050e-01, double 6.536040e-01, double 6.437380e-01, double 6.488500e-01, double 0x3FE5733EBBFD71B0, double 6.763190e-01, double 6.655710e-01, double 6.884060e-01, double 6.943940e-01, double 6.820140e-01]]
@coulomb_screening_parameters.exponent = internal constant [3 x [103 x double]] [[103 x double] [double 1.117280e+00, double 5.527250e+00, double 2.817410e+00, double 4.543020e+00, double 0x4017F5D249E44FA0, double 8.040430e+00, double 1.081220e+01, double 1.482330e+01, double 2.140010e+01, double 3.499940e+01, double 4.120500e+00, double 4.726630e+00, double 5.140510e+00, double 5.849180e+00, double 6.670700e+00, double 6.370290e+00, double 6.211830e+00, double 5.547010e+00, double 3.025970e+01, double 6.321840e+00, double 0x401A87FCB923A29C, double 9.975690e+01, double 4.253300e+01, double 1.895870e+01, double 3.186420e+01, double 3.182510e+01, double 3.291530e+01, double 3.475800e+01, double 2.532640e+01, double 4.034290e+01, double 2.019220e+01, double 2.919960e+01, double 0x404F3E5FD8ADAB9F, double 8.782420e+00, double 9.334800e+00, double 0x4023D41205BC01A3, double 1.716590e+01, double 5.520770e+01, double 3.136590e+01, double 2.205370e+01, double 1.424030e+01, double 1.404420e+01, double 1.591760e+01, double 1.431370e+01, double 1.465370e+01, double 1.464550e+01, double 1.558780e+01, double 1.691410e+01, double 1.615520e+01, double 1.779310e+01, double 1.987510e+01, double 2.415400e+01, double 3.999550e+01, double 1.180530e+01, double 1.659150e+01, double 2.239660e+01, double 2.076370e+01, double 2.123500e+01, double 2.180330e+01, double 2.394920e+01, double 2.459840e+01, double 2.529660e+01, double 2.601690e+01, double 2.549730e+01, double 2.754660e+01, double 2.834600e+01, double 2.916040e+01, double 2.999040e+01, double 3.083450e+01, double 3.168060e+01, double 3.135260e+01, double 3.121660e+01, double 3.007670e+01, double 2.863020e+01, double 2.756840e+01, double 2.658610e+01, double 2.573390e+01, double 2.299390e+01, double 2.286440e+01, double 2.440800e+01, double 2.094090e+01, double 2.298720e+01, double 2.379170e+01, double 2.669510e+01, double 3.183970e+01, double 4.348900e+01, double 2.001500e+01, double 2.450120e+01, double 2.568430e+01, double 2.655420e+01, double 2.519300e+01, double 2.525220e+01, double 2.542710e+01, double 2.515260e+01, double 2.559590e+01, double 2.655670e+01, double 2.703600e+01, double 2.726730e+01, double 2.791520e+01, double 2.864460e+01, double 2.933530e+01, double 3.010400e+01, double 3.026500e+01], [103 x double] [double 1.000000e+00, double 2.399240e+00, double 6.624630e-01, double 0x3FEF8661AE70C133, double 1.213470e+00, double 1.491290e+00, double 1.768680e+00, double 2.040350e+00, double 2.306010e+00, double 2.566210e+00, double 8.717980e-01, double 1.002470e+00, double 1.015290e+00, double 1.173140e+00, double 1.341020e+00, double 2.551690e+00, double 3.388270e+00, double 4.568730e+00, double 3.124260e+00, double 1.009350e+00, double 1.102270e+00, double 4.128650e+00, double 3.940430e+00, double 3.063750e+00, double 3.781100e+00, double 3.771610e+00, double 3.790850e+00, double 3.829890e+00, double 3.392760e+00, double 3.946450e+00, double 3.473250e+00, double 4.125250e+00, double 4.950150e+00, double 1.696710e+00, double 1.790020e+00, double 1.883540e+00, double 3.110250e+00, double 4.284180e+00, double 4.241210e+00, double 4.032540e+00, double 2.970200e+00, double 2.861070e+00, double 3.367190e+00, double 2.737010e+00, double 2.718280e+00, double 2.615490e+00, double 2.741240e+00, double 3.084080e+00, double 2.881890e+00, double 3.293720e+00, double 3.809210e+00, double 4.611910e+00, double 5.913180e+00, double 1.796730e+00, double 2.696450e+00, double 3.459510e+00, double 3.465740e+00, double 3.481930e+00, double 3.509820e+00, double 3.519870e+00, double 3.556030e+00, double 3.596280e+00, double 3.638340e+00, double 3.736390e+00, double 3.728820e+00, double 3.776250e+00, double 3.824440e+00, double 3.873440e+00, double 3.923270e+00, double 3.972710e+00, double 4.090400e+00, double 4.204920e+00, double 4.249180e+00, double 4.242610e+00, double 4.234120e+00, double 4.199920e+00, double 4.146150e+00, double 3.734610e+00, double 3.691380e+00, double 3.964290e+00, double 3.245630e+00, double 3.621720e+00, double 3.779590e+00, double 4.258240e+00, double 4.928480e+00, double 5.852050e+00, double 2.909060e+00, double 3.552410e+00, double 3.792230e+00, double 4.004370e+00, double 3.677950e+00, double 3.639660e+00, double 3.613280e+00, double 3.430210e+00, double 3.434740e+00, double 3.590890e+00, double 3.594110e+00, double 3.480610e+00, double 3.503310e+00, double 3.618700e+00, double 3.556970e+00, double 3.586850e+00, double 3.640850e+00], [103 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.675340e+00, double 1.859640e+00, double 2.044550e+00, double 7.326370e-01, double 1.000000e+00, double 1.000000e+00, double 1.008960e+00, double 1.053330e+00, double 1.001370e+00, double 1.127870e+00, double 1.160640e+00, double 1.191520e+00, double 1.220890e+00, double 1.142610e+00, double 1.275940e+00, double 1.006430e+00, double 1.184470e+00, double 1.358190e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 7.176730e-01, double 0x3FEB737110E453D2, double 0x3FEE4F11B60AE968, double 1.018060e+00, double 1.016990e+00, double 1.059060e+00, double 1.154770e+00, double 1.109230e+00, double 1.123360e+00, double 1.431830e+00, double 1.140790e+00, double 1.261890e+00, double 9.941560e-01, double 1.147810e+00, double 1.282880e+00, double 1.419540e+00, double 1.547070e+00, double 1.000000e+00, double 6.813610e-01, double 8.073110e-01, double 0x3FEC8389F83BE660, double 9.011120e-01, double 9.106360e-01, double 8.486200e-01, double 8.569290e-01, double 8.650250e-01, double 8.730830e-01, double 9.549980e-01, double 8.889810e-01, double 0x3FECB38B47C73EEE, double 9.048030e-01, double 9.127680e-01, double 9.203060e-01, double 9.288380e-01, double 1.007170e+00, double 1.094560e+00, double 1.169660e+00, double 1.234030e+00, double 1.296990e+00, double 1.353500e+00, double 1.403740e+00, double 1.442840e+00, double 1.488560e+00, double 1.534320e+00, double 1.112140e+00, double 1.237350e+00, double 1.253380e+00, double 1.357720e+00, double 1.468280e+00, double 1.573590e+00, double 7.207140e-01, double 8.375990e-01, double 0x3FEDDEF8487B99D4, double 1.023850e+00, double 0x3FEF09613D31B9B6, double 0x3FEF706D50657321, double 9.925270e-01, double 9.327510e-01, double 9.416710e-01, double 1.018270e+00, double 1.025540e+00, double 0x3FEEED22424A276B, double 0x3FEF2DD9C27E9531, double 1.041370e+00, double 9.905680e-01, double 9.988780e-01, double 1.044730e+00]]
define void @coulomb_screening_parameters(double %0, double %1, double %2, double %3, double %4, i32* %5, double* %6, double* %7) {
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca i32*
%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 i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca double
%31 = alloca double
store double %0, double* %9
store double %1, double* %10
store double %2, double* %11
store double %3, double* %12
store double %4, double* %13
store i32* %5, i32** %14
store double* %6, double** %15
store double* %7, double** %16
%32 = load double, double* %9
%33 = fmul double 0x3F7DE3D42A1ED29D, %32
%34 = load double, double* %12
%35 = load double, double* %11
%36 = fadd double %34, %35
%37 = fmul double %33, %36
store double %37, double* %17
%38 = load double, double* %12
%39 = load double, double* %12
%40 = load double, double* %11
%41 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %40, double %39)
%42 = fmul double %38, %41
store double %42, double* %18
%43 = load double, double* %17
%44 = load double, double* %17
%45 = fmul double %43, %44
%46 = load double, double* %18
%47 = fdiv double %45, %46
store double %47, double* %19
%48 = load double, double* %19
%49 = fcmp olt double %48, 1.000000e+00
br i1 %49, label %50, label %64
50: ; preds = %8
%51 = load double, double* %19
%52 = fadd double 1.000000e+00, %51
%53 = fdiv double 1.000000e+00, %52
%54 = fadd double %53, 0x3FC9DD0027803108
%55 = load double, double* %19
%56 = call double @llvm.fmuladd.f64(double 0xBFA2E831D94F99C0, double %55, double %54)
%57 = load double, double* %19
%58 = fmul double 0x3F81196D0A679C80, %57
%59 = load double, double* %19
%60 = call double @llvm.fmuladd.f64(double %58, double %59, double %56)
store double %60, double* %20
%61 = load double, double* %19
%62 = load double, double* %20
%63 = fmul double %62, %61
store double %63, double* %20
br label %105
64: ; preds = %8
%65 = load double, double* %19
%66 = fadd double 1.000000e+00, %65
%67 = fdiv double 1.000000e+00, %66
store double %67, double* %21
%68 = load double, double* %19
%69 = call double @sqrt(double %68)
%70 = call double @atan(double %69)
%71 = fneg double %70
store double %71, double* %22
%72 = load double, double* %21
%73 = call double @log(double %72)
%74 = load double, double* %21
%75 = fsub double 1.000000e+00, %74
%76 = fmul double 5.000000e-01, %75
%77 = call double @llvm.fmuladd.f64(double -5.000000e-01, double %73, double %76)
%78 = load double, double* %22
%79 = fmul double 2.000000e+00, %78
%80 = call double @cos(double %79)
%81 = load double, double* %21
%82 = fneg double %80
%83 = call double @llvm.fmuladd.f64(double %82, double %81, double 1.000000e+00)
%84 = call double @llvm.fmuladd.f64(double 0x3FB5555555555555, double %83, double %77)
%85 = load double, double* %22
%86 = fmul double 4.000000e+00, %85
%87 = call double @cos(double %86)
%88 = load double, double* %21
%89 = fmul double %87, %88
%90 = load double, double* %21
%91 = fneg double %89
%92 = call double @llvm.fmuladd.f64(double %91, double %90, double 1.000000e+00)
%93 = call double @llvm.fmuladd.f64(double 0xBF81111111111111, double %92, double %84)
%94 = load double, double* %22
%95 = fmul double 6.000000e+00, %94
%96 = call double @cos(double %95)
%97 = load double, double* %21
%98 = fmul double %96, %97
%99 = load double, double* %21
%100 = fmul double %98, %99
%101 = load double, double* %21
%102 = fneg double %100
%103 = call double @llvm.fmuladd.f64(double %102, double %101, double 1.000000e+00)
%104 = call double @llvm.fmuladd.f64(double 0x3F70410410410410, double %103, double %93)
store double %104, double* %20
br label %105
105: ; preds = %64, %50
%106 = load double, double* %20
%107 = fmul double 2.000000e+00, %106
%108 = call double @exp(double %107)
store double %108, double* %23
%109 = load double, double* %13
%110 = load double, double* %13
%111 = load double, double* %11
%112 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %111, double %110)
%113 = fmul double %109, %112
store double %113, double* %24
%114 = load double, double* %24
%115 = fdiv double 0x394945ACADCD5D75, %114
%116 = load double, double* %23
%117 = fmul double %115, %116
store double %117, double* %25
%118 = load double, double* %9
%119 = fptosi double %118 to i32
%120 = sub nsw i32 %119, 1
store i32 %120, i32* %26
store i32 103, i32* %27
%121 = load i32, i32* %26
%122 = icmp sge i32 %121, 103
br i1 %122, label %123, label %124
123: ; preds = %105
store i32 102, i32* %26
br label %124
124: ; preds = %123, %105
%125 = load i32, i32* %26
%126 = sext i32 %125 to i64
%127 = getelementptr inbounds [103 x double], [103 x double]* getelementptr inbounds ([3 x [103 x double]], [3 x [103 x double]]* @coulomb_screening_parameters.exponent, i64 0, i64 2), i64 0, i64 %126
%128 = load double, double* %127
%129 = fcmp oeq double %128, 1.000000e+00
br i1 %129, label %130, label %150
130: ; preds = %124
%131 = load i32, i32* %26
%132 = icmp eq i32 %131, 0
br i1 %132, label %133, label %136
133: ; preds = %130
store i32 1, i32* %28
%134 = load double*, double** %15
%135 = getelementptr inbounds double, double* %134, i64 0
store double 1.000000e+00, double* %135
br label %149
136: ; preds = %130
store i32 2, i32* %28
%137 = load i32, i32* %26
%138 = sext i32 %137 to i64
%139 = getelementptr inbounds [103 x double], [103 x double]* getelementptr inbounds ([2 x [103 x double]], [2 x [103 x double]]* @coulomb_screening_parameters.prefactor, i64 0, i64 0), i64 0, i64 %138
%140 = load double, double* %139
%141 = load double*, double** %15
%142 = getelementptr inbounds double, double* %141, i64 0
store double %140, double* %142
%143 = load double*, double** %15
%144 = getelementptr inbounds double, double* %143, i64 0
%145 = load double, double* %144
%146 = fsub double 1.000000e+00, %145
%147 = load double*, double** %15
%148 = getelementptr inbounds double, double* %147, i64 1
store double %146, double* %148
br label %149
149: ; preds = %136, %133
br label %173
150: ; preds = %124
store i32 3, i32* %28
%151 = load i32, i32* %26
%152 = sext i32 %151 to i64
%153 = getelementptr inbounds [103 x double], [103 x double]* getelementptr inbounds ([2 x [103 x double]], [2 x [103 x double]]* @coulomb_screening_parameters.prefactor, i64 0, i64 0), i64 0, i64 %152
%154 = load double, double* %153
%155 = load double*, double** %15
%156 = getelementptr inbounds double, double* %155, i64 0
store double %154, double* %156
%157 = load i32, i32* %26
%158 = sext i32 %157 to i64
%159 = getelementptr inbounds [103 x double], [103 x double]* getelementptr inbounds ([2 x [103 x double]], [2 x [103 x double]]* @coulomb_screening_parameters.prefactor, i64 0, i64 1), i64 0, i64 %158
%160 = load double, double* %159
%161 = load double*, double** %15
%162 = getelementptr inbounds double, double* %161, i64 1
store double %160, double* %162
%163 = load double*, double** %15
%164 = getelementptr inbounds double, double* %163, i64 0
%165 = load double, double* %164
%166 = load double*, double** %15
%167 = getelementptr inbounds double, double* %166, i64 1
%168 = load double, double* %167
%169 = fadd double %165, %168
%170 = fsub double 1.000000e+00, %169
%171 = load double*, double** %15
%172 = getelementptr inbounds double, double* %171, i64 2
store double %170, double* %172
br label %173
173: ; preds = %150, %149
store i32 0, i32* %29
br label %174
174: ; preds = %196, %173
%175 = load i32, i32* %29
%176 = load i32, i32* %28
%177 = icmp slt i32 %175, %176
br i1 %177, label %178, label %199
178: ; preds = %174
%179 = load i32, i32* %29
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds [3 x [103 x double]], [3 x [103 x double]]* @coulomb_screening_parameters.exponent, i64 0, i64 %180
%182 = load i32, i32* %26
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds [103 x double], [103 x double]* %181, i64 0, i64 %183
%185 = load double, double* %184
%186 = fdiv double %185, 0x3DCD1781D4F556A3
store double %186, double* %30
%187 = load double, double* %25
%188 = load double, double* %30
%189 = fmul double %187, %188
%190 = load double, double* %30
%191 = fmul double %189, %190
%192 = load double*, double** %16
%193 = load i32, i32* %29
%194 = sext i32 %193 to i64
%195 = getelementptr inbounds double, double* %192, i64 %194
store double %191, double* %195
br label %196
196: ; preds = %178
%197 = load i32, i32* %29
%198 = add nsw i32 %197, 1
store i32 %198, i32* %29
br label %174
199: ; preds = %174
%200 = load double, double* %9
%201 = load double, double* %10
%202 = call i32 (double, double, ...) bitcast (i32 (...)* @data_nuclear_radius to i32 (double, double, ...)*)(double %200, double %201)
%203 = sitofp i32 %202 to double
store double %203, double* %31
%204 = load double, double* %25
%205 = fmul double 1.200000e+01, %204
%206 = load double, double* %31
%207 = load double, double* %31
%208 = fmul double %206, %207
%209 = fdiv double %205, %208
%210 = load double*, double** %16
%211 = load i32, i32* %28
%212 = add nsw i32 %211, 1
store i32 %212, i32* %28
%213 = sext i32 %211 to i64
%214 = getelementptr inbounds double, double* %210, i64 %213
store double %209, double* %214
%215 = load i32, i32* %28
%216 = load i32*, i32** %14
store i32 %215, i32* %216
ret void
}

LLVM IR (-O2):
@coulomb_screening_parameters.prefactor = internal unnamed_addr constant [2 x [103 x double]] [[103 x double] [double 1.000000e+00, double -2.259200e-01, double 6.045370e-01, double 3.277660e-01, double 2.326840e-01, double 1.536760e-01, double 0x3FB97DBF487FCB92, double 0x3FB000DA1A93293D, double 3.680400e-02, double 1.884100e-02, double 7.444400e-01, double 6.423490e-01, double 6.001520e-01, double 5.159710e-01, double 4.386750e-01, double 5.458710e-01, double 7.248890e-01, double 2.191240e+00, double 4.856070e-02, double 5.800170e-01, double 5.543400e-01, double 1.119500e-02, double 3.183500e-02, double 1.075030e-01, double 4.975560e-02, double 5.118410e-02, double 5.000390e-02, double 4.735090e-02, double 7.709670e-02, double 4.000410e-02, double 1.083440e-01, double 6.097670e-02, double 2.115610e-02, double 4.835750e-01, double 4.503640e-01, double 4.190360e-01, double 1.734380e-01, double 3.356940e-02, double 0x3FB1A307D764D643, double 1.175520e-01, double 2.556890e-01, double 2.693130e-01, double 2.201380e-01, double 2.750570e-01, double 2.710530e-01, double 2.783630e-01, double 2.562100e-01, double 2.271000e-01, double 2.492150e-01, double 2.153130e-01, double 1.805600e-01, double 1.307720e-01, double 5.882930e-02, double 4.451450e-01, double 2.707960e-01, double 1.728140e-01, double 1.947260e-01, double 1.913380e-01, double 1.867760e-01, double 1.664610e-01, double 1.623500e-01, double 1.580160e-01, double 1.537590e-01, double 1.587290e-01, double 1.453270e-01, double 1.412600e-01, double 1.373600e-01, double 1.336140e-01, double 1.298530e-01, double 1.266590e-01, double 1.288060e-01, double 1.302560e-01, double 1.384200e-01, double 1.500300e-01, double 1.608030e-01, double 1.721640e-01, double 1.834110e-01, double 2.230430e-01, double 2.289090e-01, double 2.097530e-01, double 2.708210e-01, double 2.379580e-01, double 2.287710e-01, double 1.940590e-01, double 1.499950e-01, double 9.552620e-02, double 3.191550e-01, double 2.404060e-01, double 2.265790e-01, double 2.176190e-01, double 2.412940e-01, double 2.447580e-01, double 2.462310e-01, double 2.555720e-01, double 2.535670e-01, double 2.438320e-01, double 2.418980e-01, double 2.440500e-01, double 2.402370e-01, double 2.349970e-01, double 2.321140e-01, double 2.279370e-01, double 2.295710e-01], [103 x double] [double 0.000000e+00, double 1.225920e+00, double 3.954630e-01, double 6.722340e-01, double 7.673160e-01, double 8.463240e-01, double 9.004250e-01, double 0x3FEDFFE4BCAD9AD8, double 9.631960e-01, double 9.811590e-01, double 2.555600e-01, double 3.576510e-01, double 3.998480e-01, double 4.840290e-01, double 5.613250e-01, double -5.333290e-01, double -7.548090e-01, double -2.285200e+00, double 7.759350e-01, double 4.199830e-01, double 4.456600e-01, double 6.831760e-01, double 6.753030e-01, double 7.161720e-01, double 6.866320e-01, double 0x3FE6629307AF20EA, double 7.142010e-01, double 7.294040e-01, double 0x3FE97151E75360D0, double 0x3FE84A01ABD1AA82, double 7.489410e-01, double 7.156710e-01, double 6.709320e-01, double 5.164250e-01, double 5.496360e-01, double 5.809640e-01, double 7.253360e-01, double 7.815810e-01, double 7.202030e-01, double 6.580880e-01, double 5.820510e-01, double 5.752620e-01, double 5.617970e-01, double 5.943380e-01, double 6.119210e-01, double 6.066530e-01, double 0x3FE4D10F51AC9AFE, double 6.154960e-01, double 6.439900e-01, double 0x3FE3916228134480, double 5.766880e-01, double 5.503660e-01, double 5.481740e-01, double 5.548550e-01, double 6.524150e-01, double 6.844850e-01, double 6.384290e-01, double 6.466840e-01, double 6.558100e-01, double 7.056770e-01, double 7.133110e-01, double 7.209780e-01, double 7.283850e-01, double 7.024140e-01, double 7.426190e-01, double 7.493520e-01, double 7.557970e-01, double 7.619470e-01, double 7.680050e-01, double 7.733650e-01, double 7.527810e-01, double 7.324280e-01, double 7.095960e-01, double 6.871410e-01, double 0x3FE54F50A02B8412, double 6.468490e-01, double 6.305980e-01, double 6.175750e-01, double 6.114020e-01, double 6.004260e-01, double 6.428290e-01, double 6.307890e-01, double 6.219590e-01, double 0x3FE388D8EC95BFF0, double 6.031470e-01, double 6.059940e-01, double 0x3FE3F2452C59FB1E, double 6.566650e-01, double 6.422460e-01, double 6.240130e-01, double 6.303940e-01, double 6.298160e-01, double 6.315960e-01, double 6.490050e-01, double 6.536040e-01, double 6.437380e-01, double 6.488500e-01, double 0x3FE5733EBBFD71B0, double 6.763190e-01, double 6.655710e-01, double 6.884060e-01, double 6.943940e-01, double 6.820140e-01]]
@coulomb_screening_parameters.exponent = internal unnamed_addr constant [3 x [103 x double]] [[103 x double] [double 1.117280e+00, double 5.527250e+00, double 2.817410e+00, double 4.543020e+00, double 0x4017F5D249E44FA0, double 8.040430e+00, double 1.081220e+01, double 1.482330e+01, double 2.140010e+01, double 3.499940e+01, double 4.120500e+00, double 4.726630e+00, double 5.140510e+00, double 5.849180e+00, double 6.670700e+00, double 6.370290e+00, double 6.211830e+00, double 5.547010e+00, double 3.025970e+01, double 6.321840e+00, double 0x401A87FCB923A29C, double 9.975690e+01, double 4.253300e+01, double 1.895870e+01, double 3.186420e+01, double 3.182510e+01, double 3.291530e+01, double 3.475800e+01, double 2.532640e+01, double 4.034290e+01, double 2.019220e+01, double 2.919960e+01, double 0x404F3E5FD8ADAB9F, double 8.782420e+00, double 9.334800e+00, double 0x4023D41205BC01A3, double 1.716590e+01, double 5.520770e+01, double 3.136590e+01, double 2.205370e+01, double 1.424030e+01, double 1.404420e+01, double 1.591760e+01, double 1.431370e+01, double 1.465370e+01, double 1.464550e+01, double 1.558780e+01, double 1.691410e+01, double 1.615520e+01, double 1.779310e+01, double 1.987510e+01, double 2.415400e+01, double 3.999550e+01, double 1.180530e+01, double 1.659150e+01, double 2.239660e+01, double 2.076370e+01, double 2.123500e+01, double 2.180330e+01, double 2.394920e+01, double 2.459840e+01, double 2.529660e+01, double 2.601690e+01, double 2.549730e+01, double 2.754660e+01, double 2.834600e+01, double 2.916040e+01, double 2.999040e+01, double 3.083450e+01, double 3.168060e+01, double 3.135260e+01, double 3.121660e+01, double 3.007670e+01, double 2.863020e+01, double 2.756840e+01, double 2.658610e+01, double 2.573390e+01, double 2.299390e+01, double 2.286440e+01, double 2.440800e+01, double 2.094090e+01, double 2.298720e+01, double 2.379170e+01, double 2.669510e+01, double 3.183970e+01, double 4.348900e+01, double 2.001500e+01, double 2.450120e+01, double 2.568430e+01, double 2.655420e+01, double 2.519300e+01, double 2.525220e+01, double 2.542710e+01, double 2.515260e+01, double 2.559590e+01, double 2.655670e+01, double 2.703600e+01, double 2.726730e+01, double 2.791520e+01, double 2.864460e+01, double 2.933530e+01, double 3.010400e+01, double 3.026500e+01], [103 x double] [double 1.000000e+00, double 2.399240e+00, double 6.624630e-01, double 0x3FEF8661AE70C133, double 1.213470e+00, double 1.491290e+00, double 1.768680e+00, double 2.040350e+00, double 2.306010e+00, double 2.566210e+00, double 8.717980e-01, double 1.002470e+00, double 1.015290e+00, double 1.173140e+00, double 1.341020e+00, double 2.551690e+00, double 3.388270e+00, double 4.568730e+00, double 3.124260e+00, double 1.009350e+00, double 1.102270e+00, double 4.128650e+00, double 3.940430e+00, double 3.063750e+00, double 3.781100e+00, double 3.771610e+00, double 3.790850e+00, double 3.829890e+00, double 3.392760e+00, double 3.946450e+00, double 3.473250e+00, double 4.125250e+00, double 4.950150e+00, double 1.696710e+00, double 1.790020e+00, double 1.883540e+00, double 3.110250e+00, double 4.284180e+00, double 4.241210e+00, double 4.032540e+00, double 2.970200e+00, double 2.861070e+00, double 3.367190e+00, double 2.737010e+00, double 2.718280e+00, double 2.615490e+00, double 2.741240e+00, double 3.084080e+00, double 2.881890e+00, double 3.293720e+00, double 3.809210e+00, double 4.611910e+00, double 5.913180e+00, double 1.796730e+00, double 2.696450e+00, double 3.459510e+00, double 3.465740e+00, double 3.481930e+00, double 3.509820e+00, double 3.519870e+00, double 3.556030e+00, double 3.596280e+00, double 3.638340e+00, double 3.736390e+00, double 3.728820e+00, double 3.776250e+00, double 3.824440e+00, double 3.873440e+00, double 3.923270e+00, double 3.972710e+00, double 4.090400e+00, double 4.204920e+00, double 4.249180e+00, double 4.242610e+00, double 4.234120e+00, double 4.199920e+00, double 4.146150e+00, double 3.734610e+00, double 3.691380e+00, double 3.964290e+00, double 3.245630e+00, double 3.621720e+00, double 3.779590e+00, double 4.258240e+00, double 4.928480e+00, double 5.852050e+00, double 2.909060e+00, double 3.552410e+00, double 3.792230e+00, double 4.004370e+00, double 3.677950e+00, double 3.639660e+00, double 3.613280e+00, double 3.430210e+00, double 3.434740e+00, double 3.590890e+00, double 3.594110e+00, double 3.480610e+00, double 3.503310e+00, double 3.618700e+00, double 3.556970e+00, double 3.586850e+00, double 3.640850e+00], [103 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.675340e+00, double 1.859640e+00, double 2.044550e+00, double 7.326370e-01, double 1.000000e+00, double 1.000000e+00, double 1.008960e+00, double 1.053330e+00, double 1.001370e+00, double 1.127870e+00, double 1.160640e+00, double 1.191520e+00, double 1.220890e+00, double 1.142610e+00, double 1.275940e+00, double 1.006430e+00, double 1.184470e+00, double 1.358190e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 7.176730e-01, double 0x3FEB737110E453D2, double 0x3FEE4F11B60AE968, double 1.018060e+00, double 1.016990e+00, double 1.059060e+00, double 1.154770e+00, double 1.109230e+00, double 1.123360e+00, double 1.431830e+00, double 1.140790e+00, double 1.261890e+00, double 9.941560e-01, double 1.147810e+00, double 1.282880e+00, double 1.419540e+00, double 1.547070e+00, double 1.000000e+00, double 6.813610e-01, double 8.073110e-01, double 0x3FEC8389F83BE660, double 9.011120e-01, double 9.106360e-01, double 8.486200e-01, double 8.569290e-01, double 8.650250e-01, double 8.730830e-01, double 9.549980e-01, double 8.889810e-01, double 0x3FECB38B47C73EEE, double 9.048030e-01, double 9.127680e-01, double 9.203060e-01, double 9.288380e-01, double 1.007170e+00, double 1.094560e+00, double 1.169660e+00, double 1.234030e+00, double 1.296990e+00, double 1.353500e+00, double 1.403740e+00, double 1.442840e+00, double 1.488560e+00, double 1.534320e+00, double 1.112140e+00, double 1.237350e+00, double 1.253380e+00, double 1.357720e+00, double 1.468280e+00, double 1.573590e+00, double 7.207140e-01, double 8.375990e-01, double 0x3FEDDEF8487B99D4, double 1.023850e+00, double 0x3FEF09613D31B9B6, double 0x3FEF706D50657321, double 9.925270e-01, double 9.327510e-01, double 9.416710e-01, double 1.018270e+00, double 1.025540e+00, double 0x3FEEED22424A276B, double 0x3FEF2DD9C27E9531, double 1.041370e+00, double 9.905680e-01, double 9.988780e-01, double 1.044730e+00]]
define void @coulomb_screening_parameters(double %0, double %1, double %2, double %3, double %4, i32* nocapture writeonly %5, double* nocapture writeonly %6, double* nocapture writeonly %7) {
%9 = fmul double %0, 0x3F7DE3D42A1ED29D
%10 = fadd double %2, %3
%11 = fmul double %9, %10
%12 = tail call double @llvm.fmuladd.f64(double %2, double 2.000000e+00, double %3)
%13 = fmul double %12, %3
%14 = fmul double %11, %11
%15 = fdiv double %14, %13
%16 = fcmp olt double %15, 1.000000e+00
%17 = fadd double %15, 1.000000e+00
%18 = fdiv double 1.000000e+00, %17
br i1 %16, label %19, label %25
19: ; preds = %8
%20 = fadd double %18, 0x3FC9DD0027803108
%21 = tail call double @llvm.fmuladd.f64(double %15, double 0xBFA2E831D94F99C0, double %20)
%22 = fmul double %15, 0x3F81196D0A679C80
%23 = tail call double @llvm.fmuladd.f64(double %22, double %15, double %21)
%24 = fmul double %15, %23
br label %50
25: ; preds = %8
%26 = tail call double @sqrt(double %15)
%27 = tail call double @atan(double %26)
%28 = tail call double @log(double %18)
%29 = fsub double 1.000000e+00, %18
%30 = fmul double %29, 5.000000e-01
%31 = tail call double @llvm.fmuladd.f64(double %28, double -5.000000e-01, double %30)
%32 = fmul double %27, -2.000000e+00
%33 = tail call double @cos(double %32)
%34 = fneg double %33
%35 = tail call double @llvm.fmuladd.f64(double %34, double %18, double 1.000000e+00)
%36 = tail call double @llvm.fmuladd.f64(double %35, double 0x3FB5555555555555, double %31)
%37 = fmul double %27, -4.000000e+00
%38 = tail call double @cos(double %37)
%39 = fneg double %38
%40 = fmul double %18, %39
%41 = tail call double @llvm.fmuladd.f64(double %40, double %18, double 1.000000e+00)
%42 = tail call double @llvm.fmuladd.f64(double %41, double 0xBF81111111111111, double %36)
%43 = fmul double %27, -6.000000e+00
%44 = tail call double @cos(double %43)
%45 = fneg double %44
%46 = fmul double %18, %45
%47 = fmul double %18, %46
%48 = tail call double @llvm.fmuladd.f64(double %47, double %18, double 1.000000e+00)
%49 = tail call double @llvm.fmuladd.f64(double %48, double 0x3F70410410410410, double %42)
br label %50
50: ; preds = %25, %19
%51 = phi double [ %24, %19 ], [ %49, %25 ]
%52 = fmul double %51, 2.000000e+00
%53 = tail call double @exp(double %52)
%54 = tail call double @llvm.fmuladd.f64(double %2, double 2.000000e+00, double %4)
%55 = fmul double %54, %4
%56 = fdiv double 0x394945ACADCD5D75, %55
%57 = fmul double %56, %53
%58 = fptosi double %0 to i32
%59 = icmp slt i32 %58, 103
%60 = select i1 %59, i32 %58, i32 103
%61 = add nsw i32 %60, -1
%62 = sext i32 %61 to i64
%63 = getelementptr inbounds [3 x [103 x double]], [3 x [103 x double]]* @coulomb_screening_parameters.exponent, i64 0, i64 2, i64 %62
%64 = load double, double* %63
%65 = fcmp oeq double %64, 1.000000e+00
br i1 %65, label %66, label %74
66: ; preds = %50
%67 = icmp eq i32 %61, 0
br i1 %67, label %68, label %69
68: ; preds = %66
store double 1.000000e+00, double* %6
br label %83
69: ; preds = %66
%70 = getelementptr inbounds [2 x [103 x double]], [2 x [103 x double]]* @coulomb_screening_parameters.prefactor, i64 0, i64 0, i64 %62
%71 = load double, double* %70
store double %71, double* %6
%72 = fsub double 1.000000e+00, %71
%73 = getelementptr inbounds double, double* %6, i64 1
store double %72, double* %73
br label %83
74: ; preds = %50
%75 = getelementptr inbounds [2 x [103 x double]], [2 x [103 x double]]* @coulomb_screening_parameters.prefactor, i64 0, i64 0, i64 %62
%76 = load double, double* %75
store double %76, double* %6
%77 = getelementptr inbounds [2 x [103 x double]], [2 x [103 x double]]* @coulomb_screening_parameters.prefactor, i64 0, i64 1, i64 %62
%78 = load double, double* %77
%79 = getelementptr inbounds double, double* %6, i64 1
store double %78, double* %79
%80 = fadd double %76, %78
%81 = fsub double 1.000000e+00, %80
%82 = getelementptr inbounds double, double* %6, i64 2
store double %81, double* %82
br label %83
83: ; preds = %74, %69, %68
%84 = phi i1 [ true, %68 ], [ false, %69 ], [ false, %74 ]
%85 = phi i1 [ false, %68 ], [ true, %69 ], [ false, %74 ]
%86 = phi i32 [ 1, %68 ], [ 2, %69 ], [ 3, %74 ]
%87 = getelementptr inbounds [3 x [103 x double]], [3 x [103 x double]]* @coulomb_screening_parameters.exponent, i64 0, i64 0, i64 %62
%88 = load double, double* %87
%89 = fdiv double %88, 0x3DCD1781D4F556A3
%90 = fmul double %57, %89
%91 = fmul double %89, %90
store double %91, double* %7
br i1 %84, label %106, label %92
92: ; preds = %83
%93 = getelementptr inbounds [3 x [103 x double]], [3 x [103 x double]]* @coulomb_screening_parameters.exponent, i64 0, i64 1, i64 %62
%94 = load double, double* %93
%95 = fdiv double %94, 0x3DCD1781D4F556A3
%96 = fmul double %57, %95
%97 = fmul double %95, %96
%98 = getelementptr inbounds double, double* %7, i64 1
store double %97, double* %98
br i1 %85, label %106, label %99
99: ; preds = %92
%100 = getelementptr inbounds [3 x [103 x double]], [3 x [103 x double]]* @coulomb_screening_parameters.exponent, i64 0, i64 2, i64 %62
%101 = load double, double* %100
%102 = fdiv double %101, 0x3DCD1781D4F556A3
%103 = fmul double %57, %102
%104 = fmul double %102, %103
%105 = getelementptr inbounds double, double* %7, i64 2
store double %104, double* %105
br label %106
106: ; preds = %99, %92, %83
%107 = zext i32 %86 to i64
%108 = tail call i32 (double, double, ...) bitcast (i32 (...)* @data_nuclear_radius to i32 (double, double, ...)*)(double %0, double %1)
%109 = sitofp i32 %108 to double
%110 = fmul double %57, 1.200000e+01
%111 = fmul double %109, %109
%112 = fdiv double %110, %111
%113 = add nuw nsw i32 %86, 1
%114 = getelementptr inbounds double, double* %7, i64 %107
store double %112, double* %114
store i32 %113, i32* %5
ret void
}