double numrxnrate(double step, double a, double b) {
  static const double yi[] = {
      4.188584,  4.188381,  4.187971, 4.187141,  4.185479,  4.182243,
      4.1761835, 4.1652925, 4.146168, 4.112737,  4.054173,  3.95406,
      3.7899875, 3.536844,  3.178271, 2.7239775, 2.2178055, 1.7220855,
      1.2875175, 0.936562,  0.668167, 0.470021,  0.327102,  0.225858,
      0.1551475, 0.1061375, 0.072355, 0.049183,  0.0333535, 0.022576,
      0.015257};
  static const double yr[] = {
      4.188790, 4.188790, 4.188790, 4.188788, 4.188785, 4.188775, 4.188747,
      4.188665, 4.188438, 4.187836, 4.186351, 4.182961, 4.175522, 4.158666,
      4.119598, 4.036667, 3.883389, 3.641076, 3.316941, 2.945750, 2.566064,
      2.203901, 1.872874, 1.578674, 1.322500, 1.103003, 0.916821, 0.759962,
      0.628537, 0.518952, 0.428136, 4.188790, 4.188790, 4.188789, 4.188786,
      4.188778, 4.188756, 4.188692, 4.188509, 4.188004, 4.186693, 4.183529,
      4.176437, 4.160926, 4.125854, 4.047256, 3.889954, 3.621782, 3.237397,
      2.773578, 2.289205, 1.831668, 1.427492, 1.087417, 0.811891, 0.595737,
      0.430950, 0.308026, 0.217994, 0.152981, 0.106569, 0.073768, 4.188790,
      4.188789, 4.188788, 4.188783, 4.188768, 4.188727, 4.188608, 4.188272,
      4.187364, 4.185053, 4.179623, 4.167651, 4.141470, 4.082687, 3.956817,
      3.722364, 3.355690, 2.877999, 2.353690, 1.850847, 1.411394, 1.050895,
      0.768036, 0.553077, 0.393496, 0.277134, 0.193535, 0.134203, 0.092515,
      0.063465, 0.043358, 4.188790, 4.188789, 4.188786, 4.188777, 4.188753,
      4.188682, 4.188480, 4.187919, 4.186431, 4.182757, 4.174363, 4.156118,
      4.116203, 4.028391, 3.851515, 3.546916, 3.110183, 2.587884, 2.055578,
      1.574898, 1.174608, 0.858327, 0.617223, 0.438159, 0.307824, 0.214440,
      0.148358, 0.102061, 0.069885, 0.047671, 0.032414, 4.188789, 4.188788,
      4.188783, 4.188769, 4.188729, 4.188614, 4.188288, 4.187399, 4.185108,
      4.179638, 4.167499, 4.141379, 4.084571, 3.964576, 3.739474, 3.381771,
      2.906433, 2.372992, 1.854444, 1.401333, 1.032632, 0.746509, 0.531766,
      0.374442, 0.261247, 0.180929, 0.124557, 0.085332, 0.058229, 0.039604,
      0.026865, 4.188789, 4.188786, 4.188778, 4.188756, 4.188692, 4.188510,
      4.188002, 4.186650, 4.183288, 4.175566, 4.158864, 4.123229, 4.047257,
      3.896024, 3.632545, 3.242239, 2.750962, 2.220229, 1.717239, 1.285681,
      0.939696, 0.674540, 0.477621, 0.334612, 0.232460, 0.160415, 0.110103,
      0.075242, 0.051236, 0.034789, 0.023565, 4.188788, 4.188784, 4.188772,
      4.188737, 4.188637, 4.188354, 4.187585, 4.185607, 4.180895, 4.170490,
      4.148460, 4.102035, 4.006907, 3.829897, 3.541151, 3.133335, 2.635739,
      2.109597, 1.619284, 1.204298, 0.875185, 0.625190, 0.440882, 0.307818,
      0.213235, 0.146800, 0.100560, 0.068608, 0.046655, 0.031645, 0.021415,
      4.188787, 4.188780, 4.188761, 4.188707, 4.188552, 4.188124, 4.186995,
      4.184222, 4.177931, 4.164527, 4.136619, 4.079198, 3.967945, 3.772932,
      3.468711, 3.050092, 2.548726, 2.026932, 1.547039, 1.144954, 0.828592,
      0.589866, 0.414774, 0.288895, 0.199728, 0.137273, 0.093903, 0.063994,
      0.043478, 0.029467, 0.019931, 4.188785, 4.188774, 4.188745, 4.188661,
      4.188426, 4.187795, 4.186203, 4.182494, 4.174471, 4.157859, 4.123939,
      4.056910, 3.934028, 3.727335, 3.412145, 2.985387, 2.481620, 1.963935,
      1.492519, 1.100533, 0.793976, 0.563797, 0.395615, 0.275071, 0.189896,
      0.130359, 0.089086, 0.060661, 0.041187, 0.027899, 0.018863, 4.188782,
      4.188766, 4.188720, 4.188592, 4.188244, 4.187347, 4.185205, 4.180486,
      4.170691, 4.150875, 4.111574, 4.037574, 3.906673, 3.691217, 3.367270,
      2.934386, 2.429282, 1.915212, 1.450660, 1.066615, 0.767733, 0.544143,
      0.381225, 0.264724, 0.182558, 0.125209, 0.085504, 0.058187, 0.039490,
      0.026741, 0.018074, 4.188777, 4.188752, 4.188683, 4.188492, 4.187993,
      4.186777, 4.184049, 4.178342, 4.166861, 4.144167, 4.100756, 4.021817,
      3.884852, 3.662169, 3.331386, 2.893934, 2.388069, 1.877097, 1.418051,
      1.040351, 0.747549, 0.529083, 0.370239, 0.256844, 0.176983, 0.121304,
      0.082791, 0.056318, 0.038211, 0.025871, 0.017486, 4.188770, 4.188732,
      4.188628, 4.188352, 4.187671, 4.186115, 4.182830, 4.176234, 4.163261,
      4.138284, 4.092055, 4.009206, 3.867171, 3.638731, 3.302580, 2.861651,
      2.355385, 1.846979, 1.392364, 1.019841, 0.731849, 0.517409, 0.361743,
      0.250766, 0.172684, 0.118295, 0.080706, 0.054883, 0.037230, 0.025204,
      0.017035, 4.188759, 4.188702, 4.188551, 4.188171, 4.187294, 4.185421,
      4.181657, 4.174292, 4.160089, 4.133434, 4.084980, 3.998932, 3.852801,
      3.619743, 3.279339, 2.835771, 2.329266, 1.822929, 1.372041, 1.003734,
      0.719559, 0.508296, 0.355130, 0.246037, 0.169346, 0.115966, 0.079096,
      0.053783, 0.036482, 0.024699, 0.016694, 4.188742, 4.188659, 4.188449,
      4.187958, 4.186900, 4.184765, 4.180606, 4.172596, 4.157440, 4.129551,
      4.079183, 3.990499, 3.841031, 3.604270, 3.260519, 2.814871, 2.308170,
      1.803653, 1.355971, 0.991032, 0.709899, 0.501150, 0.349948, 0.242337,
      0.166741, 0.114156, 0.077855, 0.052940, 0.035912, 0.024316, 0.016437,
      4.188719, 4.188603, 4.188330, 4.187736, 4.186534, 4.184200, 4.179711,
      4.171172, 4.155254, 4.126372, 4.074457, 3.983648, 3.831433, 3.591609,
      3.245083, 2.797662, 2.290945, 1.788288, 1.343237, 0.981003, 0.702295,
      0.495533, 0.345879, 0.239437, 0.164709, 0.112756, 0.076902, 0.052295,
      0.035478, 0.024023, 0.016239, 4.188688, 4.188536, 4.188204, 4.187532,
      4.186227, 4.183725, 4.178948, 4.169962, 4.153461, 4.123737, 4.070508,
      3.977891, 3.823388, 3.580958, 3.232035, 2.783281, 2.277011, 1.776032,
      1.333144, 0.973094, 0.696303, 0.491107, 0.342676, 0.237173, 0.163143,
      0.111689, 0.076180, 0.051808, 0.035151, 0.023802, 0.016089};
  const double yb[] = {
      4.188790,   4.188791,  4.188791,   4.188793,  4.188798,   4.188814,
      4.188859,   4.188986,  4.189328,   4.190189,  4.192213,   4.196874,
      4.208210,   4.236983,  4.307724,   4.473512,  4.852754,   5.723574,
      7.838600,   13.880005, 40.362527,  -1,        -1,         -1,
      -1,         -1,        -1,         -1,        -1,         -1,
      -1,         4.188790,  4.188791,   4.188791,  4.188793,   4.188798,
      4.188813,   4.188858,  4.188982,   4.189319,  4.190165,   4.192156,
      4.196738,   4.207879,  4.236133,   4.305531,  4.467899,   4.838139,
      5.683061,   7.710538,  13.356740,  36.482501, -1,         -1,
      -1,         -1,        -1,         -1,        -1,         -1,
      -1,         -1,        4.188790,   4.188791,  4.188791,   4.188793,
      4.188798,   4.188812,  4.188854,   4.188973,  4.189292,   4.190095,
      4.191984,   4.196332,  4.206887,   4.233594,  4.298997,   4.451212,
      4.795122,   5.566006,  7.352764,   11.994360, 28.085852,  261.834153,
      -1,         -1,        -1,         -1,        -1,         -1,
      -1,         -1,        -1,         4.188790,  4.188791,   4.188791,
      4.188792,   4.188797,  4.188810,   4.188848,  4.188956,   4.189246,
      4.189978,   4.191699,  4.195657,   4.205243,  4.229397,   4.288214,
      4.424093,   4.726265,  5.384525,   6.831926,  10.241985,  19.932261,
      69.581522,  -1,        -1,         -1,        -1,         -1,
      -1,         -1,        -1,         -1,        4.188790,   4.188791,
      4.188791,   4.188792,  4.188796,   4.188807,  4.188840,   4.188933,
      4.189183,   4.189814,  4.191300,   4.194716,  4.202957,   4.223593,
      4.273478,   4.387310,  4.635278,   5.155725,  6.228070,   8.494834,
      13.840039,  30.707995, 217.685066, -1,        -1,         -1,
      -1,         -1,        -1,         -1,        -1,         4.188790,
      4.188791,   4.188791,  4.188792,   4.188795,  4.188803,   4.188829,
      4.188903,   4.189101,  4.189604,   4.190789,  4.193514,   4.200048,
      4.216255,   4.254956,  4.342131,   4.526936,  4.897901,   5.610205,
      6.966144,   9.704274,  16.182908,  37.778925, 387.192994, -1,
      -1,         -1,        -1,         -1,        -1,         -1,
      4.188790,   4.188790,  4.188791,   4.188791,  4.188793,   4.188799,
      4.188817,   4.188866,  4.189002,   4.189348,  4.190168,   4.192054,
      4.196535,   4.207468,  4.233117,   4.289818,  4.406055,   4.627980,
      5.025468,   5.719284,  6.973164,   9.454673,  15.165237,  32.669841,
      175.505441, -1,        -1,         -1,        -1,         -1,
      -1,         4.188790,  4.188790,   4.188790,  4.188791,   4.188791,
      4.188794,   4.188801,  4.188823,   4.188885,  4.189047,   4.189439,
      4.190344,   4.192444,  4.197336,   4.208277,  4.231803,   4.277545,
      4.359611,   4.499274,  4.738728,   5.168746,  5.973516,   7.554064,
      10.974866,  20.015747, 59.729701,  -1,        -1,         -1,
      -1,         -1,        4.188790,   4.188790,  4.188790,   4.188790,
      4.188789,   4.188788,  4.188784,   4.188774,  4.188751,   4.188701,
      4.188602,   4.188390,  4.187803,   4.185972,  4.180908,   4.169592,
      4.145768,   4.102670,  4.041148,   3.980771,  3.961901,   4.039620,
      4.292076,   4.858676,  6.044956,   8.672140,  15.704344,  48.437802,
      -1,         -1,        -1,         4.188790,  4.188790,   4.188790,
      4.188789,   4.188787,  4.188781,   4.188764,  4.188718,   4.188599,
      4.188311,   4.187661,  4.186201,   4.182644,  4.173501,   4.151495,
      4.104610,   4.014334,  3.863341,   3.650600,  3.398722,   3.141206,
      2.906174,   2.713737,  2.580237,   2.524103,  2.574058,   2.785372,
      3.278275,   4.350631,  6.897568,   14.924070, 4.188790,   4.188790,
      4.188790,   4.188788,  4.188784,   4.188773,  4.188742,   4.188656,
      4.188430,   4.187878,  4.186617,   4.183786,  4.177000,   4.160053,
      4.120473,   4.038061,  3.886243,   3.645077,  3.322103,   2.951900,
      2.573084,   2.212134,  1.883264,   1.592189,  1.339766,   1.124235,
      0.942582,   0.791354,  0.667141,   0.566827,  0.487862};
  const double slo = 3, sinc = -0.2;
  const double blor = 0, bincr = 0.2;
  const double blob = 0, bincb = 0.1;
  const int snum = 31, bnumr = 16, bnumb = 11;
  double x[4], y[4], z[4];
  int sindx, bindx, i, j;
  double ans;
  if (step < 0 || a < 0)
    return -1;
  if (step == 0 && b >= 0 && b < 1)
    return -1;
  if (step == 0)
    return 0;
  step = log(step / a);
  b /= a;
  sindx = (int)((step - slo) / sinc);
  for (i = 0; i < 4; i++)
    x[i] = slo + (sindx - 1 + i) * sinc;
  z[0] = (step - x[1]) * (step - x[2]) * (step - x[3]) /
         (-6.0 * sinc * sinc * sinc);
  z[1] = (step - x[0]) * (step - x[2]) * (step - x[3]) /
         (2.0 * sinc * sinc * sinc);
  z[2] = (step - x[0]) * (step - x[1]) * (step - x[3]) /
         (-2.0 * sinc * sinc * sinc);
  z[3] = (step - x[0]) * (step - x[1]) * (step - x[2]) /
         (6.0 * sinc * sinc * sinc);
  if (b < 0)
    for (ans = i = 0; i < 4; i++) {
      if (sindx - 1 + i >= snum)
        ans += z[i] * 2.0 * 3.14159265358979323846 * exp(2.0 * x[i]);
      else if (sindx - 1 + i < 0)
        ans += z[i] * 4.0 * 3.14159265358979323846 / 3.0;
      else
        ans += z[i] * yi[sindx - 1 + i];
    }
  else if (b < 1.0) {
    bindx = (int)((b - blob) / bincb);
    if (bindx < 1)
      bindx = 1;
    else if (bindx + 2 >= bnumb)
      bindx = bnumb - 3;
    while (sindx + 3 >= snum ||
           (sindx > 0 && yb[(bindx - 1) * snum + sindx + 3] < 0))
      sindx--;
    for (i = 0; i < 4; i++)
      x[i] = slo + (sindx - 1 + i) * sinc;
    z[0] = (step - x[1]) * (step - x[2]) * (step - x[3]) /
           (-6.0 * sinc * sinc * sinc);
    z[1] = (step - x[0]) * (step - x[2]) * (step - x[3]) /
           (2.0 * sinc * sinc * sinc);
    z[2] = (step - x[0]) * (step - x[1]) * (step - x[3]) /
           (-2.0 * sinc * sinc * sinc);
    z[3] = (step - x[0]) * (step - x[1]) * (step - x[2]) /
           (6.0 * sinc * sinc * sinc);
    for (j = 0; j < 4; j++)
      for (y[j] = i = 0; i < 4; i++) {
        if (sindx - 1 + i >= snum)
          y[j] += z[i] * yb[(bindx - 1 + j) * snum];
        else if (sindx - 1 + i < 0)
          y[j] += z[i] * 4.0 * 3.14159265358979323846 / 3.0;
        else
          y[j] += z[i] * yb[(bindx - 1 + j) * snum + sindx - 1 + i];
      }
    for (j = 0; j < 4; j++)
      x[j] = blob + (bindx - 1 + j) * bincb;
    z[0] =
        (b - x[1]) * (b - x[2]) * (b - x[3]) / (-6.0 * bincb * bincb * bincb);
    z[1] = (b - x[0]) * (b - x[2]) * (b - x[3]) / (2.0 * bincb * bincb * bincb);
    z[2] =
        (b - x[0]) * (b - x[1]) * (b - x[3]) / (-2.0 * bincb * bincb * bincb);
    z[3] = (b - x[0]) * (b - x[1]) * (b - x[2]) / (6.0 * bincb * bincb * bincb);
    ans = z[0] * y[0] + z[1] * y[1] + z[2] * y[2] + z[3] * y[3];
  } else {
    b = log(b);
    bindx = (int)((b - blor) / bincr);
    if (bindx < 1)
      bindx = 1;
    else if (bindx + 2 >= bnumr)
      bindx = bnumr - 3;
    for (j = 0; j < 4; j++)
      for (y[j] = i = 0; i < 4; i++) {
        if (sindx - 1 + i >= snum && b == 0)
          y[j] += z[i] * 2.0 * 3.14159265358979323846 * exp(x[i]) *
                  (1.0 + exp(x[i]));
        else if (sindx - 1 + i >= snum)
          y[j] += z[i] * 2.0 * 3.14159265358979323846 * exp(2.0 * x[i]) *
                  exp(b) / (exp(b) - 1.0);
        else if (sindx - 1 + i < 0)
          y[j] += z[i] * 4.0 * 3.14159265358979323846 / 3.0;
        else
          y[j] += z[i] * yr[(bindx - 1 + j) * snum + sindx - 1 + i];
      }
    for (j = 0; j < 4; j++)
      x[j] = blor + (bindx - 1 + j) * bincr;
    z[0] =
        (b - x[1]) * (b - x[2]) * (b - x[3]) / (-6.0 * bincr * bincr * bincr);
    z[1] = (b - x[0]) * (b - x[2]) * (b - x[3]) / (2.0 * bincr * bincr * bincr);
    z[2] =
        (b - x[0]) * (b - x[1]) * (b - x[3]) / (-2.0 * bincr * bincr * bincr);
    z[3] = (b - x[0]) * (b - x[1]) * (b - x[2]) / (6.0 * bincr * bincr * bincr);
    ans = z[0] * y[0] + z[1] * y[1] + z[2] * y[2] + z[3] * y[3];
  }
  return ans * a * a * a;
}


x86 assembly (clang, -O0):
<numrxnrate>:
push   %rbp
mov    %rsp,%rbp
sub    $0xbc0,%rsp
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
lea    -0xad0(%rbp),%rdi
lea    0x2fb8(%rip),%rsi
mov    $0xaa8,%edx
call   1030 <memcpy@plt>
movsd  0x1eae(%rip),%xmm0
movsd  %xmm0,-0xad8(%rbp)
ff
movsd  0x1e96(%rip),%xmm0
movsd  %xmm0,-0xae0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xae8(%rbp)
ff
movsd  0x1e73(%rip),%xmm0
movsd  %xmm0,-0xaf0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xaf8(%rbp)
ff
movsd  0x1e50(%rip),%xmm0
movsd  %xmm0,-0xb00(%rbp)
ff
movl   $0x1f,-0xb04(%rbp)
movl   $0x10,-0xb08(%rbp)
movl   $0xb,-0xb0c(%rbp)
xorps  %xmm0,%xmm0
ucomisd -0x10(%rbp),%xmm0
ja     11f2 <numrxnrate+0xc2>
xorps  %xmm0,%xmm0
ucomisd -0x18(%rbp),%xmm0
jbe    1204 <numrxnrate+0xd4>
movsd  0x1e86(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    20fc <numrxnrate+0xfcc>
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1253 <numrxnrate+0x123>
jp     1253 <numrxnrate+0x123>
movsd  -0x20(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1253 <numrxnrate+0x123>
movsd  0x1dea(%rip),%xmm0
ucomisd -0x20(%rbp),%xmm0
jbe    1253 <numrxnrate+0x123>
movsd  0x1e37(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    20fc <numrxnrate+0xfcc>
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1278 <numrxnrate+0x148>
jp     1278 <numrxnrate+0x148>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    20fc <numrxnrate+0xfcc>
movsd  -0x10(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
call   1050 <log@plt>
movsd  %xmm0,-0x10(%rbp)
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0x1d6c(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1d58(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0xb74(%rbp)
movl   $0x0,-0xb7c(%rbp)
cmpl   $0x4,-0xb7c(%rbp)
jge    132c <numrxnrate+0x1fc>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0x1d18(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1d14(%rip),%xmm1
addsd  %xmm1,%xmm0
movslq -0xb7c(%rbp),%rax
movsd  %xmm0,-0xb30(%rbp,%rax,8)
ff ff
mov    -0xb7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb7c(%rbp)
jmp    12d0 <numrxnrate+0x1a0>
movsd  -0x10(%rbp),%xmm0
subsd  -0xb28(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1cdd(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb70(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1c92(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb68(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1c47(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb60(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1bfc(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb58(%rbp)
ff
xorps  %xmm0,%xmm0
ucomisd -0x20(%rbp),%xmm0
jbe    15b7 <numrxnrate+0x487>
movl   $0x0,-0xb7c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb88(%rbp)
ff
cmpl   $0x4,-0xb7c(%rbp)
jge    15b2 <numrxnrate+0x482>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cmp    $0x1f,%eax
jl     14f1 <numrxnrate+0x3c1>
movslq -0xb7c(%rbp),%rax
movsd  0x1bc9(%rip),%xmm0
mulsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
movsd  0x1ba8(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xb90(%rbp)
ff
movslq -0xb7c(%rbp),%rax
movsd  0x1b9d(%rip),%xmm0
mulsd  -0xb30(%rbp,%rax,8),%xmm0
ff ff
call   1040 <exp@plt>
movaps %xmm0,%xmm2
movsd  -0xb90(%rbp),%xmm0
ff
movsd  -0xb88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb88(%rbp)
ff
jmp    1599 <numrxnrate+0x469>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cmp    $0x0,%eax
jge    154e <numrxnrate+0x41e>
movslq -0xb7c(%rbp),%rax
movsd  0x1b38(%rip),%xmm0
mulsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
movsd  0x1b1f(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1ae3(%rip),%xmm1
divsd  %xmm1,%xmm0
addsd  -0xb88(%rbp),%xmm0
ff
movsd  %xmm0,-0xb88(%rbp)
ff
jmp    1594 <numrxnrate+0x464>
movslq -0xb7c(%rbp),%rax
movsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
movslq %eax,%rcx
lea    0x1b19(%rip),%rax
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xb88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb88(%rbp)
ff
jmp    1599 <numrxnrate+0x469>
jmp    159e <numrxnrate+0x46e>
mov    -0xb7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb7c(%rbp)
jmp    145b <numrxnrate+0x32b>
jmp    20e0 <numrxnrate+0xfb0>
movsd  0x1a61(%rip),%xmm0
ucomisd -0x20(%rbp),%xmm0
jbe    1ba6 <numrxnrate+0xa76>
movsd  -0x20(%rbp),%xmm0
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x1a22(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0xb78(%rbp)
cmpl   $0x1,-0xb78(%rbp)
jge    1608 <numrxnrate+0x4d8>
movl   $0x1,-0xb78(%rbp)
jmp    1629 <numrxnrate+0x4f9>
mov    -0xb78(%rbp),%eax
add    $0x2,%eax
cmp    $0xb,%eax
jl     1624 <numrxnrate+0x4f4>
movl   $0x8,-0xb78(%rbp)
jmp    1629 <numrxnrate+0x4f9>
jmp    162e <numrxnrate+0x4fe>
mov    -0xb74(%rbp),%ecx
add    $0x3,%ecx
mov    $0x1,%al
cmp    $0x1f,%ecx
mov    %al,-0xb91(%rbp)
jge    1695 <numrxnrate+0x565>
xor    %eax,%eax
cmpl   $0x0,-0xb74(%rbp)
mov    %al,-0xb92(%rbp)
jle    1689 <numrxnrate+0x559>
mov    -0xb78(%rbp),%eax
sub    $0x1,%eax
imul   $0x1f,%eax,%eax
add    -0xb74(%rbp),%eax
add    $0x3,%eax
cltq
xorps  %xmm0,%xmm0
ucomisd -0xad0(%rbp,%rax,8),%xmm0
ff ff
seta   %al
mov    %al,-0xb92(%rbp)
mov    -0xb92(%rbp),%al
mov    %al,-0xb91(%rbp)
mov    -0xb91(%rbp),%al
test   $0x1,%al
jne    16a8 <numrxnrate+0x578>
jmp    16bc <numrxnrate+0x58c>
mov    -0xb74(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xb74(%rbp)
jmp    162e <numrxnrate+0x4fe>
movl   $0x0,-0xb7c(%rbp)
cmpl   $0x4,-0xb7c(%rbp)
jge    1722 <numrxnrate+0x5f2>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0x1922(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x191e(%rip),%xmm1
addsd  %xmm1,%xmm0
movslq -0xb7c(%rbp),%rax
movsd  %xmm0,-0xb30(%rbp,%rax,8)
ff ff
mov    -0xb7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb7c(%rbp)
jmp    16c6 <numrxnrate+0x596>
movsd  -0x10(%rbp),%xmm0
subsd  -0xb28(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x18e7(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb70(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x189c(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb68(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1851(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb60(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x10(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x10(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1806(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb58(%rbp)
ff
movl   $0x0,-0xb80(%rbp)
cmpl   $0x4,-0xb80(%rbp)
jge    19d4 <numrxnrate+0x8a4>
movl   $0x0,-0xb7c(%rbp)
movslq -0xb80(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
cmpl   $0x4,-0xb7c(%rbp)
jge    19bb <numrxnrate+0x88b>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cmp    $0x1f,%eax
jl     18da <numrxnrate+0x7aa>
movslq -0xb7c(%rbp),%rax
movsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
mov    -0xb78(%rbp),%eax
sub    $0x1,%eax
add    -0xb80(%rbp),%eax
imul   $0x1f,%eax,%eax
cltq
movsd  -0xad0(%rbp,%rax,8),%xmm2
ff ff
movslq -0xb80(%rbp),%rax
movsd  -0xb50(%rbp,%rax,8),%xmm1
ff ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
jmp    19a2 <numrxnrate+0x872>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cmp    $0x0,%eax
jge    1940 <numrxnrate+0x810>
movslq -0xb7c(%rbp),%rax
movsd  0x174f(%rip),%xmm0
mulsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
movsd  0x1736(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x16fa(%rip),%xmm1
divsd  %xmm1,%xmm0
movslq -0xb80(%rbp),%rax
addsd  -0xb50(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
jmp    199d <numrxnrate+0x86d>
movslq -0xb7c(%rbp),%rax
movsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
mov    -0xb78(%rbp),%eax
sub    $0x1,%eax
add    -0xb80(%rbp),%eax
imul   $0x1f,%eax,%eax
add    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cltq
movsd  -0xad0(%rbp,%rax,8),%xmm2
ff ff
movslq -0xb80(%rbp),%rax
movsd  -0xb50(%rbp,%rax,8),%xmm1
ff ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
jmp    19a2 <numrxnrate+0x872>
jmp    19a7 <numrxnrate+0x877>
mov    -0xb7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb7c(%rbp)
jmp    1862 <numrxnrate+0x732>
jmp    19c0 <numrxnrate+0x890>
mov    -0xb80(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb80(%rbp)
jmp    1838 <numrxnrate+0x708>
movl   $0x0,-0xb80(%rbp)
cmpl   $0x4,-0xb80(%rbp)
jge    1a35 <numrxnrate+0x905>
mov    -0xb78(%rbp),%eax
sub    $0x1,%eax
add    -0xb80(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0x15fa(%rip),%xmm1
mulsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
addsd  %xmm1,%xmm0
movslq -0xb80(%rbp),%rax
movsd  %xmm0,-0xb30(%rbp,%rax,8)
ff ff
mov    -0xb80(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb80(%rbp)
jmp    19de <numrxnrate+0x8ae>
movsd  -0x20(%rbp),%xmm0
subsd  -0xb28(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x160c(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb70(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x15c1(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb68(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1576(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb60(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x152b(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb58(%rbp)
ff
movsd  -0xb70(%rbp),%xmm0
ff
movsd  -0xb50(%rbp),%xmm2
ff
movsd  -0xb68(%rbp),%xmm1
ff
mulsd  -0xb48(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xb60(%rbp),%xmm1
ff
movsd  -0xb40(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xb58(%rbp),%xmm0
ff
movsd  -0xb38(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb88(%rbp)
ff
jmp    20db <numrxnrate+0xfab>
movsd  -0x20(%rbp),%xmm0
call   1050 <log@plt>
movsd  %xmm0,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x143f(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0xb78(%rbp)
cmpl   $0x1,-0xb78(%rbp)
jge    1bf3 <numrxnrate+0xac3>
movl   $0x1,-0xb78(%rbp)
jmp    1c14 <numrxnrate+0xae4>
mov    -0xb78(%rbp),%eax
add    $0x2,%eax
cmp    $0x10,%eax
jl     1c0f <numrxnrate+0xadf>
movl   $0xd,-0xb78(%rbp)
jmp    1c14 <numrxnrate+0xae4>
movl   $0x0,-0xb80(%rbp)
cmpl   $0x4,-0xb80(%rbp)
jge    1f0e <numrxnrate+0xdde>
movl   $0x0,-0xb7c(%rbp)
movslq -0xb80(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
cmpl   $0x4,-0xb7c(%rbp)
jge    1ef5 <numrxnrate+0xdc5>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cmp    $0x1f,%eax
jl     1d2f <numrxnrate+0xbff>
movsd  -0x20(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1d2f <numrxnrate+0xbff>
jp     1d2f <numrxnrate+0xbff>
movslq -0xb7c(%rbp),%rax
movsd  0x13c4(%rip),%xmm0
mulsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
movsd  0x13a3(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xba8(%rbp)
ff
movslq -0xb7c(%rbp),%rax
movsd  -0xb30(%rbp,%rax,8),%xmm0
ff ff
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xba8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xba0(%rbp)
ff
movslq -0xb7c(%rbp),%rax
movsd  -0xb30(%rbp,%rax,8),%xmm0
ff ff
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xba0(%rbp),%xmm0
ff
movsd  0x131b(%rip),%xmm2
addsd  %xmm1,%xmm2
movslq -0xb80(%rbp),%rax
movsd  -0xb50(%rbp,%rax,8),%xmm1
ff ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
jmp    1edc <numrxnrate+0xdac>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cmp    $0x1f,%eax
jl     1e0b <numrxnrate+0xcdb>
movslq -0xb7c(%rbp),%rax
movsd  0x1302(%rip),%xmm0
mulsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
movsd  0x12e1(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xbc0(%rbp)
ff
movslq -0xb7c(%rbp),%rax
movsd  0x12d6(%rip),%xmm0
mulsd  -0xb30(%rbp,%rax,8),%xmm0
ff ff
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xbc0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xbb8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xbb8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xbb0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0xbb0(%rbp),%xmm0
ff
movsd  0x123b(%rip),%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movslq -0xb80(%rbp),%rax
addsd  -0xb50(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
jmp    1ed7 <numrxnrate+0xda7>
mov    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
cmp    $0x0,%eax
jge    1e71 <numrxnrate+0xd41>
movslq -0xb7c(%rbp),%rax
movsd  0x121e(%rip),%xmm0
mulsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
movsd  0x1205(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x11c9(%rip),%xmm1
divsd  %xmm1,%xmm0
movslq -0xb80(%rbp),%rax
addsd  -0xb50(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
jmp    1ed2 <numrxnrate+0xda2>
movslq -0xb7c(%rbp),%rax
movsd  -0xb70(%rbp,%rax,8),%xmm0
ff ff
mov    -0xb78(%rbp),%eax
sub    $0x1,%eax
add    -0xb80(%rbp),%eax
imul   $0x1f,%eax,%eax
add    -0xb74(%rbp),%eax
sub    $0x1,%eax
add    -0xb7c(%rbp),%eax
movslq %eax,%rcx
lea    0x12e4(%rip),%rax
movsd  (%rax,%rcx,8),%xmm2
movslq -0xb80(%rbp),%rax
movsd  -0xb50(%rbp,%rax,8),%xmm1
ff ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb50(%rbp,%rax,8)
ff ff
jmp    1ed7 <numrxnrate+0xda7>
jmp    1edc <numrxnrate+0xdac>
jmp    1ee1 <numrxnrate+0xdb1>
mov    -0xb7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb7c(%rbp)
jmp    1c48 <numrxnrate+0xb18>
jmp    1efa <numrxnrate+0xdca>
mov    -0xb80(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb80(%rbp)
jmp    1c1e <numrxnrate+0xaee>
movl   $0x0,-0xb80(%rbp)
cmpl   $0x4,-0xb80(%rbp)
jge    1f6f <numrxnrate+0xe3f>
mov    -0xb78(%rbp),%eax
sub    $0x1,%eax
add    -0xb80(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0x10c8(%rip),%xmm1
mulsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
addsd  %xmm1,%xmm0
movslq -0xb80(%rbp),%rax
movsd  %xmm0,-0xb30(%rbp,%rax,8)
ff ff
mov    -0xb80(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xb80(%rbp)
jmp    1f18 <numrxnrate+0xde8>
movsd  -0x20(%rbp),%xmm0
subsd  -0xb28(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1082(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb70(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1047(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb68(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb18(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x100c(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb60(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
subsd  -0xb30(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm1
subsd  -0xb28(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x20(%rbp),%xmm1
subsd  -0xb20(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0xfd1(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb58(%rbp)
ff
movsd  -0xb70(%rbp),%xmm0
ff
movsd  -0xb50(%rbp),%xmm2
ff
movsd  -0xb68(%rbp),%xmm1
ff
mulsd  -0xb48(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0xb60(%rbp),%xmm1
ff
movsd  -0xb40(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xb58(%rbp),%xmm0
ff
movsd  -0xb38(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb88(%rbp)
ff
jmp    20e0 <numrxnrate+0xfb0>
movsd  -0xb88(%rbp),%xmm0
ff
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
add    $0xbc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<numrxnrate>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xd8,%rsp
xorpd  %xmm3,%xmm3
ucomisd %xmm0,%xmm3
movsd  0xebf(%rip),%xmm6
ja     1bf6 <numrxnrate+0xad6>
ucomisd %xmm1,%xmm3
ja     1bf6 <numrxnrate+0xad6>
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm0
setnp  %al
sete   %cl
and    %al,%cl
ucomisd %xmm3,%xmm2
setae  %dl
and    %cl,%dl
movsd  0xe96(%rip),%xmm4
ucomisd %xmm2,%xmm4
seta   %al
and    %dl,%al
jne    1183 <numrxnrate+0x63>
xorpd  %xmm6,%xmm6
jmp    118b <numrxnrate+0x6b>
movsd  0xe75(%rip),%xmm6
ucomisd %xmm3,%xmm0
jne    1197 <numrxnrate+0x77>
jnp    1bf6 <numrxnrate+0xad6>
test   %al,%al
jne    1bf6 <numrxnrate+0xad6>
divsd  %xmm1,%xmm0
movsd  %xmm1,0x28(%rsp)
movapd %xmm2,(%rsp)
call   1040 <log@plt>
movapd (%rsp),%xmm11
movsd  0xe4f(%rip),%xmm1
addsd  %xmm0,%xmm1
divsd  0xe4b(%rip),%xmm1
cvttsd2si %xmm1,%r14d
lea    -0x1(%r14),%ebx
movd   %r14d,%xmm3
movd   %ebx,%xmm1
punpckldq %xmm3,%xmm1
cvtdq2pd %xmm1,%xmm1
movapd 0xea0(%rip),%xmm8
mulpd  %xmm8,%xmm1
movapd 0xea2(%rip),%xmm9
addpd  %xmm9,%xmm1
movapd %xmm1,0xa0(%rsp)
pshufd $0x50,%xmm3,%xmm10
paddd  0xe95(%rip),%xmm10
cvtdq2pd %xmm10,%xmm7
mulpd  %xmm8,%xmm7
addpd  %xmm9,%xmm7
movapd %xmm7,0xb0(%rsp)
divsd  0x28(%rsp),%xmm11
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm3,%xmm4
subpd  %xmm7,%xmm4
movapd %xmm3,%xmm5
subpd  %xmm1,%xmm5
movapd %xmm4,%xmm2
movapd %xmm5,%xmm6
unpckhpd %xmm5,%xmm6
mulsd  %xmm5,%xmm6
unpcklpd %xmm6,%xmm6
mulpd  %xmm4,%xmm6
unpcklpd %xmm4,%xmm4
mulpd  %xmm5,%xmm4
unpckhpd %xmm2,%xmm2
mulpd  %xmm4,%xmm2
divpd  0xe3e(%rip),%xmm2
movapd %xmm2,%xmm4
shufpd $0x1,%xmm2,%xmm4
movapd %xmm4,0x80(%rsp)
divpd  0xe34(%rip),%xmm6
movapd %xmm6,%xmm4
shufpd $0x1,%xmm6,%xmm4
movapd %xmm4,0x90(%rsp)
xorpd  %xmm4,%xmm4
ucomisd %xmm11,%xmm4
jbe    1320 <numrxnrate+0x200>
movd   %xmm10,%ebp
cmp    $0x1f,%ebx
movapd %xmm7,0x10(%rsp)
movapd %xmm6,0x30(%rsp)
movdqa %xmm10,0x50(%rsp)
jl     161d <numrxnrate+0x4fd>
movapd %xmm2,(%rsp)
unpckhpd %xmm2,%xmm2
addsd  %xmm2,%xmm2
mulsd  0xd41(%rip),%xmm2
movapd %xmm2,0xc0(%rsp)
movapd %xmm1,0x40(%rsp)
movapd %xmm1,%xmm0
addsd  %xmm1,%xmm0
call   1030 <exp@plt>
movdqa 0x50(%rsp),%xmm10
mulsd  0xc0(%rsp),%xmm0
jmp    1646 <numrxnrate+0x526>
movsd  0xce0(%rip),%xmm4
ucomisd %xmm11,%xmm4
jbe    16f8 <numrxnrate+0x5d8>
movapd %xmm11,%xmm4
divsd  0xd20(%rip),%xmm4
cvttsd2si %xmm4,%eax
cmp    $0x8,%eax
mov    $0x8,%ecx
cmovl  %eax,%ecx
add    $0xffffffff,%ecx
xor    %r8d,%r8d
test   %eax,%eax
cmovg  %ecx,%r8d
movabs $0x1f00000000,%r11
movslq %r14d,%rax
movslq %r8d,%r10
mov    %r10,%rcx
imul   %r11,%rcx
mov    %rax,%rdi
shl    $0x20,%rdi
add    %rcx,%rdi
mov    %r10d,%ecx
shl    $0x5,%ecx
sub    %r10d,%ecx
lea    (%r14,%rcx,1),%esi
add    $0xffffffff,%esi
movabs $0xffffffff00000000,%rbp
ff ff ff
lea    0x1e03(%rip),%r14
xorpd  %xmm4,%xmm4
jmp    13bd <numrxnrate+0x29d>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0xffffffffffffffff,%rax
add    %rbp,%rdi
add    $0xffffffff,%esi
add    $0xffffffff,%ebx
cmp    $0x1b,%rax
jg     13b0 <numrxnrate+0x290>
test   %rax,%rax
jle    13d6 <numrxnrate+0x2b6>
lea    0x4(%rsi),%ecx
movslq %ecx,%rcx
ucomisd (%r14,%rcx,8),%xmm4
ja     13b0 <numrxnrate+0x290>
lea    0x1(%rbx),%r9d
movd   %ebx,%xmm4
movd   %r9d,%xmm5
punpckldq %xmm5,%xmm4
cvtdq2pd %xmm4,%xmm4
mulpd  %xmm8,%xmm4
addpd  %xmm9,%xmm4
pshufd $0x50,%xmm5,%xmm5
paddd  0xcae(%rip),%xmm5
movapd %xmm4,0xa0(%rsp)
cvtdq2pd %xmm5,%xmm5
mulpd  %xmm8,%xmm5
addpd  %xmm9,%xmm5
movapd %xmm5,0xb0(%rsp)
movapd %xmm0,%xmm1
subsd  %xmm4,%xmm0
movsd  %xmm5,%xmm4
subpd  %xmm4,%xmm3
movapd %xmm3,%xmm2
unpckhpd %xmm3,%xmm2
mulsd  %xmm3,%xmm2
unpckhpd %xmm5,%xmm5
subsd  %xmm5,%xmm1
mulsd  %xmm1,%xmm2
divsd  0xc06(%rip),%xmm2
unpcklpd %xmm0,%xmm0
mulpd  %xmm3,%xmm0
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
divpd  0xc96(%rip),%xmm1
movupd %xmm1,0x88(%rsp)
unpckhpd %xmm0,%xmm0
mulsd  %xmm3,%xmm0
divsd  0xbbd(%rip),%xmm0
movsd  %xmm0,0x98(%rsp)
movsd  0xb93(%rip),%xmm9
movapd %xmm2,%xmm4
mulsd  %xmm9,%xmm4
movsd  0xb8a(%rip),%xmm3
mulsd  %xmm3,%xmm4
movsd  0xb86(%rip),%xmm6
divsd  %xmm6,%xmm4
xorpd  %xmm5,%xmm5
addsd  %xmm5,%xmm4
movapd %xmm1,%xmm10
mulsd  %xmm9,%xmm10
mulsd  %xmm3,%xmm10
divsd  %xmm6,%xmm10
addsd  %xmm4,%xmm10
movapd %xmm1,%xmm7
unpckhpd %xmm1,%xmm7
movapd %xmm7,%xmm8
mulsd  %xmm9,%xmm8
mulsd  %xmm3,%xmm8
divsd  %xmm6,%xmm8
addsd  %xmm10,%xmm8
mulsd  %xmm0,%xmm9
mulsd  %xmm3,%xmm9
divsd  %xmm6,%xmm9
addsd  %xmm8,%xmm9
imul   $0xf8,%r10,%rcx
add    %r14,%rcx
xor    %eax,%eax
nopl   0x0(%rax,%rax,1)
cmp    $0x1f,%ebx
jl     1540 <numrxnrate+0x420>
movsd  (%rcx),%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm5,%xmm3
jmp    155a <numrxnrate+0x43a>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
test   %ebx,%ebx
js     15a4 <numrxnrate+0x484>
movslq %esi,%rbp
movsd  (%r14,%rbp,8),%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm5,%xmm3
cmp    $0x1d,%ebx
jbe    15d0 <numrxnrate+0x4b0>
movsd  (%rcx),%xmm6
mulsd  %xmm1,%xmm6
addsd  %xmm3,%xmm6
movsd  (%rcx),%xmm3
mulsd  %xmm7,%xmm3
addsd  %xmm6,%xmm3
mov    %rcx,%rbp
movsd  0x0(%rbp),%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm3,%xmm6
movsd  %xmm6,0x60(%rsp,%rax,8)
add    $0x1,%rax
add    %r11,%rdi
add    $0xf8,%rcx
add    $0x1f,%esi
cmp    $0x4,%rax
jne    1520 <numrxnrate+0x400>
jmp    18dd <numrxnrate+0x7bd>
movapd %xmm4,%xmm3
cmp    $0x80000000,%r9d
jbe    15d0 <numrxnrate+0x4b0>
movapd %xmm10,%xmm6
cmp    $0xfffffffe,%ebx
jae    15ee <numrxnrate+0x4ce>
movapd %xmm8,%xmm3
movapd %xmm9,%xmm6
cmp    $0xfffffffd,%ebx
jb     1582 <numrxnrate+0x462>
jmp    160e <numrxnrate+0x4ee>
nopl   0x0(%rax)
mov    %rdi,%rdx
sar    $0x1d,%rdx
movsd  (%rdx,%r14,1),%xmm6
mulsd  %xmm1,%xmm6
addsd  %xmm3,%xmm6
cmp    $0x1c,%ebx
jg     1566 <numrxnrate+0x446>
lea    0x2(%rsi),%edx
movslq %edx,%rdx
movsd  (%r14,%rdx,8),%xmm3
mulsd  %xmm7,%xmm3
addsd  %xmm6,%xmm3
mov    %rcx,%rbp
cmp    $0x1b,%ebx
jg     1575 <numrxnrate+0x455>
lea    0x3(%rsi),%edx
movslq %edx,%rdx
lea    (%r14,%rdx,8),%rbp
jmp    1575 <numrxnrate+0x455>
test   %ebx,%ebx
js     1af5 <numrxnrate+0x9d5>
movapd %xmm1,0x40(%rsp)
mov    %ebx,%eax
lea    0xaec(%rip),%rcx
movapd %xmm2,(%rsp)
movapd %xmm2,%xmm0
unpckhpd %xmm2,%xmm0
mulsd  (%rcx,%rax,8),%xmm0
xorpd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
cmp    $0x1e,%r14d
jle    1a9c <numrxnrate+0x97c>
movapd (%rsp),%xmm0
addsd  %xmm0,%xmm0
mulsd  0x9c7(%rip),%xmm0
movapd %xmm0,(%rsp)
movapd 0x40(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm1,0x40(%rsp)
call   1030 <exp@plt>
mulsd  (%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movapd %xmm0,%xmm2
movapd 0x30(%rsp),%xmm6
movapd 0x10(%rsp),%xmm7
cmp    $0x1e,%ebp
jle    1ace <numrxnrate+0x9ae>
movapd %xmm6,%xmm0
unpckhpd %xmm6,%xmm0
addsd  %xmm0,%xmm0
mulsd  0x971(%rip),%xmm0
movapd %xmm0,0x40(%rsp)
movapd %xmm7,%xmm0
addsd  %xmm7,%xmm0
movapd %xmm2,(%rsp)
call   1030 <exp@plt>
movapd 0x30(%rsp),%xmm6
movapd %xmm0,%xmm1
mulsd  0x40(%rsp),%xmm1
addsd  (%rsp),%xmm1
movdqa 0x50(%rsp),%xmm10
jmp    1b6a <numrxnrate+0xa4a>
movapd %xmm11,%xmm0
call   1040 <log@plt>
movapd %xmm0,0x30(%rsp)
divsd  0x910(%rip),%xmm0
cvttsd2si %xmm0,%eax
cmp    $0xd,%eax
mov    $0xd,%r15d
cmovl  %eax,%r15d
add    $0xffffffff,%r15d
xor    %r12d,%r12d
test   %eax,%eax
cmovle %r12d,%r15d
movslq %ebx,%rbx
mov    %r15d,%eax
shl    $0x5,%eax
sub    %r15d,%eax
lea    (%r14,%rax,1),%r13d
add    $0xffffffff,%r13d
lea    0xad7(%rip),%r14
jmp    1769 <numrxnrate+0x649>
nopl   0x0(%rax,%rax,1)
movsd  %xmm1,0x60(%rsp,%r12,8)
add    $0x1,%r12
add    $0x1f,%r13
cmp    $0x4,%r12
je     19af <numrxnrate+0x88f>
movq   $0x0,0x60(%rsp,%r12,8)
xorpd  %xmm1,%xmm1
xor    %ebp,%ebp
jmp    17f0 <numrxnrate+0x6d0>
nopw   0x0(%rax,%rax,1)
movsd  0x80(%rsp,%rbp,8),%xmm0
addsd  %xmm0,%xmm0
mulsd  0x89b(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xa0(%rsp,%rbp,8),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  %xmm1,(%rsp)
call   1030 <exp@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x50(%rsp),%xmm0
call   1030 <exp@plt>
movsd  (%rsp),%xmm1
addsd  0x830(%rip),%xmm0
mulsd  0x10(%rsp),%xmm0
addsd  %xmm0,%xmm1
add    $0x1,%rbp
cmp    $0x4,%rbp
je     1750 <numrxnrate+0x630>
lea    (%rbx,%rbp,1),%rax
cmp    $0x1f,%rax
jl     1810 <numrxnrate+0x6f0>
movapd 0x30(%rsp),%xmm0
ucomisd 0x880(%rip),%xmm0
jne    1810 <numrxnrate+0x6f0>
jnp    1780 <numrxnrate+0x660>
cmp    $0x1f,%rax
jl     18a0 <numrxnrate+0x780>
movsd  0x80(%rsp,%rbp,8),%xmm0
addsd  %xmm0,%xmm0
mulsd  0x801(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xa0(%rsp,%rbp,8),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm1,(%rsp)
call   1030 <exp@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0x30(%rsp),%xmm0
call   1030 <exp@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movapd 0x30(%rsp),%xmm0
call   1030 <exp@plt>
movsd  (%rsp),%xmm1
addsd  0x779(%rip),%xmm0
movsd  0x10(%rsp),%xmm2
divsd  %xmm0,%xmm2
addsd  %xmm2,%xmm1
jmp    17e2 <numrxnrate+0x6c2>
nopw   0x0(%rax,%rax,1)
movsd  0x80(%rsp,%rbp,8),%xmm0
test   %rax,%rax
js     18c0 <numrxnrate+0x7a0>
lea    0x0(%r13,%rbp,1),%eax
cltq
mulsd  (%r14,%rax,8),%xmm0
jmp    17de <numrxnrate+0x6be>
mulsd  0x760(%rip),%xmm0
mulsd  0x760(%rip),%xmm0
divsd  0x760(%rip),%xmm0
jmp    17de <numrxnrate+0x6be>
movd   %r8d,%xmm1
add    $0x1,%r8d
movd   %r8d,%xmm0
punpckldq %xmm1,%xmm0
cvtdq2pd %xmm0,%xmm0
movapd 0x815(%rip),%xmm2
mulpd  %xmm2,%xmm0
xorpd  %xmm3,%xmm3
pshufd $0x50,%xmm1,%xmm1
paddd  0x7e0(%rip),%xmm1
cvtdq2pd %xmm1,%xmm1
addpd  %xmm3,%xmm0
mulpd  %xmm2,%xmm1
addpd  %xmm3,%xmm1
unpcklpd %xmm11,%xmm11
movapd %xmm11,%xmm2
subpd  %xmm0,%xmm2
subpd  %xmm1,%xmm11
movapd %xmm2,%xmm6
movapd %xmm2,%xmm1
mulsd  %xmm11,%xmm1
movapd %xmm11,%xmm3
unpckhpd %xmm11,%xmm3
mulsd  %xmm3,%xmm1
divsd  0x712(%rip),%xmm1
unpckhpd %xmm2,%xmm6
movapd %xmm11,%xmm4
mulsd  %xmm6,%xmm4
mulsd  %xmm3,%xmm4
divsd  0x701(%rip),%xmm4
mulsd  %xmm2,%xmm6
mulsd  %xmm6,%xmm3
divsd  0x6f9(%rip),%xmm3
movsd  %xmm1,0x80(%rsp)
mulsd  %xmm11,%xmm6
divsd  0x6eb(%rip),%xmm6
mulsd  0x68(%rsp),%xmm4
mulsd  0x60(%rsp),%xmm1
movhpd %xmm0,0xa0(%rsp)
jmp    1a7f <numrxnrate+0x95f>
movd   %r15d,%xmm1
add    $0x1,%r15d
movd   %r15d,%xmm0
punpckldq %xmm1,%xmm0
cvtdq2pd %xmm0,%xmm0
movapd 0x713(%rip),%xmm2
mulpd  %xmm2,%xmm0
xorpd  %xmm3,%xmm3
addpd  %xmm3,%xmm0
pshufd $0x50,%xmm1,%xmm1
paddd  0x70a(%rip),%xmm1
cvtdq2pd %xmm1,%xmm1
mulpd  %xmm2,%xmm1
addpd  %xmm3,%xmm1
movapd 0x30(%rsp),%xmm5
unpcklpd %xmm5,%xmm5
movapd %xmm5,%xmm2
subpd  %xmm0,%xmm2
subpd  %xmm1,%xmm5
movapd %xmm2,%xmm6
movapd %xmm2,%xmm1
mulsd  %xmm5,%xmm1
movapd %xmm5,%xmm3
unpckhpd %xmm5,%xmm3
mulsd  %xmm3,%xmm1
divsd  0x618(%rip),%xmm1
unpckhpd %xmm2,%xmm6
movapd %xmm5,%xmm4
mulsd  %xmm6,%xmm4
mulsd  %xmm2,%xmm6
mulsd  %xmm3,%xmm4
divsd  0x604(%rip),%xmm4
shufpd $0x1,%xmm0,%xmm0
mulsd  %xmm6,%xmm3
divsd  0x5fb(%rip),%xmm3
movsd  %xmm1,0x80(%rsp)
mulsd  %xmm5,%xmm6
divsd  0x5ee(%rip),%xmm6
mulsd  0x68(%rsp),%xmm4
mulsd  0x60(%rsp),%xmm1
movapd %xmm0,0xa0(%rsp)
addsd  %xmm4,%xmm1
mulsd  0x70(%rsp),%xmm3
addsd  %xmm1,%xmm3
mulsd  0x78(%rsp),%xmm6
addsd  %xmm3,%xmm6
jmp    1be4 <numrxnrate+0xac4>
movapd 0x30(%rsp),%xmm6
movapd 0x10(%rsp),%xmm7
movapd (%rsp),%xmm2
test   %r14d,%r14d
js     1b22 <numrxnrate+0xa02>
mov    %r14d,%eax
lea    0x664(%rip),%rcx
mulsd  (%rcx,%rax,8),%xmm2
addsd  %xmm1,%xmm2
cmp    $0x1e,%ebp
jg     16ab <numrxnrate+0x58b>
movdqa 0x50(%rsp),%xmm10
test   %ebp,%ebp
js     1b42 <numrxnrate+0xa22>
mov    %ebp,%eax
lea    0x63e(%rip),%rcx
movapd %xmm6,%xmm1
unpckhpd %xmm6,%xmm1
mulsd  (%rcx,%rax,8),%xmm1
addsd  %xmm2,%xmm1
jmp    1b6a <numrxnrate+0xa4a>
movapd %xmm2,%xmm0
unpckhpd %xmm2,%xmm0
mulsd  0x523(%rip),%xmm0
mulsd  0x523(%rip),%xmm0
divsd  0x523(%rip),%xmm0
xorpd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
test   %r14d,%r14d
jns    1ab2 <numrxnrate+0x992>
mulsd  0x4fe(%rip),%xmm2
mulsd  0x4fe(%rip),%xmm2
divsd  0x4fe(%rip),%xmm2
addsd  %xmm1,%xmm2
test   %ebp,%ebp
jns    1ad9 <numrxnrate+0x9b9>
movapd %xmm6,%xmm0
unpckhpd %xmm6,%xmm0
mulsd  0x4d6(%rip),%xmm0
mulsd  0x4d6(%rip),%xmm0
divsd  0x4d6(%rip),%xmm0
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm1
pshufd $0x55,%xmm10,%xmm0
movd   %xmm0,%eax
cmp    $0x1e,%eax
jle    1bb4 <numrxnrate+0xa94>
addsd  %xmm6,%xmm6
mulsd  0x4ab(%rip),%xmm6
movapd %xmm6,0x30(%rsp)
movapd 0x10(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
addsd  %xmm0,%xmm0
movapd %xmm1,(%rsp)
call   1030 <exp@plt>
movapd %xmm0,%xmm6
mulsd  0x30(%rsp),%xmm6
addsd  (%rsp),%xmm6
jmp    1be4 <numrxnrate+0xac4>
test   %eax,%eax
js     1bc8 <numrxnrate+0xaa8>
mov    %eax,%eax
lea    0x55f(%rip),%rcx
mulsd  (%rcx,%rax,8),%xmm6
jmp    1be0 <numrxnrate+0xac0>
mulsd  0x458(%rip),%xmm6
mulsd  0x458(%rip),%xmm6
divsd  0x458(%rip),%xmm6
addsd  %xmm1,%xmm6
movsd  0x28(%rsp),%xmm0
mulsd  %xmm0,%xmm6
mulsd  %xmm0,%xmm6
mulsd  %xmm0,%xmm6
movapd %xmm6,%xmm0
add    $0xd8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@numrxnrate.yi = internal constant [31 x double] [double 0x4010C11C2A023209, double 0x4010C0E6F2E8C048, double 0x4010C07B784662BB, double 0x4010BFA1E3EAF683, double 0x4010BDEE34FC610F, double 0x4010BA9DE8B3B320, double 0x4010B469728A6117, double 0x4010A9426FE718A8, double 0x401095AD106EE30D, double 0x4010737154003255, double 0x40103779207D4E09, double 3.954060e+00, double 0x400E51E4F765FD8B, double 0x400C4B74DDF86E3B, double 0x40096D1958969A0B, double 0x4005CAB4B72C5198, double 0x4001BE10CF5B1C86, double 0x3FFB8DA98676A726, double 0x3FF499ABF3387161, double 9.365620e-01, double 6.681670e-01, double 4.700210e-01, double 3.271020e-01, double 2.258580e-01, double 0x3FC3DBDF8F473040, double 0x3FBB2BD3C3611340, double 7.235500e-02, double 4.918300e-02, double 3.335350e-02, double 2.257600e-02, double 1.525700e-02]
@numrxnrate.yr = internal constant [496 x double] [double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151A437824D, double 0x4010C150DAE3E6C5, double 0x4010C14E3BCD35A8, double 0x4010C146E4C0DF59, double 0x4010C13165D39970, double 0x4010C0F5E41D4B6A, double 0x4010C05814940BBB, double 0x4010BED2CBEA4EBE, double 0x4010BB5A20DDC619, double 0x4010B3BC0A06E9FF, double 0x4010A2795703F2D4, double 0x40107A77E5EAAB04, double 0x4010258C08B75EA6, double 0x400F112E40852B4E, double 0x400D20EC74320104, double 0x400A89185CEE17A0, double 2.945750e+00, double 0x4004874C8FFB8B26, double 0x4001A196D8F4F93C, double 0x3FFDF74ABA387592, double 0x3FF9423FAB10BA62, double 1.322500e+00, double 0x3FF1A5E679463CFB, double 9.168210e-01, double 7.599620e-01, double 6.285370e-01, double 5.189520e-01, double 4.281360e-01, double 4.188790e+00, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C1511DFFC548, double 0x4010C14F0520D131, double 0x4010C14940BBB1F2, double 0x4010C13879C4113C, double 0x4010C10880D801B4, double 0x4010C0841EDE1199, double 0x4010BF2C7325918A, double 0x4010BBEF06B37868, double 0x4010B4ABE6A337A8, double 0x4010A4C9C90C4DEC, double 0x401080DFDEF8487C, double 0x40103063E07A28BB, double 0x400F1EA033E78E19, double 0x400CF968D759EE89, double 0x4009E63065F9591D, double 0x40063049A9973D9F, double 0x4002504AB606B7AA, double 0x3FFD4E831AD2135E, double 0x3FF6D701D9F4D37C, double 0x3FF1660F5E41D4B7, double 8.118910e-01, double 5.957370e-01, double 4.309500e-01, double 3.080260e-01, double 2.179940e-01, double 1.529810e-01, double 1.065690e-01, double 7.376800e-02, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C151A437824D, double 0x4010C15054AC29BF, double 0x4010C14C660A2014, double 0x4010C141A6937D20, double 0x4010C122749F0E4E, double 0x4010C0CA600B0293, double 0x4010BFDC5931CA7D, double 0x4010BD7E889C1B54, double 0x4010B7EF177A7009, double 0x4010ABACB4289119, double 4.141470e+00, double 0x401054ABE6A337A8, double 0x400FA78FABDA0DFE, double 0x400DC766C6DE7642, double 3.355690e+00, double 0x4007062456F75D9A, double 2.353690e+00, double 0x3FFD9D11BE6E6538, double 0x3FF69511DFFC547A, double 0x3FF0D07746887A8D, double 7.680360e-01, double 5.530770e-01, double 3.934960e-01, double 2.771340e-01, double 1.935350e-01, double 1.342030e-01, double 9.251500e-02, double 0x3FB03F3E0370CDC8, double 4.335800e-02, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C1511DFFC548, double 0x4010C14EC204F2AE, double 0x4010C1487768166A, double 0x4010C135DAAD6020, double 4.188480e+00, double 0x4010C06DD69D3027, double 0x4010BEE7C49FD7A1, double 0x4010BB24A6A875D5, double 0x4010B28C36DA87A0, double 0x40109FDD65A14489, double 0x401076FDEB52C9D1, double 0x40101D1287C200C1, double 0x400ECFE718A86D72, double 0x400C60157EED45E9, double 0x4008E1A79FEC99F2, double 0x4004B3FC86CEBBBA, double 0x400071D2E0E30447, double 0x3FF932C83EC892AB, double 0x3FF2CB31C219EB64, double 8.583270e-01, double 6.172230e-01, double 4.381590e-01, double 3.078240e-01, double 2.144400e-01, double 1.483580e-01, double 1.020610e-01, double 6.988500e-02, double 4.767100e-02, double 3.241400e-02, double 0x4010C151E75360D0, double 0x4010C151A437824D, double 0x4010C15054AC29BF, double 0x4010C14CA925FE97, double 0x4010C1422CCB3A26, double 0x4010C1240746455F, double 0x4010C0CE91C8EAC0, double 0x4010BFE586013661, double 0x4010BD8CF398E970, double 0x4010B7F3061C79B3, double 0x4010AB84DB9C7369, double 0x401090C5A8155D5F, double 0x40105699C7BCC294, double 0x400FB7739F340D4E, double 0x400DEA715831F03D, double 0x400B0DDDF43C7D5F, double 0x4007405FF1D81F10, double 0x4002FBE33ACD5B68, double 0x3FFDABCD78C436FC, double 0x3FF66BDC26DCE39B, double 0x3FF085A921CCD962, double 7.465090e-01, double 5.317660e-01, double 3.744420e-01, double 2.612470e-01, double 1.809290e-01, double 1.245570e-01, double 8.533200e-02, double 5.822900e-02, double 3.960400e-02, double 2.686500e-02, double 0x4010C151E75360D0, double 0x4010C1511DFFC548, double 0x4010C14F0520D131, double 0x4010C14940BBB1F2, double 0x4010C13879C4113C, double 4.188510e+00, double 0x4010C08398A65493, double 4.186650e+00, double 0x4010BBAFD976FF3B, double 0x4010B3C792D1287C, double 0x4010A2AD3E920C07, double 0x40107E2FBE33ACD6, double 0x401030642396073E, double 0x400F2B0EA18372E7, double 0x400D0F73C0C1FC8F, double 0x4009F01B003686A5, double 0x400601F85D744F5D, double 0x4001C3076C050BD8, double 0x3FFB79CF9A06A6E3, double 0x3FF492263D816ACF, double 9.396960e-01, double 6.745400e-01, double 4.776210e-01, double 3.346120e-01, double 2.324600e-01, double 1.604150e-01, double 1.101030e-01, double 7.524200e-02, double 5.123600e-02, double 3.478900e-02, double 2.356500e-02, double 0x4010C151A437824D, double 0x4010C15097C80842, double 0x4010C14D72799A20, double 0x4010C14445AA2E3C, double 0x4010C12A0EC74320, double 0x4010C0DFDEF8487C, double 0x4010C0164840E172, double 0x4010BE0FC2EBA27B, double 0x4010B93C89F40A28, double 4.170490e+00, double 4.148460e+00, double 0x4010687BDCF0307F, double 0x40100712A0EC7432, double 0x400EA3A109D0635A, double 0x400C5446F9B994E2, double 0x40091111F0C34C1B, double 0x400515FE542E557E, double 0x4000E0746455EAEE, double 0x3FF9E89656EEFA1E, double 0x3FF344CDFACA361A, double 8.751850e-01, double 6.251900e-01, double 4.408820e-01, double 3.078180e-01, double 2.132350e-01, double 1.468000e-01, double 1.005600e-01, double 6.860800e-02, double 4.665500e-02, double 3.164500e-02, double 2.141500e-02, double 0x4010C151611BA3CA, double 4.188780e+00, double 0x4010C14A90470A81, double 0x4010C13C68661AE7, double 0x4010C113C68661AE, double 0x4010C0A393EE5EEE, double 0x4010BF7B9E060FE4, double 0x4010BCA4B124D09A, double 0x4010B6338B47C73F, double 0x4010A879C4113C68, double 0x40108BE5D9E40C84, double 0x4010511947CFA26A, double 0x400FBE59F2BA9D1F, double 0x400E2EF6F8F04146, double 0x400BBFEB8D823422, double 0x40086696A26E5471, double 0x400463CA7503B81B, double 0x400037281FD9BA1B, double 0x3FF8C0ABF76A2F49, double 0x3FF251BB4916CA47, double 0x3FEA83D35EB7457C, double 5.898660e-01, double 4.147740e-01, double 2.888950e-01, double 1.997280e-01, double 1.372730e-01, double 9.390300e-02, double 0x3FB061E92923E5B8, double 4.347800e-02, double 2.946700e-02, double 1.993100e-02, double 0x4010C150DAE3E6C5, double 0x4010C14DF8B15726, double 0x4010C1465E892253, double 0x4010C13059641F64, double 0x4010C0F2BECEDD48, double 0x4010C04D551D68C7, double 0x4010BEABFFCDAB19, double 0x4010BADFB506DD6A, double 0x4010B2A8869C66D3, double 0x4010A1A5CA29845E, double 0x40107EE9DD7ECBB8, double 4.056910e+00, double 0x400F78E3AC0C62E5, double 0x400DD1950331E3A8, double 0x400B4C12AD81ADEB, double 0x4007E21294573A79, double 2.481620e+00, double 0x3FFF6C471B478423, double 0x3FF7E15B9A5A89B9, double 0x3FF19BC87DB2B346, double 7.939760e-01, double 5.637970e-01, double 3.956150e-01, double 2.750710e-01, double 1.898960e-01, double 1.303590e-01, double 0x3FB6CE5710880D80, double 6.066100e-02, double 4.118700e-02, double 2.789900e-02, double 1.886300e-02, double 0x4010C15011904B3C, double 0x4010C14BDFD2630F, double 4.188720e+00, double 0x4010C11E42E12620, double 0x4010C0C308FEAC43, double 0x4010BFD7E45803CD, double 0x4010BDA661283904, double 0x4010B8D1526D8B1E, double 0x4010AEC99F1AE2DA, double 0x40109A7EF9DB22D1, double 0x40107240746455EB, double 0x40102679CC74B839, double 0x400F40DDC6195465, double 0x400D879CC74B838C, double 3.367270e+00, double 0x4007799F5DFEB8D8, double 0x40036F2B66B6177F, double 0x3FFEA4B5568E820E, double 1.450660e+00, double 0x3FF110DAE3E6C4C6, double 0x3FE89144CBE1EB42, double 5.441430e-01, double 3.812250e-01, double 2.647240e-01, double 1.825580e-01, double 1.252090e-01, double 0x3FB5E39713AD5BEE, double 5.818700e-02, double 3.949000e-02, double 2.674100e-02, double 1.807400e-02, double 0x4010C14EC204F2AE, double 0x4010C148344C37E7, double 0x4010C1361DC93EA3, double 0x4010C1040BFE3B04, double 0x4010C0813CAB81F9, double 0x4010BF42784A9479, double 0x4010BC77574F722E, double 0x4010B69F4906034F, double 0x4010AADD9C27E953, double 0x401093A08398A655, double 0x4010672C94B380CB, double 0x401016573215FCC2, double 0x400F142D490E66CB, double 0x400D4C1F42BB6673, double 0x400AA6ADB402D16C, double 0x400726C6DE76427C, double 0x40031AC3EB7CBB3D, double 0x3FFE0896DD26B724, double 0x3FF6B0563ED0F627, double 0x3FF0A5471715C63B, double 7.475490e-01, double 5.290830e-01, double 3.702390e-01, double 2.568440e-01, double 1.769830e-01, double 1.213040e-01, double 8.279100e-02, double 5.631800e-02, double 3.821100e-02, double 2.587100e-02, double 1.748600e-02, double 4.188770e+00, double 0x4010C142F61ED5AE, double 0x4010C127B2CC7086, double 0x4010C0DF58C08B76, double 0x4010C02CD39DA166, double 0x4010BE94EE392E1F, double 4.182830e+00, double 0x4010B476AF89C5E7, double 0x4010A72DE43ED95A, double 0x40108D9A52263D81, double 0x40105E43AA79BBAE, double 0x4010096D4C33B539, double 0x400EEFF759685122, double 0x400D1C1EFF9F87F0, double 3.302580e+00, double 0x4006E4A9478C868C, double 0x4002D7D41743E964, double 0x3FFD8D39DA16616B, double 0x3FF6471F79420B3D, double 0x3FF05144CBE1EB42, double 7.318490e-01, double 5.174090e-01, double 3.617430e-01, double 2.507660e-01, double 1.726840e-01, double 1.182950e-01, double 8.070600e-02, double 5.488300e-02, double 3.723000e-02, double 2.520400e-02, double 1.703500e-02, double 0x4010C14A0A0F4D7B, double 0x4010C13B18DAC259, double 0x4010C113836A832C, double 0x4010C0AFE60C38F3, double 0x4010BFC9FF92F2B6, double 0x4010BDDF00ABF76A, double 0x4010BA044AE85B9F, double 0x4010B2799A1FD157, double 0x4010A3EE5EEDCC21, double 0x401088A2EC28B2A7, double 4.084980e+00, double 0x400FFDD00F776C48, double 0x400ED28954A7F801, double 0x400CF53BD1676641, double 0x400A3C1615EBFA8F, double 0x4006AFA8B4BF8FCD, double 0x4002A256366D7A57, double 0x3FFD2AB7995EE137, double 0x3FF5F3E1437C5693, double 0x3FF00F4B61FE21D9, double 7.195590e-01, double 5.082960e-01, double 3.551300e-01, double 2.460370e-01, double 1.693460e-01, double 1.159660e-01, double 7.909600e-02, double 5.378300e-02, double 3.648200e-02, double 2.469900e-02, double 1.669400e-02, double 0x4010C145953586CB, double 0x4010C12FD32C625F, double 0x4010C0F8C64FDB0A, double 0x4010C0780FDC1616, double 4.186900e+00, double 0x4010BD330941C821, double 0x4010B8F0C77DD873, double 0x4010B0BD017DAE82, double 4.157440e+00, double 0x401084A90470A809, double 0x40105115592D98BF, double 0x400FEC8ABD5DC400, double 0x400EBA6E75FF609E, double 3.604270e+00, double 0x400A158AFC47E49B, double 0x400684DB163BABA8, double 2.308170e+00, double 0x3FFCDBC33F85510D, double 0x3FF5B20EA5B530CF, double 9.910320e-01, double 7.098990e-01, double 5.011500e-01, double 3.499480e-01, double 2.423370e-01, double 1.667410e-01, double 1.141560e-01, double 0x3FB3EE4E26D4801F, double 5.294000e-02, double 3.591200e-02, double 2.431600e-02, double 1.643700e-02, double 0x4010C13F8DB48909, double 0x4010C1212513B5BF, double 4.188330e+00, double 0x4010C03DDDB1209F, double 0x4010BF02C4D65E46, double 4.184200e+00, double 0x4010B806290EED03, double 0x4010AF47B677F6B2, double 0x40109EFAE7924AF1, double 0x40108167A95C853C, double 0x40104C3E74AFD545, double 0x400FDE82D7B634DB, double 0x400EA6C6583E8577, double 0x400CBB9D7FD82774, double 0x4009F5EE136E71CE, double 0x4006619C9D5A187A, double 0x400253DAF8DF7A4E, double 0x3FFC9CD3E0BD449A, double 0x3FF57DE6149C6F37, double 0x3FEF64606748E475, double 7.022950e-01, double 4.955330e-01, double 3.458790e-01, double 2.394370e-01, double 1.647090e-01, double 1.127560e-01, double 0x3FB3AFD976FF3ADE, double 5.229500e-02, double 3.547800e-02, double 2.402300e-02, double 1.623900e-02, double 0x4010C1376D549731, double 0x4010C10F94C87981, double 0x4010C0B88CA3E7D1, double 0x4010C008637BD05B, double 0x4010BEB24A6A875D, double 0x4010BC226809D495, double 0x4010B73E24FEBD0A, double 0x4010AE0A84BE4042, double 0x40109D24E160D888, double 0x40107EB4E981387A, double 0x401048333FC86CEC, double 0x400FD2B884406C01, double 0x400E964C729F59CD, double 0x400CA5CD4ED2CBEA, double 0x4009DB352A843809, double 0x40064428D434A01B, double 0x400237518B0D0EDC, double 0x3FFC6AA087CA643D, double 0x3FF5548ECD8DBCED, double 9.730940e-01, double 6.963030e-01, double 4.911070e-01, double 3.426760e-01, double 2.371730e-01, double 1.631430e-01, double 1.116890e-01, double 7.618000e-02, double 5.180800e-02, double 3.515100e-02, double 2.380200e-02, double 1.608900e-02]
@__const.numrxnrate.yb = [341 x double] [double 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154434E336A, double 0x4010C158750C1B97, double 0x4010C16440F23897, double 0x4010C1858BC59B80, double 0x4010C1DF3300DE4C, double 0x4010C2C0E7BC3C5C, double 0x4010C4D37C1376D5, double 0x4010C999567DBB17, double 4.208210e+00, double 0x4010F2ABABEAD4F6, double 0x40113B1C0010C6F8, double 0x4011E4E054690DE1, double 0x40136938583621FB, double 0x4016E4F09528F191, double 7.838600e+00, double 0x402BC29003EEA20A, double 0x40442E6748E47560, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154434E336A, double 0x4010C15831F03D14, double 0x4010C163FDD65A14, double 0x4010C1847F562175, double 0x4010C1DCD7060BB3, double 0x4010C2BA9D1F6018, double 0x4010C4C48ADEEBB3, double 0x4010C975AFAF8594, double 0x4010D4DE3B8A19CA, double 0x4010F1CCD9620685, double 0x401138DD1E53A81E, double 0x4011DF20EA5B530D, double 0x40135A411C2A0232, double 0x4016BB7457C0B136, double 0x401ED797460242D0, double 0x402AB6A6A012599F, double 0x40423DC297BFA4C6, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154434E336A, double 0x4010C157EED45E92, double 0x4010C162F166E009, double 0x4010C182235B4EDB, double 0x4010C1D5C31593E6, double 0x4010C2A843808851, double 0x4010C49774256BCA, double 0x4010C90B417CA212, double 0x4010D3DA2F8BDEC6, double 0x4010EF3343FA2AD4, double 0x4011322C45026890, double 0x4011CE0A84BE4042, double 0x40132E3476295209, double 0x4016439713AD5BEE, double 0x401D693AF74CD317, double 0x4027FD1CC100E6B0, double 0x403C15FA658C4BD3, double 0x40705D58B0D0EDC4, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152B0A6FC59, double 0x4010C154003254E7, double 4.188810e+00, double 0x4010C1615EBFA8F8, double 0x4010C17DAE81882B, double 0x4010C1C9B4139863, double 0x4010C28997C3D684, double 0x4010C44CBE1EB420, double 0x4010C85A4F00EF13, double 0x4010D22B3892EE85, double 0x4010EAE70C1333B9, double 0x401127219220FF54, double 0x4011B2456F75D9A1, double 0x4012E7B2031CEAF2, double 0x401589C0EBEDFA44, double 0x401B53E468CAC4B5, double 0x40247BE5753A3EC0, double 0x4033EEA8A82A5615, double 0x40516537A80CF9E4, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152B0A6FC59, double 0x4010C153BD167664, double 0x4010C1569F490603, double 4.188840e+00, double 0x4010C177A7008A69, double 0x4010C1B93037D630, double 0x4010C25E99E94AB2, double 4.191300e+00, double 0x4010C763A1900820, double 0x4010CFD3F5B5FA22, double 0x4010E4F5903A7547, double 0x4011180A9DE8B3B3, double 4.387310e+00, double 0x40128A8650E77920, double 0x40149F765FD8ADAC, double 6.228070e+00, double 0x4020FD5AE1CDE5D2, double 0x402BAE199780BAA6, double 0x403EB53F290ABB45, double 0x406B35EC0F883340, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152B0A6FC59, double 0x4010C15379FA97E1, double 0x4010C15592D98BF8, double 0x4010C15C63AE2542, double 0x4010C16FC9BC7714, double 0x4010C1A3B14A9047, double 0x4010C2278D0CC35D, double 0x4010C35E310DBF05, double 0x4010C62888B545C8, double 0x4010CCD962068555, double 0x4010DD71F36262CC, double 0x401105132F87AD08, double 0x40115E5796BFCA86, double 0x40121B951C5C5719, double 0x401397735C182ECB, double 0x401670D9945B6C37, double 0x401BDD54DA4CE810, double 0x402368969A0AD8A1, double 0x40302ED30F062D41, double 0x4042E3B3D07C84B6, double 0x4078331680E06530, 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 4.188790e+00, double 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154866A11ED, double 0x4010C1593E5FB720, double 0x4010C16616B54E2B, double 0x4010C189BD8383AE, double 0x4010C1E4712E4085, double 0x4010C2BB6672FBA0, double 0x4010C4A9CDC44391, double 0x4010C940789613D3, double 0x4010D4727DCBDDBA, double 0x4010EEB6390C9108, double 0x401128C60CBF2B24, double 0x40119FCCE1C58256, double 4.627980e+00, double 0x40141A14488C60CC, double 0x4016E08BFC2224EE, double 0x401BE4851A869403, double 0x4022E8CAE642BF98, double 0x402E5499F1AE2DA5, double 0x404055BD5992428D, double 0x4065F02C929AA1D7, 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 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C15336DEB95E, double 0x4010C1550CA1CEF2, double 0x4010C15AD106EE31, double 0x4010C16B11C6D1E1, double 0x4010C1958969A0AE, double 0x4010C1FC4C165908, double 0x4010C2E9899BF594, double 0x4010C5100A393EE6, double 0x4010CA1272C94B38, double 0x4010D54690DE0935, double 0x4010ED5DC4007571, double 0x40111C34C1A8AC5C, double 0x4011703DDDB1209F, double 0x4011FF41AEF6F8F0, double 0x4012F4751CE28ED6, double 0x4014ACCBC05D52C1, double 0x4017E4E160D887EC, double 0x401E375C8D9F9054, double 0x4025F321A2E7F6F5, double 0x40340407FED20297, double 0x404DDD66D7A56DE3, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C151A437824D, double 0x4010C15097C80842, double 0x4010C14DF8B15726, double 0x4010C147F1305964, double 0x4010C13AD5BEE3D6, double 0x4010C120E1F7D73D, double 4.188390e+00, double 0x4010C04F6DFC5CDD, double 0x4010BE6F71A7E308, double 0x4010B93FF25E56CD, double 0x4010ADA98676A726, double 0x4010954434E3369C, double 4.102670e+00, double 0x40102A22B3892EE8, double 0x400FD89E774EEBF6, double 0x400FB1F926C7EAE6, double 4.039620e+00, double 0x40112B15F88FC936, double 0x40136F48C2E770BD, double 0x40182E08F2170931, double 8.672140e+00, double 0x402F689FC6DA4485, double 0x40483809E55C0FCB, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C151611BA3CA, double 0x4010C14FCE746CB9, double 0x4010C14B599AA609, double 0x4010C13F4A98AA86, double 0x4010C12018A43BB4, double 0x4010C0D49949E881, double 0x4010C02A3486F04A, double 0x4010BEAB7995EE13, double 0x4010BB07075B3E14, double 0x4010B1AA3F034B0E, double 0x40109B21815A07B3, double 4.104610e+00, double 0x40100EAD9274E22A, double 0x400EE81F53825E14, double 3.650600e+00, double 0x400B309528F190D1, double 0x400921309C7FFDE7, double 0x40073FD82773E250, double 0x4005B5BBBE878FAC, double 0x4004A4534BD76EE7, double 0x4004315CE9E5E248, double 0x400497ABB8800EAE, double 0x400648711D798D8B, double 0x400A39E83E425AEE, double 0x4011670BD017DAE8, double 0x401B971C10D7BE98, double 0x402DD91FB3FA6DF0, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151A437824D, double 0x4010C15097C80842, double 0x4010C14DB59578A3, double 0x4010C145953586CB, double 0x4010C12F09D8C6D6, double 4.188430e+00, double 0x4010C06317268D33, double 0x4010BF1886DF82B2, double 0x4010BC3265ADD9C2, double 4.177000e+00, double 0x4010A3E4EF0281BA, double 0x40107B5D462C343B, double 0x401026F976790321, double 0x400F170691EA78AF, double 0x400D291E215336DF, double 0x400A93AABCD78C43, double 2.951900e+00, double 0x400495AD106EE30D, double 0x4001B2734F82F512, double 0x3FFE21D96E9BBF0E, double 0x3FF9799B2C40D0AB, double 0x3FF56FAE7924AF0C, double 0x3FF1FCDDD6E04C06, double 9.425820e-01, double 7.913540e-01, double 6.671410e-01, double 5.668270e-01, double 4.878620e-01]
define double @numrxnrate(double %0, double %1, double %2) {
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca [341 x double]
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca [4 x double]
%19 = alloca [4 x double]
%20 = alloca [4 x double]
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca double
store double %0, double* %5
store double %1, double* %6
store double %2, double* %7
%26 = bitcast [341 x double]* %8 to i8*
store double 3.000000e+00, double* %9
store double -2.000000e-01, double* %10
store double 0.000000e+00, double* %11
store double 2.000000e-01, double* %12
store double 0.000000e+00, double* %13
store double 1.000000e-01, double* %14
store i32 31, i32* %15
store i32 16, i32* %16
store i32 11, i32* %17
%27 = load double, double* %5
%28 = fcmp olt double %27, 0.000000e+00
br i1 %28, label %32, label %29
29: ; preds = %3
%30 = load double, double* %6
%31 = fcmp olt double %30, 0.000000e+00
br i1 %31, label %32, label %33
32: ; preds = %29, %3
store double -1.000000e+00, double* %4
br label %770
33: ; preds = %29
%34 = load double, double* %5
%35 = fcmp oeq double %34, 0.000000e+00
br i1 %35, label %36, label %43
36: ; preds = %33
%37 = load double, double* %7
%38 = fcmp oge double %37, 0.000000e+00
br i1 %38, label %39, label %43
39: ; preds = %36
%40 = load double, double* %7
%41 = fcmp olt double %40, 1.000000e+00
br i1 %41, label %42, label %43
42: ; preds = %39
store double -1.000000e+00, double* %4
br label %770
43: ; preds = %39, %36, %33
%44 = load double, double* %5
%45 = fcmp oeq double %44, 0.000000e+00
br i1 %45, label %46, label %47
46: ; preds = %43
store double 0.000000e+00, double* %4
br label %770
47: ; preds = %43
%48 = load double, double* %5
%49 = load double, double* %6
%50 = fdiv double %48, %49
%51 = call double @log(double %50)
store double %51, double* %5
%52 = load double, double* %6
%53 = load double, double* %7
%54 = fdiv double %53, %52
store double %54, double* %7
%55 = load double, double* %5
%56 = fsub double %55, 3.000000e+00
%57 = fdiv double %56, -2.000000e-01
%58 = fptosi double %57 to i32
store i32 %58, i32* %21
store i32 0, i32* %23
br label %59
59: ; preds = %72, %47
%60 = load i32, i32* %23
%61 = icmp slt i32 %60, 4
br i1 %61, label %62, label %75
62: ; preds = %59
%63 = load i32, i32* %21
%64 = sub nsw i32 %63, 1
%65 = load i32, i32* %23
%66 = add nsw i32 %64, %65
%67 = sitofp i32 %66 to double
%68 = call double @llvm.fmuladd.f64(double %67, double -2.000000e-01, double 3.000000e+00)
%69 = load i32, i32* %23
%70 = sext i32 %69 to i64
%71 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %70
store double %68, double* %71
br label %72
72: ; preds = %62
%73 = load i32, i32* %23
%74 = add nsw i32 %73, 1
store i32 %74, i32* %23
br label %59
75: ; preds = %59
%76 = load double, double* %5
%77 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%78 = load double, double* %77
%79 = fsub double %76, %78
%80 = load double, double* %5
%81 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%82 = load double, double* %81
%83 = fsub double %80, %82
%84 = fmul double %79, %83
%85 = load double, double* %5
%86 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%87 = load double, double* %86
%88 = fsub double %85, %87
%89 = fmul double %84, %88
%90 = fdiv double %89, 0x3FA89374BC6A7EFC
%91 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 0
store double %90, double* %91
%92 = load double, double* %5
%93 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%94 = load double, double* %93
%95 = fsub double %92, %94
%96 = load double, double* %5
%97 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%98 = load double, double* %97
%99 = fsub double %96, %98
%100 = fmul double %95, %99
%101 = load double, double* %5
%102 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%103 = load double, double* %102
%104 = fsub double %101, %103
%105 = fmul double %100, %104
%106 = fdiv double %105, 0xBF90624DD2F1A9FD
%107 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 1
store double %106, double* %107
%108 = load double, double* %5
%109 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%110 = load double, double* %109
%111 = fsub double %108, %110
%112 = load double, double* %5
%113 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%114 = load double, double* %113
%115 = fsub double %112, %114
%116 = fmul double %111, %115
%117 = load double, double* %5
%118 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%119 = load double, double* %118
%120 = fsub double %117, %119
%121 = fmul double %116, %120
%122 = fdiv double %121, 0x3F90624DD2F1A9FD
%123 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 2
store double %122, double* %123
%124 = load double, double* %5
%125 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%126 = load double, double* %125
%127 = fsub double %124, %126
%128 = load double, double* %5
%129 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%130 = load double, double* %129
%131 = fsub double %128, %130
%132 = fmul double %127, %131
%133 = load double, double* %5
%134 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%135 = load double, double* %134
%136 = fsub double %133, %135
%137 = fmul double %132, %136
%138 = fdiv double %137, 0xBFA89374BC6A7EFC
%139 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 3
store double %138, double* %139
%140 = load double, double* %7
%141 = fcmp olt double %140, 0.000000e+00
br i1 %141, label %142, label %203
142: ; preds = %75
store i32 0, i32* %23
store double 0.000000e+00, double* %25
br label %143
143: ; preds = %199, %142
%144 = load i32, i32* %23
%145 = icmp slt i32 %144, 4
br i1 %145, label %146, label %202
146: ; preds = %143
%147 = load i32, i32* %21
%148 = sub nsw i32 %147, 1
%149 = load i32, i32* %23
%150 = add nsw i32 %148, %149
%151 = icmp sge i32 %150, 31
br i1 %151, label %152, label %167
152: ; preds = %146
%153 = load i32, i32* %23
%154 = sext i32 %153 to i64
%155 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %154
%156 = load double, double* %155
%157 = fmul double %156, 2.000000e+00
%158 = fmul double %157, 0x400921FB54442D18
%159 = load i32, i32* %23
%160 = sext i32 %159 to i64
%161 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %160
%162 = load double, double* %161
%163 = fmul double 2.000000e+00, %162
%164 = call double @exp(double %163)
%165 = load double, double* %25
%166 = call double @llvm.fmuladd.f64(double %158, double %164, double %165)
store double %166, double* %25
br label %198
167: ; preds = %146
%168 = load i32, i32* %21
%169 = sub nsw i32 %168, 1
%170 = load i32, i32* %23
%171 = add nsw i32 %169, %170
%172 = icmp slt i32 %171, 0
br i1 %172, label %173, label %183
173: ; preds = %167
%174 = load i32, i32* %23
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %175
%177 = load double, double* %176
%178 = fmul double %177, 4.000000e+00
%179 = fmul double %178, 0x400921FB54442D18
%180 = fdiv double %179, 3.000000e+00
%181 = load double, double* %25
%182 = fadd double %181, %180
store double %182, double* %25
br label %197
183: ; preds = %167
%184 = load i32, i32* %23
%185 = sext i32 %184 to i64
%186 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %185
%187 = load double, double* %186
%188 = load i32, i32* %21
%189 = sub nsw i32 %188, 1
%190 = load i32, i32* %23
%191 = add nsw i32 %189, %190
%192 = sext i32 %191 to i64
%193 = getelementptr inbounds [31 x double], [31 x double]* @numrxnrate.yi, i64 0, i64 %192
%194 = load double, double* %193
%195 = load double, double* %25
%196 = call double @llvm.fmuladd.f64(double %187, double %194, double %195)
store double %196, double* %25
br label %197
197: ; preds = %183, %173
br label %198
198: ; preds = %197, %152
br label %199
199: ; preds = %198
%200 = load i32, i32* %23
%201 = add nsw i32 %200, 1
store i32 %201, i32* %23
br label %143
202: ; preds = %143
br label %762
203: ; preds = %75
%204 = load double, double* %7
%205 = fcmp olt double %204, 1.000000e+00
br i1 %205, label %206, label %515
206: ; preds = %203
%207 = load double, double* %7
%208 = fsub double %207, 0.000000e+00
%209 = fdiv double %208, 1.000000e-01
%210 = fptosi double %209 to i32
store i32 %210, i32* %22
%211 = load i32, i32* %22
%212 = icmp slt i32 %211, 1
br i1 %212, label %213, label %214
213: ; preds = %206
store i32 1, i32* %22
br label %220
214: ; preds = %206
%215 = load i32, i32* %22
%216 = add nsw i32 %215, 2
%217 = icmp sge i32 %216, 11
br i1 %217, label %218, label %219
218: ; preds = %214
store i32 8, i32* %22
br label %219
219: ; preds = %218, %214
br label %220
220: ; preds = %219, %213
br label %221
221: ; preds = %243, %220
%222 = load i32, i32* %21
%223 = add nsw i32 %222, 3
%224 = icmp sge i32 %223, 31
br i1 %224, label %241, label %225
225: ; preds = %221
%226 = load i32, i32* %21
%227 = icmp sgt i32 %226, 0
br i1 %227, label %228, label %239
228: ; preds = %225
%229 = load i32, i32* %22
%230 = sub nsw i32 %229, 1
%231 = mul nsw i32 %230, 31
%232 = load i32, i32* %21
%233 = add nsw i32 %231, %232
%234 = add nsw i32 %233, 3
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds [341 x double], [341 x double]* %8, i64 0, i64 %235
%237 = load double, double* %236
%238 = fcmp olt double %237, 0.000000e+00
br label %239
239: ; preds = %228, %225
%240 = phi i1 [ false, %225 ], [ %238, %228 ]
br label %241
241: ; preds = %239, %221
%242 = phi i1 [ true, %221 ], [ %240, %239 ]
br i1 %242, label %243, label %246
243: ; preds = %241
%244 = load i32, i32* %21
%245 = add nsw i32 %244, -1
store i32 %245, i32* %21
br label %221
246: ; preds = %241
store i32 0, i32* %23
br label %247
247: ; preds = %260, %246
%248 = load i32, i32* %23
%249 = icmp slt i32 %248, 4
br i1 %249, label %250, label %263
250: ; preds = %247
%251 = load i32, i32* %21
%252 = sub nsw i32 %251, 1
%253 = load i32, i32* %23
%254 = add nsw i32 %252, %253
%255 = sitofp i32 %254 to double
%256 = call double @llvm.fmuladd.f64(double %255, double -2.000000e-01, double 3.000000e+00)
%257 = load i32, i32* %23
%258 = sext i32 %257 to i64
%259 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %258
store double %256, double* %259
br label %260
260: ; preds = %250
%261 = load i32, i32* %23
%262 = add nsw i32 %261, 1
store i32 %262, i32* %23
br label %247
263: ; preds = %247
%264 = load double, double* %5
%265 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%266 = load double, double* %265
%267 = fsub double %264, %266
%268 = load double, double* %5
%269 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%270 = load double, double* %269
%271 = fsub double %268, %270
%272 = fmul double %267, %271
%273 = load double, double* %5
%274 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%275 = load double, double* %274
%276 = fsub double %273, %275
%277 = fmul double %272, %276
%278 = fdiv double %277, 0x3FA89374BC6A7EFC
%279 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 0
store double %278, double* %279
%280 = load double, double* %5
%281 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%282 = load double, double* %281
%283 = fsub double %280, %282
%284 = load double, double* %5
%285 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%286 = load double, double* %285
%287 = fsub double %284, %286
%288 = fmul double %283, %287
%289 = load double, double* %5
%290 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%291 = load double, double* %290
%292 = fsub double %289, %291
%293 = fmul double %288, %292
%294 = fdiv double %293, 0xBF90624DD2F1A9FD
%295 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 1
store double %294, double* %295
%296 = load double, double* %5
%297 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%298 = load double, double* %297
%299 = fsub double %296, %298
%300 = load double, double* %5
%301 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%302 = load double, double* %301
%303 = fsub double %300, %302
%304 = fmul double %299, %303
%305 = load double, double* %5
%306 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%307 = load double, double* %306
%308 = fsub double %305, %307
%309 = fmul double %304, %308
%310 = fdiv double %309, 0x3F90624DD2F1A9FD
%311 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 2
store double %310, double* %311
%312 = load double, double* %5
%313 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%314 = load double, double* %313
%315 = fsub double %312, %314
%316 = load double, double* %5
%317 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%318 = load double, double* %317
%319 = fsub double %316, %318
%320 = fmul double %315, %319
%321 = load double, double* %5
%322 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%323 = load double, double* %322
%324 = fsub double %321, %323
%325 = fmul double %320, %324
%326 = fdiv double %325, 0xBFA89374BC6A7EFC
%327 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 3
store double %326, double* %327
store i32 0, i32* %24
br label %328
328: ; preds = %410, %263
%329 = load i32, i32* %24
%330 = icmp slt i32 %329, 4
br i1 %330, label %331, label %413
331: ; preds = %328
store i32 0, i32* %23
%332 = load i32, i32* %24
%333 = sext i32 %332 to i64
%334 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %333
store double 0.000000e+00, double* %334
br label %335
335: ; preds = %406, %331
%336 = load i32, i32* %23
%337 = icmp slt i32 %336, 4
br i1 %337, label %338, label %409
338: ; preds = %335
%339 = load i32, i32* %21
%340 = sub nsw i32 %339, 1
%341 = load i32, i32* %23
%342 = add nsw i32 %340, %341
%343 = icmp sge i32 %342, 31
br i1 %343, label %344, label %362
344: ; preds = %338
%345 = load i32, i32* %23
%346 = sext i32 %345 to i64
%347 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %346
%348 = load double, double* %347
%349 = load i32, i32* %22
%350 = sub nsw i32 %349, 1
%351 = load i32, i32* %24
%352 = add nsw i32 %350, %351
%353 = mul nsw i32 %352, 31
%354 = sext i32 %353 to i64
%355 = getelementptr inbounds [341 x double], [341 x double]* %8, i64 0, i64 %354
%356 = load double, double* %355
%357 = load i32, i32* %24
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %358
%360 = load double, double* %359
%361 = call double @llvm.fmuladd.f64(double %348, double %356, double %360)
store double %361, double* %359
br label %405
362: ; preds = %338
%363 = load i32, i32* %21
%364 = sub nsw i32 %363, 1
%365 = load i32, i32* %23
%366 = add nsw i32 %364, %365
%367 = icmp slt i32 %366, 0
br i1 %367, label %368, label %381
368: ; preds = %362
%369 = load i32, i32* %23
%370 = sext i32 %369 to i64
%371 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %370
%372 = load double, double* %371
%373 = fmul double %372, 4.000000e+00
%374 = fmul double %373, 0x400921FB54442D18
%375 = fdiv double %374, 3.000000e+00
%376 = load i32, i32* %24
%377 = sext i32 %376 to i64
%378 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %377
%379 = load double, double* %378
%380 = fadd double %379, %375
store double %380, double* %378
br label %404
381: ; preds = %362
%382 = load i32, i32* %23
%383 = sext i32 %382 to i64
%384 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %383
%385 = load double, double* %384
%386 = load i32, i32* %22
%387 = sub nsw i32 %386, 1
%388 = load i32, i32* %24
%389 = add nsw i32 %387, %388
%390 = mul nsw i32 %389, 31
%391 = load i32, i32* %21
%392 = add nsw i32 %390, %391
%393 = sub nsw i32 %392, 1
%394 = load i32, i32* %23
%395 = add nsw i32 %393, %394
%396 = sext i32 %395 to i64
%397 = getelementptr inbounds [341 x double], [341 x double]* %8, i64 0, i64 %396
%398 = load double, double* %397
%399 = load i32, i32* %24
%400 = sext i32 %399 to i64
%401 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %400
%402 = load double, double* %401
%403 = call double @llvm.fmuladd.f64(double %385, double %398, double %402)
store double %403, double* %401
br label %404
404: ; preds = %381, %368
br label %405
405: ; preds = %404, %344
br label %406
406: ; preds = %405
%407 = load i32, i32* %23
%408 = add nsw i32 %407, 1
store i32 %408, i32* %23
br label %335
409: ; preds = %335
br label %410
410: ; preds = %409
%411 = load i32, i32* %24
%412 = add nsw i32 %411, 1
store i32 %412, i32* %24
br label %328
413: ; preds = %328
store i32 0, i32* %24
br label %414
414: ; preds = %427, %413
%415 = load i32, i32* %24
%416 = icmp slt i32 %415, 4
br i1 %416, label %417, label %430
417: ; preds = %414
%418 = load i32, i32* %22
%419 = sub nsw i32 %418, 1
%420 = load i32, i32* %24
%421 = add nsw i32 %419, %420
%422 = sitofp i32 %421 to double
%423 = call double @llvm.fmuladd.f64(double %422, double 1.000000e-01, double 0.000000e+00)
%424 = load i32, i32* %24
%425 = sext i32 %424 to i64
%426 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %425
store double %423, double* %426
br label %427
427: ; preds = %417
%428 = load i32, i32* %24
%429 = add nsw i32 %428, 1
store i32 %429, i32* %24
br label %414
430: ; preds = %414
%431 = load double, double* %7
%432 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%433 = load double, double* %432
%434 = fsub double %431, %433
%435 = load double, double* %7
%436 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%437 = load double, double* %436
%438 = fsub double %435, %437
%439 = fmul double %434, %438
%440 = load double, double* %7
%441 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%442 = load double, double* %441
%443 = fsub double %440, %442
%444 = fmul double %439, %443
%445 = fdiv double %444, 0xBF789374BC6A7EFC
%446 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 0
store double %445, double* %446
%447 = load double, double* %7
%448 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%449 = load double, double* %448
%450 = fsub double %447, %449
%451 = load double, double* %7
%452 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%453 = load double, double* %452
%454 = fsub double %451, %453
%455 = fmul double %450, %454
%456 = load double, double* %7
%457 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%458 = load double, double* %457
%459 = fsub double %456, %458
%460 = fmul double %455, %459
%461 = fdiv double %460, 0x3F60624DD2F1A9FD
%462 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 1
store double %461, double* %462
%463 = load double, double* %7
%464 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%465 = load double, double* %464
%466 = fsub double %463, %465
%467 = load double, double* %7
%468 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%469 = load double, double* %468
%470 = fsub double %467, %469
%471 = fmul double %466, %470
%472 = load double, double* %7
%473 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%474 = load double, double* %473
%475 = fsub double %472, %474
%476 = fmul double %471, %475
%477 = fdiv double %476, 0xBF60624DD2F1A9FD
%478 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 2
store double %477, double* %478
%479 = load double, double* %7
%480 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%481 = load double, double* %480
%482 = fsub double %479, %481
%483 = load double, double* %7
%484 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%485 = load double, double* %484
%486 = fsub double %483, %485
%487 = fmul double %482, %486
%488 = load double, double* %7
%489 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%490 = load double, double* %489
%491 = fsub double %488, %490
%492 = fmul double %487, %491
%493 = fdiv double %492, 0x3F789374BC6A7EFC
%494 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 3
store double %493, double* %494
%495 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 0
%496 = load double, double* %495
%497 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 0
%498 = load double, double* %497
%499 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 1
%500 = load double, double* %499
%501 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 1
%502 = load double, double* %501
%503 = fmul double %500, %502
%504 = call double @llvm.fmuladd.f64(double %496, double %498, double %503)
%505 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 2
%506 = load double, double* %505
%507 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 2
%508 = load double, double* %507
%509 = call double @llvm.fmuladd.f64(double %506, double %508, double %504)
%510 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 3
%511 = load double, double* %510
%512 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 3
%513 = load double, double* %512
%514 = call double @llvm.fmuladd.f64(double %511, double %513, double %509)
store double %514, double* %25
br label %761
515: ; preds = %203
%516 = load double, double* %7
%517 = call double @log(double %516)
store double %517, double* %7
%518 = load double, double* %7
%519 = fsub double %518, 0.000000e+00
%520 = fdiv double %519, 2.000000e-01
%521 = fptosi double %520 to i32
store i32 %521, i32* %22
%522 = load i32, i32* %22
%523 = icmp slt i32 %522, 1
br i1 %523, label %524, label %525
524: ; preds = %515
store i32 1, i32* %22
br label %531
525: ; preds = %515
%526 = load i32, i32* %22
%527 = add nsw i32 %526, 2
%528 = icmp sge i32 %527, 16
br i1 %528, label %529, label %530
529: ; preds = %525
store i32 13, i32* %22
br label %530
530: ; preds = %529, %525
br label %531
531: ; preds = %530, %524
store i32 0, i32* %24
br label %532
532: ; preds = %656, %531
%533 = load i32, i32* %24
%534 = icmp slt i32 %533, 4
br i1 %534, label %535, label %659
535: ; preds = %532
store i32 0, i32* %23
%536 = load i32, i32* %24
%537 = sext i32 %536 to i64
%538 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %537
store double 0.000000e+00, double* %538
br label %539
539: ; preds = %652, %535
%540 = load i32, i32* %23
%541 = icmp slt i32 %540, 4
br i1 %541, label %542, label %655
542: ; preds = %539
%543 = load i32, i32* %21
%544 = sub nsw i32 %543, 1
%545 = load i32, i32* %23
%546 = add nsw i32 %544, %545
%547 = icmp sge i32 %546, 31
br i1 %547, label %548, label %575
548: ; preds = %542
%549 = load double, double* %7
%550 = fcmp oeq double %549, 0.000000e+00
br i1 %550, label %551, label %575
551: ; preds = %548
%552 = load i32, i32* %23
%553 = sext i32 %552 to i64
%554 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %553
%555 = load double, double* %554
%556 = fmul double %555, 2.000000e+00
%557 = fmul double %556, 0x400921FB54442D18
%558 = load i32, i32* %23
%559 = sext i32 %558 to i64
%560 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %559
%561 = load double, double* %560
%562 = call double @exp(double %561)
%563 = fmul double %557, %562
%564 = load i32, i32* %23
%565 = sext i32 %564 to i64
%566 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %565
%567 = load double, double* %566
%568 = call double @exp(double %567)
%569 = fadd double 1.000000e+00, %568
%570 = load i32, i32* %24
%571 = sext i32 %570 to i64
%572 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %571
%573 = load double, double* %572
%574 = call double @llvm.fmuladd.f64(double %563, double %569, double %573)
store double %574, double* %572
br label %651
575: ; preds = %548, %542
%576 = load i32, i32* %21
%577 = sub nsw i32 %576, 1
%578 = load i32, i32* %23
%579 = add nsw i32 %577, %578
%580 = icmp sge i32 %579, 31
br i1 %580, label %581, label %607
581: ; preds = %575
%582 = load i32, i32* %23
%583 = sext i32 %582 to i64
%584 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %583
%585 = load double, double* %584
%586 = fmul double %585, 2.000000e+00
%587 = fmul double %586, 0x400921FB54442D18
%588 = load i32, i32* %23
%589 = sext i32 %588 to i64
%590 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %589
%591 = load double, double* %590
%592 = fmul double 2.000000e+00, %591
%593 = call double @exp(double %592)
%594 = fmul double %587, %593
%595 = load double, double* %7
%596 = call double @exp(double %595)
%597 = fmul double %594, %596
%598 = load double, double* %7
%599 = call double @exp(double %598)
%600 = fsub double %599, 1.000000e+00
%601 = fdiv double %597, %600
%602 = load i32, i32* %24
%603 = sext i32 %602 to i64
%604 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %603
%605 = load double, double* %604
%606 = fadd double %605, %601
store double %606, double* %604
br label %650
607: ; preds = %575
%608 = load i32, i32* %21
%609 = sub nsw i32 %608, 1
%610 = load i32, i32* %23
%611 = add nsw i32 %609, %610
%612 = icmp slt i32 %611, 0
br i1 %612, label %613, label %626
613: ; preds = %607
%614 = load i32, i32* %23
%615 = sext i32 %614 to i64
%616 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %615
%617 = load double, double* %616
%618 = fmul double %617, 4.000000e+00
%619 = fmul double %618, 0x400921FB54442D18
%620 = fdiv double %619, 3.000000e+00
%621 = load i32, i32* %24
%622 = sext i32 %621 to i64
%623 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %622
%624 = load double, double* %623
%625 = fadd double %624, %620
store double %625, double* %623
br label %649
626: ; preds = %607
%627 = load i32, i32* %23
%628 = sext i32 %627 to i64
%629 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 %628
%630 = load double, double* %629
%631 = load i32, i32* %22
%632 = sub nsw i32 %631, 1
%633 = load i32, i32* %24
%634 = add nsw i32 %632, %633
%635 = mul nsw i32 %634, 31
%636 = load i32, i32* %21
%637 = add nsw i32 %635, %636
%638 = sub nsw i32 %637, 1
%639 = load i32, i32* %23
%640 = add nsw i32 %638, %639
%641 = sext i32 %640 to i64
%642 = getelementptr inbounds [496 x double], [496 x double]* @numrxnrate.yr, i64 0, i64 %641
%643 = load double, double* %642
%644 = load i32, i32* %24
%645 = sext i32 %644 to i64
%646 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 %645
%647 = load double, double* %646
%648 = call double @llvm.fmuladd.f64(double %630, double %643, double %647)
store double %648, double* %646
br label %649
649: ; preds = %626, %613
br label %650
650: ; preds = %649, %581
br label %651
651: ; preds = %650, %551
br label %652
652: ; preds = %651
%653 = load i32, i32* %23
%654 = add nsw i32 %653, 1
store i32 %654, i32* %23
br label %539
655: ; preds = %539
br label %656
656: ; preds = %655
%657 = load i32, i32* %24
%658 = add nsw i32 %657, 1
store i32 %658, i32* %24
br label %532
659: ; preds = %532
store i32 0, i32* %24
br label %660
660: ; preds = %673, %659
%661 = load i32, i32* %24
%662 = icmp slt i32 %661, 4
br i1 %662, label %663, label %676
663: ; preds = %660
%664 = load i32, i32* %22
%665 = sub nsw i32 %664, 1
%666 = load i32, i32* %24
%667 = add nsw i32 %665, %666
%668 = sitofp i32 %667 to double
%669 = call double @llvm.fmuladd.f64(double %668, double 2.000000e-01, double 0.000000e+00)
%670 = load i32, i32* %24
%671 = sext i32 %670 to i64
%672 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 %671
store double %669, double* %672
br label %673
673: ; preds = %663
%674 = load i32, i32* %24
%675 = add nsw i32 %674, 1
store i32 %675, i32* %24
br label %660
676: ; preds = %660
%677 = load double, double* %7
%678 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%679 = load double, double* %678
%680 = fsub double %677, %679
%681 = load double, double* %7
%682 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%683 = load double, double* %682
%684 = fsub double %681, %683
%685 = fmul double %680, %684
%686 = load double, double* %7
%687 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%688 = load double, double* %687
%689 = fsub double %686, %688
%690 = fmul double %685, %689
%691 = fdiv double %690, 0xBFA89374BC6A7EFC
%692 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 0
store double %691, double* %692
%693 = load double, double* %7
%694 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%695 = load double, double* %694
%696 = fsub double %693, %695
%697 = load double, double* %7
%698 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%699 = load double, double* %698
%700 = fsub double %697, %699
%701 = fmul double %696, %700
%702 = load double, double* %7
%703 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%704 = load double, double* %703
%705 = fsub double %702, %704
%706 = fmul double %701, %705
%707 = fdiv double %706, 0x3F90624DD2F1A9FD
%708 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 1
store double %707, double* %708
%709 = load double, double* %7
%710 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%711 = load double, double* %710
%712 = fsub double %709, %711
%713 = load double, double* %7
%714 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%715 = load double, double* %714
%716 = fsub double %713, %715
%717 = fmul double %712, %716
%718 = load double, double* %7
%719 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 3
%720 = load double, double* %719
%721 = fsub double %718, %720
%722 = fmul double %717, %721
%723 = fdiv double %722, 0xBF90624DD2F1A9FD
%724 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 2
store double %723, double* %724
%725 = load double, double* %7
%726 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 0
%727 = load double, double* %726
%728 = fsub double %725, %727
%729 = load double, double* %7
%730 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 1
%731 = load double, double* %730
%732 = fsub double %729, %731
%733 = fmul double %728, %732
%734 = load double, double* %7
%735 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0, i64 2
%736 = load double, double* %735
%737 = fsub double %734, %736
%738 = fmul double %733, %737
%739 = fdiv double %738, 0x3FA89374BC6A7EFC
%740 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 3
store double %739, double* %740
%741 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 0
%742 = load double, double* %741
%743 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 0
%744 = load double, double* %743
%745 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 1
%746 = load double, double* %745
%747 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 1
%748 = load double, double* %747
%749 = fmul double %746, %748
%750 = call double @llvm.fmuladd.f64(double %742, double %744, double %749)
%751 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 2
%752 = load double, double* %751
%753 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 2
%754 = load double, double* %753
%755 = call double @llvm.fmuladd.f64(double %752, double %754, double %750)
%756 = getelementptr inbounds [4 x double], [4 x double]* %20, i64 0, i64 3
%757 = load double, double* %756
%758 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 3
%759 = load double, double* %758
%760 = call double @llvm.fmuladd.f64(double %757, double %759, double %755)
store double %760, double* %25
br label %761
761: ; preds = %676, %430
br label %762
762: ; preds = %761, %202
%763 = load double, double* %25
%764 = load double, double* %6
%765 = fmul double %763, %764
%766 = load double, double* %6
%767 = fmul double %765, %766
%768 = load double, double* %6
%769 = fmul double %767, %768
store double %769, double* %4
br label %770
770: ; preds = %762, %46, %42, %32
%771 = load double, double* %4
ret double %771
}

LLVM IR (-O2):
@numrxnrate.yi = internal unnamed_addr constant [31 x double] [double 0x4010C11C2A023209, double 0x4010C0E6F2E8C048, double 0x4010C07B784662BB, double 0x4010BFA1E3EAF683, double 0x4010BDEE34FC610F, double 0x4010BA9DE8B3B320, double 0x4010B469728A6117, double 0x4010A9426FE718A8, double 0x401095AD106EE30D, double 0x4010737154003255, double 0x40103779207D4E09, double 3.954060e+00, double 0x400E51E4F765FD8B, double 0x400C4B74DDF86E3B, double 0x40096D1958969A0B, double 0x4005CAB4B72C5198, double 0x4001BE10CF5B1C86, double 0x3FFB8DA98676A726, double 0x3FF499ABF3387161, double 9.365620e-01, double 6.681670e-01, double 4.700210e-01, double 3.271020e-01, double 2.258580e-01, double 0x3FC3DBDF8F473040, double 0x3FBB2BD3C3611340, double 7.235500e-02, double 4.918300e-02, double 3.335350e-02, double 2.257600e-02, double 1.525700e-02]
@numrxnrate.yr = internal unnamed_addr constant [496 x double] [double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151A437824D, double 0x4010C150DAE3E6C5, double 0x4010C14E3BCD35A8, double 0x4010C146E4C0DF59, double 0x4010C13165D39970, double 0x4010C0F5E41D4B6A, double 0x4010C05814940BBB, double 0x4010BED2CBEA4EBE, double 0x4010BB5A20DDC619, double 0x4010B3BC0A06E9FF, double 0x4010A2795703F2D4, double 0x40107A77E5EAAB04, double 0x4010258C08B75EA6, double 0x400F112E40852B4E, double 0x400D20EC74320104, double 0x400A89185CEE17A0, double 2.945750e+00, double 0x4004874C8FFB8B26, double 0x4001A196D8F4F93C, double 0x3FFDF74ABA387592, double 0x3FF9423FAB10BA62, double 1.322500e+00, double 0x3FF1A5E679463CFB, double 9.168210e-01, double 7.599620e-01, double 6.285370e-01, double 5.189520e-01, double 4.281360e-01, double 4.188790e+00, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C1511DFFC548, double 0x4010C14F0520D131, double 0x4010C14940BBB1F2, double 0x4010C13879C4113C, double 0x4010C10880D801B4, double 0x4010C0841EDE1199, double 0x4010BF2C7325918A, double 0x4010BBEF06B37868, double 0x4010B4ABE6A337A8, double 0x4010A4C9C90C4DEC, double 0x401080DFDEF8487C, double 0x40103063E07A28BB, double 0x400F1EA033E78E19, double 0x400CF968D759EE89, double 0x4009E63065F9591D, double 0x40063049A9973D9F, double 0x4002504AB606B7AA, double 0x3FFD4E831AD2135E, double 0x3FF6D701D9F4D37C, double 0x3FF1660F5E41D4B7, double 8.118910e-01, double 5.957370e-01, double 4.309500e-01, double 3.080260e-01, double 2.179940e-01, double 1.529810e-01, double 1.065690e-01, double 7.376800e-02, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C151A437824D, double 0x4010C15054AC29BF, double 0x4010C14C660A2014, double 0x4010C141A6937D20, double 0x4010C122749F0E4E, double 0x4010C0CA600B0293, double 0x4010BFDC5931CA7D, double 0x4010BD7E889C1B54, double 0x4010B7EF177A7009, double 0x4010ABACB4289119, double 4.141470e+00, double 0x401054ABE6A337A8, double 0x400FA78FABDA0DFE, double 0x400DC766C6DE7642, double 3.355690e+00, double 0x4007062456F75D9A, double 2.353690e+00, double 0x3FFD9D11BE6E6538, double 0x3FF69511DFFC547A, double 0x3FF0D07746887A8D, double 7.680360e-01, double 5.530770e-01, double 3.934960e-01, double 2.771340e-01, double 1.935350e-01, double 1.342030e-01, double 9.251500e-02, double 0x3FB03F3E0370CDC8, double 4.335800e-02, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C1511DFFC548, double 0x4010C14EC204F2AE, double 0x4010C1487768166A, double 0x4010C135DAAD6020, double 4.188480e+00, double 0x4010C06DD69D3027, double 0x4010BEE7C49FD7A1, double 0x4010BB24A6A875D5, double 0x4010B28C36DA87A0, double 0x40109FDD65A14489, double 0x401076FDEB52C9D1, double 0x40101D1287C200C1, double 0x400ECFE718A86D72, double 0x400C60157EED45E9, double 0x4008E1A79FEC99F2, double 0x4004B3FC86CEBBBA, double 0x400071D2E0E30447, double 0x3FF932C83EC892AB, double 0x3FF2CB31C219EB64, double 8.583270e-01, double 6.172230e-01, double 4.381590e-01, double 3.078240e-01, double 2.144400e-01, double 1.483580e-01, double 1.020610e-01, double 6.988500e-02, double 4.767100e-02, double 3.241400e-02, double 0x4010C151E75360D0, double 0x4010C151A437824D, double 0x4010C15054AC29BF, double 0x4010C14CA925FE97, double 0x4010C1422CCB3A26, double 0x4010C1240746455F, double 0x4010C0CE91C8EAC0, double 0x4010BFE586013661, double 0x4010BD8CF398E970, double 0x4010B7F3061C79B3, double 0x4010AB84DB9C7369, double 0x401090C5A8155D5F, double 0x40105699C7BCC294, double 0x400FB7739F340D4E, double 0x400DEA715831F03D, double 0x400B0DDDF43C7D5F, double 0x4007405FF1D81F10, double 0x4002FBE33ACD5B68, double 0x3FFDABCD78C436FC, double 0x3FF66BDC26DCE39B, double 0x3FF085A921CCD962, double 7.465090e-01, double 5.317660e-01, double 3.744420e-01, double 2.612470e-01, double 1.809290e-01, double 1.245570e-01, double 8.533200e-02, double 5.822900e-02, double 3.960400e-02, double 2.686500e-02, double 0x4010C151E75360D0, double 0x4010C1511DFFC548, double 0x4010C14F0520D131, double 0x4010C14940BBB1F2, double 0x4010C13879C4113C, double 4.188510e+00, double 0x4010C08398A65493, double 4.186650e+00, double 0x4010BBAFD976FF3B, double 0x4010B3C792D1287C, double 0x4010A2AD3E920C07, double 0x40107E2FBE33ACD6, double 0x401030642396073E, double 0x400F2B0EA18372E7, double 0x400D0F73C0C1FC8F, double 0x4009F01B003686A5, double 0x400601F85D744F5D, double 0x4001C3076C050BD8, double 0x3FFB79CF9A06A6E3, double 0x3FF492263D816ACF, double 9.396960e-01, double 6.745400e-01, double 4.776210e-01, double 3.346120e-01, double 2.324600e-01, double 1.604150e-01, double 1.101030e-01, double 7.524200e-02, double 5.123600e-02, double 3.478900e-02, double 2.356500e-02, double 0x4010C151A437824D, double 0x4010C15097C80842, double 0x4010C14D72799A20, double 0x4010C14445AA2E3C, double 0x4010C12A0EC74320, double 0x4010C0DFDEF8487C, double 0x4010C0164840E172, double 0x4010BE0FC2EBA27B, double 0x4010B93C89F40A28, double 4.170490e+00, double 4.148460e+00, double 0x4010687BDCF0307F, double 0x40100712A0EC7432, double 0x400EA3A109D0635A, double 0x400C5446F9B994E2, double 0x40091111F0C34C1B, double 0x400515FE542E557E, double 0x4000E0746455EAEE, double 0x3FF9E89656EEFA1E, double 0x3FF344CDFACA361A, double 8.751850e-01, double 6.251900e-01, double 4.408820e-01, double 3.078180e-01, double 2.132350e-01, double 1.468000e-01, double 1.005600e-01, double 6.860800e-02, double 4.665500e-02, double 3.164500e-02, double 2.141500e-02, double 0x4010C151611BA3CA, double 4.188780e+00, double 0x4010C14A90470A81, double 0x4010C13C68661AE7, double 0x4010C113C68661AE, double 0x4010C0A393EE5EEE, double 0x4010BF7B9E060FE4, double 0x4010BCA4B124D09A, double 0x4010B6338B47C73F, double 0x4010A879C4113C68, double 0x40108BE5D9E40C84, double 0x4010511947CFA26A, double 0x400FBE59F2BA9D1F, double 0x400E2EF6F8F04146, double 0x400BBFEB8D823422, double 0x40086696A26E5471, double 0x400463CA7503B81B, double 0x400037281FD9BA1B, double 0x3FF8C0ABF76A2F49, double 0x3FF251BB4916CA47, double 0x3FEA83D35EB7457C, double 5.898660e-01, double 4.147740e-01, double 2.888950e-01, double 1.997280e-01, double 1.372730e-01, double 9.390300e-02, double 0x3FB061E92923E5B8, double 4.347800e-02, double 2.946700e-02, double 1.993100e-02, double 0x4010C150DAE3E6C5, double 0x4010C14DF8B15726, double 0x4010C1465E892253, double 0x4010C13059641F64, double 0x4010C0F2BECEDD48, double 0x4010C04D551D68C7, double 0x4010BEABFFCDAB19, double 0x4010BADFB506DD6A, double 0x4010B2A8869C66D3, double 0x4010A1A5CA29845E, double 0x40107EE9DD7ECBB8, double 4.056910e+00, double 0x400F78E3AC0C62E5, double 0x400DD1950331E3A8, double 0x400B4C12AD81ADEB, double 0x4007E21294573A79, double 2.481620e+00, double 0x3FFF6C471B478423, double 0x3FF7E15B9A5A89B9, double 0x3FF19BC87DB2B346, double 7.939760e-01, double 5.637970e-01, double 3.956150e-01, double 2.750710e-01, double 1.898960e-01, double 1.303590e-01, double 0x3FB6CE5710880D80, double 6.066100e-02, double 4.118700e-02, double 2.789900e-02, double 1.886300e-02, double 0x4010C15011904B3C, double 0x4010C14BDFD2630F, double 4.188720e+00, double 0x4010C11E42E12620, double 0x4010C0C308FEAC43, double 0x4010BFD7E45803CD, double 0x4010BDA661283904, double 0x4010B8D1526D8B1E, double 0x4010AEC99F1AE2DA, double 0x40109A7EF9DB22D1, double 0x40107240746455EB, double 0x40102679CC74B839, double 0x400F40DDC6195465, double 0x400D879CC74B838C, double 3.367270e+00, double 0x4007799F5DFEB8D8, double 0x40036F2B66B6177F, double 0x3FFEA4B5568E820E, double 1.450660e+00, double 0x3FF110DAE3E6C4C6, double 0x3FE89144CBE1EB42, double 5.441430e-01, double 3.812250e-01, double 2.647240e-01, double 1.825580e-01, double 1.252090e-01, double 0x3FB5E39713AD5BEE, double 5.818700e-02, double 3.949000e-02, double 2.674100e-02, double 1.807400e-02, double 0x4010C14EC204F2AE, double 0x4010C148344C37E7, double 0x4010C1361DC93EA3, double 0x4010C1040BFE3B04, double 0x4010C0813CAB81F9, double 0x4010BF42784A9479, double 0x4010BC77574F722E, double 0x4010B69F4906034F, double 0x4010AADD9C27E953, double 0x401093A08398A655, double 0x4010672C94B380CB, double 0x401016573215FCC2, double 0x400F142D490E66CB, double 0x400D4C1F42BB6673, double 0x400AA6ADB402D16C, double 0x400726C6DE76427C, double 0x40031AC3EB7CBB3D, double 0x3FFE0896DD26B724, double 0x3FF6B0563ED0F627, double 0x3FF0A5471715C63B, double 7.475490e-01, double 5.290830e-01, double 3.702390e-01, double 2.568440e-01, double 1.769830e-01, double 1.213040e-01, double 8.279100e-02, double 5.631800e-02, double 3.821100e-02, double 2.587100e-02, double 1.748600e-02, double 4.188770e+00, double 0x4010C142F61ED5AE, double 0x4010C127B2CC7086, double 0x4010C0DF58C08B76, double 0x4010C02CD39DA166, double 0x4010BE94EE392E1F, double 4.182830e+00, double 0x4010B476AF89C5E7, double 0x4010A72DE43ED95A, double 0x40108D9A52263D81, double 0x40105E43AA79BBAE, double 0x4010096D4C33B539, double 0x400EEFF759685122, double 0x400D1C1EFF9F87F0, double 3.302580e+00, double 0x4006E4A9478C868C, double 0x4002D7D41743E964, double 0x3FFD8D39DA16616B, double 0x3FF6471F79420B3D, double 0x3FF05144CBE1EB42, double 7.318490e-01, double 5.174090e-01, double 3.617430e-01, double 2.507660e-01, double 1.726840e-01, double 1.182950e-01, double 8.070600e-02, double 5.488300e-02, double 3.723000e-02, double 2.520400e-02, double 1.703500e-02, double 0x4010C14A0A0F4D7B, double 0x4010C13B18DAC259, double 0x4010C113836A832C, double 0x4010C0AFE60C38F3, double 0x4010BFC9FF92F2B6, double 0x4010BDDF00ABF76A, double 0x4010BA044AE85B9F, double 0x4010B2799A1FD157, double 0x4010A3EE5EEDCC21, double 0x401088A2EC28B2A7, double 4.084980e+00, double 0x400FFDD00F776C48, double 0x400ED28954A7F801, double 0x400CF53BD1676641, double 0x400A3C1615EBFA8F, double 0x4006AFA8B4BF8FCD, double 0x4002A256366D7A57, double 0x3FFD2AB7995EE137, double 0x3FF5F3E1437C5693, double 0x3FF00F4B61FE21D9, double 7.195590e-01, double 5.082960e-01, double 3.551300e-01, double 2.460370e-01, double 1.693460e-01, double 1.159660e-01, double 7.909600e-02, double 5.378300e-02, double 3.648200e-02, double 2.469900e-02, double 1.669400e-02, double 0x4010C145953586CB, double 0x4010C12FD32C625F, double 0x4010C0F8C64FDB0A, double 0x4010C0780FDC1616, double 4.186900e+00, double 0x4010BD330941C821, double 0x4010B8F0C77DD873, double 0x4010B0BD017DAE82, double 4.157440e+00, double 0x401084A90470A809, double 0x40105115592D98BF, double 0x400FEC8ABD5DC400, double 0x400EBA6E75FF609E, double 3.604270e+00, double 0x400A158AFC47E49B, double 0x400684DB163BABA8, double 2.308170e+00, double 0x3FFCDBC33F85510D, double 0x3FF5B20EA5B530CF, double 9.910320e-01, double 7.098990e-01, double 5.011500e-01, double 3.499480e-01, double 2.423370e-01, double 1.667410e-01, double 1.141560e-01, double 0x3FB3EE4E26D4801F, double 5.294000e-02, double 3.591200e-02, double 2.431600e-02, double 1.643700e-02, double 0x4010C13F8DB48909, double 0x4010C1212513B5BF, double 4.188330e+00, double 0x4010C03DDDB1209F, double 0x4010BF02C4D65E46, double 4.184200e+00, double 0x4010B806290EED03, double 0x4010AF47B677F6B2, double 0x40109EFAE7924AF1, double 0x40108167A95C853C, double 0x40104C3E74AFD545, double 0x400FDE82D7B634DB, double 0x400EA6C6583E8577, double 0x400CBB9D7FD82774, double 0x4009F5EE136E71CE, double 0x4006619C9D5A187A, double 0x400253DAF8DF7A4E, double 0x3FFC9CD3E0BD449A, double 0x3FF57DE6149C6F37, double 0x3FEF64606748E475, double 7.022950e-01, double 4.955330e-01, double 3.458790e-01, double 2.394370e-01, double 1.647090e-01, double 1.127560e-01, double 0x3FB3AFD976FF3ADE, double 5.229500e-02, double 3.547800e-02, double 2.402300e-02, double 1.623900e-02, double 0x4010C1376D549731, double 0x4010C10F94C87981, double 0x4010C0B88CA3E7D1, double 0x4010C008637BD05B, double 0x4010BEB24A6A875D, double 0x4010BC226809D495, double 0x4010B73E24FEBD0A, double 0x4010AE0A84BE4042, double 0x40109D24E160D888, double 0x40107EB4E981387A, double 0x401048333FC86CEC, double 0x400FD2B884406C01, double 0x400E964C729F59CD, double 0x400CA5CD4ED2CBEA, double 0x4009DB352A843809, double 0x40064428D434A01B, double 0x400237518B0D0EDC, double 0x3FFC6AA087CA643D, double 0x3FF5548ECD8DBCED, double 9.730940e-01, double 6.963030e-01, double 4.911070e-01, double 3.426760e-01, double 2.371730e-01, double 1.631430e-01, double 1.116890e-01, double 7.618000e-02, double 5.180800e-02, double 3.515100e-02, double 2.380200e-02, double 1.608900e-02]
@__const.numrxnrate.yb = [341 x double] [double 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154434E336A, double 0x4010C158750C1B97, double 0x4010C16440F23897, double 0x4010C1858BC59B80, double 0x4010C1DF3300DE4C, double 0x4010C2C0E7BC3C5C, double 0x4010C4D37C1376D5, double 0x4010C999567DBB17, double 4.208210e+00, double 0x4010F2ABABEAD4F6, double 0x40113B1C0010C6F8, double 0x4011E4E054690DE1, double 0x40136938583621FB, double 0x4016E4F09528F191, double 7.838600e+00, double 0x402BC29003EEA20A, double 0x40442E6748E47560, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154434E336A, double 0x4010C15831F03D14, double 0x4010C163FDD65A14, double 0x4010C1847F562175, double 0x4010C1DCD7060BB3, double 0x4010C2BA9D1F6018, double 0x4010C4C48ADEEBB3, double 0x4010C975AFAF8594, double 0x4010D4DE3B8A19CA, double 0x4010F1CCD9620685, double 0x401138DD1E53A81E, double 0x4011DF20EA5B530D, double 0x40135A411C2A0232, double 0x4016BB7457C0B136, double 0x401ED797460242D0, double 0x402AB6A6A012599F, double 0x40423DC297BFA4C6, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154434E336A, double 0x4010C157EED45E92, double 0x4010C162F166E009, double 0x4010C182235B4EDB, double 0x4010C1D5C31593E6, double 0x4010C2A843808851, double 0x4010C49774256BCA, double 0x4010C90B417CA212, double 0x4010D3DA2F8BDEC6, double 0x4010EF3343FA2AD4, double 0x4011322C45026890, double 0x4011CE0A84BE4042, double 0x40132E3476295209, double 0x4016439713AD5BEE, double 0x401D693AF74CD317, double 0x4027FD1CC100E6B0, double 0x403C15FA658C4BD3, double 0x40705D58B0D0EDC4, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152B0A6FC59, double 0x4010C154003254E7, double 4.188810e+00, double 0x4010C1615EBFA8F8, double 0x4010C17DAE81882B, double 0x4010C1C9B4139863, double 0x4010C28997C3D684, double 0x4010C44CBE1EB420, double 0x4010C85A4F00EF13, double 0x4010D22B3892EE85, double 0x4010EAE70C1333B9, double 0x401127219220FF54, double 0x4011B2456F75D9A1, double 0x4012E7B2031CEAF2, double 0x401589C0EBEDFA44, double 0x401B53E468CAC4B5, double 0x40247BE5753A3EC0, double 0x4033EEA8A82A5615, double 0x40516537A80CF9E4, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152B0A6FC59, double 0x4010C153BD167664, double 0x4010C1569F490603, double 4.188840e+00, double 0x4010C177A7008A69, double 0x4010C1B93037D630, double 0x4010C25E99E94AB2, double 4.191300e+00, double 0x4010C763A1900820, double 0x4010CFD3F5B5FA22, double 0x4010E4F5903A7547, double 0x4011180A9DE8B3B3, double 4.387310e+00, double 0x40128A8650E77920, double 0x40149F765FD8ADAC, double 6.228070e+00, double 0x4020FD5AE1CDE5D2, double 0x402BAE199780BAA6, double 0x403EB53F290ABB45, double 0x406B35EC0F883340, 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 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152B0A6FC59, double 0x4010C15379FA97E1, double 0x4010C15592D98BF8, double 0x4010C15C63AE2542, double 0x4010C16FC9BC7714, double 0x4010C1A3B14A9047, double 0x4010C2278D0CC35D, double 0x4010C35E310DBF05, double 0x4010C62888B545C8, double 0x4010CCD962068555, double 0x4010DD71F36262CC, double 0x401105132F87AD08, double 0x40115E5796BFCA86, double 0x40121B951C5C5719, double 0x401397735C182ECB, double 0x401670D9945B6C37, double 0x401BDD54DA4CE810, double 0x402368969A0AD8A1, double 0x40302ED30F062D41, double 0x4042E3B3D07C84B6, double 0x4078331680E06530, 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 4.188790e+00, double 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C152F3C2DADC, double 0x4010C154866A11ED, double 0x4010C1593E5FB720, double 0x4010C16616B54E2B, double 0x4010C189BD8383AE, double 0x4010C1E4712E4085, double 0x4010C2BB6672FBA0, double 0x4010C4A9CDC44391, double 0x4010C940789613D3, double 0x4010D4727DCBDDBA, double 0x4010EEB6390C9108, double 0x401128C60CBF2B24, double 0x40119FCCE1C58256, double 4.627980e+00, double 0x40141A14488C60CC, double 0x4016E08BFC2224EE, double 0x401BE4851A869403, double 0x4022E8CAE642BF98, double 0x402E5499F1AE2DA5, double 0x404055BD5992428D, double 0x4065F02C929AA1D7, 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 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C1526D8B1DD6, double 0x4010C1526D8B1DD6, double 0x4010C15336DEB95E, double 0x4010C1550CA1CEF2, double 0x4010C15AD106EE31, double 0x4010C16B11C6D1E1, double 0x4010C1958969A0AE, double 0x4010C1FC4C165908, double 0x4010C2E9899BF594, double 0x4010C5100A393EE6, double 0x4010CA1272C94B38, double 0x4010D54690DE0935, double 0x4010ED5DC4007571, double 0x40111C34C1A8AC5C, double 0x4011703DDDB1209F, double 0x4011FF41AEF6F8F0, double 0x4012F4751CE28ED6, double 0x4014ACCBC05D52C1, double 0x4017E4E160D887EC, double 0x401E375C8D9F9054, double 0x4025F321A2E7F6F5, double 0x40340407FED20297, double 0x404DDD66D7A56DE3, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C151A437824D, double 0x4010C15097C80842, double 0x4010C14DF8B15726, double 0x4010C147F1305964, double 0x4010C13AD5BEE3D6, double 0x4010C120E1F7D73D, double 4.188390e+00, double 0x4010C04F6DFC5CDD, double 0x4010BE6F71A7E308, double 0x4010B93FF25E56CD, double 0x4010ADA98676A726, double 0x4010954434E3369C, double 4.102670e+00, double 0x40102A22B3892EE8, double 0x400FD89E774EEBF6, double 0x400FB1F926C7EAE6, double 4.039620e+00, double 0x40112B15F88FC936, double 0x40136F48C2E770BD, double 0x40182E08F2170931, double 8.672140e+00, double 0x402F689FC6DA4485, double 0x40483809E55C0FCB, double -1.000000e+00, double -1.000000e+00, double -1.000000e+00, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151E75360D0, double 0x4010C151611BA3CA, double 0x4010C14FCE746CB9, double 0x4010C14B599AA609, double 0x4010C13F4A98AA86, double 0x4010C12018A43BB4, double 0x4010C0D49949E881, double 0x4010C02A3486F04A, double 0x4010BEAB7995EE13, double 0x4010BB07075B3E14, double 0x4010B1AA3F034B0E, double 0x40109B21815A07B3, double 4.104610e+00, double 0x40100EAD9274E22A, double 0x400EE81F53825E14, double 3.650600e+00, double 0x400B309528F190D1, double 0x400921309C7FFDE7, double 0x40073FD82773E250, double 0x4005B5BBBE878FAC, double 0x4004A4534BD76EE7, double 0x4004315CE9E5E248, double 0x400497ABB8800EAE, double 0x400648711D798D8B, double 0x400A39E83E425AEE, double 0x4011670BD017DAE8, double 0x401B971C10D7BE98, double 0x402DD91FB3FA6DF0, double 4.188790e+00, double 4.188790e+00, double 4.188790e+00, double 0x4010C151A437824D, double 0x4010C15097C80842, double 0x4010C14DB59578A3, double 0x4010C145953586CB, double 0x4010C12F09D8C6D6, double 4.188430e+00, double 0x4010C06317268D33, double 0x4010BF1886DF82B2, double 0x4010BC3265ADD9C2, double 4.177000e+00, double 0x4010A3E4EF0281BA, double 0x40107B5D462C343B, double 0x401026F976790321, double 0x400F170691EA78AF, double 0x400D291E215336DF, double 0x400A93AABCD78C43, double 2.951900e+00, double 0x400495AD106EE30D, double 0x4001B2734F82F512, double 0x3FFE21D96E9BBF0E, double 0x3FF9799B2C40D0AB, double 0x3FF56FAE7924AF0C, double 0x3FF1FCDDD6E04C06, double 9.425820e-01, double 7.913540e-01, double 6.671410e-01, double 5.668270e-01, double 4.878620e-01]
define double @numrxnrate(double %0, double %1, double %2) {
%4 = alloca [4 x double]
%5 = alloca [4 x double]
%6 = alloca [4 x double]
%7 = bitcast [4 x double]* %4 to i8*
%8 = bitcast [4 x double]* %5 to i8*
%9 = bitcast [4 x double]* %6 to i8*
%10 = fcmp olt double %0, 0.000000e+00
%11 = fcmp olt double %1, 0.000000e+00
%12 = or i1 %10, %11
br i1 %12, label %487, label %13
13: ; preds = %3
%14 = fcmp oeq double %0, 0.000000e+00
%15 = fcmp oge double %2, 0.000000e+00
%16 = and i1 %14, %15
%17 = fcmp olt double %2, 1.000000e+00
%18 = and i1 %17, %16
%19 = or i1 %14, %18
%20 = select i1 %18, double -1.000000e+00, double 0.000000e+00
br i1 %19, label %487, label %21
21: ; preds = %13
%22 = fdiv double %0, %1
%23 = tail call double @log(double %22)
%24 = fadd double %23, -3.000000e+00
%25 = fdiv double %24, -2.000000e-01
%26 = fptosi double %25 to i32
%27 = add i32 %26, -1
%28 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%29 = insertelement <2 x i32> poison, i32 %27, i64 0
%30 = insertelement <2 x i32> %29, i32 %26, i64 1
%31 = sitofp <2 x i32> %30 to <2 x double>
%32 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %31, <2 x double> <double -2.000000e-01, double -2.000000e-01>, <2 x double> <double 3.000000e+00, double 3.000000e+00>)
%33 = bitcast [4 x double]* %4 to <2 x double>*
store <2 x double> %32, <2 x double>* %33
%34 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 2
%35 = insertelement <2 x i32> poison, i32 %26, i64 0
%36 = shufflevector <2 x i32> %35, <2 x i32> poison, <2 x i32> zeroinitializer
%37 = add <2 x i32> %36, <i32 1, i32 2>
%38 = sitofp <2 x i32> %37 to <2 x double>
%39 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %38, <2 x double> <double -2.000000e-01, double -2.000000e-01>, <2 x double> <double 3.000000e+00, double 3.000000e+00>)
%40 = bitcast double* %34 to <2 x double>*
store <2 x double> %39, <2 x double>* %40
%41 = fdiv double %2, %1
%42 = insertelement <2 x double> poison, double %23, i64 0
%43 = shufflevector <2 x double> %42, <2 x double> poison, <2 x i32> zeroinitializer
%44 = fsub <2 x double> %43, %39
%45 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 0
%46 = fsub <2 x double> %43, %32
%47 = shufflevector <2 x double> %44, <2 x double> undef, <2 x i32> zeroinitializer
%48 = fmul <2 x double> %47, %46
%49 = shufflevector <2 x double> %44, <2 x double> undef, <2 x i32> <i32 1, i32 1>
%50 = fmul <2 x double> %48, %49
%51 = fdiv <2 x double> %50, <double 0xBF90624DD2F1A9FD, double 0x3FA89374BC6A7EFC>
%52 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 1
%53 = shufflevector <2 x double> %51, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%54 = bitcast [4 x double]* %6 to <2 x double>*
store <2 x double> %53, <2 x double>* %54
%55 = shufflevector <2 x double> %46, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%56 = fmul <2 x double> %55, %46
%57 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 2
%58 = shufflevector <2 x double> %56, <2 x double> undef, <2 x i32> zeroinitializer
%59 = fmul <2 x double> %44, %58
%60 = fdiv <2 x double> %59, <double 0xBFA89374BC6A7EFC, double 0x3F90624DD2F1A9FD>
%61 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 3
%62 = shufflevector <2 x double> %60, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%63 = bitcast double* %57 to <2 x double>*
store <2 x double> %62, <2 x double>* %63
%64 = fcmp olt double %41, 0.000000e+00
br i1 %64, label %65, label %169
65: ; preds = %21
%66 = icmp sgt i32 %27, 30
br i1 %66, label %67, label %75
67: ; preds = %65
%68 = extractelement <2 x double> %51, i64 1
%69 = fmul double %68, 2.000000e+00
%70 = fmul double %69, 0x400921FB54442D18
%71 = extractelement <2 x double> %32, i64 0
%72 = fmul double %71, 2.000000e+00
%73 = tail call double @exp(double %72)
%74 = tail call double @llvm.fmuladd.f64(double %70, double %73, double 0.000000e+00)
br label %89
75: ; preds = %65
%76 = icmp slt i32 %27, 0
br i1 %76, label %77, label %83
77: ; preds = %75
%78 = extractelement <2 x double> %51, i64 1
%79 = fmul double %78, 4.000000e+00
%80 = fmul double %79, 0x400921FB54442D18
%81 = fdiv double %80, 3.000000e+00
%82 = fadd double %81, 0.000000e+00
br label %92
83: ; preds = %75
%84 = zext i32 %27 to i64
%85 = getelementptr inbounds [31 x double], [31 x double]* @numrxnrate.yi, i64 0, i64 %84
%86 = load double, double* %85
%87 = extractelement <2 x double> %51, i64 1
%88 = tail call double @llvm.fmuladd.f64(double %87, double %86, double 0.000000e+00)
br label %89
89: ; preds = %67, %83
%90 = phi double [ %74, %67 ], [ %88, %83 ]
%91 = icmp sgt i32 %26, 30
br i1 %91, label %107, label %92
92: ; preds = %77, %89
%93 = phi double [ %82, %77 ], [ %90, %89 ]
%94 = icmp slt i32 %26, 0
br i1 %94, label %101, label %95
95: ; preds = %92
%96 = zext i32 %26 to i64
%97 = getelementptr inbounds [31 x double], [31 x double]* @numrxnrate.yi, i64 0, i64 %96
%98 = load double, double* %97
%99 = extractelement <2 x double> %51, i64 0
%100 = tail call double @llvm.fmuladd.f64(double %99, double %98, double %93)
br label %115
101: ; preds = %92
%102 = extractelement <2 x double> %51, i64 0
%103 = fmul double %102, 4.000000e+00
%104 = fmul double %103, 0x400921FB54442D18
%105 = fdiv double %104, 3.000000e+00
%106 = fadd double %93, %105
br label %119
107: ; preds = %89
%108 = extractelement <2 x double> %51, i64 0
%109 = fmul double %108, 2.000000e+00
%110 = fmul double %109, 0x400921FB54442D18
%111 = extractelement <2 x double> %32, i64 1
%112 = fmul double %111, 2.000000e+00
%113 = tail call double @exp(double %112)
%114 = tail call double @llvm.fmuladd.f64(double %110, double %113, double %90)
br label %115
115: ; preds = %107, %95
%116 = phi double [ %114, %107 ], [ %100, %95 ]
%117 = extractelement <2 x i32> %37, i64 0
%118 = icmp sgt i32 %117, 30
br i1 %118, label %135, label %119
119: ; preds = %101, %115
%120 = phi double [ %106, %101 ], [ %116, %115 ]
%121 = extractelement <2 x i32> %37, i64 0
%122 = icmp slt i32 %121, 0
br i1 %122, label %129, label %123
123: ; preds = %119
%124 = zext i32 %121 to i64
%125 = getelementptr inbounds [31 x double], [31 x double]* @numrxnrate.yi, i64 0, i64 %124
%126 = load double, double* %125
%127 = extractelement <2 x double> %60, i64 1
%128 = tail call double @llvm.fmuladd.f64(double %127, double %126, double %120)
br label %143
129: ; preds = %119
%130 = extractelement <2 x double> %60, i64 1
%131 = fmul double %130, 4.000000e+00
%132 = fmul double %131, 0x400921FB54442D18
%133 = fdiv double %132, 3.000000e+00
%134 = fadd double %120, %133
br label %143
135: ; preds = %115
%136 = extractelement <2 x double> %60, i64 1
%137 = fmul double %136, 2.000000e+00
%138 = fmul double %137, 0x400921FB54442D18
%139 = extractelement <2 x double> %39, i64 0
%140 = fmul double %139, 2.000000e+00
%141 = tail call double @exp(double %140)
%142 = tail call double @llvm.fmuladd.f64(double %138, double %141, double %116)
br label %143
143: ; preds = %135, %129, %123
%144 = phi double [ %142, %135 ], [ %134, %129 ], [ %128, %123 ]
%145 = extractelement <2 x i32> %37, i64 1
%146 = icmp sgt i32 %145, 30
br i1 %146, label %161, label %147
147: ; preds = %143
%148 = icmp slt i32 %145, 0
br i1 %148, label %155, label %149
149: ; preds = %147
%150 = zext i32 %145 to i64
%151 = getelementptr inbounds [31 x double], [31 x double]* @numrxnrate.yi, i64 0, i64 %150
%152 = load double, double* %151
%153 = extractelement <2 x double> %60, i64 0
%154 = tail call double @llvm.fmuladd.f64(double %153, double %152, double %144)
br label %482
155: ; preds = %147
%156 = extractelement <2 x double> %60, i64 0
%157 = fmul double %156, 4.000000e+00
%158 = fmul double %157, 0x400921FB54442D18
%159 = fdiv double %158, 3.000000e+00
%160 = fadd double %144, %159
br label %482
161: ; preds = %143
%162 = extractelement <2 x double> %60, i64 0
%163 = fmul double %162, 2.000000e+00
%164 = fmul double %163, 0x400921FB54442D18
%165 = extractelement <2 x double> %39, i64 1
%166 = fmul double %165, 2.000000e+00
%167 = tail call double @exp(double %166)
%168 = tail call double @llvm.fmuladd.f64(double %164, double %167, double %144)
br label %482
169: ; preds = %21
%170 = fcmp olt double %41, 1.000000e+00
br i1 %170, label %171, label %361
171: ; preds = %169
%172 = fdiv double %41, 1.000000e-01
%173 = fptosi double %172 to i32
%174 = icmp slt i32 %173, 8
%175 = select i1 %174, i32 %173, i32 8
%176 = add i32 %175, -1
%177 = icmp sgt i32 %173, 0
%178 = select i1 %177, i32 %176, i32 0
%179 = mul nsw i32 %178, 31
%180 = add i32 %179, 3
%181 = sext i32 %26 to i64
br label %182
182: ; preds = %194, %171
%183 = phi i64 [ %195, %194 ], [ %181, %171 ]
%184 = icmp sgt i64 %183, 27
br i1 %184, label %194, label %185
185: ; preds = %182
%186 = icmp sgt i64 %183, 0
br i1 %186, label %187, label %196
187: ; preds = %185
%188 = trunc i64 %183 to i32
%189 = add i32 %180, %188
%190 = sext i32 %189 to i64
%191 = getelementptr inbounds [341 x double], [341 x double]* @__const.numrxnrate.yb, i64 0, i64 %190
%192 = load double, double* %191
%193 = fcmp olt double %192, 0.000000e+00
br i1 %193, label %194, label %196
194: ; preds = %182, %187
%195 = add nsw i64 %183, -1
br label %182
196: ; preds = %185, %187
%197 = trunc i64 %183 to i32
%198 = add i32 %197, -1
%199 = insertelement <2 x i32> poison, i32 %198, i64 0
%200 = insertelement <2 x i32> %199, i32 %197, i64 1
%201 = sitofp <2 x i32> %200 to <2 x double>
%202 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %201, <2 x double> <double -2.000000e-01, double -2.000000e-01>, <2 x double> <double 3.000000e+00, double 3.000000e+00>)
%203 = bitcast [4 x double]* %4 to <2 x double>*
store <2 x double> %202, <2 x double>* %203
%204 = insertelement <2 x i32> poison, i32 %197, i64 0
%205 = shufflevector <2 x i32> %204, <2 x i32> poison, <2 x i32> zeroinitializer
%206 = add <2 x i32> %205, <i32 1, i32 2>
%207 = sitofp <2 x i32> %206 to <2 x double>
%208 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %207, <2 x double> <double -2.000000e-01, double -2.000000e-01>, <2 x double> <double 3.000000e+00, double 3.000000e+00>)
%209 = bitcast double* %34 to <2 x double>*
store <2 x double> %208, <2 x double>* %209
%210 = shufflevector <2 x double> %208, <2 x double> %202, <2 x i32> <i32 0, i32 3>
%211 = fsub <2 x double> %43, %210
%212 = shufflevector <2 x double> %211, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%213 = fmul <2 x double> %212, %211
%214 = extractelement <2 x double> %213, i64 0
%215 = extractelement <2 x double> %208, i64 1
%216 = fsub double %23, %215
%217 = fmul double %214, %216
%218 = fdiv double %217, 0x3FA89374BC6A7EFC
%219 = extractelement <2 x double> %202, i64 0
%220 = fsub double %23, %219
%221 = insertelement <2 x double> poison, double %220, i64 0
%222 = shufflevector <2 x double> %221, <2 x double> poison, <2 x i32> zeroinitializer
%223 = fmul <2 x double> %211, %222
%224 = insertelement <2 x double> poison, double %216, i64 0
%225 = shufflevector <2 x double> %224, <2 x double> poison, <2 x i32> zeroinitializer
%226 = fmul <2 x double> %225, %223
%227 = fdiv <2 x double> %226, <double 0xBF90624DD2F1A9FD, double 0x3F90624DD2F1A9FD>
%228 = bitcast double* %52 to <2 x double>*
store <2 x double> %227, <2 x double>* %228
%229 = shufflevector <2 x double> %223, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%230 = fmul <2 x double> %211, %229
%231 = extractelement <2 x double> %230, i64 0
%232 = fdiv double %231, 0xBFA89374BC6A7EFC
store double %232, double* %61
%233 = sext i32 %178 to i64
%234 = icmp sgt i32 %198, 30
%235 = icmp slt i32 %198, 0
%236 = icmp ugt i32 %198, 29
%237 = fmul double %218, 4.000000e+00
%238 = fmul double %237, 0x400921FB54442D18
%239 = fdiv double %238, 3.000000e+00
%240 = fadd double %239, 0.000000e+00
%241 = icmp ugt i32 %197, -2147483648
%242 = icmp sgt i32 %198, 28
%243 = extractelement <2 x double> %227, i64 0
%244 = fmul double %243, 4.000000e+00
%245 = fmul double %244, 0x400921FB54442D18
%246 = fdiv double %245, 3.000000e+00
%247 = fadd double %240, %246
%248 = icmp ult i32 %198, -2
%249 = icmp sgt i32 %198, 27
%250 = extractelement <2 x double> %227, i64 1
%251 = fmul double %250, 4.000000e+00
%252 = fmul double %251, 0x400921FB54442D18
%253 = fdiv double %252, 3.000000e+00
%254 = fadd double %247, %253
%255 = icmp ult i32 %198, -3
%256 = fmul double %232, 4.000000e+00
%257 = fmul double %256, 0x400921FB54442D18
%258 = fdiv double %257, 3.000000e+00
%259 = fadd double %254, %258
br label %260
260: ; preds = %196, %313
%261 = phi i64 [ 0, %196 ], [ %315, %313 ]
%262 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 %261
%263 = add nsw i64 %261, %233
%264 = mul nsw i64 %263, 31
%265 = trunc i64 %264 to i32
%266 = add i32 %198, %265
%267 = getelementptr inbounds [341 x double], [341 x double]* @__const.numrxnrate.yb, i64 0, i64 %264
br i1 %234, label %268, label %271
268: ; preds = %260
%269 = load double, double* %267
%270 = tail call double @llvm.fmuladd.f64(double %218, double %269, double 0.000000e+00)
br label %278
271: ; preds = %260
br i1 %235, label %277, label %272
272: ; preds = %271
%273 = sext i32 %266 to i64
%274 = getelementptr inbounds [341 x double], [341 x double]* @__const.numrxnrate.yb, i64 0, i64 %273
%275 = load double, double* %274
%276 = tail call double @llvm.fmuladd.f64(double %218, double %275, double 0.000000e+00)
br i1 %236, label %278, label %282
277: ; preds = %271
br i1 %241, label %290, label %282
278: ; preds = %272, %268
%279 = phi double [ %270, %268 ], [ %276, %272 ]
%280 = load double, double* %267
%281 = tail call double @llvm.fmuladd.f64(double %243, double %280, double %279)
br label %291
282: ; preds = %272, %277
%283 = phi double [ %240, %277 ], [ %276, %272 ]
%284 = add i64 %183, %264
%285 = shl i64 %284, 32
%286 = ashr exact i64 %285, 32
%287 = getelementptr inbounds [341 x double], [341 x double]* @__const.numrxnrate.yb, i64 0, i64 %286
%288 = load double, double* %287
%289 = tail call double @llvm.fmuladd.f64(double %243, double %288, double %283)
br i1 %242, label %291, label %295
290: ; preds = %277
br i1 %248, label %302, label %295
291: ; preds = %282, %278
%292 = phi double [ %281, %278 ], [ %289, %282 ]
%293 = load double, double* %267
%294 = tail call double @llvm.fmuladd.f64(double %250, double %293, double %292)
br label %308
295: ; preds = %282, %290
%296 = phi double [ %247, %290 ], [ %289, %282 ]
%297 = add i32 %266, 2
%298 = sext i32 %297 to i64
%299 = getelementptr inbounds [341 x double], [341 x double]* @__const.numrxnrate.yb, i64 0, i64 %298
%300 = load double, double* %299
%301 = tail call double @llvm.fmuladd.f64(double %250, double %300, double %296)
br i1 %249, label %308, label %303
302: ; preds = %290
br i1 %255, label %313, label %303
303: ; preds = %295, %302
%304 = phi double [ %254, %302 ], [ %301, %295 ]
%305 = add i32 %266, 3
%306 = sext i32 %305 to i64
%307 = getelementptr inbounds [341 x double], [341 x double]* @__const.numrxnrate.yb, i64 0, i64 %306
br label %308
308: ; preds = %295, %291, %303
%309 = phi double* [ %307, %303 ], [ %267, %291 ], [ %267, %295 ]
%310 = phi double [ %304, %303 ], [ %294, %291 ], [ %301, %295 ]
%311 = load double, double* %309
%312 = tail call double @llvm.fmuladd.f64(double %232, double %311, double %310)
br label %313
313: ; preds = %308, %302
%314 = phi double [ %259, %302 ], [ %312, %308 ]
store double %314, double* %262
%315 = add nuw nsw i64 %261, 1
%316 = icmp eq i64 %315, 4
br i1 %316, label %317, label %260
317: ; preds = %313
%318 = add nsw i32 %178, 1
%319 = insertelement <2 x i32> poison, i32 %178, i64 1
%320 = insertelement <2 x i32> %319, i32 %318, i64 0
%321 = sitofp <2 x i32> %320 to <2 x double>
%322 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %321, <2 x double> <double 1.000000e-01, double 1.000000e-01>, <2 x double> zeroinitializer)
%323 = extractelement <2 x double> %322, i64 1
store double %323, double* %28
%324 = insertelement <2 x i32> poison, i32 %178, i64 0
%325 = shufflevector <2 x i32> %324, <2 x i32> poison, <2 x i32> zeroinitializer
%326 = add nsw <2 x i32> %325, <i32 2, i32 3>
%327 = sitofp <2 x i32> %326 to <2 x double>
%328 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %327, <2 x double> <double 1.000000e-01, double 1.000000e-01>, <2 x double> zeroinitializer)
%329 = insertelement <2 x double> poison, double %41, i64 0
%330 = shufflevector <2 x double> %329, <2 x double> poison, <2 x i32> zeroinitializer
%331 = fsub <2 x double> %330, %322
%332 = extractelement <2 x double> %331, i64 0
%333 = fsub <2 x double> %330, %328
%334 = extractelement <2 x double> %333, i64 0
%335 = fmul <2 x double> %331, %333
%336 = extractelement <2 x double> %335, i64 0
%337 = extractelement <2 x double> %333, i64 1
%338 = fmul double %336, %337
%339 = fdiv double %338, 0xBF789374BC6A7EFC
store double %339, double* %45
%340 = extractelement <2 x double> %331, i64 1
%341 = fmul double %334, %340
%342 = fmul double %337, %341
%343 = fdiv double %342, 0x3F60624DD2F1A9FD
%344 = fmul double %332, %340
%345 = fmul double %337, %344
%346 = fdiv double %345, 0xBF60624DD2F1A9FD
%347 = fmul double %334, %344
%348 = fdiv double %347, 0x3F789374BC6A7EFC
%349 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%350 = load double, double* %349
%351 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 1
%352 = load double, double* %351
%353 = fmul double %343, %352
%354 = tail call double @llvm.fmuladd.f64(double %339, double %350, double %353)
%355 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 2
%356 = load double, double* %355
%357 = tail call double @llvm.fmuladd.f64(double %346, double %356, double %354)
%358 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 3
%359 = load double, double* %358
%360 = tail call double @llvm.fmuladd.f64(double %348, double %359, double %357)
br label %482
361: ; preds = %169
%362 = tail call double @log(double %41)
%363 = fdiv double %362, 2.000000e-01
%364 = fptosi double %363 to i32
%365 = icmp slt i32 %364, 13
%366 = select i1 %365, i32 %364, i32 13
%367 = add i32 %366, -1
%368 = icmp sgt i32 %364, 0
%369 = select i1 %368, i32 %367, i32 0
%370 = fcmp oeq double %362, 0.000000e+00
%371 = sext i32 %27 to i64
br label %372
372: ; preds = %361, %434
%373 = phi i64 [ 0, %361 ], [ %435, %434 ]
%374 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 %373
store double 0.000000e+00, double* %374
%375 = trunc i64 %373 to i32
%376 = add nsw i32 %369, %375
%377 = mul nsw i32 %376, 31
%378 = add i32 %27, %377
br label %379
379: ; preds = %372, %430
%380 = phi double [ 0.000000e+00, %372 ], [ %431, %430 ]
%381 = phi i64 [ 0, %372 ], [ %432, %430 ]
%382 = add nsw i64 %381, %371
%383 = icmp sgt i64 %382, 30
%384 = select i1 %383, i1 %370, i1 false
br i1 %384, label %385, label %397
385: ; preds = %379
%386 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 %381
%387 = load double, double* %386
%388 = fmul double %387, 2.000000e+00
%389 = fmul double %388, 0x400921FB54442D18
%390 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 %381
%391 = load double, double* %390
%392 = tail call double @exp(double %391)
%393 = fmul double %389, %392
%394 = tail call double @exp(double %391)
%395 = fadd double %394, 1.000000e+00
%396 = tail call double @llvm.fmuladd.f64(double %393, double %395, double %380)
br label %430
397: ; preds = %379
br i1 %383, label %398, label %414
398: ; preds = %397
%399 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 %381
%400 = load double, double* %399
%401 = fmul double %400, 2.000000e+00
%402 = fmul double %401, 0x400921FB54442D18
%403 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 %381
%404 = load double, double* %403
%405 = fmul double %404, 2.000000e+00
%406 = tail call double @exp(double %405)
%407 = fmul double %402, %406
%408 = tail call double @exp(double %362)
%409 = fmul double %407, %408
%410 = tail call double @exp(double %362)
%411 = fadd double %410, -1.000000e+00
%412 = fdiv double %409, %411
%413 = fadd double %380, %412
br label %430
414: ; preds = %397
%415 = icmp slt i64 %382, 0
%416 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 %381
%417 = load double, double* %416
br i1 %415, label %418, label %423
418: ; preds = %414
%419 = fmul double %417, 4.000000e+00
%420 = fmul double %419, 0x400921FB54442D18
%421 = fdiv double %420, 3.000000e+00
%422 = fadd double %380, %421
br label %430
423: ; preds = %414
%424 = trunc i64 %381 to i32
%425 = add i32 %378, %424
%426 = sext i32 %425 to i64
%427 = getelementptr inbounds [496 x double], [496 x double]* @numrxnrate.yr, i64 0, i64 %426
%428 = load double, double* %427
%429 = tail call double @llvm.fmuladd.f64(double %417, double %428, double %380)
br label %430
430: ; preds = %385, %418, %423, %398
%431 = phi double [ %396, %385 ], [ %422, %418 ], [ %429, %423 ], [ %413, %398 ]
%432 = add nuw nsw i64 %381, 1
%433 = icmp eq i64 %432, 4
br i1 %433, label %434, label %379
434: ; preds = %430
store double %431, double* %374
%435 = add nuw nsw i64 %373, 1
%436 = icmp eq i64 %435, 4
br i1 %436, label %437, label %372
437: ; preds = %434
%438 = add nsw i32 %369, 1
%439 = insertelement <2 x i32> poison, i32 %369, i64 1
%440 = insertelement <2 x i32> %439, i32 %438, i64 0
%441 = sitofp <2 x i32> %440 to <2 x double>
%442 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %441, <2 x double> <double 2.000000e-01, double 2.000000e-01>, <2 x double> zeroinitializer)
%443 = shufflevector <2 x double> %442, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%444 = bitcast [4 x double]* %4 to <2 x double>*
store <2 x double> %443, <2 x double>* %444
%445 = insertelement <2 x i32> poison, i32 %369, i64 0
%446 = shufflevector <2 x i32> %445, <2 x i32> poison, <2 x i32> zeroinitializer
%447 = add nsw <2 x i32> %446, <i32 2, i32 3>
%448 = sitofp <2 x i32> %447 to <2 x double>
%449 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %448, <2 x double> <double 2.000000e-01, double 2.000000e-01>, <2 x double> zeroinitializer)
%450 = insertelement <2 x double> poison, double %362, i64 0
%451 = shufflevector <2 x double> %450, <2 x double> poison, <2 x i32> zeroinitializer
%452 = fsub <2 x double> %451, %442
%453 = extractelement <2 x double> %452, i64 0
%454 = fsub <2 x double> %451, %449
%455 = extractelement <2 x double> %454, i64 0
%456 = fmul <2 x double> %452, %454
%457 = extractelement <2 x double> %456, i64 0
%458 = extractelement <2 x double> %454, i64 1
%459 = fmul double %457, %458
%460 = fdiv double %459, 0xBFA89374BC6A7EFC
store double %460, double* %45
%461 = extractelement <2 x double> %452, i64 1
%462 = fmul double %455, %461
%463 = fmul double %458, %462
%464 = fdiv double %463, 0x3F90624DD2F1A9FD
%465 = fmul double %453, %461
%466 = fmul double %458, %465
%467 = fdiv double %466, 0xBF90624DD2F1A9FD
%468 = fmul double %455, %465
%469 = fdiv double %468, 0x3FA89374BC6A7EFC
%470 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%471 = load double, double* %470
%472 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 1
%473 = load double, double* %472
%474 = fmul double %464, %473
%475 = tail call double @llvm.fmuladd.f64(double %460, double %471, double %474)
%476 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 2
%477 = load double, double* %476
%478 = tail call double @llvm.fmuladd.f64(double %467, double %477, double %475)
%479 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 3
%480 = load double, double* %479
%481 = tail call double @llvm.fmuladd.f64(double %469, double %480, double %478)
br label %482
482: ; preds = %149, %155, %161, %317, %437
%483 = phi double [ %360, %317 ], [ %481, %437 ], [ %168, %161 ], [ %160, %155 ], [ %154, %149 ]
%484 = fmul double %483, %1
%485 = fmul double %484, %1
%486 = fmul double %485, %1
br label %487
487: ; preds = %13, %3, %482
%488 = phi double [ %486, %482 ], [ -1.000000e+00, %3 ], [ %20, %13 ]
ret double %488
}