void linear_GRP_solver_Edir(double *wave_speed, double *direvative,
                            double *source, double *source_star, double lambda,
                            double rho_L, double rho_R, double d_rho_L,
                            double d_rho_R, double u_L, double u_R,
                            double d_u_L, double d_u_R, double v_L, double v_R,
                            double d_v_L, double d_v_R, double p_L, double p_R,
                            double d_p_L, double d_p_R, double gamma,
                            double eps) {
  double dist;
  double c_L, c_R, c_frac;
  int CRW[2];
  double d_Phi, d_Psi, TdS, VAR, RIEL, RIER;
  double u_star, p_star, rho_star_L, rho_star_R, c_star_L, c_star_R;
  double PI, H1, H2, H3;
  double a_L, b_L, d_L, a_R, b_R, d_R, detA;
  double L_u, L_p, L_rho;
  double u_t_mat, p_t_mat;
  double shk_spd, SmUs, SmUL, SmUR, zeta = (gamma - 1.0) / (gamma + 1.0),
                                    zts = zeta * zeta;
  double C, rho_x;
  double g_rho, g_u, g_p, f;
  double speed_L, speed_R;
  c_L = sqrt(gamma * p_L / rho_L);
  c_R = sqrt(gamma * p_R / rho_R);
  dist = (rho_L - rho_R) * (rho_L - rho_R) + (u_L - u_R) * (u_L - u_R) +
         (p_L - p_R) * (p_L - p_R);
  if (dist < eps) {
    wave_speed[0] = u_L - c_L;
    wave_speed[1] = u_R + c_R;
    rho_star_L = rho_L;
    rho_star_R = rho_R;
    c_star_L = c_L;
    c_star_R = c_R;
    u_star = 0.5 * (u_R + u_L);
    p_star = 0.5 * (p_R + p_L);
    RIEL = d_u_L + d_p_L / (rho_L * c_L);
    RIER = d_u_R - d_p_R / (rho_R * c_R);
    direvative[1] = -0.5 * ((u_L + c_L) * RIEL + (u_R - c_R) * RIER);
    direvative[3] =
        -0.5 * rho_L * c_L * ((u_L + c_L) * RIEL - (u_R - c_R) * RIER);
    if (u_star > lambda) {
      source[0] = rho_star_L;
      source[1] = u_star;
      source[2] = v_L;
      source[3] = p_star;
      direvative[0] =
          (direvative[1] + u_star * (d_p_L - c_L * c_L * d_rho_L)) / c_L / c_L;
      direvative[2] = -u_L * d_v_L;
      direvative[0] = direvative[0] + lambda * d_rho_L;
      direvative[1] = direvative[1] + lambda * d_u_L;
      direvative[2] = direvative[2] + lambda * d_v_L;
      direvative[3] = direvative[3] + lambda * d_p_L;
    } else {
      source[0] = rho_star_R;
      source[1] = u_star;
      source[2] = v_R;
      source[3] = p_star;
      direvative[0] =
          (direvative[1] + u_star * (d_p_R - c_R * c_R * d_rho_R)) / c_R / c_R;
      direvative[2] = -u_R * d_v_R;
      direvative[0] = direvative[0] + lambda * d_rho_R;
      direvative[1] = direvative[1] + lambda * d_u_R;
      direvative[2] = direvative[2] + lambda * d_v_R;
      direvative[3] = direvative[3] + lambda * d_p_R;
    }
    source_star[0] = rho_star_L;
    source_star[1] = u_star;
    source_star[2] = rho_star_R;
    source_star[3] = p_star;
    return;
  }
  Riemann_solver_exact(&u_star, &p_star, gamma, u_L, u_R, p_L, p_R, c_L, c_R,
                       CRW, eps, 500);
  if (CRW[0]) {
    rho_star_L = rho_L * pow(p_star / p_L, 1.0 / gamma);
    c_star_L = c_L * pow(p_star / p_L, 0.5 * (gamma - 1.0) / gamma);
    speed_L = u_L - c_L;
  } else {
    rho_star_L = rho_L * (p_star + zeta * p_L) / (p_L + zeta * p_star);
    c_star_L = sqrt(gamma * p_star / rho_star_L);
    speed_L =
        u_L -
        c_L * sqrt(0.5 * ((gamma + 1.0) * (p_star / p_L) + (gamma - 1.0)) /
                   gamma);
  }
  if (CRW[1]) {
    rho_star_R = rho_R * pow(p_star / p_R, 1.0 / gamma);
    c_star_R = c_R * pow(p_star / p_R, 0.5 * (gamma - 1.0) / gamma);
    speed_R = u_R + c_R;
  } else {
    rho_star_R = rho_R * (p_star + zeta * p_R) / (p_R + zeta * p_star);
    c_star_R = sqrt(gamma * p_star / rho_star_R);
    speed_R =
        u_R +
        c_R * sqrt(0.5 * ((gamma + 1.0) * (p_star / p_R) + (gamma - 1.0)) /
                   gamma);
  }
  wave_speed[0] = speed_L;
  wave_speed[1] = speed_R;
  if (CRW[1])
    wave_speed[1] = u_star + c_star_R;
  if (speed_L > lambda) {
    direvative[0] = -d_rho_L * u_L - rho_L * d_u_L;
    direvative[1] = -u_L * d_u_L - d_p_L / rho_L;
    direvative[2] = -u_L * d_v_L;
    direvative[3] = -(rho_L * c_L * c_L * d_u_L + u_L * d_p_L);
    direvative[0] = direvative[0] + lambda * d_rho_L;
    direvative[1] = direvative[1] + lambda * d_u_L;
    direvative[2] = direvative[2] + lambda * d_v_L;
    direvative[3] = direvative[3] + lambda * d_p_L;
    source[0] = rho_L;
    source[1] = u_L;
    source[2] = v_L;
    source[3] = p_L;
  } else if (speed_R < lambda) {
    direvative[0] = -d_rho_R * u_R - rho_R * d_u_R;
    direvative[1] = -u_R * d_u_R - d_p_R / rho_R;
    direvative[2] = -u_R * d_v_R;
    direvative[3] = -(rho_R * c_R * c_R * d_u_R + u_R * d_p_R);
    direvative[0] = direvative[0] + lambda * d_rho_R;
    direvative[1] = direvative[1] + lambda * d_u_R;
    direvative[2] = direvative[2] + lambda * d_v_R;
    direvative[3] = direvative[3] + lambda * d_p_R;
    source[0] = rho_R;
    source[1] = u_R;
    source[2] = v_R;
    source[3] = p_R;
  } else {
    if ((CRW[0]) && ((u_star - c_star_L) > lambda)) {
      source[1] = zeta * (u_L + 2.0 * (c_L + lambda) / (gamma - 1.0));
      C = source[1] - lambda;
      source[3] = pow(C / c_L, 2.0 * gamma / (gamma - 1.0)) * p_L;
      source[0] = gamma * source[3] / C / C;
      c_frac = C / c_L;
      TdS = (d_p_L - d_rho_L * c_L * c_L) / (gamma - 1.0) / rho_L;
      d_Psi =
          d_u_L + (gamma * d_p_L / c_L - c_L * d_rho_L) / (gamma - 1.0) / rho_L;
      direvative[1] = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) +
                       zeta * pow(c_frac, (1.0 + zeta) / zeta)) /
                      (1.0 + 2.0 * zeta);
      direvative[1] = direvative[1] * TdS;
      direvative[1] = direvative[1] - c_L * pow(c_frac, 0.5 / zeta) * d_Psi;
      direvative[3] = source[0] * (source[1] - lambda) * direvative[1];
      direvative[0] = source[0] * (source[1] - lambda) *
                      pow(c_frac, (1.0 + zeta) / zeta) *
                      (d_p_L - d_rho_L * c_L * c_L) / rho_L;
      direvative[0] = (direvative[0] + direvative[3]) / C / C;
      source[2] = v_L;
      direvative[2] = -source[1] * d_v_L * source[0] / rho_L;
    } else if ((CRW[1]) && ((u_star + c_star_R) < lambda)) {
      source[1] = zeta * (u_R - 2.0 * (c_R - lambda) / (gamma - 1.0));
      C = lambda - source[1];
      source[3] = pow(C / c_R, 2.0 * gamma / (gamma - 1.0)) * p_R;
      source[0] = gamma * source[3] / C / C;
      c_frac = C / c_R;
      TdS = (d_p_R - d_rho_R * c_R * c_R) / (gamma - 1.0) / rho_R;
      d_Phi =
          d_u_R - (gamma * d_p_R / c_R - c_R * d_rho_R) / (gamma - 1.0) / rho_R;
      direvative[1] = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) +
                       zeta * pow(c_frac, (1.0 + zeta) / zeta)) /
                      (1.0 + 2.0 * zeta);
      direvative[1] = direvative[1] * TdS;
      direvative[1] = direvative[1] + c_R * pow(c_frac, 0.5 / zeta) * d_Phi;
      direvative[3] = source[0] * (source[1] - lambda) * direvative[1];
      direvative[0] = source[0] * (source[1] - lambda) *
                      pow(c_frac, (1.0 + zeta) / zeta) *
                      (d_p_R - d_rho_R * c_R * c_R) / rho_R;
      direvative[0] = (direvative[0] + direvative[3]) / C / C;
      source[2] = v_R;
      direvative[2] = -source[1] * d_v_L * source[0] / rho_R;
    } else {
      if (CRW[0]) {
        a_L = 1.0;
        b_L = 1.0 / rho_star_L / c_star_L;
        c_frac = c_star_L / c_L;
        TdS = (d_p_L - d_rho_L * c_L * c_L) / (gamma - 1.0) / rho_L;
        d_Psi = d_u_L +
                (gamma * d_p_L / c_L - c_L * d_rho_L) / (gamma - 1.0) / rho_L;
        d_L = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) +
               zeta * pow(c_frac, (1.0 + zeta) / zeta)) /
              (1.0 + 2.0 * zeta);
        d_L = d_L * TdS;
        d_L = d_L - c_L * pow(c_frac, 0.5 / zeta) * d_Psi;
      } else {
        SmUs = -sqrt(0.5 * ((gamma + 1.0) * p_L + (gamma - 1.0) * p_star) /
                     rho_star_L);
        SmUL =
            -sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_L) / rho_L);
        VAR = sqrt((1 - zeta) / (rho_L * (p_star + zeta * p_L)));
        H1 = 0.5 * VAR * (p_star + (1.0 + 2.0 * zeta) * p_L) /
             (p_star + zeta * p_L);
        H2 = -0.5 * VAR * ((2.0 + zeta) * p_star + zeta * p_L) /
             (p_star + zeta * p_L);
        H3 = -0.5 * VAR * (p_star - p_L) / rho_L;
        L_p = -1.0 / rho_L - SmUL * H2;
        L_u = SmUL + rho_L * (c_L * c_L * H2 + H3);
        L_rho = -SmUL * H3;
        a_L = 1.0 - rho_star_L * SmUs * H1;
        b_L = -SmUs / (rho_star_L * c_star_L * c_star_L) + H1;
        d_L = L_rho * d_rho_L + L_u * d_u_L + L_p * d_p_L;
      }
      if (CRW[1]) {
        a_R = 1.0;
        b_R = -1.0 / rho_star_R / c_star_R;
        c_frac = c_star_R / c_R;
        TdS = (d_p_R - d_rho_R * c_R * c_R) / (gamma - 1.0) / rho_R;
        d_Phi = d_u_R -
                (gamma * d_p_R / c_R - c_R * d_rho_R) / (gamma - 1.0) / rho_R;
        d_R = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) +
               zeta * pow(c_frac, (1.0 + zeta) / zeta)) /
              (1.0 + 2.0 * zeta);
        d_R = d_R * TdS;
        d_R = d_R + c_R * pow(c_frac, 0.5 / zeta) * d_Phi;
      } else {
        SmUs = sqrt(0.5 * ((gamma + 1.0) * p_R + (gamma - 1.0) * p_star) /
                    rho_star_R);
        SmUR =
            sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_R) / rho_R);
        VAR = sqrt((1.0 - zeta) / (rho_R * (p_star + zeta * p_R)));
        H1 = 0.5 * VAR * (p_star + (1 + 2.0 * zeta) * p_R) /
             (p_star + zeta * p_R);
        H2 = -0.5 * VAR * ((2.0 + zeta) * p_star + zeta * p_R) /
             (p_star + zeta * p_R);
        H3 = -0.5 * (p_star - p_R) * VAR / rho_R;
        L_p = -1.0 / rho_R + SmUR * H2;
        L_u = SmUR - rho_R * (c_R * c_R * H2 + H3);
        L_rho = SmUR * H3;
        a_R = 1.0 + rho_star_R * SmUs * H1;
        b_R = -(SmUs / (rho_star_R * c_star_R * c_star_R) + H1);
        d_R = L_rho * d_rho_R + L_u * d_u_R + L_p * d_p_R;
      }
      detA = a_L * b_R - b_L * a_R;
      u_t_mat = (b_R * d_L - b_L * d_R) / detA;
      p_t_mat = (a_L * d_R - a_R * d_L) / detA;
      if (u_star < lambda) {
        source[0] = rho_star_R;
        source[1] = u_star;
        source[2] = v_R;
        source[3] = p_star;
        direvative[1] = u_t_mat + (u_star - lambda) * p_t_mat / rho_star_R /
                                      c_star_R / c_star_R;
        direvative[3] = p_t_mat + rho_star_R * (u_star - lambda) * u_t_mat;
        if (CRW[1]) {
          direvative[0] = rho_star_R * (u_star - lambda) *
                          pow(c_star_R / c_R, (1.0 + zeta) / zeta) *
                          (d_p_R - d_rho_R * c_R * c_R) / rho_R;
          direvative[0] = (direvative[0] + direvative[3]) / c_star_R / c_star_R;
          direvative[2] = -source[1] * d_v_R * source[0] / rho_R;
          direvative[2] = direvative[2] + lambda * d_v_R;
        } else {
          SmUs = sqrt(0.5 * ((gamma + 1.0) * p_R + (gamma - 1.0) * p_star) /
                      rho_star_R);
          SmUR = sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_R) /
                      rho_R);
          VAR = p_R + zeta * p_star;
          H1 = rho_R * p_R * (1.0 - zts) / VAR / VAR;
          H2 = rho_R * p_star * (zts - 1.0) / VAR / VAR;
          H3 = (p_star + zeta * p_R) / VAR;
          L_rho = SmUR * H3 * d_rho_R;
          L_u = -rho_R * (H2 * c_R * c_R + H3) * d_u_R;
          L_p = H2 * SmUR * d_p_R;
          direvative[0] =
              ((u_star + SmUs) / c_star_R / c_star_R - u_star * H1) * p_t_mat +
              rho_star_R * u_star * SmUs * H1 * u_t_mat;
          direvative[0] = (direvative[0] - u_star * (L_p + L_rho + L_u)) / SmUs;
          f = SmUR * (H2 * d_p_R + H3 * d_rho_R) -
              rho_R * (H2 * c_R * c_R + H3) * d_u_R;
          rho_x = (f + H1 * (p_t_mat - rho_star_R * SmUs * u_t_mat) -
                   direvative[0]) /
                  (SmUR + u_R);
          direvative[0] = direvative[0] + lambda * rho_x;
          direvative[2] = source[1] * SmUR * d_v_R / SmUs;
          direvative[2] = -direvative[2] + lambda * d_v_R;
        }
      } else {
        source[0] = rho_star_L;
        source[1] = u_star;
        source[2] = v_L;
        source[3] = p_star;
        direvative[1] = u_t_mat + (u_star - lambda) * p_t_mat / rho_star_L /
                                      c_star_L / c_star_L;
        direvative[3] = p_t_mat + rho_star_L * (u_star - lambda) * u_t_mat;
        if (CRW[0]) {
          direvative[0] = rho_star_L * (u_star - lambda) *
                          pow(c_star_L / c_L, (1.0 + zeta) / zeta) *
                          (d_p_L - d_rho_L * c_L * c_L) / rho_L;
          direvative[0] = (direvative[0] + direvative[3]) / c_star_L / c_star_L;
          direvative[2] = -source[1] * d_v_L * source[0] / rho_L;
          direvative[2] = direvative[2] + lambda * d_v_L;
        } else {
          SmUs = -sqrt(0.5 * ((gamma + 1.0) * p_L + (gamma - 1.0) * p_star) /
                       rho_star_L);
          SmUL = -sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_L) /
                       rho_L);
          VAR = p_L + zeta * p_star;
          H1 = rho_L * p_L * (1.0 - zts) / VAR / VAR;
          H2 = rho_L * p_star * (zts - 1.0) / VAR / VAR;
          H3 = (p_star + zeta * p_L) / VAR;
          L_rho = SmUL * H3 * d_rho_L;
          L_u = -rho_L * (H2 * c_L * c_L + H3) * d_u_L;
          L_p = H2 * SmUL * d_p_L;
          direvative[0] =
              ((u_star + SmUs) / c_star_L / c_star_L - H1 * u_star) * p_t_mat +
              rho_star_L * u_star * SmUs * H1 * u_t_mat;
          direvative[0] = (direvative[0] - u_star * (L_p + L_rho + L_u)) / SmUs;
          f = SmUL * (H2 * d_p_L + H3 * d_rho_L) -
              rho_L * (H2 * c_L * c_L + H3) * d_u_L;
          rho_x = (f + H1 * (p_t_mat - rho_star_L * SmUs * u_t_mat) -
                   direvative[0]) /
                  (SmUL + u_L);
          direvative[0] = direvative[0] + lambda * rho_x;
          direvative[2] = source[1] * SmUL * d_v_L / SmUs;
          direvative[2] = -direvative[2] + lambda * d_v_L;
        }
      }
    }
  }
  source_star[0] = rho_star_L;
  source_star[1] = u_star;
  source_star[2] = rho_star_R;
  source_star[3] = p_star;
}


x86 assembly (clang, -O0):
<linear_GRP_solver_Edir>:
push   %rbp
mov    %rsp,%rbp
sub    $0x2e0,%rsp
movsd  0x60(%rbp),%xmm8
movsd  0x58(%rbp),%xmm8
movsd  0x50(%rbp),%xmm8
movsd  0x48(%rbp),%xmm8
movsd  0x40(%rbp),%xmm8
movsd  0x38(%rbp),%xmm8
movsd  0x30(%rbp),%xmm8
movsd  0x28(%rbp),%xmm8
movsd  0x20(%rbp),%xmm8
movsd  0x18(%rbp),%xmm8
movsd  0x10(%rbp),%xmm8
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
movsd  %xmm0,-0x28(%rbp)
movsd  %xmm1,-0x30(%rbp)
movsd  %xmm2,-0x38(%rbp)
movsd  %xmm3,-0x40(%rbp)
movsd  %xmm4,-0x48(%rbp)
movsd  %xmm5,-0x50(%rbp)
movsd  %xmm6,-0x58(%rbp)
movsd  %xmm7,-0x60(%rbp)
movsd  0x58(%rbp),%xmm0
movsd  0x3e3e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x3e32(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
mulsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x198(%rbp)
ff
movsd  0x58(%rbp),%xmm0
mulsd  0x38(%rbp),%xmm0
divsd  -0x30(%rbp),%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0x70(%rbp)
movsd  0x58(%rbp),%xmm0
mulsd  0x40(%rbp),%xmm0
divsd  -0x38(%rbp),%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0x78(%rbp)
movsd  -0x30(%rbp),%xmm1
subsd  -0x38(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm2
subsd  -0x38(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm3
subsd  -0x58(%rbp),%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x38(%rbp),%xmm0
subsd  0x40(%rbp),%xmm0
movsd  0x38(%rbp),%xmm2
subsd  0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm1
movsd  0x60(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    171e <linear_GRP_solver_Edir+0x5ee>
movsd  -0x50(%rbp),%xmm0
subsd  -0x70(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x58(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x58(%rbp),%xmm1
addsd  -0x50(%rbp),%xmm1
movsd  0x3d0b(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0x40(%rbp),%xmm1
addsd  0x38(%rbp),%xmm1
movsd  0x3ced(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  0x48(%rbp),%xmm1
movsd  -0x30(%rbp),%xmm2
mulsd  -0x70(%rbp),%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0x10(%rbp),%xmm0
movsd  0x50(%rbp),%xmm1
movsd  -0x38(%rbp),%xmm2
mulsd  -0x78(%rbp),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm1
addsd  -0x70(%rbp),%xmm1
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x3c75(%rip),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  0x3c60(%rip),%xmm0
mulsd  -0x30(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
addsd  -0x70(%rbp),%xmm1
movsd  -0xb0(%rbp),%xmm3
ff
movsd  -0x58(%rbp),%xmm2
subsd  -0x78(%rbp),%xmm2
mulsd  -0xb8(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
ucomisd -0x28(%rbp),%xmm0
jbe    1580 <linear_GRP_solver_Edir+0x450>
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  0x18(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
movsd  0x48(%rbp),%xmm3
movsd  -0x70(%rbp),%xmm2
mulsd  -0x70(%rbp),%xmm2
movsd  -0x40(%rbp),%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x70(%rbp),%xmm0
divsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x50(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x28(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
jmp    16d6 <linear_GRP_solver_Edir+0x5a6>
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
movsd  0x50(%rbp),%xmm3
movsd  -0x78(%rbp),%xmm2
mulsd  -0x78(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x78(%rbp),%xmm0
divsd  -0x78(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x10(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x50(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x18(%rax)
jmp    412e <linear_GRP_solver_Edir+0x2ffe>
movsd  0x58(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movsd  -0x58(%rbp),%xmm2
movsd  0x38(%rbp),%xmm3
movsd  0x40(%rbp),%xmm4
movsd  -0x70(%rbp),%xmm5
movsd  -0x78(%rbp),%xmm6
lea    -0x88(%rbp),%rdx
movsd  0x60(%rbp),%xmm7
lea    -0xc0(%rbp),%rdi
lea    -0xc8(%rbp),%rsi
mov    $0x1f4,%ecx
mov    $0x8,%al
call   1030 <Riemann_solver_exact@plt>
cmpl   $0x0,-0x88(%rbp)
je     1826 <linear_GRP_solver_Edir+0x6f6>
movsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
divsd  0x38(%rbp),%xmm0
movsd  0x386a(%rip),%xmm1
divsd  0x58(%rbp),%xmm1
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x1e8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
divsd  0x38(%rbp),%xmm0
movsd  0x58(%rbp),%xmm2
movsd  0x3822(%rip),%xmm1
subsd  %xmm1,%xmm2
movsd  0x381e(%rip),%xmm1
mulsd  %xmm2,%xmm1
divsd  0x58(%rbp),%xmm1
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x1e0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
subsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
jmp    1934 <linear_GRP_solver_Edir+0x804>
movsd  -0x30(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  0x38(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0x38(%rbp),%xmm2
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0x58(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
divsd  -0xd0(%rbp),%xmm0
ff
call   1050 <sqrt@plt>
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  0x3747(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm2
ff
divsd  0x38(%rbp),%xmm2
movsd  0x58(%rbp),%xmm0
movsd  0x3728(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x371c(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  0x58(%rbp),%xmm0
call   1050 <sqrt@plt>
movsd  -0x1f8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x1f0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
cmpl   $0x0,-0x84(%rbp)
je     19f3 <linear_GRP_solver_Edir+0x8c3>
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
divsd  0x40(%rbp),%xmm0
movsd  0x369d(%rip),%xmm1
divsd  0x58(%rbp),%xmm1
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x208(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
divsd  0x40(%rbp),%xmm0
movsd  0x58(%rbp),%xmm2
movsd  0x3655(%rip),%xmm1
subsd  %xmm1,%xmm2
movsd  0x3651(%rip),%xmm1
mulsd  %xmm2,%xmm1
divsd  0x58(%rbp),%xmm1
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x200(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
jmp    1aea <linear_GRP_solver_Edir+0x9ba>
movsd  -0x38(%rbp),%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  0x40(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0x40(%rbp),%xmm2
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  0x58(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
divsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sqrt@plt>
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movsd  0x357a(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm2
ff
divsd  0x40(%rbp),%xmm2
movsd  0x58(%rbp),%xmm0
movsd  0x355b(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x354f(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  0x58(%rbp),%xmm0
call   1050 <sqrt@plt>
movsd  -0x218(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x210(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x1d8(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x8(%rax)
cmpl   $0x0,-0x84(%rbp)
je     1b31 <linear_GRP_solver_Edir+0xa01>
movsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xe8(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x1d0(%rbp),%xmm0
ff
ucomisd -0x28(%rbp),%xmm0
jbe    1d23 <linear_GRP_solver_Edir+0xbf3>
movsd  -0x40(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x30(%rbp),%xmm1
mulsd  -0x60(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x50(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  0x48(%rbp),%xmm1
divsd  -0x30(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x50(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x28(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x30(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm1
mulsd  0x48(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  0x18(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
jmp    40eb <linear_GRP_solver_Edir+0x2fbb>
movsd  -0x1d8(%rbp),%xmm1
ff
movsd  -0x28(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1f19 <linear_GRP_solver_Edir+0xde9>
movsd  -0x48(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x38(%rbp),%xmm1
mulsd  0x10(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x10(%rbp),%xmm2
movsd  0x50(%rbp),%xmm1
divsd  -0x38(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x38(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  0x10(%rbp),%xmm2
movsd  -0x58(%rbp),%xmm1
mulsd  0x50(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x10(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x50(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
jmp    40e6 <linear_GRP_solver_Edir+0x2fb6>
cmpl   $0x0,-0x88(%rbp)
je     235d <linear_GRP_solver_Edir+0x122d>
movsd  -0xc0(%rbp),%xmm0
ff
subsd  -0xe0(%rbp),%xmm0
ff
ucomisd -0x28(%rbp),%xmm0
jbe    235d <linear_GRP_solver_Edir+0x122d>
movsd  -0x190(%rbp),%xmm0
ff
movsd  -0x50(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm3
addsd  -0x28(%rbp),%xmm3
movsd  0x30c0(%rip),%xmm2
mulsd  %xmm3,%xmm2
movsd  0x58(%rbp),%xmm3
movsd  0x308f(%rip),%xmm4
subsd  %xmm4,%xmm3
divsd  %xmm3,%xmm2
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
subsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
divsd  -0x70(%rbp),%xmm0
movsd  0x306b(%rip),%xmm1
mulsd  0x58(%rbp),%xmm1
movsd  0x58(%rbp),%xmm2
movsd  0x3039(%rip),%xmm3
subsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
call   1040 <pow@plt>
mulsd  0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mulsd  0x18(%rax),%xmm0
divsd  -0x1a0(%rbp),%xmm0
ff
divsd  -0x1a0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x1a0(%rbp),%xmm0
divsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x48(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x58(%rbp),%xmm1
movsd  0x2fa6(%rip),%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
divsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  0x58(%rbp),%xmm2
mulsd  0x48(%rbp),%xmm2
divsd  -0x70(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0x58(%rbp),%xmm2
movsd  0x2f47(%rip),%xmm3
subsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
divsd  -0x30(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0x2f26(%rip),%xmm0
addsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2f11(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  %xmm0,-0x240(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x248(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2ed7(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x248(%rbp),%xmm1
ff
movsd  -0x240(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x238(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x190(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
movsd  0x2e87(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x230(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2e39(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x230(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x228(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2d82(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x220(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  0x48(%rbp),%xmm2
movsd  -0x40(%rbp),%xmm1
mulsd  -0x70(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x18(%rax),%xmm0
divsd  -0x1a0(%rbp),%xmm0
ff
divsd  -0x1a0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x18(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x28(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
divsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
jmp    40e1 <linear_GRP_solver_Edir+0x2fb1>
cmpl   $0x0,-0x84(%rbp)
je     278e <linear_GRP_solver_Edir+0x165e>
movsd  -0xc0(%rbp),%xmm1
ff
addsd  -0xe8(%rbp),%xmm1
ff
movsd  -0x28(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    278e <linear_GRP_solver_Edir+0x165e>
movsd  -0x190(%rbp),%xmm0
ff
movsd  -0x58(%rbp),%xmm1
movsd  -0x78(%rbp),%xmm3
subsd  -0x28(%rbp),%xmm3
movsd  0x2c78(%rip),%xmm2
mulsd  %xmm3,%xmm2
movsd  0x58(%rbp),%xmm3
movsd  0x2c47(%rip),%xmm4
subsd  %xmm4,%xmm3
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x28(%rbp),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
divsd  -0x78(%rbp),%xmm0
movsd  0x2c23(%rip),%xmm1
mulsd  0x58(%rbp),%xmm1
movsd  0x58(%rbp),%xmm2
movsd  0x2bf1(%rip),%xmm3
subsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
call   1040 <pow@plt>
mulsd  0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mulsd  0x18(%rax),%xmm0
divsd  -0x1a0(%rbp),%xmm0
ff
divsd  -0x1a0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x1a0(%rbp),%xmm0
ff
divsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x50(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x58(%rbp),%xmm1
movsd  0x2b5e(%rip),%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0x10(%rbp),%xmm0
movsd  0x58(%rbp),%xmm2
mulsd  0x50(%rbp),%xmm2
divsd  -0x78(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0x58(%rbp),%xmm2
movsd  0x2aff(%rip),%xmm3
subsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
divsd  -0x38(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0x2ade(%rip),%xmm0
addsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2ac9(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  %xmm0,-0x270(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2a8f(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x278(%rbp),%xmm1
ff
movsd  -0x270(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x268(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x190(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
movsd  0x2a3f(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x29f1(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x260(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x258(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0x90(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x250(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2951(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x250(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  0x50(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0x78(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x18(%rax),%xmm0
divsd  -0x1a0(%rbp),%xmm0
ff
divsd  -0x1a0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x28(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
divsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
jmp    40dc <linear_GRP_solver_Edir+0x2fac>
cmpl   $0x0,-0x88(%rbp)
je     29e6 <linear_GRP_solver_Edir+0x18b6>
movsd  0x285d(%rip),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0x284d(%rip),%xmm0
divsd  -0xd0(%rbp),%xmm0
ff
divsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
divsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x48(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x58(%rbp),%xmm1
movsd  0x27e3(%rip),%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
divsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  0x58(%rbp),%xmm2
mulsd  0x48(%rbp),%xmm2
divsd  -0x70(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0x58(%rbp),%xmm2
movsd  0x2784(%rip),%xmm3
subsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
divsd  -0x30(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  0x2763(%rip),%xmm0
addsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x290(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x274e(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  %xmm0,-0x298(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x2a0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2714(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x2a0(%rbp),%xmm1
ff
movsd  -0x298(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x290(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x190(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
movsd  0x26c4(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movsd  %xmm0,-0x288(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x267a(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x288(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x280(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
jmp    2d85 <linear_GRP_solver_Edir+0x1c55>
movsd  0x2612(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  0x38(%rbp),%xmm2
movsd  0x58(%rbp),%xmm0
movsd  0x25fb(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x25e7(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0xd0(%rbp),%xmm0
ff
call   1050 <sqrt@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0x25a7(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm2
ff
movsd  0x58(%rbp),%xmm0
movsd  0x258d(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  0x38(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x257c(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0x30(%rbp),%xmm0
call   1050 <sqrt@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  0x253f(%rip),%xmm0
subsd  -0x190(%rbp),%xmm0
ff
movsd  -0x30(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm3
ff
movsd  -0x190(%rbp),%xmm2
ff
movsd  0x38(%rbp),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x2500(%rip),%xmm0
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
movsd  0x24d4(%rip),%xmm3
addsd  %xmm3,%xmm1
movsd  0x38(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  0x38(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0x24a6(%rip),%xmm0
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  0x249e(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm3
ff
movsd  -0x190(%rbp),%xmm2
ff
mulsd  0x38(%rbp),%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  0x38(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  0x243c(%rip),%xmm0
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm1
ff
subsd  0x38(%rbp),%xmm1
mulsd  %xmm1,%xmm0
divsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  0x2406(%rip),%xmm1
divsd  -0x30(%rbp),%xmm1
movsd  -0x180(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x180(%rbp),%xmm1
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
mulsd  -0x70(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm4
ff
movsd  -0x108(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x180(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
mulsd  -0x178(%rbp),%xmm0
ff
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x2311(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  -0xe0(%rbp),%xmm1
ff
mulsd  -0xe0(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
addsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x158(%rbp),%xmm1
ff
movsd  -0x40(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x60(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x150(%rbp),%xmm0
ff
movsd  0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
cmpl   $0x0,-0x84(%rbp)
je     2fc6 <linear_GRP_solver_Edir+0x1e96>
movsd  0x2266(%rip),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  0x2266(%rip),%xmm0
divsd  -0xd8(%rbp),%xmm0
ff
divsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
divsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x50(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x58(%rbp),%xmm1
movsd  0x21ec(%rip),%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0x10(%rbp),%xmm0
movsd  0x58(%rbp),%xmm2
mulsd  0x50(%rbp),%xmm2
divsd  -0x78(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0x58(%rbp),%xmm2
movsd  0x218d(%rip),%xmm3
subsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
divsd  -0x38(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0x216c(%rip),%xmm0
addsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2157(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  %xmm0,-0x2c0(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x211d(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x2c8(%rbp),%xmm1
ff
movsd  -0x2c0(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0x2b8(%rbp),%xmm0
ff
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x190(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
movsd  0x20cd(%rip),%xmm2
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x2b0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  0x2083(%rip),%xmm1
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movsd  -0x2b0(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x2a8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
movsd  -0x90(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
jmp    3309 <linear_GRP_solver_Edir+0x21d9>
movsd  0x2032(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  0x40(%rbp),%xmm2
movsd  0x58(%rbp),%xmm0
movsd  0x201b(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x2007(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0xd8(%rbp),%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0x1fde(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm2
ff
movsd  0x58(%rbp),%xmm0
movsd  0x1fc4(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  0x40(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x1fb3(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0x188(%rbp)
ff
movsd  0x1f8d(%rip),%xmm0
subsd  -0x190(%rbp),%xmm0
ff
movsd  -0x38(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm3
ff
movsd  -0x190(%rbp),%xmm2
ff
movsd  0x40(%rbp),%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x1f4e(%rip),%xmm0
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
addsd  %xmm1,%xmm1
movsd  0x1f22(%rip),%xmm3
addsd  %xmm3,%xmm1
movsd  0x40(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  0x40(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0x1ef4(%rip),%xmm0
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1eec(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm3
ff
movsd  -0x190(%rbp),%xmm2
ff
mulsd  0x40(%rbp),%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  0x40(%rbp),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xc8(%rbp),%xmm1
ff
subsd  0x40(%rbp),%xmm1
movsd  0x1e7d(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  -0xa8(%rbp),%xmm0
ff
divsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  0x1e54(%rip),%xmm1
divsd  -0x38(%rbp),%xmm1
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x188(%rbp),%xmm1
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
mulsd  -0x78(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm4
ff
movsd  -0x108(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x188(%rbp),%xmm0
ff
mulsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mulsd  -0x178(%rbp),%xmm0
ff
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  0x1d8d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  -0xe8(%rbp),%xmm1
ff
mulsd  -0xe8(%rbp),%xmm1
ff
divsd  %xmm1,%xmm0
addsd  -0xf8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x158(%rbp),%xmm1
ff
movsd  -0x48(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm0
ff
mulsd  0x10(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x150(%rbp),%xmm0
ff
movsd  0x50(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0x118(%rbp),%xmm1
ff
mulsd  -0x128(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x120(%rbp),%xmm2
ff
movsd  -0x118(%rbp),%xmm1
ff
mulsd  -0x138(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x138(%rbp),%xmm2
ff
movsd  -0x128(%rbp),%xmm1
ff
mulsd  -0x120(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0x28(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    3a57 <linear_GRP_solver_Edir+0x2927>
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  0x20(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x160(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm1
ff
subsd  -0x28(%rbp),%xmm1
mulsd  -0x168(%rbp),%xmm1
ff
divsd  -0xd8(%rbp),%xmm1
ff
divsd  -0xe8(%rbp),%xmm1
ff
divsd  -0xe8(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x168(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
subsd  -0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
movsd  -0x160(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
cmpl   $0x0,-0x84(%rbp)
je     35f9 <linear_GRP_solver_Edir+0x24c9>
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm1
ff
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
divsd  -0x78(%rbp),%xmm0
movsd  0x1afc(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x2d0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  0x50(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0x78(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x18(%rax),%xmm0
divsd  -0xe8(%rbp),%xmm0
ff
divsd  -0xe8(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
divsd  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
jmp    3a52 <linear_GRP_solver_Edir+0x2922>
movsd  0x19ff(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  0x40(%rbp),%xmm2
movsd  0x58(%rbp),%xmm0
movsd  0x19e8(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x19d4(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0xd8(%rbp),%xmm0
ff
call   1050 <sqrt@plt>
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0x19ab(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm2
ff
movsd  0x58(%rbp),%xmm0
movsd  0x1991(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  0x40(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x1980(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0x188(%rbp)
ff
movsd  0x40(%rbp),%xmm1
movsd  -0x190(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  0x40(%rbp),%xmm0
movsd  0x192b(%rip),%xmm1
subsd  -0x198(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm1
ff
movsd  0x18ea(%rip),%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xc8(%rbp),%xmm1
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  0x40(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x188(%rbp),%xmm0
ff
mulsd  -0x108(%rbp),%xmm0
ff
mulsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x100(%rbp),%xmm1
ff
mulsd  -0x78(%rbp),%xmm1
movsd  -0x78(%rbp),%xmm3
movsd  -0x108(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mulsd  0x10(%rbp),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0x188(%rbp),%xmm0
ff
mulsd  0x50(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
addsd  -0x178(%rbp),%xmm1
ff
divsd  -0xe8(%rbp),%xmm1
ff
divsd  -0xe8(%rbp),%xmm1
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0xf8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x168(%rbp),%xmm2
ff
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  -0xc0(%rbp),%xmm1
ff
mulsd  -0x178(%rbp),%xmm1
ff
mulsd  -0xf8(%rbp),%xmm1
ff
mulsd  -0x160(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x150(%rbp),%xmm2
ff
addsd  -0x158(%rbp),%xmm2
ff
addsd  -0x148(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x178(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  0x50(%rbp),%xmm3
movsd  -0x108(%rbp),%xmm1
ff
mulsd  -0x48(%rbp),%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x38(%rbp),%xmm1
movsd  -0x100(%rbp),%xmm3
ff
mulsd  -0x78(%rbp),%xmm3
movsd  -0x78(%rbp),%xmm5
movsd  -0x108(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  0x10(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x1c8(%rbp),%xmm1
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x168(%rbp),%xmm3
ff
movsd  -0xd8(%rbp),%xmm2
ff
mulsd  -0x178(%rbp),%xmm2
ff
movsd  -0x160(%rbp),%xmm4
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  -0x188(%rbp),%xmm1
ff
addsd  -0x58(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x1a8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mulsd  -0x188(%rbp),%xmm0
mulsd  0x30(%rbp),%xmm0
divsd  -0x178(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x30(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
jmp    40d7 <linear_GRP_solver_Edir+0x2fa7>
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  0x18(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x160(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm1
ff
subsd  -0x28(%rbp),%xmm1
mulsd  -0x168(%rbp),%xmm1
ff
divsd  -0xd0(%rbp),%xmm1
ff
divsd  -0xe0(%rbp),%xmm1
ff
divsd  -0xe0(%rbp),%xmm1
ff
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x168(%rbp),%xmm1
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
subsd  -0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
movsd  -0x160(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
cmpl   $0x0,-0x88(%rbp)
je     3c4b <linear_GRP_solver_Edir+0x2b1b>
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm1
ff
subsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
divsd  -0x70(%rbp),%xmm0
movsd  0x14aa(%rip),%xmm1
addsd  -0x190(%rbp),%xmm1
ff
divsd  -0x190(%rbp),%xmm1
ff
call   1040 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x2d8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  0x48(%rbp),%xmm2
movsd  -0x40(%rbp),%xmm1
mulsd  -0x70(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm3
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
addsd  0x18(%rax),%xmm0
divsd  -0xe0(%rbp),%xmm0
ff
divsd  -0xe0(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  0x28(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
divsd  -0x30(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
jmp    40d2 <linear_GRP_solver_Edir+0x2fa2>
movsd  0x13ad(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  0x38(%rbp),%xmm2
movsd  0x58(%rbp),%xmm0
movsd  0x1396(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x1382(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0xd0(%rbp),%xmm0
ff
call   1050 <sqrt@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0x1342(%rip),%xmm1
addsd  0x58(%rbp),%xmm1
movsd  -0xc8(%rbp),%xmm2
ff
movsd  0x58(%rbp),%xmm0
movsd  0x1328(%rip),%xmm3
subsd  %xmm3,%xmm0
mulsd  0x38(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x1317(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0x30(%rbp),%xmm0
call   1050 <sqrt@plt>
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  0x38(%rbp),%xmm1
movsd  -0x190(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  0x38(%rbp),%xmm0
movsd  0x12ab(%rip),%xmm1
subsd  -0x198(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm1
ff
movsd  0x126a(%rip),%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xc8(%rbp),%xmm1
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  0x38(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x180(%rbp),%xmm0
ff
mulsd  -0x108(%rbp),%xmm0
ff
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x100(%rbp),%xmm1
ff
mulsd  -0x70(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm3
movsd  -0x108(%rbp),%xmm2
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mulsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0x180(%rbp),%xmm0
ff
mulsd  0x48(%rbp),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0xc0(%rbp),%xmm1
ff
addsd  -0x178(%rbp),%xmm1
ff
divsd  -0xe0(%rbp),%xmm1
ff
divsd  -0xe0(%rbp),%xmm1
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x168(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  -0xc0(%rbp),%xmm1
ff
mulsd  -0x178(%rbp),%xmm1
ff
mulsd  -0xf8(%rbp),%xmm1
ff
mulsd  -0x160(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x150(%rbp),%xmm2
ff
addsd  -0x158(%rbp),%xmm2
ff
addsd  -0x148(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
divsd  -0x178(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x180(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  0x48(%rbp),%xmm3
movsd  -0x108(%rbp),%xmm1
ff
mulsd  -0x40(%rbp),%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x30(%rbp),%xmm1
movsd  -0x100(%rbp),%xmm3
ff
mulsd  -0x70(%rbp),%xmm3
movsd  -0x70(%rbp),%xmm5
movsd  -0x108(%rbp),%xmm4
ff
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  -0x60(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x1c8(%rbp),%xmm1
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0x168(%rbp),%xmm3
ff
movsd  -0xd0(%rbp),%xmm2
ff
mulsd  -0x178(%rbp),%xmm2
ff
movsd  -0x160(%rbp),%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  -0x180(%rbp),%xmm1
ff
addsd  -0x50(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  -0x1a8(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mulsd  -0x180(%rbp),%xmm0
ff
mulsd  0x28(%rbp),%xmm0
divsd  -0x178(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
jmp    40d7 <linear_GRP_solver_Edir+0x2fa7>
jmp    40dc <linear_GRP_solver_Edir+0x2fac>
jmp    40e1 <linear_GRP_solver_Edir+0x2fb1>
jmp    40e6 <linear_GRP_solver_Edir+0x2fb6>
jmp    40eb <linear_GRP_solver_Edir+0x2fbb>
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x18(%rax)
add    $0x2e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<linear_GRP_solver_Edir>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x1a8,%rsp
movaps %xmm6,0xa0(%rsp)
movaps %xmm5,0x70(%rsp)
movaps %xmm4,0x120(%rsp)
movaps %xmm3,0x130(%rsp)
movapd %xmm1,0x20(%rsp)
movaps %xmm0,%xmm3
mov    %rcx,%r14
mov    %rdx,%r15
mov    %rsi,%r12
mov    %rdi,%rbx
movsd  0x218(%rsp),%xmm6
movsd  0x200(%rsp),%xmm4
movsd  0x1f8(%rsp),%xmm0
mulsd  %xmm6,%xmm0
divsd  %xmm1,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movapd %xmm2,0x30(%rsp)
movaps %xmm3,0x100(%rsp)
movaps %xmm7,0xf0(%rsp)
jb     11ba <linear_GRP_solver_Edir+0x8a>
sqrtsd %xmm0,%xmm15
jmp    11e0 <linear_GRP_solver_Edir+0xb0>
call   1050 <sqrt@plt>
xorpd  %xmm1,%xmm1
movsd  0x218(%rsp),%xmm6
movsd  0x200(%rsp),%xmm4
movapd 0x30(%rsp),%xmm2
movapd %xmm0,%xmm15
movsd  0x220(%rsp),%xmm7
movapd %xmm4,%xmm0
mulsd  %xmm6,%xmm0
divsd  %xmm2,%xmm0
ucomisd %xmm1,%xmm0
movapd %xmm15,0x60(%rsp)
jb     1209 <linear_GRP_solver_Edir+0xd9>
sqrtsd %xmm0,%xmm12
jmp    123b <linear_GRP_solver_Edir+0x10b>
call   1050 <sqrt@plt>
movsd  0x220(%rsp),%xmm7
movsd  0x218(%rsp),%xmm6
movsd  0x200(%rsp),%xmm4
movapd 0x60(%rsp),%xmm15
movapd 0x30(%rsp),%xmm2
movapd %xmm0,%xmm12
movapd 0x20(%rsp),%xmm8
movapd 0x70(%rsp),%xmm1
movapd 0xa0(%rsp),%xmm9
movsd  0x1f8(%rsp),%xmm3
movsd  0x208(%rsp),%xmm11
movsd  0x1e8(%rsp),%xmm13
movsd  0x1d0(%rsp),%xmm14
movapd %xmm8,%xmm0
subsd  %xmm2,%xmm0
movapd %xmm1,%xmm5
subsd  %xmm9,%xmm5
mulsd  %xmm5,%xmm5
mulsd  %xmm0,%xmm0
addsd  %xmm5,%xmm0
movapd %xmm3,%xmm5
subsd  %xmm4,%xmm5
mulsd  %xmm5,%xmm5
addsd  %xmm0,%xmm5
ucomisd %xmm5,%xmm7
jbe    1431 <linear_GRP_solver_Edir+0x301>
movapd %xmm1,%xmm0
subsd  %xmm15,%xmm0
movsd  %xmm0,(%rbx)
movapd %xmm12,%xmm0
addsd  %xmm9,%xmm0
movsd  %xmm0,0x8(%rbx)
movapd %xmm1,%xmm0
addsd  %xmm9,%xmm0
movsd  0x2d32(%rip),%xmm5
mulsd  %xmm5,%xmm0
movsd  %xmm0,0x98(%rsp)
addsd  %xmm4,%xmm3
mulsd  %xmm5,%xmm3
movsd  %xmm3,0x10(%rsp)
movapd %xmm15,%xmm6
mulsd  %xmm8,%xmm6
movapd %xmm11,%xmm4
divsd  %xmm6,%xmm4
movapd 0xf0(%rsp),%xmm10
addsd  %xmm10,%xmm4
movapd %xmm12,%xmm6
mulsd  %xmm2,%xmm6
movsd  0x210(%rsp),%xmm7
divsd  %xmm6,%xmm7
movapd %xmm14,%xmm5
subsd  %xmm7,%xmm5
movapd %xmm15,%xmm6
addsd  %xmm1,%xmm6
mulsd  %xmm4,%xmm6
movapd %xmm9,%xmm7
subsd  %xmm12,%xmm7
mulsd  %xmm5,%xmm7
movapd %xmm6,%xmm5
addsd  %xmm7,%xmm5
movsd  0x2cb3(%rip),%xmm4
mulsd  %xmm4,%xmm5
movsd  %xmm5,0x8(%r12)
subsd  %xmm7,%xmm6
mulsd  %xmm8,%xmm4
mulsd  %xmm15,%xmm4
mulsd  %xmm4,%xmm6
movsd  %xmm6,0x18(%r12)
movapd 0x100(%rsp),%xmm4
ucomisd %xmm4,%xmm0
jbe    153e <linear_GRP_solver_Edir+0x40e>
movsd  %xmm8,(%r15)
movsd  %xmm0,0x8(%r15)
movsd  0x1d8(%rsp),%xmm5
movsd  %xmm5,0x10(%r15)
movsd  %xmm3,0x18(%r15)
movsd  0x8(%r12),%xmm9
movapd %xmm15,%xmm7
mulsd  %xmm15,%xmm7
movapd 0x130(%rsp),%xmm6
mulsd  %xmm6,%xmm7
movapd %xmm11,%xmm5
subsd  %xmm7,%xmm5
mulsd  %xmm0,%xmm5
addsd  %xmm9,%xmm5
divsd  %xmm15,%xmm5
divsd  %xmm15,%xmm5
mulsd  %xmm13,%xmm1
movapd %xmm4,%xmm7
unpcklpd %xmm4,%xmm7
unpcklpd %xmm10,%xmm6
mulpd  %xmm7,%xmm6
unpcklpd %xmm9,%xmm5
addpd  %xmm6,%xmm5
movupd %xmm5,(%r12)
mulsd  %xmm4,%xmm13
subsd  %xmm1,%xmm13
movsd  %xmm13,0x10(%r12)
jmp    15e0 <linear_GRP_solver_Edir+0x4b0>
movsd  0x2bc7(%rip),%xmm2
addsd  %xmm6,%xmm2
movsd  %xmm2,0x8(%rsp)
movsd  0x2bbd(%rip),%xmm0
addsd  %xmm6,%xmm0
movsd  %xmm0,0x48(%rsp)
divsd  %xmm0,%xmm2
movsd  %xmm2,(%rsp)
lea    0x98(%rsp),%rdi
lea    0x10(%rsp),%rsi
lea    0xb8(%rsp),%rdx
movapd %xmm6,%xmm0
movapd %xmm9,%xmm2
movapd %xmm15,%xmm5
movapd %xmm12,0xd0(%rsp)
movapd %xmm12,%xmm6
mov    $0x1f4,%ecx
mov    $0x8,%al
call   1030 <Riemann_solver_exact@plt>
cmpl   $0x0,0xb8(%rsp)
movsd  0x10(%rsp),%xmm0
je     1609 <linear_GRP_solver_Edir+0x4d9>
movsd  0x1f8(%rsp),%xmm1
divsd  %xmm1,%xmm0
movsd  0x2b43(%rip),%xmm1
movsd  0x218(%rsp),%xmm2
divsd  %xmm2,%xmm1
call   1040 <pow@plt>
mulsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x10(%rsp),%xmm0
divsd  0x1f8(%rsp),%xmm0
movsd  0x2b16(%rip),%xmm1
mulsd  0x8(%rsp),%xmm1
divsd  0x218(%rsp),%xmm1
call   1040 <pow@plt>
movapd 0x60(%rsp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x90(%rsp)
movapd 0x70(%rsp),%xmm2
subsd  %xmm1,%xmm2
movsd  (%rsp),%xmm1
movsd  0x200(%rsp),%xmm4
jmp    16e1 <linear_GRP_solver_Edir+0x5b1>
movsd  %xmm2,(%r15)
movsd  %xmm0,0x8(%r15)
movsd  0x1e0(%rsp),%xmm1
movsd  %xmm1,0x10(%r15)
movsd  %xmm3,0x18(%r15)
movsd  0x8(%r12),%xmm10
movapd %xmm12,%xmm5
mulsd  %xmm12,%xmm5
movapd 0x120(%rsp),%xmm6
mulsd  %xmm6,%xmm5
movsd  0x210(%rsp),%xmm11
movapd %xmm11,%xmm7
subsd  %xmm5,%xmm7
mulsd  %xmm0,%xmm7
addsd  %xmm10,%xmm7
divsd  %xmm12,%xmm7
divsd  %xmm12,%xmm7
movsd  0x1f0(%rsp),%xmm1
mulsd  %xmm1,%xmm9
movapd %xmm4,%xmm5
unpcklpd %xmm4,%xmm5
unpcklpd %xmm14,%xmm6
mulpd  %xmm5,%xmm6
unpcklpd %xmm10,%xmm7
addpd  %xmm6,%xmm7
movupd %xmm7,(%r12)
mulsd  %xmm4,%xmm1
subsd  %xmm9,%xmm1
movsd  %xmm1,0x10(%r12)
mulsd  %xmm11,%xmm4
addsd  0x18(%r12),%xmm4
movsd  %xmm4,0x18(%r12)
movsd  %xmm8,(%r14)
movsd  %xmm0,0x8(%r14)
movsd  %xmm2,0x10(%r14)
jmp    3220 <linear_GRP_solver_Edir+0x20f0>
movsd  (%rsp),%xmm1
movapd %xmm1,%xmm2
movsd  0x1f8(%rsp),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
mulsd  0x20(%rsp),%xmm2
mulsd  %xmm0,%xmm1
addsd  %xmm3,%xmm1
divsd  %xmm1,%xmm2
movsd  0x218(%rsp),%xmm4
mulsd  %xmm4,%xmm0
divsd  %xmm2,%xmm0
xorpd  %xmm5,%xmm5
ucomisd %xmm5,%xmm0
movsd  %xmm2,0x40(%rsp)
jb     1660 <linear_GRP_solver_Edir+0x530>
movapd %xmm3,%xmm1
sqrtsd %xmm0,%xmm0
jmp    167b <linear_GRP_solver_Edir+0x54b>
call   1050 <sqrt@plt>
xorpd  %xmm5,%xmm5
movsd  0x218(%rsp),%xmm4
movsd  0x1f8(%rsp),%xmm1
movsd  0x8(%rsp),%xmm2
movsd  0x48(%rsp),%xmm3
movsd  %xmm0,0x90(%rsp)
movsd  0x10(%rsp),%xmm0
divsd  %xmm1,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
mulsd  0x2966(%rip),%xmm0
divsd  %xmm4,%xmm0
ucomisd %xmm5,%xmm0
jb     16ba <linear_GRP_solver_Edir+0x58a>
sqrtsd %xmm0,%xmm0
jmp    16bf <linear_GRP_solver_Edir+0x58f>
call   1050 <sqrt@plt>
movsd  (%rsp),%xmm1
movapd 0x70(%rsp),%xmm2
movapd 0x60(%rsp),%xmm3
movsd  0x200(%rsp),%xmm4
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm2
cmpl   $0x0,0xbc(%rsp)
movsd  0x10(%rsp),%xmm0
movapd %xmm2,0x50(%rsp)
je     17c9 <linear_GRP_solver_Edir+0x699>
divsd  %xmm4,%xmm0
movsd  0x2901(%rip),%xmm1
movsd  0x218(%rsp),%xmm2
divsd  %xmm2,%xmm1
call   1040 <pow@plt>
mulsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x10(%rsp),%xmm0
divsd  0x200(%rsp),%xmm0
movsd  0x28d4(%rip),%xmm1
mulsd  0x8(%rsp),%xmm1
divsd  0x218(%rsp),%xmm1
call   1040 <pow@plt>
movapd 0x50(%rsp),%xmm2
movapd 0x60(%rsp),%xmm15
movapd 0x70(%rsp),%xmm10
movapd %xmm0,%xmm3
movapd 0xd0(%rsp),%xmm0
mulsd  %xmm0,%xmm3
movapd 0xa0(%rsp),%xmm14
addsd  %xmm14,%xmm0
movapd 0x100(%rsp),%xmm4
movsd  0x1e8(%rsp),%xmm8
movapd 0x20(%rsp),%xmm6
movsd  0x208(%rsp),%xmm9
movsd  0x210(%rsp),%xmm12
movsd  0x1f8(%rsp),%xmm13
movsd  0x1d0(%rsp),%xmm7
jmp    18e9 <linear_GRP_solver_Edir+0x7b9>
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm0,%xmm2
mulsd  0x30(%rsp),%xmm2
mulsd  %xmm0,%xmm1
addsd  %xmm4,%xmm1
divsd  %xmm1,%xmm2
movsd  0x218(%rsp),%xmm5
mulsd  %xmm5,%xmm0
divsd  %xmm2,%xmm0
xorpd  %xmm6,%xmm6
ucomisd %xmm6,%xmm0
movsd  %xmm2,0x18(%rsp)
jb     1811 <linear_GRP_solver_Edir+0x6e1>
xorps  %xmm3,%xmm3
sqrtsd %xmm0,%xmm3
jmp    1830 <linear_GRP_solver_Edir+0x700>
call   1050 <sqrt@plt>
xorpd  %xmm6,%xmm6
movsd  0x218(%rsp),%xmm5
movsd  0x200(%rsp),%xmm4
movapd %xmm0,%xmm3
movsd  0x8(%rsp),%xmm1
movsd  0x48(%rsp),%xmm2
movsd  0x10(%rsp),%xmm0
divsd  %xmm4,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x27ba(%rip),%xmm0
divsd  %xmm5,%xmm0
ucomisd %xmm6,%xmm0
jb     1866 <linear_GRP_solver_Edir+0x736>
sqrtsd %xmm0,%xmm0
jmp    187d <linear_GRP_solver_Edir+0x74d>
movsd  %xmm3,0x88(%rsp)
call   1050 <sqrt@plt>
movsd  0x88(%rsp),%xmm3
movapd 0x100(%rsp),%xmm4
movsd  0x1e8(%rsp),%xmm8
movapd 0x20(%rsp),%xmm6
movsd  0x208(%rsp),%xmm9
movapd 0x70(%rsp),%xmm10
movapd 0xa0(%rsp),%xmm14
movsd  0x210(%rsp),%xmm12
movsd  0x1f8(%rsp),%xmm13
movsd  0x1d0(%rsp),%xmm7
movapd 0x60(%rsp),%xmm15
movapd 0x50(%rsp),%xmm2
mulsd  0xd0(%rsp),%xmm0
addsd  %xmm14,%xmm0
movsd  %xmm2,(%rbx)
movsd  %xmm0,0x8(%rbx)
mov    0xbc(%rsp),%eax
test   %eax,%eax
je     190f <linear_GRP_solver_Edir+0x7df>
movsd  0x98(%rsp),%xmm1
addsd  %xmm3,%xmm1
movsd  %xmm1,0x8(%rbx)
ucomisd %xmm4,%xmm2
movapd 0x30(%rsp),%xmm11
jbe    19fb <linear_GRP_solver_Edir+0x8cb>
movapd 0x2708(%rip),%xmm1
movapd 0x130(%rsp),%xmm7
movapd %xmm7,%xmm0
xorpd  %xmm1,%xmm0
movapd %xmm6,%xmm2
movapd 0xf0(%rsp),%xmm5
mulsd  %xmm5,%xmm2
mulsd  %xmm10,%xmm0
subsd  %xmm2,%xmm0
xorpd  %xmm10,%xmm1
movapd %xmm9,%xmm2
divsd  %xmm6,%xmm2
movapd %xmm1,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm8,%xmm1
unpcklpd %xmm1,%xmm3
movapd %xmm15,%xmm1
mulsd  %xmm6,%xmm1
mulsd  %xmm15,%xmm1
movapd %xmm10,%xmm2
mulsd  %xmm9,%xmm2
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm4,%xmm7
addsd  %xmm0,%xmm7
movsd  %xmm7,(%r12)
movapd %xmm4,%xmm0
unpcklpd %xmm4,%xmm0
unpcklpd %xmm8,%xmm5
mulpd  %xmm0,%xmm5
addpd  %xmm3,%xmm5
movupd %xmm5,0x8(%r12)
mulsd  %xmm9,%xmm4
subsd  %xmm1,%xmm4
movsd  %xmm4,0x18(%r12)
movsd  %xmm6,(%r15)
movsd  %xmm10,0x8(%r15)
movsd  0x1d8(%rsp),%xmm0
movsd  %xmm0,0x10(%r15)
movsd  %xmm13,0x18(%r15)
movsd  0x40(%rsp),%xmm3
jmp    31fa <linear_GRP_solver_Edir+0x20ca>
ucomisd %xmm0,%xmm4
jbe    1af1 <linear_GRP_solver_Edir+0x9c1>
movapd 0x2623(%rip),%xmm1
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm0
xorpd  %xmm1,%xmm0
movapd %xmm11,%xmm2
mulsd  %xmm7,%xmm2
mulsd  %xmm14,%xmm0
subsd  %xmm2,%xmm0
xorpd  %xmm14,%xmm1
movapd %xmm12,%xmm2
divsd  %xmm11,%xmm2
movapd %xmm1,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
movsd  0x1f0(%rsp),%xmm6
mulsd  %xmm6,%xmm1
unpcklpd %xmm1,%xmm3
movapd 0xd0(%rsp),%xmm2
movapd %xmm2,%xmm1
mulsd  %xmm11,%xmm1
mulsd  %xmm2,%xmm1
movapd %xmm14,%xmm2
mulsd  %xmm12,%xmm2
mulsd  %xmm7,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm4,%xmm5
addsd  %xmm0,%xmm5
movsd  %xmm5,(%r12)
movapd %xmm4,%xmm0
unpcklpd %xmm4,%xmm0
unpcklpd %xmm6,%xmm7
mulpd  %xmm0,%xmm7
addpd  %xmm3,%xmm7
movupd %xmm7,0x8(%r12)
mulsd  %xmm12,%xmm4
subsd  %xmm1,%xmm4
movsd  %xmm4,0x18(%r12)
movsd  %xmm11,(%r15)
movsd  %xmm14,0x8(%r15)
movsd  0x1e0(%rsp),%xmm0
movsd  %xmm0,0x10(%r15)
movsd  0x200(%rsp),%xmm0
movsd  %xmm0,0x18(%r15)
movsd  0x40(%rsp),%xmm3
jmp    31fa <linear_GRP_solver_Edir+0x20ca>
mov    0xb8(%rsp),%ecx
test   %ecx,%ecx
je     1d88 <linear_GRP_solver_Edir+0xc58>
movsd  0x98(%rsp),%xmm0
subsd  0x90(%rsp),%xmm0
ucomisd %xmm4,%xmm0
jbe    1d88 <linear_GRP_solver_Edir+0xc58>
movapd %xmm15,%xmm2
addsd  %xmm4,%xmm2
addsd  %xmm2,%xmm2
movsd  0x8(%rsp),%xmm1
divsd  %xmm1,%xmm2
movapd %xmm1,%xmm3
addsd  %xmm10,%xmm2
mulsd  (%rsp),%xmm2
movsd  %xmm2,0x8(%r15)
subsd  %xmm4,%xmm2
movapd %xmm2,0xa0(%rsp)
divsd  %xmm15,%xmm2
movapd %xmm2,0x30(%rsp)
movsd  0x218(%rsp),%xmm1
addsd  %xmm1,%xmm1
divsd  %xmm3,%xmm1
movapd %xmm2,%xmm0
call   1040 <pow@plt>
mulsd  0x1f8(%rsp),%xmm0
movsd  %xmm0,0x18(%r15)
movsd  0x218(%rsp),%xmm6
mulsd  %xmm6,%xmm0
movapd 0xa0(%rsp),%xmm1
divsd  %xmm1,%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15)
movapd 0x60(%rsp),%xmm1
movapd %xmm1,%xmm0
xorpd  0x2473(%rip),%xmm0
mulsd  0x130(%rsp),%xmm0
movapd %xmm0,%xmm2
mulsd  %xmm1,%xmm2
movapd %xmm1,%xmm4
movsd  0x208(%rsp),%xmm3
addsd  %xmm3,%xmm2
movapd %xmm2,0x130(%rsp)
movapd %xmm2,%xmm5
movsd  0x8(%rsp),%xmm2
divsd  %xmm2,%xmm5
movapd 0x20(%rsp),%xmm1
divsd  %xmm1,%xmm5
movapd %xmm5,0x120(%rsp)
mulsd  %xmm6,%xmm3
divsd  %xmm4,%xmm3
addsd  %xmm0,%xmm3
divsd  %xmm2,%xmm3
divsd  %xmm1,%xmm3
addsd  0xf0(%rsp),%xmm3
movsd  %xmm3,0xd0(%rsp)
movsd  (%rsp),%xmm0
movapd %xmm0,%xmm1
addsd  0x23c8(%rip),%xmm1
movsd  %xmm1,0xf0(%rsp)
movsd  0x23bf(%rip),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x50(%rsp)
movaps 0x30(%rsp),%xmm0
call   1040 <pow@plt>
movsd  %xmm0,0x70(%rsp)
movsd  0xf0(%rsp),%xmm1
divsd  (%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movapd 0x30(%rsp),%xmm0
call   1040 <pow@plt>
movsd  (%rsp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x70(%rsp),%xmm2
mulsd  0xf0(%rsp),%xmm2
addsd  %xmm0,%xmm2
addsd  %xmm1,%xmm1
addsd  0x2356(%rip),%xmm1
divsd  %xmm1,%xmm2
mulsd  0x120(%rsp),%xmm2
movsd  %xmm2,0x70(%rsp)
movapd 0x30(%rsp),%xmm0
movsd  0x50(%rsp),%xmm1
call   1040 <pow@plt>
mulsd  0x60(%rsp),%xmm0
mulsd  0xd0(%rsp),%xmm0
movsd  0x70(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%r12)
movapd %xmm1,%xmm2
movsd  0x8(%r15),%xmm0
movapd 0x100(%rsp),%xmm1
subsd  %xmm1,%xmm0
mulsd  (%r15),%xmm0
mulsd  %xmm2,%xmm0
movsd  %xmm0,0x18(%r12)
movsd  0x8(%r15),%xmm0
subsd  %xmm1,%xmm0
mulsd  (%r15),%xmm0
movsd  %xmm0,0x70(%rsp)
movapd 0x30(%rsp),%xmm0
movsd  0x8(%rsp),%xmm1
call   1040 <pow@plt>
mulsd  0x70(%rsp),%xmm0
mulsd  0x130(%rsp),%xmm0
movapd 0x20(%rsp),%xmm2
divsd  %xmm2,%xmm0
addsd  0x18(%r12),%xmm0
movapd 0xa0(%rsp),%xmm1
divsd  %xmm1,%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r12)
movsd  0x1d8(%rsp),%xmm0
jmp    2022 <linear_GRP_solver_Edir+0xef2>
test   %eax,%eax
je     205e <linear_GRP_solver_Edir+0xf2e>
movsd  0x98(%rsp),%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm4
jbe    205e <linear_GRP_solver_Edir+0xf2e>
movapd 0xd0(%rsp),%xmm1
movapd %xmm1,%xmm0
movapd %xmm1,%xmm5
subsd  %xmm4,%xmm0
addsd  %xmm0,%xmm0
movsd  0x8(%rsp),%xmm1
divsd  %xmm1,%xmm0
movapd %xmm1,%xmm3
subsd  %xmm0,%xmm14
mulsd  (%rsp),%xmm14
movsd  %xmm14,0x8(%r15)
movapd %xmm4,%xmm2
subsd  %xmm14,%xmm2
movapd %xmm2,0xa0(%rsp)
divsd  %xmm5,%xmm2
movapd %xmm2,0x20(%rsp)
movsd  0x218(%rsp),%xmm1
addsd  %xmm1,%xmm1
divsd  %xmm3,%xmm1
movapd %xmm2,%xmm0
movapd %xmm7,0x70(%rsp)
call   1040 <pow@plt>
mulsd  0x200(%rsp),%xmm0
movsd  %xmm0,0x18(%r15)
movsd  0x218(%rsp),%xmm5
mulsd  %xmm5,%xmm0
movapd 0xa0(%rsp),%xmm1
divsd  %xmm1,%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r15)
movapd 0xd0(%rsp),%xmm1
movapd %xmm1,%xmm0
xorpd  0x21ce(%rip),%xmm0
mulsd  0x120(%rsp),%xmm0
movapd %xmm0,%xmm2
mulsd  %xmm1,%xmm2
movapd %xmm1,%xmm3
movsd  0x210(%rsp),%xmm6
addsd  %xmm6,%xmm2
movapd %xmm2,0x130(%rsp)
movapd %xmm2,%xmm4
movsd  0x8(%rsp),%xmm2
divsd  %xmm2,%xmm4
movapd 0x30(%rsp),%xmm1
divsd  %xmm1,%xmm4
movapd %xmm4,0x120(%rsp)
movapd %xmm6,%xmm4
mulsd  %xmm5,%xmm4
divsd  %xmm3,%xmm4
addsd  %xmm0,%xmm4
divsd  %xmm2,%xmm4
divsd  %xmm1,%xmm4
movapd 0x70(%rsp),%xmm0
subsd  %xmm4,%xmm0
movapd %xmm0,0x70(%rsp)
movsd  (%rsp),%xmm0
movapd %xmm0,%xmm1
addsd  0x2121(%rip),%xmm1
movsd  %xmm1,0xf0(%rsp)
movsd  0x2118(%rip),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x50(%rsp)
movaps 0x20(%rsp),%xmm0
call   1040 <pow@plt>
movsd  %xmm0,0x60(%rsp)
movsd  0xf0(%rsp),%xmm1
divsd  (%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movapd 0x20(%rsp),%xmm0
call   1040 <pow@plt>
movsd  (%rsp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x60(%rsp),%xmm2
mulsd  0xf0(%rsp),%xmm2
addsd  %xmm0,%xmm2
addsd  %xmm1,%xmm1
addsd  0x20af(%rip),%xmm1
divsd  %xmm1,%xmm2
mulsd  0x120(%rsp),%xmm2
movsd  %xmm2,0x60(%rsp)
movapd 0x20(%rsp),%xmm0
movsd  0x50(%rsp),%xmm1
call   1040 <pow@plt>
mulsd  0xd0(%rsp),%xmm0
mulsd  0x70(%rsp),%xmm0
addsd  0x60(%rsp),%xmm0
movsd  %xmm0,0x8(%r12)
movsd  0x8(%r15),%xmm1
movapd 0x100(%rsp),%xmm2
subsd  %xmm2,%xmm1
mulsd  (%r15),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%r12)
movsd  0x8(%r15),%xmm0
subsd  %xmm2,%xmm0
mulsd  (%r15),%xmm0
movsd  %xmm0,0x70(%rsp)
movapd 0x20(%rsp),%xmm0
movsd  0x8(%rsp),%xmm1
call   1040 <pow@plt>
mulsd  0x70(%rsp),%xmm0
mulsd  0x130(%rsp),%xmm0
movapd 0x30(%rsp),%xmm2
divsd  %xmm2,%xmm0
addsd  0x18(%r12),%xmm0
movapd 0xa0(%rsp),%xmm1
divsd  %xmm1,%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%r12)
movsd  0x1e0(%rsp),%xmm0
movsd  %xmm0,0x10(%r15)
movsd  0x8(%r15),%xmm0
xorpd  0x1ffa(%rip),%xmm0
movsd  0x1e8(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  (%r15),%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,0x10(%r12)
movsd  0x40(%rsp),%xmm3
jmp    31fa <linear_GRP_solver_Edir+0x20ca>
test   %ecx,%ecx
movsd  %xmm3,0x88(%rsp)
je     241b <linear_GRP_solver_Edir+0x12eb>
movsd  0x1f91(%rip),%xmm0
movapd %xmm0,%xmm1
movapd %xmm0,%xmm4
divsd  0x40(%rsp),%xmm1
movsd  0x90(%rsp),%xmm0
divsd  %xmm0,%xmm1
movapd %xmm1,0x150(%rsp)
divsd  %xmm15,%xmm0
movsd  %xmm0,0xc0(%rsp)
movapd 0x1f7f(%rip),%xmm2
xorpd  %xmm15,%xmm2
mulsd  0x130(%rsp),%xmm2
movsd  0x208(%rsp),%xmm1
movapd %xmm1,%xmm3
mulsd  0x218(%rsp),%xmm3
divsd  %xmm15,%xmm3
addsd  %xmm2,%xmm3
mulsd  %xmm15,%xmm2
addsd  %xmm1,%xmm2
movsd  0x8(%rsp),%xmm1
divsd  %xmm1,%xmm2
movapd %xmm2,0x110(%rsp)
divsd  %xmm1,%xmm3
divsd  0x20(%rsp),%xmm3
addsd  0xf0(%rsp),%xmm3
movsd  %xmm3,0xe8(%rsp)
movsd  (%rsp),%xmm2
movapd %xmm2,%xmm1
addsd  %xmm4,%xmm1
movsd  %xmm1,0x50(%rsp)
movsd  0x1edf(%rip),%xmm1
divsd  %xmm2,%xmm1
movsd  %xmm1,0x140(%rsp)
call   1040 <pow@plt>
movapd %xmm0,0x160(%rsp)
movsd  0x50(%rsp),%xmm1
divsd  (%rsp),%xmm1
movsd  0xc0(%rsp),%xmm0
call   1040 <pow@plt>
movsd  (%rsp),%xmm1
mulsd  %xmm1,%xmm0
movapd 0x160(%rsp),%xmm2
mulsd  0x50(%rsp),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm0
movapd 0x110(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
movapd %xmm1,%xmm0
addsd  %xmm1,%xmm0
movsd  0x1e66(%rip),%xmm1
movsd  %xmm1,0x110(%rsp)
addsd  0x1e55(%rip),%xmm0
movapd 0x20(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
movapd %xmm2,%xmm0
divpd  %xmm1,%xmm0
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,0x50(%rsp)
movsd  0xc0(%rsp),%xmm0
movsd  0x140(%rsp),%xmm1
call   1040 <pow@plt>
movsd  0x88(%rsp),%xmm1
movsd  0x1d0(%rsp),%xmm11
movsd  0x210(%rsp),%xmm9
movapd 0x30(%rsp),%xmm10
mulsd  0x60(%rsp),%xmm0
mulsd  0xe8(%rsp),%xmm0
movapd 0x50(%rsp),%xmm2
subsd  %xmm0,%xmm2
movapd %xmm2,0x50(%rsp)
movsd  0x18(%rsp),%xmm13
cmpl   $0x0,0xbc(%rsp)
je     26e6 <linear_GRP_solver_Edir+0x15b6>
movsd  0x1db2(%rip),%xmm0
divsd  %xmm13,%xmm0
divsd  %xmm1,%xmm0
movapd %xmm0,0xc0(%rsp)
movapd 0xd0(%rsp),%xmm2
divsd  %xmm2,%xmm1
movapd %xmm1,%xmm0
movsd  %xmm1,0xe8(%rsp)
movapd 0x1dae(%rip),%xmm3
xorpd  %xmm2,%xmm3
mulsd  0x120(%rsp),%xmm3
movsd  0x218(%rsp),%xmm1
mulsd  %xmm9,%xmm1
divsd  %xmm2,%xmm1
addsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm3
addsd  %xmm9,%xmm3
movsd  0x8(%rsp),%xmm2
divsd  %xmm2,%xmm3
movapd %xmm3,0x190(%rsp)
divsd  %xmm2,%xmm1
divsd  %xmm10,%xmm1
subsd  %xmm1,%xmm11
movapd %xmm11,0x160(%rsp)
movsd  (%rsp),%xmm2
movapd %xmm2,%xmm1
addsd  0x1d1e(%rip),%xmm1
movsd  %xmm1,0x140(%rsp)
movsd  0x1d15(%rip),%xmm1
divsd  %xmm2,%xmm1
movsd  %xmm1,0x178(%rsp)
call   1040 <pow@plt>
movapd %xmm0,0x180(%rsp)
movsd  0x140(%rsp),%xmm1
divsd  (%rsp),%xmm1
movsd  0xe8(%rsp),%xmm0
call   1040 <pow@plt>
movsd  (%rsp),%xmm1
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm2
mulsd  0x140(%rsp),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm0
movapd 0x190(%rsp),%xmm2
unpcklpd %xmm0,%xmm2
movapd %xmm1,%xmm0
addsd  %xmm1,%xmm0
addsd  0x1c96(%rip),%xmm0
movapd 0x30(%rsp),%xmm1
unpcklpd %xmm0,%xmm1
movapd %xmm2,%xmm0
divpd  %xmm1,%xmm0
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,0x140(%rsp)
movsd  0xe8(%rsp),%xmm0
movsd  0x178(%rsp),%xmm1
call   1040 <pow@plt>
movsd  0x1c50(%rip),%xmm4
movapd 0xc0(%rsp),%xmm6
movapd 0xd0(%rsp),%xmm10
movapd 0x60(%rsp),%xmm12
movsd  0x1f8(%rsp),%xmm11
movsd  (%rsp),%xmm15
mulsd  %xmm10,%xmm0
mulsd  0x160(%rsp),%xmm0
addsd  0x140(%rsp),%xmm0
movapd 0x100(%rsp),%xmm8
movsd  0x110(%rsp),%xmm7
movapd 0x150(%rsp),%xmm13
jmp    29ab <linear_GRP_solver_Edir+0x187b>
movsd  0x10(%rsp),%xmm1
movsd  0x8(%rsp),%xmm2
mulsd  %xmm2,%xmm1
movsd  0x48(%rsp),%xmm3
movapd %xmm3,%xmm0
movsd  0x1f8(%rsp),%xmm6
mulsd  %xmm6,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x1bc2(%rip),%xmm0
divsd  0x40(%rsp),%xmm0
xorpd  %xmm7,%xmm7
ucomisd %xmm7,%xmm0
jb     2467 <linear_GRP_solver_Edir+0x1337>
xorps  %xmm4,%xmm4
sqrtsd %xmm0,%xmm4
jmp    2489 <linear_GRP_solver_Edir+0x1359>
call   1050 <sqrt@plt>
xorpd  %xmm7,%xmm7
movsd  0x48(%rsp),%xmm3
movsd  0x8(%rsp),%xmm2
movsd  0x1f8(%rsp),%xmm6
movapd %xmm0,%xmm4
movapd 0x20(%rsp),%xmm5
movapd %xmm2,%xmm1
mulsd  %xmm6,%xmm1
movsd  0x10(%rsp),%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x1b63(%rip),%xmm0
divsd  %xmm5,%xmm0
ucomisd %xmm7,%xmm0
movapd %xmm4,0x150(%rsp)
jb     24cb <linear_GRP_solver_Edir+0x139b>
xorps  %xmm15,%xmm15
sqrtsd %xmm0,%xmm15
jmp    24e4 <linear_GRP_solver_Edir+0x13b4>
call   1050 <sqrt@plt>
movsd  0x1f8(%rsp),%xmm6
movapd 0x20(%rsp),%xmm5
movapd %xmm0,%xmm15
movsd  (%rsp),%xmm1
movapd 0x1b3f(%rip),%xmm3
xorpd  %xmm15,%xmm3
movsd  0x1b09(%rip),%xmm14
movapd %xmm14,%xmm0
subsd  %xmm1,%xmm0
movapd %xmm1,%xmm2
mulsd  %xmm6,%xmm2
movsd  0x10(%rsp),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm5,%xmm1
divsd  %xmm1,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movapd %xmm2,0x50(%rsp)
movapd %xmm3,0x110(%rsp)
jb     2541 <linear_GRP_solver_Edir+0x1411>
sqrtsd %xmm0,%xmm0
jmp    2572 <linear_GRP_solver_Edir+0x1442>
movapd %xmm15,0xc0(%rsp)
call   1050 <sqrt@plt>
movapd 0xc0(%rsp),%xmm15
movsd  0x1aa5(%rip),%xmm14
movsd  0x1f8(%rsp),%xmm6
movapd 0x20(%rsp),%xmm5
movsd  0x18(%rsp),%xmm13
movapd 0x30(%rsp),%xmm10
movsd  0x210(%rsp),%xmm9
movsd  0x1d0(%rsp),%xmm11
movapd 0x60(%rsp),%xmm12
movapd 0x150(%rsp),%xmm4
movsd  0x1a64(%rip),%xmm3
mulsd  %xmm0,%xmm3
movsd  0x10(%rsp),%xmm1
movsd  (%rsp),%xmm7
movapd %xmm7,%xmm2
addsd  %xmm7,%xmm2
addsd  %xmm14,%xmm2
mulsd  %xmm6,%xmm2
addsd  %xmm1,%xmm2
mulsd  0x1a40(%rip),%xmm0
mulsd  %xmm3,%xmm2
movsd  0x1a3c(%rip),%xmm3
addsd  %xmm7,%xmm3
mulsd  %xmm1,%xmm3
movapd 0x50(%rsp),%xmm8
addsd  %xmm8,%xmm3
addsd  %xmm1,%xmm8
mulsd  %xmm0,%xmm3
divsd  %xmm8,%xmm3
subsd  %xmm6,%xmm1
mulsd  %xmm0,%xmm1
movsd  0x19ea(%rip),%xmm0
divsd  %xmm5,%xmm0
movapd %xmm15,%xmm7
mulsd  %xmm3,%xmm7
addsd  %xmm0,%xmm7
movapd %xmm12,%xmm0
mulsd  %xmm12,%xmm0
mulsd  %xmm3,%xmm0
divsd  %xmm5,%xmm1
addsd  %xmm1,%xmm0
mulsd  %xmm5,%xmm0
addsd  0x110(%rsp),%xmm0
mulsd  %xmm15,%xmm1
movsd  0x40(%rsp),%xmm3
movapd %xmm3,%xmm6
mulsd  %xmm4,%xmm6
unpcklpd %xmm2,%xmm4
movsd  0x90(%rsp),%xmm5
movapd %xmm5,%xmm2
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm2
unpcklpd %xmm8,%xmm2
divpd  %xmm2,%xmm4
movapd %xmm4,%xmm2
unpckhpd %xmm4,%xmm2
mulsd  %xmm2,%xmm6
addsd  %xmm14,%xmm6
movsd  %xmm6,0x110(%rsp)
addsd  %xmm4,%xmm2
movapd %xmm2,0x150(%rsp)
mulsd  0xf0(%rsp),%xmm0
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
mulsd  0x208(%rsp),%xmm7
addsd  %xmm1,%xmm7
movapd %xmm7,0x50(%rsp)
movsd  0x88(%rsp),%xmm1
cmpl   $0x0,0xbc(%rsp)
jne    2246 <linear_GRP_solver_Edir+0x1116>
movsd  0x10(%rsp),%xmm1
movsd  0x8(%rsp),%xmm2
mulsd  %xmm2,%xmm1
movsd  0x48(%rsp),%xmm3
movapd %xmm3,%xmm0
mulsd  0x200(%rsp),%xmm0
addsd  %xmm1,%xmm0
mulsd  0x18fb(%rip),%xmm0
divsd  %xmm13,%xmm0
xorpd  %xmm5,%xmm5
ucomisd %xmm5,%xmm0
jb     272d <linear_GRP_solver_Edir+0x15fd>
xorps  %xmm4,%xmm4
sqrtsd %xmm0,%xmm4
jmp    274d <linear_GRP_solver_Edir+0x161d>
call   1050 <sqrt@plt>
xorpd  %xmm5,%xmm5
movsd  0x48(%rsp),%xmm3
movsd  0x8(%rsp),%xmm2
movapd 0x30(%rsp),%xmm10
movapd %xmm0,%xmm4
movapd %xmm2,%xmm1
mulsd  0x200(%rsp),%xmm1
movsd  0x10(%rsp),%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x18a0(%rip),%xmm0
divsd  %xmm10,%xmm0
ucomisd %xmm5,%xmm0
movapd %xmm4,0xc0(%rsp)
jb     278b <linear_GRP_solver_Edir+0x165b>
sqrtsd %xmm0,%xmm15
jmp    279c <linear_GRP_solver_Edir+0x166c>
call   1050 <sqrt@plt>
movapd 0x30(%rsp),%xmm10
movapd %xmm0,%xmm15
movsd  (%rsp),%xmm2
movsd  0x185f(%rip),%xmm0
subsd  %xmm2,%xmm0
movapd %xmm2,%xmm3
mulsd  0x200(%rsp),%xmm3
movsd  0x10(%rsp),%xmm1
addsd  %xmm3,%xmm1
mulsd  %xmm10,%xmm1
divsd  %xmm1,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     27f5 <linear_GRP_solver_Edir+0x16c5>
sqrtsd %xmm0,%xmm0
movsd  0x1f8(%rsp),%xmm11
movsd  0x1d0(%rsp),%xmm9
movapd %xmm3,%xmm6
jmp    2840 <linear_GRP_solver_Edir+0x1710>
movsd  %xmm15,0xe8(%rsp)
movapd %xmm3,0x140(%rsp)
call   1050 <sqrt@plt>
movsd  0xe8(%rsp),%xmm15
movsd  (%rsp),%xmm2
movapd 0x30(%rsp),%xmm10
movsd  0x1f8(%rsp),%xmm11
movsd  0x1d0(%rsp),%xmm9
movapd 0x140(%rsp),%xmm6
movapd 0x60(%rsp),%xmm12
movapd 0x150(%rsp),%xmm13
movapd 0xc0(%rsp),%xmm14
movsd  0x17ad(%rip),%xmm3
mulsd  %xmm0,%xmm3
movsd  0x10(%rsp),%xmm1
addsd  %xmm2,%xmm2
movsd  0x178e(%rip),%xmm8
addsd  %xmm8,%xmm2
movsd  0x200(%rsp),%xmm7
mulsd  %xmm7,%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x177c(%rip),%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm3,%xmm4
movsd  0x1774(%rip),%xmm5
addsd  (%rsp),%xmm5
mulsd  %xmm1,%xmm5
addsd  %xmm6,%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm1,%xmm6
divsd  %xmm6,%xmm5
subsd  %xmm7,%xmm1
mulsd  %xmm3,%xmm1
mulsd  %xmm0,%xmm1
divsd  %xmm10,%xmm1
movsd  0x1722(%rip),%xmm3
divsd  %xmm10,%xmm3
movapd %xmm15,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm3,%xmm0
movapd 0xd0(%rsp),%xmm3
movapd %xmm3,%xmm4
mulsd  %xmm3,%xmm4
mulsd  %xmm5,%xmm4
addsd  %xmm1,%xmm4
mulsd  %xmm10,%xmm4
movapd %xmm3,%xmm10
movapd %xmm15,%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm15,%xmm1
movsd  0x18(%rsp),%xmm5
movapd %xmm5,%xmm4
mulsd  %xmm14,%xmm4
unpcklpd %xmm2,%xmm14
movsd  0x88(%rsp),%xmm7
movapd %xmm7,%xmm2
mulsd  %xmm5,%xmm2
movsd  (%rsp),%xmm15
mulsd  %xmm7,%xmm2
unpcklpd %xmm6,%xmm2
divpd  %xmm2,%xmm14
movapd %xmm14,%xmm6
unpckhpd %xmm14,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm8,%xmm4
addsd  %xmm14,%xmm6
mulsd  %xmm9,%xmm3
mulsd  0x120(%rsp),%xmm1
addsd  %xmm3,%xmm1
mulsd  0x210(%rsp),%xmm0
addsd  %xmm1,%xmm0
xorpd  0x1698(%rip),%xmm6
movapd 0x100(%rsp),%xmm8
movsd  0x110(%rsp),%xmm7
movapd 0x50(%rsp),%xmm5
movapd %xmm15,%xmm3
mulsd  %xmm15,%xmm3
movapd %xmm4,%xmm1
mulsd  %xmm13,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm6,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm13
mulsd  %xmm5,%xmm6
subsd  %xmm13,%xmm6
divsd  %xmm2,%xmm6
mulsd  %xmm4,%xmm5
mulsd  %xmm0,%xmm7
subsd  %xmm5,%xmm7
divsd  %xmm2,%xmm7
movsd  0x98(%rsp),%xmm0
ucomisd %xmm0,%xmm8
jbe    2b48 <linear_GRP_solver_Edir+0x1a18>
movsd  0x18(%rsp),%xmm2
movsd  %xmm2,(%r15)
movsd  %xmm0,0x8(%r15)
movsd  0x1e0(%rsp),%xmm1
movsd  %xmm1,0x10(%r15)
movsd  0x10(%rsp),%xmm1
movsd  %xmm1,0x18(%r15)
subsd  %xmm8,%xmm0
movapd %xmm2,%xmm5
mulsd  %xmm0,%xmm5
mulsd  %xmm7,%xmm0
divsd  %xmm2,%xmm0
movsd  0x88(%rsp),%xmm4
divsd  %xmm4,%xmm0
divsd  %xmm4,%xmm0
addsd  %xmm6,%xmm0
movsd  %xmm0,0x8(%r12)
movapd %xmm5,%xmm0
mulsd  %xmm6,%xmm0
addsd  %xmm7,%xmm0
movsd  %xmm0,0x18(%r12)
cmpl   $0x0,0xbc(%rsp)
je     2c8a <linear_GRP_solver_Edir+0x1b5a>
movapd %xmm4,%xmm0
divsd  %xmm10,%xmm0
movsd  0x1573(%rip),%xmm1
addsd  %xmm15,%xmm1
divsd  %xmm15,%xmm1
movsd  %xmm5,0x20(%rsp)
call   1040 <pow@plt>
movsd  0x18(%rsp),%xmm7
movsd  0x20(%rsp),%xmm2
mulsd  %xmm0,%xmm2
movapd 0x120(%rsp),%xmm0
movapd 0xd0(%rsp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x210(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x30(%rsp),%xmm0
divsd  %xmm0,%xmm1
addsd  0x18(%r12),%xmm1
movsd  0x88(%rsp),%xmm2
divsd  %xmm2,%xmm1
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r12)
movsd  0x1f0(%rsp),%xmm1
movapd 0x100(%rsp),%xmm2
mulsd  %xmm1,%xmm2
mulsd  0x8(%r15),%xmm1
mulsd  (%r15),%xmm1
divsd  %xmm0,%xmm1
subsd  %xmm1,%xmm2
movsd  %xmm2,0x10(%r12)
movsd  0x40(%rsp),%xmm3
jmp    3200 <linear_GRP_solver_Edir+0x20d0>
movsd  0x40(%rsp),%xmm2
movsd  %xmm2,(%r15)
movsd  %xmm0,0x8(%r15)
movsd  0x1d8(%rsp),%xmm1
movsd  %xmm1,0x10(%r15)
movsd  0x10(%rsp),%xmm1
movsd  %xmm1,0x18(%r15)
subsd  %xmm8,%xmm0
movapd %xmm2,%xmm5
mulsd  %xmm0,%xmm5
mulsd  %xmm7,%xmm0
divsd  %xmm2,%xmm0
movsd  0x90(%rsp),%xmm4
divsd  %xmm4,%xmm0
divsd  %xmm4,%xmm0
addsd  %xmm6,%xmm0
movsd  %xmm0,0x8(%r12)
movapd %xmm5,%xmm0
mulsd  %xmm6,%xmm0
addsd  %xmm7,%xmm0
movsd  %xmm0,0x18(%r12)
cmpl   $0x0,0xb8(%rsp)
je     2ce4 <linear_GRP_solver_Edir+0x1bb4>
movapd %xmm4,%xmm0
divsd  %xmm12,%xmm0
movsd  0x1431(%rip),%xmm1
addsd  %xmm15,%xmm1
divsd  %xmm15,%xmm1
movsd  %xmm4,0x90(%rsp)
movsd  %xmm5,0x30(%rsp)
call   1040 <pow@plt>
movsd  0x40(%rsp),%xmm3
movsd  0x30(%rsp),%xmm2
mulsd  %xmm0,%xmm2
movapd 0x130(%rsp),%xmm1
movapd 0x60(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movsd  0x208(%rsp),%xmm0
subsd  %xmm1,%xmm0
mulsd  %xmm2,%xmm0
movapd 0x20(%rsp),%xmm1
divsd  %xmm1,%xmm0
addsd  0x18(%r12),%xmm0
movsd  0x90(%rsp),%xmm2
divsd  %xmm2,%xmm0
divsd  %xmm2,%xmm0
movsd  %xmm0,(%r12)
movsd  0x1e8(%rsp),%xmm0
movapd 0x100(%rsp),%xmm2
mulsd  %xmm0,%xmm2
mulsd  0x8(%r15),%xmm0
mulsd  (%r15),%xmm0
divsd  %xmm1,%xmm0
subsd  %xmm0,%xmm2
movsd  %xmm2,0x10(%r12)
jmp    31fa <linear_GRP_solver_Edir+0x20ca>
movsd  %xmm7,0x110(%rsp)
movsd  0x8(%rsp),%xmm5
mulsd  %xmm5,%xmm1
movsd  0x48(%rsp),%xmm7
movapd %xmm7,%xmm0
movsd  0x200(%rsp),%xmm4
mulsd  %xmm4,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x1350(%rip),%xmm0
divsd  %xmm2,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movapd %xmm6,0xc0(%rsp)
movsd  %xmm3,0x50(%rsp)
jb     2d38 <linear_GRP_solver_Edir+0x1c08>
sqrtsd %xmm0,%xmm14
jmp    2d5b <linear_GRP_solver_Edir+0x1c2b>
movsd  0x8(%rsp),%xmm4
mulsd  %xmm4,%xmm1
movsd  0x48(%rsp),%xmm5
movapd %xmm5,%xmm0
mulsd  %xmm11,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x1307(%rip),%xmm0
divsd  %xmm2,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movsd  %xmm7,0x110(%rsp)
movapd %xmm6,0xc0(%rsp)
movsd  %xmm3,0x50(%rsp)
jb     2d8d <linear_GRP_solver_Edir+0x1c5d>
xorps  %xmm6,%xmm6
sqrtsd %xmm0,%xmm6
jmp    2db0 <linear_GRP_solver_Edir+0x1c80>
call   1050 <sqrt@plt>
xorpd  %xmm1,%xmm1
movsd  0x48(%rsp),%xmm7
movsd  0x8(%rsp),%xmm5
movsd  0x200(%rsp),%xmm4
movapd %xmm0,%xmm14
movapd 0x30(%rsp),%xmm6
mulsd  0x10(%rsp),%xmm7
mulsd  %xmm4,%xmm5
addsd  %xmm5,%xmm7
mulsd  0x1299(%rip),%xmm7
divsd  %xmm6,%xmm7
ucomisd %xmm1,%xmm7
jb     2df9 <linear_GRP_solver_Edir+0x1cc9>
xorps  %xmm0,%xmm0
sqrtsd %xmm7,%xmm0
jmp    2e16 <linear_GRP_solver_Edir+0x1ce6>
call   1050 <sqrt@plt>
xorpd  %xmm1,%xmm1
movsd  0x48(%rsp),%xmm5
movsd  0x8(%rsp),%xmm4
movsd  0x1f8(%rsp),%xmm11
movapd %xmm0,%xmm6
movapd 0x20(%rsp),%xmm7
movapd 0x1272(%rip),%xmm0
mulsd  0x10(%rsp),%xmm5
mulsd  %xmm11,%xmm4
addsd  %xmm4,%xmm5
mulsd  0x123b(%rip),%xmm5
xorpd  %xmm6,%xmm0
movapd %xmm0,0x30(%rsp)
divsd  %xmm7,%xmm5
ucomisd %xmm1,%xmm5
jb     2ff5 <linear_GRP_solver_Edir+0x1ec5>
xorps  %xmm0,%xmm0
sqrtsd %xmm5,%xmm0
jmp    3020 <linear_GRP_solver_Edir+0x1ef0>
movapd %xmm7,%xmm0
movsd  %xmm14,0x20(%rsp)
call   1050 <sqrt@plt>
movsd  0x20(%rsp),%xmm14
movapd 0x30(%rsp),%xmm6
movsd  (%rsp),%xmm8
movapd 0xa0(%rsp),%xmm10
movsd  0x210(%rsp),%xmm11
movsd  0x1d0(%rsp),%xmm12
movsd  0x50(%rsp),%xmm13
movapd %xmm6,%xmm2
movsd  0x200(%rsp),%xmm4
mulsd  %xmm4,%xmm2
movsd  0x11ae(%rip),%xmm1
subsd  %xmm13,%xmm1
mulsd  %xmm2,%xmm1
movsd  0x10(%rsp),%xmm2
movapd %xmm8,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm4,%xmm8
addsd  %xmm2,%xmm8
addsd  0x1177(%rip),%xmm13
mulsd  %xmm6,%xmm2
mulsd  %xmm2,%xmm13
divsd  %xmm3,%xmm1
divsd  %xmm3,%xmm1
divsd  %xmm3,%xmm13
divsd  %xmm3,%xmm13
divsd  %xmm3,%xmm8
movapd 0xd0(%rsp),%xmm2
movapd %xmm2,%xmm3
mulsd  %xmm13,%xmm3
mulsd  %xmm2,%xmm3
movapd %xmm0,%xmm2
mulsd  %xmm8,%xmm2
movapd 0x120(%rsp),%xmm9
mulsd  %xmm9,%xmm2
movapd %xmm0,%xmm4
mulsd  %xmm13,%xmm4
mulsd  %xmm11,%xmm4
addsd  %xmm2,%xmm4
movsd  0x98(%rsp),%xmm5
movapd %xmm14,%xmm2
addsd  %xmm5,%xmm2
movsd  0x88(%rsp),%xmm7
divsd  %xmm7,%xmm2
divsd  %xmm7,%xmm2
addsd  %xmm8,%xmm3
mulsd  %xmm6,%xmm3
mulsd  %xmm12,%xmm3
movsd  0x18(%rsp),%xmm7
movapd %xmm7,%xmm6
mulsd  %xmm5,%xmm6
subsd  %xmm3,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm2
mulsd  %xmm14,%xmm6
mulsd  %xmm1,%xmm6
movapd 0xc0(%rsp),%xmm12
mulsd  %xmm12,%xmm6
movsd  0x110(%rsp),%xmm5
mulsd  %xmm5,%xmm2
addsd  %xmm6,%xmm2
subsd  %xmm4,%xmm2
mulsd  %xmm9,%xmm8
mulsd  %xmm11,%xmm13
addsd  %xmm8,%xmm13
mulsd  %xmm0,%xmm13
subsd  %xmm3,%xmm13
movapd %xmm14,%xmm3
mulsd  %xmm7,%xmm3
mulsd  %xmm12,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm1,%xmm5
addsd  %xmm13,%xmm5
divsd  %xmm14,%xmm2
subsd  %xmm2,%xmm5
addsd  %xmm0,%xmm10
divsd  %xmm10,%xmm5
movapd 0x100(%rsp),%xmm1
mulsd  %xmm1,%xmm5
addsd  %xmm2,%xmm5
movsd  %xmm5,(%r12)
mulsd  0x8(%r15),%xmm0
movsd  0x1f0(%rsp),%xmm2
mulsd  %xmm2,%xmm0
divsd  %xmm14,%xmm0
mulsd  %xmm2,%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%r12)
movsd  0x40(%rsp),%xmm3
jmp    3200 <linear_GRP_solver_Edir+0x20d0>
movapd %xmm5,%xmm0
movapd %xmm6,0xa0(%rsp)
call   1050 <sqrt@plt>
movapd 0xa0(%rsp),%xmm6
movsd  0x1f8(%rsp),%xmm11
movapd 0x20(%rsp),%xmm7
movsd  (%rsp),%xmm4
movapd 0x60(%rsp),%xmm5
movsd  0x50(%rsp),%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm11,%xmm2
movsd  0xfc5(%rip),%xmm14
subsd  %xmm1,%xmm14
mulsd  %xmm2,%xmm14
movsd  0x10(%rsp),%xmm2
movapd %xmm4,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm11,%xmm3
mulsd  %xmm11,%xmm4
addsd  %xmm2,%xmm4
mulsd  %xmm7,%xmm2
addsd  0xf8b(%rip),%xmm1
mulsd  %xmm2,%xmm1
divsd  %xmm3,%xmm14
divsd  %xmm3,%xmm14
divsd  %xmm3,%xmm1
divsd  %xmm3,%xmm1
divsd  %xmm3,%xmm4
movapd %xmm5,%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm5,%xmm2
movapd 0xf8c(%rip),%xmm8
xorpd  %xmm0,%xmm8
movapd %xmm4,%xmm12
mulsd  %xmm8,%xmm4
movapd 0x130(%rsp),%xmm11
mulsd  %xmm11,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm0,%xmm5
movsd  0x208(%rsp),%xmm10
mulsd  %xmm10,%xmm5
subsd  %xmm5,%xmm4
addsd  %xmm12,%xmm2
mulsd  %xmm7,%xmm2
mulsd  0xf0(%rsp),%xmm2
movsd  0x98(%rsp),%xmm5
movapd %xmm14,%xmm3
mulsd  %xmm5,%xmm3
movsd  0x40(%rsp),%xmm9
movapd %xmm9,%xmm7
mulsd  %xmm5,%xmm7
subsd  %xmm2,%xmm4
mulsd  %xmm5,%xmm4
subsd  %xmm6,%xmm5
movsd  0x90(%rsp),%xmm13
divsd  %xmm13,%xmm5
divsd  %xmm13,%xmm5
subsd  %xmm3,%xmm5
movapd 0x30(%rsp),%xmm10
mulsd  %xmm10,%xmm7
mulsd  %xmm14,%xmm7
movapd 0xc0(%rsp),%xmm15
mulsd  %xmm15,%xmm7
movsd  0x110(%rsp),%xmm13
mulsd  %xmm13,%xmm5
addsd  %xmm7,%xmm5
subsd  %xmm4,%xmm5
mulsd  %xmm11,%xmm12
mulsd  0x208(%rsp),%xmm1
addsd  %xmm12,%xmm1
mulsd  %xmm8,%xmm1
subsd  %xmm2,%xmm1
movapd %xmm9,%xmm3
mulsd  %xmm9,%xmm6
mulsd  %xmm15,%xmm6
addsd  %xmm13,%xmm6
mulsd  %xmm14,%xmm6
addsd  %xmm1,%xmm6
divsd  %xmm10,%xmm5
subsd  %xmm5,%xmm6
movapd 0x70(%rsp),%xmm1
subsd  %xmm0,%xmm1
divsd  %xmm1,%xmm6
movapd 0x100(%rsp),%xmm1
mulsd  %xmm1,%xmm6
addsd  %xmm5,%xmm6
movsd  %xmm6,(%r12)
mulsd  0x8(%r15),%xmm0
movsd  0x1e8(%rsp),%xmm2
mulsd  %xmm2,%xmm0
divsd  %xmm10,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%r12)
movsd  0x18(%rsp),%xmm7
movsd  %xmm3,(%r14)
movsd  0x98(%rsp),%xmm0
movsd  %xmm0,0x8(%r14)
movsd  %xmm7,0x10(%r14)
movsd  0x10(%rsp),%xmm3
movsd  %xmm3,0x18(%r14)
add    $0x1a8,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
define void @linear_GRP_solver_Edir(double* %0, double* %1, double* %2, double* %3, double %4, double %5, double %6, double %7, double %8, double %9, double %10, double %11, double %12, double %13, double %14, double %15, double %16, double %17, double %18, double %19, double %20, double %21, double %22) {
%24 = alloca double*
%25 = alloca double*
%26 = alloca double*
%27 = alloca double*
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca [2 x i32]
%52 = alloca double
%53 = alloca double
%54 = alloca double
%55 = alloca double
%56 = alloca double
%57 = alloca double
%58 = alloca double
%59 = alloca double
%60 = alloca double
%61 = alloca double
%62 = alloca double
%63 = alloca double
%64 = alloca double
%65 = alloca double
%66 = alloca double
%67 = alloca double
%68 = alloca double
%69 = alloca double
%70 = alloca double
%71 = alloca double
%72 = alloca double
%73 = alloca double
%74 = alloca double
%75 = alloca double
%76 = alloca double
%77 = alloca double
%78 = alloca double
%79 = alloca double
%80 = alloca double
%81 = alloca double
%82 = alloca double
%83 = alloca double
%84 = alloca double
%85 = alloca double
%86 = alloca double
%87 = alloca double
%88 = alloca double
%89 = alloca double
%90 = alloca double
%91 = alloca double
%92 = alloca double
%93 = alloca double
store double* %0, double** %24
store double* %1, double** %25
store double* %2, double** %26
store double* %3, double** %27
store double %4, double* %28
store double %5, double* %29
store double %6, double* %30
store double %7, double* %31
store double %8, double* %32
store double %9, double* %33
store double %10, double* %34
store double %11, double* %35
store double %12, double* %36
store double %13, double* %37
store double %14, double* %38
store double %15, double* %39
store double %16, double* %40
store double %17, double* %41
store double %18, double* %42
store double %19, double* %43
store double %20, double* %44
store double %21, double* %45
store double %22, double* %46
%94 = load double, double* %45
%95 = fsub double %94, 1.000000e+00
%96 = load double, double* %45
%97 = fadd double %96, 1.000000e+00
%98 = fdiv double %95, %97
store double %98, double* %84
%99 = load double, double* %84
%100 = load double, double* %84
%101 = fmul double %99, %100
store double %101, double* %85
%102 = load double, double* %45
%103 = load double, double* %41
%104 = fmul double %102, %103
%105 = load double, double* %29
%106 = fdiv double %104, %105
%107 = call double @sqrt(double %106)
store double %107, double* %48
%108 = load double, double* %45
%109 = load double, double* %42
%110 = fmul double %108, %109
%111 = load double, double* %30
%112 = fdiv double %110, %111
%113 = call double @sqrt(double %112)
store double %113, double* %49
%114 = load double, double* %29
%115 = load double, double* %30
%116 = fsub double %114, %115
%117 = load double, double* %29
%118 = load double, double* %30
%119 = fsub double %117, %118
%120 = load double, double* %33
%121 = load double, double* %34
%122 = fsub double %120, %121
%123 = load double, double* %33
%124 = load double, double* %34
%125 = fsub double %123, %124
%126 = fmul double %122, %125
%127 = call double @llvm.fmuladd.f64(double %116, double %119, double %126)
%128 = load double, double* %41
%129 = load double, double* %42
%130 = fsub double %128, %129
%131 = load double, double* %41
%132 = load double, double* %42
%133 = fsub double %131, %132
%134 = call double @llvm.fmuladd.f64(double %130, double %133, double %127)
store double %134, double* %47
%135 = load double, double* %47
%136 = load double, double* %46
%137 = fcmp olt double %135, %136
br i1 %137, label %138, label %360
138: ; preds = %23
%139 = load double, double* %33
%140 = load double, double* %48
%141 = fsub double %139, %140
%142 = load double*, double** %24
%143 = getelementptr inbounds double, double* %142, i64 0
store double %141, double* %143
%144 = load double, double* %34
%145 = load double, double* %49
%146 = fadd double %144, %145
%147 = load double*, double** %24
%148 = getelementptr inbounds double, double* %147, i64 1
store double %146, double* %148
%149 = load double, double* %29
store double %149, double* %60
%150 = load double, double* %30
store double %150, double* %61
%151 = load double, double* %48
store double %151, double* %62
%152 = load double, double* %49
store double %152, double* %63
%153 = load double, double* %34
%154 = load double, double* %33
%155 = fadd double %153, %154
%156 = fmul double 5.000000e-01, %155
store double %156, double* %58
%157 = load double, double* %42
%158 = load double, double* %41
%159 = fadd double %157, %158
%160 = fmul double 5.000000e-01, %159
store double %160, double* %59
%161 = load double, double* %35
%162 = load double, double* %43
%163 = load double, double* %29
%164 = load double, double* %48
%165 = fmul double %163, %164
%166 = fdiv double %162, %165
%167 = fadd double %161, %166
store double %167, double* %56
%168 = load double, double* %36
%169 = load double, double* %44
%170 = load double, double* %30
%171 = load double, double* %49
%172 = fmul double %170, %171
%173 = fdiv double %169, %172
%174 = fsub double %168, %173
store double %174, double* %57
%175 = load double, double* %33
%176 = load double, double* %48
%177 = fadd double %175, %176
%178 = load double, double* %56
%179 = load double, double* %34
%180 = load double, double* %49
%181 = fsub double %179, %180
%182 = load double, double* %57
%183 = fmul double %181, %182
%184 = call double @llvm.fmuladd.f64(double %177, double %178, double %183)
%185 = fmul double -5.000000e-01, %184
%186 = load double*, double** %25
%187 = getelementptr inbounds double, double* %186, i64 1
store double %185, double* %187
%188 = load double, double* %29
%189 = fmul double -5.000000e-01, %188
%190 = load double, double* %48
%191 = fmul double %189, %190
%192 = load double, double* %33
%193 = load double, double* %48
%194 = fadd double %192, %193
%195 = load double, double* %56
%196 = load double, double* %34
%197 = load double, double* %49
%198 = fsub double %196, %197
%199 = load double, double* %57
%200 = fmul double %198, %199
%201 = fneg double %200
%202 = call double @llvm.fmuladd.f64(double %194, double %195, double %201)
%203 = fmul double %191, %202
%204 = load double*, double** %25
%205 = getelementptr inbounds double, double* %204, i64 3
store double %203, double* %205
%206 = load double, double* %58
%207 = load double, double* %28
%208 = fcmp ogt double %206, %207
br i1 %208, label %209, label %278
209: ; preds = %138
%210 = load double, double* %60
%211 = load double*, double** %26
%212 = getelementptr inbounds double, double* %211, i64 0
store double %210, double* %212
%213 = load double, double* %58
%214 = load double*, double** %26
%215 = getelementptr inbounds double, double* %214, i64 1
store double %213, double* %215
%216 = load double, double* %37
%217 = load double*, double** %26
%218 = getelementptr inbounds double, double* %217, i64 2
store double %216, double* %218
%219 = load double, double* %59
%220 = load double*, double** %26
%221 = getelementptr inbounds double, double* %220, i64 3
store double %219, double* %221
%222 = load double*, double** %25
%223 = getelementptr inbounds double, double* %222, i64 1
%224 = load double, double* %223
%225 = load double, double* %58
%226 = load double, double* %43
%227 = load double, double* %48
%228 = load double, double* %48
%229 = fmul double %227, %228
%230 = load double, double* %31
%231 = fneg double %229
%232 = call double @llvm.fmuladd.f64(double %231, double %230, double %226)
%233 = call double @llvm.fmuladd.f64(double %225, double %232, double %224)
%234 = load double, double* %48
%235 = fdiv double %233, %234
%236 = load double, double* %48
%237 = fdiv double %235, %236
%238 = load double*, double** %25
%239 = getelementptr inbounds double, double* %238, i64 0
store double %237, double* %239
%240 = load double, double* %33
%241 = fneg double %240
%242 = load double, double* %39
%243 = fmul double %241, %242
%244 = load double*, double** %25
%245 = getelementptr inbounds double, double* %244, i64 2
store double %243, double* %245
%246 = load double*, double** %25
%247 = getelementptr inbounds double, double* %246, i64 0
%248 = load double, double* %247
%249 = load double, double* %28
%250 = load double, double* %31
%251 = call double @llvm.fmuladd.f64(double %249, double %250, double %248)
%252 = load double*, double** %25
%253 = getelementptr inbounds double, double* %252, i64 0
store double %251, double* %253
%254 = load double*, double** %25
%255 = getelementptr inbounds double, double* %254, i64 1
%256 = load double, double* %255
%257 = load double, double* %28
%258 = load double, double* %35
%259 = call double @llvm.fmuladd.f64(double %257, double %258, double %256)
%260 = load double*, double** %25
%261 = getelementptr inbounds double, double* %260, i64 1
store double %259, double* %261
%262 = load double*, double** %25
%263 = getelementptr inbounds double, double* %262, i64 2
%264 = load double, double* %263
%265 = load double, double* %28
%266 = load double, double* %39
%267 = call double @llvm.fmuladd.f64(double %265, double %266, double %264)
%268 = load double*, double** %25
%269 = getelementptr inbounds double, double* %268, i64 2
store double %267, double* %269
%270 = load double*, double** %25
%271 = getelementptr inbounds double, double* %270, i64 3
%272 = load double, double* %271
%273 = load double, double* %28
%274 = load double, double* %43
%275 = call double @llvm.fmuladd.f64(double %273, double %274, double %272)
%276 = load double*, double** %25
%277 = getelementptr inbounds double, double* %276, i64 3
store double %275, double* %277
br label %347
278: ; preds = %138
%279 = load double, double* %61
%280 = load double*, double** %26
%281 = getelementptr inbounds double, double* %280, i64 0
store double %279, double* %281
%282 = load double, double* %58
%283 = load double*, double** %26
%284 = getelementptr inbounds double, double* %283, i64 1
store double %282, double* %284
%285 = load double, double* %38
%286 = load double*, double** %26
%287 = getelementptr inbounds double, double* %286, i64 2
store double %285, double* %287
%288 = load double, double* %59
%289 = load double*, double** %26
%290 = getelementptr inbounds double, double* %289, i64 3
store double %288, double* %290
%291 = load double*, double** %25
%292 = getelementptr inbounds double, double* %291, i64 1
%293 = load double, double* %292
%294 = load double, double* %58
%295 = load double, double* %44
%296 = load double, double* %49
%297 = load double, double* %49
%298 = fmul double %296, %297
%299 = load double, double* %32
%300 = fneg double %298
%301 = call double @llvm.fmuladd.f64(double %300, double %299, double %295)
%302 = call double @llvm.fmuladd.f64(double %294, double %301, double %293)
%303 = load double, double* %49
%304 = fdiv double %302, %303
%305 = load double, double* %49
%306 = fdiv double %304, %305
%307 = load double*, double** %25
%308 = getelementptr inbounds double, double* %307, i64 0
store double %306, double* %308
%309 = load double, double* %34
%310 = fneg double %309
%311 = load double, double* %40
%312 = fmul double %310, %311
%313 = load double*, double** %25
%314 = getelementptr inbounds double, double* %313, i64 2
store double %312, double* %314
%315 = load double*, double** %25
%316 = getelementptr inbounds double, double* %315, i64 0
%317 = load double, double* %316
%318 = load double, double* %28
%319 = load double, double* %32
%320 = call double @llvm.fmuladd.f64(double %318, double %319, double %317)
%321 = load double*, double** %25
%322 = getelementptr inbounds double, double* %321, i64 0
store double %320, double* %322
%323 = load double*, double** %25
%324 = getelementptr inbounds double, double* %323, i64 1
%325 = load double, double* %324
%326 = load double, double* %28
%327 = load double, double* %36
%328 = call double @llvm.fmuladd.f64(double %326, double %327, double %325)
%329 = load double*, double** %25
%330 = getelementptr inbounds double, double* %329, i64 1
store double %328, double* %330
%331 = load double*, double** %25
%332 = getelementptr inbounds double, double* %331, i64 2
%333 = load double, double* %332
%334 = load double, double* %28
%335 = load double, double* %40
%336 = call double @llvm.fmuladd.f64(double %334, double %335, double %333)
%337 = load double*, double** %25
%338 = getelementptr inbounds double, double* %337, i64 2
store double %336, double* %338
%339 = load double*, double** %25
%340 = getelementptr inbounds double, double* %339, i64 3
%341 = load double, double* %340
%342 = load double, double* %28
%343 = load double, double* %44
%344 = call double @llvm.fmuladd.f64(double %342, double %343, double %341)
%345 = load double*, double** %25
%346 = getelementptr inbounds double, double* %345, i64 3
store double %344, double* %346
br label %347
347: ; preds = %278, %209
%348 = load double, double* %60
%349 = load double*, double** %27
%350 = getelementptr inbounds double, double* %349, i64 0
store double %348, double* %350
%351 = load double, double* %58
%352 = load double*, double** %27
%353 = getelementptr inbounds double, double* %352, i64 1
store double %351, double* %353
%354 = load double, double* %61
%355 = load double*, double** %27
%356 = getelementptr inbounds double, double* %355, i64 2
store double %354, double* %356
%357 = load double, double* %59
%358 = load double*, double** %27
%359 = getelementptr inbounds double, double* %358, i64 3
store double %357, double* %359
br label %2065
360: ; preds = %23
%361 = load double, double* %45
%362 = load double, double* %33
%363 = load double, double* %34
%364 = load double, double* %41
%365 = load double, double* %42
%366 = load double, double* %48
%367 = load double, double* %49
%368 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 0
%369 = load double, double* %46
%370 = call i32 (double*, double*, double, double, double, double, double, double, double, i32*, double, i32, ...) bitcast (i32 (...)* @Riemann_solver_exact to i32 (double*, double*, double, double, double, double, double, double, double, i32*, double, i32, ...)*)(double* %58, double* %59, double %361, double %362, double %363, double %364, double %365, double %366, double %367, i32* %368, double %369, i32 500)
%371 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 0
%372 = load i32, i32* %371
%373 = icmp ne i32 %372, 0
br i1 %373, label %374, label %397
374: ; preds = %360
%375 = load double, double* %29
%376 = load double, double* %59
%377 = load double, double* %41
%378 = fdiv double %376, %377
%379 = load double, double* %45
%380 = fdiv double 1.000000e+00, %379
%381 = call double @pow(double %378, double %380)
%382 = fmul double %375, %381
store double %382, double* %60
%383 = load double, double* %48
%384 = load double, double* %59
%385 = load double, double* %41
%386 = fdiv double %384, %385
%387 = load double, double* %45
%388 = fsub double %387, 1.000000e+00
%389 = fmul double 5.000000e-01, %388
%390 = load double, double* %45
%391 = fdiv double %389, %390
%392 = call double @pow(double %386, double %391)
%393 = fmul double %383, %392
store double %393, double* %62
%394 = load double, double* %33
%395 = load double, double* %48
%396 = fsub double %394, %395
store double %396, double* %92
br label %431
397: ; preds = %360
%398 = load double, double* %29
%399 = load double, double* %59
%400 = load double, double* %84
%401 = load double, double* %41
%402 = call double @llvm.fmuladd.f64(double %400, double %401, double %399)
%403 = fmul double %398, %402
%404 = load double, double* %41
%405 = load double, double* %84
%406 = load double, double* %59
%407 = call double @llvm.fmuladd.f64(double %405, double %406, double %404)
%408 = fdiv double %403, %407
store double %408, double* %60
%409 = load double, double* %45
%410 = load double, double* %59
%411 = fmul double %409, %410
%412 = load double, double* %60
%413 = fdiv double %411, %412
%414 = call double @sqrt(double %413)
store double %414, double* %62
%415 = load double, double* %33
%416 = load double, double* %48
%417 = load double, double* %45
%418 = fadd double %417, 1.000000e+00
%419 = load double, double* %59
%420 = load double, double* %41
%421 = fdiv double %419, %420
%422 = load double, double* %45
%423 = fsub double %422, 1.000000e+00
%424 = call double @llvm.fmuladd.f64(double %418, double %421, double %423)
%425 = fmul double 5.000000e-01, %424
%426 = load double, double* %45
%427 = fdiv double %425, %426
%428 = call double @sqrt(double %427)
%429 = fneg double %416
%430 = call double @llvm.fmuladd.f64(double %429, double %428, double %415)
store double %430, double* %92
br label %431
431: ; preds = %397, %374
%432 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 1
%433 = load i32, i32* %432
%434 = icmp ne i32 %433, 0
br i1 %434, label %435, label %458
435: ; preds = %431
%436 = load double, double* %30
%437 = load double, double* %59
%438 = load double, double* %42
%439 = fdiv double %437, %438
%440 = load double, double* %45
%441 = fdiv double 1.000000e+00, %440
%442 = call double @pow(double %439, double %441)
%443 = fmul double %436, %442
store double %443, double* %61
%444 = load double, double* %49
%445 = load double, double* %59
%446 = load double, double* %42
%447 = fdiv double %445, %446
%448 = load double, double* %45
%449 = fsub double %448, 1.000000e+00
%450 = fmul double 5.000000e-01, %449
%451 = load double, double* %45
%452 = fdiv double %450, %451
%453 = call double @pow(double %447, double %452)
%454 = fmul double %444, %453
store double %454, double* %63
%455 = load double, double* %34
%456 = load double, double* %49
%457 = fadd double %455, %456
store double %457, double* %93
br label %491
458: ; preds = %431
%459 = load double, double* %30
%460 = load double, double* %59
%461 = load double, double* %84
%462 = load double, double* %42
%463 = call double @llvm.fmuladd.f64(double %461, double %462, double %460)
%464 = fmul double %459, %463
%465 = load double, double* %42
%466 = load double, double* %84
%467 = load double, double* %59
%468 = call double @llvm.fmuladd.f64(double %466, double %467, double %465)
%469 = fdiv double %464, %468
store double %469, double* %61
%470 = load double, double* %45
%471 = load double, double* %59
%472 = fmul double %470, %471
%473 = load double, double* %61
%474 = fdiv double %472, %473
%475 = call double @sqrt(double %474)
store double %475, double* %63
%476 = load double, double* %34
%477 = load double, double* %49
%478 = load double, double* %45
%479 = fadd double %478, 1.000000e+00
%480 = load double, double* %59
%481 = load double, double* %42
%482 = fdiv double %480, %481
%483 = load double, double* %45
%484 = fsub double %483, 1.000000e+00
%485 = call double @llvm.fmuladd.f64(double %479, double %482, double %484)
%486 = fmul double 5.000000e-01, %485
%487 = load double, double* %45
%488 = fdiv double %486, %487
%489 = call double @sqrt(double %488)
%490 = call double @llvm.fmuladd.f64(double %477, double %489, double %476)
store double %490, double* %93
br label %491
491: ; preds = %458, %435
%492 = load double, double* %92
%493 = load double*, double** %24
%494 = getelementptr inbounds double, double* %493, i64 0
store double %492, double* %494
%495 = load double, double* %93
%496 = load double*, double** %24
%497 = getelementptr inbounds double, double* %496, i64 1
store double %495, double* %497
%498 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 1
%499 = load i32, i32* %498
%500 = icmp ne i32 %499, 0
br i1 %500, label %501, label %507
501: ; preds = %491
%502 = load double, double* %58
%503 = load double, double* %63
%504 = fadd double %502, %503
%505 = load double*, double** %24
%506 = getelementptr inbounds double, double* %505, i64 1
store double %504, double* %506
br label %507
507: ; preds = %501, %491
%508 = load double, double* %92
%509 = load double, double* %28
%510 = fcmp ogt double %508, %509
br i1 %510, label %511, label %595
511: ; preds = %507
%512 = load double, double* %31
%513 = fneg double %512
%514 = load double, double* %33
%515 = load double, double* %29
%516 = load double, double* %35
%517 = fmul double %515, %516
%518 = fneg double %517
%519 = call double @llvm.fmuladd.f64(double %513, double %514, double %518)
%520 = load double*, double** %25
%521 = getelementptr inbounds double, double* %520, i64 0
store double %519, double* %521
%522 = load double, double* %33
%523 = fneg double %522
%524 = load double, double* %35
%525 = load double, double* %43
%526 = load double, double* %29
%527 = fdiv double %525, %526
%528 = fneg double %527
%529 = call double @llvm.fmuladd.f64(double %523, double %524, double %528)
%530 = load double*, double** %25
%531 = getelementptr inbounds double, double* %530, i64 1
store double %529, double* %531
%532 = load double, double* %33
%533 = fneg double %532
%534 = load double, double* %39
%535 = fmul double %533, %534
%536 = load double*, double** %25
%537 = getelementptr inbounds double, double* %536, i64 2
store double %535, double* %537
%538 = load double, double* %29
%539 = load double, double* %48
%540 = fmul double %538, %539
%541 = load double, double* %48
%542 = fmul double %540, %541
%543 = load double, double* %35
%544 = load double, double* %33
%545 = load double, double* %43
%546 = fmul double %544, %545
%547 = call double @llvm.fmuladd.f64(double %542, double %543, double %546)
%548 = fneg double %547
%549 = load double*, double** %25
%550 = getelementptr inbounds double, double* %549, i64 3
store double %548, double* %550
%551 = load double*, double** %25
%552 = getelementptr inbounds double, double* %551, i64 0
%553 = load double, double* %552
%554 = load double, double* %28
%555 = load double, double* %31
%556 = call double @llvm.fmuladd.f64(double %554, double %555, double %553)
%557 = load double*, double** %25
%558 = getelementptr inbounds double, double* %557, i64 0
store double %556, double* %558
%559 = load double*, double** %25
%560 = getelementptr inbounds double, double* %559, i64 1
%561 = load double, double* %560
%562 = load double, double* %28
%563 = load double, double* %35
%564 = call double @llvm.fmuladd.f64(double %562, double %563, double %561)
%565 = load double*, double** %25
%566 = getelementptr inbounds double, double* %565, i64 1
store double %564, double* %566
%567 = load double*, double** %25
%568 = getelementptr inbounds double, double* %567, i64 2
%569 = load double, double* %568
%570 = load double, double* %28
%571 = load double, double* %39
%572 = call double @llvm.fmuladd.f64(double %570, double %571, double %569)
%573 = load double*, double** %25
%574 = getelementptr inbounds double, double* %573, i64 2
store double %572, double* %574
%575 = load double*, double** %25
%576 = getelementptr inbounds double, double* %575, i64 3
%577 = load double, double* %576
%578 = load double, double* %28
%579 = load double, double* %43
%580 = call double @llvm.fmuladd.f64(double %578, double %579, double %577)
%581 = load double*, double** %25
%582 = getelementptr inbounds double, double* %581, i64 3
store double %580, double* %582
%583 = load double, double* %29
%584 = load double*, double** %26
%585 = getelementptr inbounds double, double* %584, i64 0
store double %583, double* %585
%586 = load double, double* %33
%587 = load double*, double** %26
%588 = getelementptr inbounds double, double* %587, i64 1
store double %586, double* %588
%589 = load double, double* %37
%590 = load double*, double** %26
%591 = getelementptr inbounds double, double* %590, i64 2
store double %589, double* %591
%592 = load double, double* %41
%593 = load double*, double** %26
%594 = getelementptr inbounds double, double* %593, i64 3
store double %592, double* %594
br label %2052
595: ; preds = %507
%596 = load double, double* %93
%597 = load double, double* %28
%598 = fcmp olt double %596, %597
br i1 %598, label %599, label %683
599: ; preds = %595
%600 = load double, double* %32
%601 = fneg double %600
%602 = load double, double* %34
%603 = load double, double* %30
%604 = load double, double* %36
%605 = fmul double %603, %604
%606 = fneg double %605
%607 = call double @llvm.fmuladd.f64(double %601, double %602, double %606)
%608 = load double*, double** %25
%609 = getelementptr inbounds double, double* %608, i64 0
store double %607, double* %609
%610 = load double, double* %34
%611 = fneg double %610
%612 = load double, double* %36
%613 = load double, double* %44
%614 = load double, double* %30
%615 = fdiv double %613, %614
%616 = fneg double %615
%617 = call double @llvm.fmuladd.f64(double %611, double %612, double %616)
%618 = load double*, double** %25
%619 = getelementptr inbounds double, double* %618, i64 1
store double %617, double* %619
%620 = load double, double* %34
%621 = fneg double %620
%622 = load double, double* %40
%623 = fmul double %621, %622
%624 = load double*, double** %25
%625 = getelementptr inbounds double, double* %624, i64 2
store double %623, double* %625
%626 = load double, double* %30
%627 = load double, double* %49
%628 = fmul double %626, %627
%629 = load double, double* %49
%630 = fmul double %628, %629
%631 = load double, double* %36
%632 = load double, double* %34
%633 = load double, double* %44
%634 = fmul double %632, %633
%635 = call double @llvm.fmuladd.f64(double %630, double %631, double %634)
%636 = fneg double %635
%637 = load double*, double** %25
%638 = getelementptr inbounds double, double* %637, i64 3
store double %636, double* %638
%639 = load double*, double** %25
%640 = getelementptr inbounds double, double* %639, i64 0
%641 = load double, double* %640
%642 = load double, double* %28
%643 = load double, double* %32
%644 = call double @llvm.fmuladd.f64(double %642, double %643, double %641)
%645 = load double*, double** %25
%646 = getelementptr inbounds double, double* %645, i64 0
store double %644, double* %646
%647 = load double*, double** %25
%648 = getelementptr inbounds double, double* %647, i64 1
%649 = load double, double* %648
%650 = load double, double* %28
%651 = load double, double* %36
%652 = call double @llvm.fmuladd.f64(double %650, double %651, double %649)
%653 = load double*, double** %25
%654 = getelementptr inbounds double, double* %653, i64 1
store double %652, double* %654
%655 = load double*, double** %25
%656 = getelementptr inbounds double, double* %655, i64 2
%657 = load double, double* %656
%658 = load double, double* %28
%659 = load double, double* %40
%660 = call double @llvm.fmuladd.f64(double %658, double %659, double %657)
%661 = load double*, double** %25
%662 = getelementptr inbounds double, double* %661, i64 2
store double %660, double* %662
%663 = load double*, double** %25
%664 = getelementptr inbounds double, double* %663, i64 3
%665 = load double, double* %664
%666 = load double, double* %28
%667 = load double, double* %44
%668 = call double @llvm.fmuladd.f64(double %666, double %667, double %665)
%669 = load double*, double** %25
%670 = getelementptr inbounds double, double* %669, i64 3
store double %668, double* %670
%671 = load double, double* %30
%672 = load double*, double** %26
%673 = getelementptr inbounds double, double* %672, i64 0
store double %671, double* %673
%674 = load double, double* %34
%675 = load double*, double** %26
%676 = getelementptr inbounds double, double* %675, i64 1
store double %674, double* %676
%677 = load double, double* %38
%678 = load double*, double** %26
%679 = getelementptr inbounds double, double* %678, i64 2
store double %677, double* %679
%680 = load double, double* %42
%681 = load double*, double** %26
%682 = getelementptr inbounds double, double* %681, i64 3
store double %680, double* %682
br label %2051
683: ; preds = %595
%684 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 0
%685 = load i32, i32* %684
%686 = icmp ne i32 %685, 0
br i1 %686, label %687, label %881
687: ; preds = %683
%688 = load double, double* %58
%689 = load double, double* %62
%690 = fsub double %688, %689
%691 = load double, double* %28
%692 = fcmp ogt double %690, %691
br i1 %692, label %693, label %881
693: ; preds = %687
%694 = load double, double* %84
%695 = load double, double* %33
%696 = load double, double* %48
%697 = load double, double* %28
%698 = fadd double %696, %697
%699 = fmul double 2.000000e+00, %698
%700 = load double, double* %45
%701 = fsub double %700, 1.000000e+00
%702 = fdiv double %699, %701
%703 = fadd double %695, %702
%704 = fmul double %694, %703
%705 = load double*, double** %26
%706 = getelementptr inbounds double, double* %705, i64 1
store double %704, double* %706
%707 = load double*, double** %26
%708 = getelementptr inbounds double, double* %707, i64 1
%709 = load double, double* %708
%710 = load double, double* %28
%711 = fsub double %709, %710
store double %711, double* %86
%712 = load double, double* %86
%713 = load double, double* %48
%714 = fdiv double %712, %713
%715 = load double, double* %45
%716 = fmul double 2.000000e+00, %715
%717 = load double, double* %45
%718 = fsub double %717, 1.000000e+00
%719 = fdiv double %716, %718
%720 = call double @pow(double %714, double %719)
%721 = load double, double* %41
%722 = fmul double %720, %721
%723 = load double*, double** %26
%724 = getelementptr inbounds double, double* %723, i64 3
store double %722, double* %724
%725 = load double, double* %45
%726 = load double*, double** %26
%727 = getelementptr inbounds double, double* %726, i64 3
%728 = load double, double* %727
%729 = fmul double %725, %728
%730 = load double, double* %86
%731 = fdiv double %729, %730
%732 = load double, double* %86
%733 = fdiv double %731, %732
%734 = load double*, double** %26
%735 = getelementptr inbounds double, double* %734, i64 0
store double %733, double* %735
%736 = load double, double* %86
%737 = load double, double* %48
%738 = fdiv double %736, %737
store double %738, double* %50
%739 = load double, double* %43
%740 = load double, double* %31
%741 = load double, double* %48
%742 = fmul double %740, %741
%743 = load double, double* %48
%744 = fneg double %742
%745 = call double @llvm.fmuladd.f64(double %744, double %743, double %739)
%746 = load double, double* %45
%747 = fsub double %746, 1.000000e+00
%748 = fdiv double %745, %747
%749 = load double, double* %29
%750 = fdiv double %748, %749
store double %750, double* %54
%751 = load double, double* %35
%752 = load double, double* %45
%753 = load double, double* %43
%754 = fmul double %752, %753
%755 = load double, double* %48
%756 = fdiv double %754, %755
%757 = load double, double* %48
%758 = load double, double* %31
%759 = fneg double %757
%760 = call double @llvm.fmuladd.f64(double %759, double %758, double %756)
%761 = load double, double* %45
%762 = fsub double %761, 1.000000e+00
%763 = fdiv double %760, %762
%764 = load double, double* %29
%765 = fdiv double %763, %764
%766 = fadd double %751, %765
store double %766, double* %53
%767 = load double, double* %84
%768 = fadd double 1.000000e+00, %767
%769 = load double, double* %50
%770 = load double, double* %84
%771 = fdiv double 5.000000e-01, %770
%772 = call double @pow(double %769, double %771)
%773 = load double, double* %84
%774 = load double, double* %50
%775 = load double, double* %84
%776 = fadd double 1.000000e+00, %775
%777 = load double, double* %84
%778 = fdiv double %776, %777
%779 = call double @pow(double %774, double %778)
%780 = fmul double %773, %779
%781 = call double @llvm.fmuladd.f64(double %768, double %772, double %780)
%782 = load double, double* %84
%783 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %782, double 1.000000e+00)
%784 = fdiv double %781, %783
%785 = load double*, double** %25
%786 = getelementptr inbounds double, double* %785, i64 1
store double %784, double* %786
%787 = load double*, double** %25
%788 = getelementptr inbounds double, double* %787, i64 1
%789 = load double, double* %788
%790 = load double, double* %54
%791 = fmul double %789, %790
%792 = load double*, double** %25
%793 = getelementptr inbounds double, double* %792, i64 1
store double %791, double* %793
%794 = load double*, double** %25
%795 = getelementptr inbounds double, double* %794, i64 1
%796 = load double, double* %795
%797 = load double, double* %48
%798 = load double, double* %50
%799 = load double, double* %84
%800 = fdiv double 5.000000e-01, %799
%801 = call double @pow(double %798, double %800)
%802 = fmul double %797, %801
%803 = load double, double* %53
%804 = fneg double %802
%805 = call double @llvm.fmuladd.f64(double %804, double %803, double %796)
%806 = load double*, double** %25
%807 = getelementptr inbounds double, double* %806, i64 1
store double %805, double* %807
%808 = load double*, double** %26
%809 = getelementptr inbounds double, double* %808, i64 0
%810 = load double, double* %809
%811 = load double*, double** %26
%812 = getelementptr inbounds double, double* %811, i64 1
%813 = load double, double* %812
%814 = load double, double* %28
%815 = fsub double %813, %814
%816 = fmul double %810, %815
%817 = load double*, double** %25
%818 = getelementptr inbounds double, double* %817, i64 1
%819 = load double, double* %818
%820 = fmul double %816, %819
%821 = load double*, double** %25
%822 = getelementptr inbounds double, double* %821, i64 3
store double %820, double* %822
%823 = load double*, double** %26
%824 = getelementptr inbounds double, double* %823, i64 0
%825 = load double, double* %824
%826 = load double*, double** %26
%827 = getelementptr inbounds double, double* %826, i64 1
%828 = load double, double* %827
%829 = load double, double* %28
%830 = fsub double %828, %829
%831 = fmul double %825, %830
%832 = load double, double* %50
%833 = load double, double* %84
%834 = fadd double 1.000000e+00, %833
%835 = load double, double* %84
%836 = fdiv double %834, %835
%837 = call double @pow(double %832, double %836)
%838 = fmul double %831, %837
%839 = load double, double* %43
%840 = load double, double* %31
%841 = load double, double* %48
%842 = fmul double %840, %841
%843 = load double, double* %48
%844 = fneg double %842
%845 = call double @llvm.fmuladd.f64(double %844, double %843, double %839)
%846 = fmul double %838, %845
%847 = load double, double* %29
%848 = fdiv double %846, %847
%849 = load double*, double** %25
%850 = getelementptr inbounds double, double* %849, i64 0
store double %848, double* %850
%851 = load double*, double** %25
%852 = getelementptr inbounds double, double* %851, i64 0
%853 = load double, double* %852
%854 = load double*, double** %25
%855 = getelementptr inbounds double, double* %854, i64 3
%856 = load double, double* %855
%857 = fadd double %853, %856
%858 = load double, double* %86
%859 = fdiv double %857, %858
%860 = load double, double* %86
%861 = fdiv double %859, %860
%862 = load double*, double** %25
%863 = getelementptr inbounds double, double* %862, i64 0
store double %861, double* %863
%864 = load double, double* %37
%865 = load double*, double** %26
%866 = getelementptr inbounds double, double* %865, i64 2
store double %864, double* %866
%867 = load double*, double** %26
%868 = getelementptr inbounds double, double* %867, i64 1
%869 = load double, double* %868
%870 = fneg double %869
%871 = load double, double* %39
%872 = fmul double %870, %871
%873 = load double*, double** %26
%874 = getelementptr inbounds double, double* %873, i64 0
%875 = load double, double* %874
%876 = fmul double %872, %875
%877 = load double, double* %29
%878 = fdiv double %876, %877
%879 = load double*, double** %25
%880 = getelementptr inbounds double, double* %879, i64 2
store double %878, double* %880
br label %2050
881: ; preds = %687, %683
%882 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 1
%883 = load i32, i32* %882
%884 = icmp ne i32 %883, 0
br i1 %884, label %885, label %1078
885: ; preds = %881
%886 = load double, double* %58
%887 = load double, double* %63
%888 = fadd double %886, %887
%889 = load double, double* %28
%890 = fcmp olt double %888, %889
br i1 %890, label %891, label %1078
891: ; preds = %885
%892 = load double, double* %84
%893 = load double, double* %34
%894 = load double, double* %49
%895 = load double, double* %28
%896 = fsub double %894, %895
%897 = fmul double 2.000000e+00, %896
%898 = load double, double* %45
%899 = fsub double %898, 1.000000e+00
%900 = fdiv double %897, %899
%901 = fsub double %893, %900
%902 = fmul double %892, %901
%903 = load double*, double** %26
%904 = getelementptr inbounds double, double* %903, i64 1
store double %902, double* %904
%905 = load double, double* %28
%906 = load double*, double** %26
%907 = getelementptr inbounds double, double* %906, i64 1
%908 = load double, double* %907
%909 = fsub double %905, %908
store double %909, double* %86
%910 = load double, double* %86
%911 = load double, double* %49
%912 = fdiv double %910, %911
%913 = load double, double* %45
%914 = fmul double 2.000000e+00, %913
%915 = load double, double* %45
%916 = fsub double %915, 1.000000e+00
%917 = fdiv double %914, %916
%918 = call double @pow(double %912, double %917)
%919 = load double, double* %42
%920 = fmul double %918, %919
%921 = load double*, double** %26
%922 = getelementptr inbounds double, double* %921, i64 3
store double %920, double* %922
%923 = load double, double* %45
%924 = load double*, double** %26
%925 = getelementptr inbounds double, double* %924, i64 3
%926 = load double, double* %925
%927 = fmul double %923, %926
%928 = load double, double* %86
%929 = fdiv double %927, %928
%930 = load double, double* %86
%931 = fdiv double %929, %930
%932 = load double*, double** %26
%933 = getelementptr inbounds double, double* %932, i64 0
store double %931, double* %933
%934 = load double, double* %86
%935 = load double, double* %49
%936 = fdiv double %934, %935
store double %936, double* %50
%937 = load double, double* %44
%938 = load double, double* %32
%939 = load double, double* %49
%940 = fmul double %938, %939
%941 = load double, double* %49
%942 = fneg double %940
%943 = call double @llvm.fmuladd.f64(double %942, double %941, double %937)
%944 = load double, double* %45
%945 = fsub double %944, 1.000000e+00
%946 = fdiv double %943, %945
%947 = load double, double* %30
%948 = fdiv double %946, %947
store double %948, double* %54
%949 = load double, double* %36
%950 = load double, double* %45
%951 = load double, double* %44
%952 = fmul double %950, %951
%953 = load double, double* %49
%954 = fdiv double %952, %953
%955 = load double, double* %49
%956 = load double, double* %32
%957 = fneg double %955
%958 = call double @llvm.fmuladd.f64(double %957, double %956, double %954)
%959 = load double, double* %45
%960 = fsub double %959, 1.000000e+00
%961 = fdiv double %958, %960
%962 = load double, double* %30
%963 = fdiv double %961, %962
%964 = fsub double %949, %963
store double %964, double* %52
%965 = load double, double* %84
%966 = fadd double 1.000000e+00, %965
%967 = load double, double* %50
%968 = load double, double* %84
%969 = fdiv double 5.000000e-01, %968
%970 = call double @pow(double %967, double %969)
%971 = load double, double* %84
%972 = load double, double* %50
%973 = load double, double* %84
%974 = fadd double 1.000000e+00, %973
%975 = load double, double* %84
%976 = fdiv double %974, %975
%977 = call double @pow(double %972, double %976)
%978 = fmul double %971, %977
%979 = call double @llvm.fmuladd.f64(double %966, double %970, double %978)
%980 = load double, double* %84
%981 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %980, double 1.000000e+00)
%982 = fdiv double %979, %981
%983 = load double*, double** %25
%984 = getelementptr inbounds double, double* %983, i64 1
store double %982, double* %984
%985 = load double*, double** %25
%986 = getelementptr inbounds double, double* %985, i64 1
%987 = load double, double* %986
%988 = load double, double* %54
%989 = fmul double %987, %988
%990 = load double*, double** %25
%991 = getelementptr inbounds double, double* %990, i64 1
store double %989, double* %991
%992 = load double*, double** %25
%993 = getelementptr inbounds double, double* %992, i64 1
%994 = load double, double* %993
%995 = load double, double* %49
%996 = load double, double* %50
%997 = load double, double* %84
%998 = fdiv double 5.000000e-01, %997
%999 = call double @pow(double %996, double %998)
%1000 = fmul double %995, %999
%1001 = load double, double* %52
%1002 = call double @llvm.fmuladd.f64(double %1000, double %1001, double %994)
%1003 = load double*, double** %25
%1004 = getelementptr inbounds double, double* %1003, i64 1
store double %1002, double* %1004
%1005 = load double*, double** %26
%1006 = getelementptr inbounds double, double* %1005, i64 0
%1007 = load double, double* %1006
%1008 = load double*, double** %26
%1009 = getelementptr inbounds double, double* %1008, i64 1
%1010 = load double, double* %1009
%1011 = load double, double* %28
%1012 = fsub double %1010, %1011
%1013 = fmul double %1007, %1012
%1014 = load double*, double** %25
%1015 = getelementptr inbounds double, double* %1014, i64 1
%1016 = load double, double* %1015
%1017 = fmul double %1013, %1016
%1018 = load double*, double** %25
%1019 = getelementptr inbounds double, double* %1018, i64 3
store double %1017, double* %1019
%1020 = load double*, double** %26
%1021 = getelementptr inbounds double, double* %1020, i64 0
%1022 = load double, double* %1021
%1023 = load double*, double** %26
%1024 = getelementptr inbounds double, double* %1023, i64 1
%1025 = load double, double* %1024
%1026 = load double, double* %28
%1027 = fsub double %1025, %1026
%1028 = fmul double %1022, %1027
%1029 = load double, double* %50
%1030 = load double, double* %84
%1031 = fadd double 1.000000e+00, %1030
%1032 = load double, double* %84
%1033 = fdiv double %1031, %1032
%1034 = call double @pow(double %1029, double %1033)
%1035 = fmul double %1028, %1034
%1036 = load double, double* %44
%1037 = load double, double* %32
%1038 = load double, double* %49
%1039 = fmul double %1037, %1038
%1040 = load double, double* %49
%1041 = fneg double %1039
%1042 = call double @llvm.fmuladd.f64(double %1041, double %1040, double %1036)
%1043 = fmul double %1035, %1042
%1044 = load double, double* %30
%1045 = fdiv double %1043, %1044
%1046 = load double*, double** %25
%1047 = getelementptr inbounds double, double* %1046, i64 0
store double %1045, double* %1047
%1048 = load double*, double** %25
%1049 = getelementptr inbounds double, double* %1048, i64 0
%1050 = load double, double* %1049
%1051 = load double*, double** %25
%1052 = getelementptr inbounds double, double* %1051, i64 3
%1053 = load double, double* %1052
%1054 = fadd double %1050, %1053
%1055 = load double, double* %86
%1056 = fdiv double %1054, %1055
%1057 = load double, double* %86
%1058 = fdiv double %1056, %1057
%1059 = load double*, double** %25
%1060 = getelementptr inbounds double, double* %1059, i64 0
store double %1058, double* %1060
%1061 = load double, double* %38
%1062 = load double*, double** %26
%1063 = getelementptr inbounds double, double* %1062, i64 2
store double %1061, double* %1063
%1064 = load double*, double** %26
%1065 = getelementptr inbounds double, double* %1064, i64 1
%1066 = load double, double* %1065
%1067 = fneg double %1066
%1068 = load double, double* %39
%1069 = fmul double %1067, %1068
%1070 = load double*, double** %26
%1071 = getelementptr inbounds double, double* %1070, i64 0
%1072 = load double, double* %1071
%1073 = fmul double %1069, %1072
%1074 = load double, double* %30
%1075 = fdiv double %1073, %1074
%1076 = load double*, double** %25
%1077 = getelementptr inbounds double, double* %1076, i64 2
store double %1075, double* %1077
br label %2049
1078: ; preds = %885, %881
%1079 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 0
%1080 = load i32, i32* %1079
%1081 = icmp ne i32 %1080, 0
br i1 %1081, label %1082, label %1149
1082: ; preds = %1078
store double 1.000000e+00, double* %68
%1083 = load double, double* %60
%1084 = fdiv double 1.000000e+00, %1083
%1085 = load double, double* %62
%1086 = fdiv double %1084, %1085
store double %1086, double* %69
%1087 = load double, double* %62
%1088 = load double, double* %48
%1089 = fdiv double %1087, %1088
store double %1089, double* %50
%1090 = load double, double* %43
%1091 = load double, double* %31
%1092 = load double, double* %48
%1093 = fmul double %1091, %1092
%1094 = load double, double* %48
%1095 = fneg double %1093
%1096 = call double @llvm.fmuladd.f64(double %1095, double %1094, double %1090)
%1097 = load double, double* %45
%1098 = fsub double %1097, 1.000000e+00
%1099 = fdiv double %1096, %1098
%1100 = load double, double* %29
%1101 = fdiv double %1099, %1100
store double %1101, double* %54
%1102 = load double, double* %35
%1103 = load double, double* %45
%1104 = load double, double* %43
%1105 = fmul double %1103, %1104
%1106 = load double, double* %48
%1107 = fdiv double %1105, %1106
%1108 = load double, double* %48
%1109 = load double, double* %31
%1110 = fneg double %1108
%1111 = call double @llvm.fmuladd.f64(double %1110, double %1109, double %1107)
%1112 = load double, double* %45
%1113 = fsub double %1112, 1.000000e+00
%1114 = fdiv double %1111, %1113
%1115 = load double, double* %29
%1116 = fdiv double %1114, %1115
%1117 = fadd double %1102, %1116
store double %1117, double* %53
%1118 = load double, double* %84
%1119 = fadd double 1.000000e+00, %1118
%1120 = load double, double* %50
%1121 = load double, double* %84
%1122 = fdiv double 5.000000e-01, %1121
%1123 = call double @pow(double %1120, double %1122)
%1124 = load double, double* %84
%1125 = load double, double* %50
%1126 = load double, double* %84
%1127 = fadd double 1.000000e+00, %1126
%1128 = load double, double* %84
%1129 = fdiv double %1127, %1128
%1130 = call double @pow(double %1125, double %1129)
%1131 = fmul double %1124, %1130
%1132 = call double @llvm.fmuladd.f64(double %1119, double %1123, double %1131)
%1133 = load double, double* %84
%1134 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1133, double 1.000000e+00)
%1135 = fdiv double %1132, %1134
store double %1135, double* %70
%1136 = load double, double* %70
%1137 = load double, double* %54
%1138 = fmul double %1136, %1137
store double %1138, double* %70
%1139 = load double, double* %70
%1140 = load double, double* %48
%1141 = load double, double* %50
%1142 = load double, double* %84
%1143 = fdiv double 5.000000e-01, %1142
%1144 = call double @pow(double %1141, double %1143)
%1145 = fmul double %1140, %1144
%1146 = load double, double* %53
%1147 = fneg double %1145
%1148 = call double @llvm.fmuladd.f64(double %1147, double %1146, double %1139)
store double %1148, double* %70
br label %1266
1149: ; preds = %1078
%1150 = load double, double* %45
%1151 = fadd double %1150, 1.000000e+00
%1152 = load double, double* %41
%1153 = load double, double* %45
%1154 = fsub double %1153, 1.000000e+00
%1155 = load double, double* %59
%1156 = fmul double %1154, %1155
%1157 = call double @llvm.fmuladd.f64(double %1151, double %1152, double %1156)
%1158 = fmul double 5.000000e-01, %1157
%1159 = load double, double* %60
%1160 = fdiv double %1158, %1159
%1161 = call double @sqrt(double %1160)
%1162 = fneg double %1161
store double %1162, double* %81
%1163 = load double, double* %45
%1164 = fadd double %1163, 1.000000e+00
%1165 = load double, double* %59
%1166 = load double, double* %45
%1167 = fsub double %1166, 1.000000e+00
%1168 = load double, double* %41
%1169 = fmul double %1167, %1168
%1170 = call double @llvm.fmuladd.f64(double %1164, double %1165, double %1169)
%1171 = fmul double 5.000000e-01, %1170
%1172 = load double, double* %29
%1173 = fdiv double %1171, %1172
%1174 = call double @sqrt(double %1173)
%1175 = fneg double %1174
store double %1175, double* %82
%1176 = load double, double* %84
%1177 = fsub double 1.000000e+00, %1176
%1178 = load double, double* %29
%1179 = load double, double* %59
%1180 = load double, double* %84
%1181 = load double, double* %41
%1182 = call double @llvm.fmuladd.f64(double %1180, double %1181, double %1179)
%1183 = fmul double %1178, %1182
%1184 = fdiv double %1177, %1183
%1185 = call double @sqrt(double %1184)
store double %1185, double* %55
%1186 = load double, double* %55
%1187 = fmul double 5.000000e-01, %1186
%1188 = load double, double* %59
%1189 = load double, double* %84
%1190 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1189, double 1.000000e+00)
%1191 = load double, double* %41
%1192 = call double @llvm.fmuladd.f64(double %1190, double %1191, double %1188)
%1193 = fmul double %1187, %1192
%1194 = load double, double* %59
%1195 = load double, double* %84
%1196 = load double, double* %41
%1197 = call double @llvm.fmuladd.f64(double %1195, double %1196, double %1194)
%1198 = fdiv double %1193, %1197
store double %1198, double* %65
%1199 = load double, double* %55
%1200 = fmul double -5.000000e-01, %1199
%1201 = load double, double* %84
%1202 = fadd double 2.000000e+00, %1201
%1203 = load double, double* %59
%1204 = load double, double* %84
%1205 = load double, double* %41
%1206 = fmul double %1204, %1205
%1207 = call double @llvm.fmuladd.f64(double %1202, double %1203, double %1206)
%1208 = fmul double %1200, %1207
%1209 = load double, double* %59
%1210 = load double, double* %84
%1211 = load double, double* %41
%1212 = call double @llvm.fmuladd.f64(double %1210, double %1211, double %1209)
%1213 = fdiv double %1208, %1212
store double %1213, double* %66
%1214 = load double, double* %55
%1215 = fmul double -5.000000e-01, %1214
%1216 = load double, double* %59
%1217 = load double, double* %41
%1218 = fsub double %1216, %1217
%1219 = fmul double %1215, %1218
%1220 = load double, double* %29
%1221 = fdiv double %1219, %1220
store double %1221, double* %67
%1222 = load double, double* %29
%1223 = fdiv double -1.000000e+00, %1222
%1224 = load double, double* %82
%1225 = load double, double* %66
%1226 = fneg double %1224
%1227 = call double @llvm.fmuladd.f64(double %1226, double %1225, double %1223)
store double %1227, double* %76
%1228 = load double, double* %82
%1229 = load double, double* %29
%1230 = load double, double* %48
%1231 = load double, double* %48
%1232 = fmul double %1230, %1231
%1233 = load double, double* %66
%1234 = load double, double* %67
%1235 = call double @llvm.fmuladd.f64(double %1232, double %1233, double %1234)
%1236 = call double @llvm.fmuladd.f64(double %1229, double %1235, double %1228)
store double %1236, double* %75
%1237 = load double, double* %82
%1238 = fneg double %1237
%1239 = load double, double* %67
%1240 = fmul double %1238, %1239
store double %1240, double* %77
%1241 = load double, double* %60
%1242 = load double, double* %81
%1243 = fmul double %1241, %1242
%1244 = load double, double* %65
%1245 = fneg double %1243
%1246 = call double @llvm.fmuladd.f64(double %1245, double %1244, double 1.000000e+00)
store double %1246, double* %68
%1247 = load double, double* %81
%1248 = fneg double %1247
%1249 = load double, double* %60
%1250 = load double, double* %62
%1251 = fmul double %1249, %1250
%1252 = load double, double* %62
%1253 = fmul double %1251, %1252
%1254 = fdiv double %1248, %1253
%1255 = load double, double* %65
%1256 = fadd double %1254, %1255
store double %1256, double* %69
%1257 = load double, double* %77
%1258 = load double, double* %31
%1259 = load double, double* %75
%1260 = load double, double* %35
%1261 = fmul double %1259, %1260
%1262 = call double @llvm.fmuladd.f64(double %1257, double %1258, double %1261)
%1263 = load double, double* %76
%1264 = load double, double* %43
%1265 = call double @llvm.fmuladd.f64(double %1263, double %1264, double %1262)
store double %1265, double* %70
br label %1266
1266: ; preds = %1149, %1082
%1267 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 1
%1268 = load i32, i32* %1267
%1269 = icmp ne i32 %1268, 0
br i1 %1269, label %1270, label %1336
1270: ; preds = %1266
store double 1.000000e+00, double* %71
%1271 = load double, double* %61
%1272 = fdiv double -1.000000e+00, %1271
%1273 = load double, double* %63
%1274 = fdiv double %1272, %1273
store double %1274, double* %72
%1275 = load double, double* %63
%1276 = load double, double* %49
%1277 = fdiv double %1275, %1276
store double %1277, double* %50
%1278 = load double, double* %44
%1279 = load double, double* %32
%1280 = load double, double* %49
%1281 = fmul double %1279, %1280
%1282 = load double, double* %49
%1283 = fneg double %1281
%1284 = call double @llvm.fmuladd.f64(double %1283, double %1282, double %1278)
%1285 = load double, double* %45
%1286 = fsub double %1285, 1.000000e+00
%1287 = fdiv double %1284, %1286
%1288 = load double, double* %30
%1289 = fdiv double %1287, %1288
store double %1289, double* %54
%1290 = load double, double* %36
%1291 = load double, double* %45
%1292 = load double, double* %44
%1293 = fmul double %1291, %1292
%1294 = load double, double* %49
%1295 = fdiv double %1293, %1294
%1296 = load double, double* %49
%1297 = load double, double* %32
%1298 = fneg double %1296
%1299 = call double @llvm.fmuladd.f64(double %1298, double %1297, double %1295)
%1300 = load double, double* %45
%1301 = fsub double %1300, 1.000000e+00
%1302 = fdiv double %1299, %1301
%1303 = load double, double* %30
%1304 = fdiv double %1302, %1303
%1305 = fsub double %1290, %1304
store double %1305, double* %52
%1306 = load double, double* %84
%1307 = fadd double 1.000000e+00, %1306
%1308 = load double, double* %50
%1309 = load double, double* %84
%1310 = fdiv double 5.000000e-01, %1309
%1311 = call double @pow(double %1308, double %1310)
%1312 = load double, double* %84
%1313 = load double, double* %50
%1314 = load double, double* %84
%1315 = fadd double 1.000000e+00, %1314
%1316 = load double, double* %84
%1317 = fdiv double %1315, %1316
%1318 = call double @pow(double %1313, double %1317)
%1319 = fmul double %1312, %1318
%1320 = call double @llvm.fmuladd.f64(double %1307, double %1311, double %1319)
%1321 = load double, double* %84
%1322 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1321, double 1.000000e+00)
%1323 = fdiv double %1320, %1322
store double %1323, double* %73
%1324 = load double, double* %73
%1325 = load double, double* %54
%1326 = fmul double %1324, %1325
store double %1326, double* %73
%1327 = load double, double* %73
%1328 = load double, double* %49
%1329 = load double, double* %50
%1330 = load double, double* %84
%1331 = fdiv double 5.000000e-01, %1330
%1332 = call double @pow(double %1329, double %1331)
%1333 = fmul double %1328, %1332
%1334 = load double, double* %52
%1335 = call double @llvm.fmuladd.f64(double %1333, double %1334, double %1327)
store double %1335, double* %73
br label %1449
1336: ; preds = %1266
%1337 = load double, double* %45
%1338 = fadd double %1337, 1.000000e+00
%1339 = load double, double* %42
%1340 = load double, double* %45
%1341 = fsub double %1340, 1.000000e+00
%1342 = load double, double* %59
%1343 = fmul double %1341, %1342
%1344 = call double @llvm.fmuladd.f64(double %1338, double %1339, double %1343)
%1345 = fmul double 5.000000e-01, %1344
%1346 = load double, double* %61
%1347 = fdiv double %1345, %1346
%1348 = call double @sqrt(double %1347)
store double %1348, double* %81
%1349 = load double, double* %45
%1350 = fadd double %1349, 1.000000e+00
%1351 = load double, double* %59
%1352 = load double, double* %45
%1353 = fsub double %1352, 1.000000e+00
%1354 = load double, double* %42
%1355 = fmul double %1353, %1354
%1356 = call double @llvm.fmuladd.f64(double %1350, double %1351, double %1355)
%1357 = fmul double 5.000000e-01, %1356
%1358 = load double, double* %30
%1359 = fdiv double %1357, %1358
%1360 = call double @sqrt(double %1359)
store double %1360, double* %83
%1361 = load double, double* %84
%1362 = fsub double 1.000000e+00, %1361
%1363 = load double, double* %30
%1364 = load double, double* %59
%1365 = load double, double* %84
%1366 = load double, double* %42
%1367 = call double @llvm.fmuladd.f64(double %1365, double %1366, double %1364)
%1368 = fmul double %1363, %1367
%1369 = fdiv double %1362, %1368
%1370 = call double @sqrt(double %1369)
store double %1370, double* %55
%1371 = load double, double* %55
%1372 = fmul double 5.000000e-01, %1371
%1373 = load double, double* %59
%1374 = load double, double* %84
%1375 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %1374, double 1.000000e+00)
%1376 = load double, double* %42
%1377 = call double @llvm.fmuladd.f64(double %1375, double %1376, double %1373)
%1378 = fmul double %1372, %1377
%1379 = load double, double* %59
%1380 = load double, double* %84
%1381 = load double, double* %42
%1382 = call double @llvm.fmuladd.f64(double %1380, double %1381, double %1379)
%1383 = fdiv double %1378, %1382
store double %1383, double* %65
%1384 = load double, double* %55
%1385 = fmul double -5.000000e-01, %1384
%1386 = load double, double* %84
%1387 = fadd double 2.000000e+00, %1386
%1388 = load double, double* %59
%1389 = load double, double* %84
%1390 = load double, double* %42
%1391 = fmul double %1389, %1390
%1392 = call double @llvm.fmuladd.f64(double %1387, double %1388, double %1391)
%1393 = fmul double %1385, %1392
%1394 = load double, double* %59
%1395 = load double, double* %84
%1396 = load double, double* %42
%1397 = call double @llvm.fmuladd.f64(double %1395, double %1396, double %1394)
%1398 = fdiv double %1393, %1397
store double %1398, double* %66
%1399 = load double, double* %59
%1400 = load double, double* %42
%1401 = fsub double %1399, %1400
%1402 = fmul double -5.000000e-01, %1401
%1403 = load double, double* %55
%1404 = fmul double %1402, %1403
%1405 = load double, double* %30
%1406 = fdiv double %1404, %1405
store double %1406, double* %67
%1407 = load double, double* %30
%1408 = fdiv double -1.000000e+00, %1407
%1409 = load double, double* %83
%1410 = load double, double* %66
%1411 = call double @llvm.fmuladd.f64(double %1409, double %1410, double %1408)
store double %1411, double* %76
%1412 = load double, double* %83
%1413 = load double, double* %30
%1414 = load double, double* %49
%1415 = load double, double* %49
%1416 = fmul double %1414, %1415
%1417 = load double, double* %66
%1418 = load double, double* %67
%1419 = call double @llvm.fmuladd.f64(double %1416, double %1417, double %1418)
%1420 = fneg double %1413
%1421 = call double @llvm.fmuladd.f64(double %1420, double %1419, double %1412)
store double %1421, double* %75
%1422 = load double, double* %83
%1423 = load double, double* %67
%1424 = fmul double %1422, %1423
store double %1424, double* %77
%1425 = load double, double* %61
%1426 = load double, double* %81
%1427 = fmul double %1425, %1426
%1428 = load double, double* %65
%1429 = call double @llvm.fmuladd.f64(double %1427, double %1428, double 1.000000e+00)
store double %1429, double* %71
%1430 = load double, double* %81
%1431 = load double, double* %61
%1432 = load double, double* %63
%1433 = fmul double %1431, %1432
%1434 = load double, double* %63
%1435 = fmul double %1433, %1434
%1436 = fdiv double %1430, %1435
%1437 = load double, double* %65
%1438 = fadd double %1436, %1437
%1439 = fneg double %1438
store double %1439, double* %72
%1440 = load double, double* %77
%1441 = load double, double* %32
%1442 = load double, double* %75
%1443 = load double, double* %36
%1444 = fmul double %1442, %1443
%1445 = call double @llvm.fmuladd.f64(double %1440, double %1441, double %1444)
%1446 = load double, double* %76
%1447 = load double, double* %44
%1448 = call double @llvm.fmuladd.f64(double %1446, double %1447, double %1445)
store double %1448, double* %73
br label %1449
1449: ; preds = %1336, %1270
%1450 = load double, double* %68
%1451 = load double, double* %72
%1452 = load double, double* %69
%1453 = load double, double* %71
%1454 = fmul double %1452, %1453
%1455 = fneg double %1454
%1456 = call double @llvm.fmuladd.f64(double %1450, double %1451, double %1455)
store double %1456, double* %74
%1457 = load double, double* %72
%1458 = load double, double* %70
%1459 = load double, double* %69
%1460 = load double, double* %73
%1461 = fmul double %1459, %1460
%1462 = fneg double %1461
%1463 = call double @llvm.fmuladd.f64(double %1457, double %1458, double %1462)
%1464 = load double, double* %74
%1465 = fdiv double %1463, %1464
store double %1465, double* %78
%1466 = load double, double* %68
%1467 = load double, double* %73
%1468 = load double, double* %71
%1469 = load double, double* %70
%1470 = fmul double %1468, %1469
%1471 = fneg double %1470
%1472 = call double @llvm.fmuladd.f64(double %1466, double %1467, double %1471)
%1473 = load double, double* %74
%1474 = fdiv double %1472, %1473
store double %1474, double* %79
%1475 = load double, double* %58
%1476 = load double, double* %28
%1477 = fcmp olt double %1475, %1476
br i1 %1477, label %1478, label %1762
1478: ; preds = %1449
%1479 = load double, double* %61
%1480 = load double*, double** %26
%1481 = getelementptr inbounds double, double* %1480, i64 0
store double %1479, double* %1481
%1482 = load double, double* %58
%1483 = load double*, double** %26
%1484 = getelementptr inbounds double, double* %1483, i64 1
store double %1482, double* %1484
%1485 = load double, double* %38
%1486 = load double*, double** %26
%1487 = getelementptr inbounds double, double* %1486, i64 2
store double %1485, double* %1487
%1488 = load double, double* %59
%1489 = load double*, double** %26
%1490 = getelementptr inbounds double, double* %1489, i64 3
store double %1488, double* %1490
%1491 = load double, double* %78
%1492 = load double, double* %58
%1493 = load double, double* %28
%1494 = fsub double %1492, %1493
%1495 = load double, double* %79
%1496 = fmul double %1494, %1495
%1497 = load double, double* %61
%1498 = fdiv double %1496, %1497
%1499 = load double, double* %63
%1500 = fdiv double %1498, %1499
%1501 = load double, double* %63
%1502 = fdiv double %1500, %1501
%1503 = fadd double %1491, %1502
%1504 = load double*, double** %25
%1505 = getelementptr inbounds double, double* %1504, i64 1
store double %1503, double* %1505
%1506 = load double, double* %79
%1507 = load double, double* %61
%1508 = load double, double* %58
%1509 = load double, double* %28
%1510 = fsub double %1508, %1509
%1511 = fmul double %1507, %1510
%1512 = load double, double* %78
%1513 = call double @llvm.fmuladd.f64(double %1511, double %1512, double %1506)
%1514 = load double*, double** %25
%1515 = getelementptr inbounds double, double* %1514, i64 3
store double %1513, double* %1515
%1516 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 1
%1517 = load i32, i32* %1516
%1518 = icmp ne i32 %1517, 0
br i1 %1518, label %1519, label %1581
1519: ; preds = %1478
%1520 = load double, double* %61
%1521 = load double, double* %58
%1522 = load double, double* %28
%1523 = fsub double %1521, %1522
%1524 = fmul double %1520, %1523
%1525 = load double, double* %63
%1526 = load double, double* %49
%1527 = fdiv double %1525, %1526
%1528 = load double, double* %84
%1529 = fadd double 1.000000e+00, %1528
%1530 = load double, double* %84
%1531 = fdiv double %1529, %1530
%1532 = call double @pow(double %1527, double %1531)
%1533 = fmul double %1524, %1532
%1534 = load double, double* %44
%1535 = load double, double* %32
%1536 = load double, double* %49
%1537 = fmul double %1535, %1536
%1538 = load double, double* %49
%1539 = fneg double %1537
%1540 = call double @llvm.fmuladd.f64(double %1539, double %1538, double %1534)
%1541 = fmul double %1533, %1540
%1542 = load double, double* %30
%1543 = fdiv double %1541, %1542
%1544 = load double*, double** %25
%1545 = getelementptr inbounds double, double* %1544, i64 0
store double %1543, double* %1545
%1546 = load double*, double** %25
%1547 = getelementptr inbounds double, double* %1546, i64 0
%1548 = load double, double* %1547
%1549 = load double*, double** %25
%1550 = getelementptr inbounds double, double* %1549, i64 3
%1551 = load double, double* %1550
%1552 = fadd double %1548, %1551
%1553 = load double, double* %63
%1554 = fdiv double %1552, %1553
%1555 = load double, double* %63
%1556 = fdiv double %1554, %1555
%1557 = load double*, double** %25
%1558 = getelementptr inbounds double, double* %1557, i64 0
store double %1556, double* %1558
%1559 = load double*, double** %26
%1560 = getelementptr inbounds double, double* %1559, i64 1
%1561 = load double, double* %1560
%1562 = fneg double %1561
%1563 = load double, double* %40
%1564 = fmul double %1562, %1563
%1565 = load double*, double** %26
%1566 = getelementptr inbounds double, double* %1565, i64 0
%1567 = load double, double* %1566
%1568 = fmul double %1564, %1567
%1569 = load double, double* %30
%1570 = fdiv double %1568, %1569
%1571 = load double*, double** %25
%1572 = getelementptr inbounds double, double* %1571, i64 2
store double %1570, double* %1572
%1573 = load double*, double** %25
%1574 = getelementptr inbounds double, double* %1573, i64 2
%1575 = load double, double* %1574
%1576 = load double, double* %28
%1577 = load double, double* %40
%1578 = call double @llvm.fmuladd.f64(double %1576, double %1577, double %1575)
%1579 = load double*, double** %25
%1580 = getelementptr inbounds double, double* %1579, i64 2
store double %1578, double* %1580
br label %1761
1581: ; preds = %1478
%1582 = load double, double* %45
%1583 = fadd double %1582, 1.000000e+00
%1584 = load double, double* %42
%1585 = load double, double* %45
%1586 = fsub double %1585, 1.000000e+00
%1587 = load double, double* %59
%1588 = fmul double %1586, %1587
%1589 = call double @llvm.fmuladd.f64(double %1583, double %1584, double %1588)
%1590 = fmul double 5.000000e-01, %1589
%1591 = load double, double* %61
%1592 = fdiv double %1590, %1591
%1593 = call double @sqrt(double %1592)
store double %1593, double* %81
%1594 = load double, double* %45
%1595 = fadd double %1594, 1.000000e+00
%1596 = load double, double* %59
%1597 = load double, double* %45
%1598 = fsub double %1597, 1.000000e+00
%1599 = load double, double* %42
%1600 = fmul double %1598, %1599
%1601 = call double @llvm.fmuladd.f64(double %1595, double %1596, double %1600)
%1602 = fmul double 5.000000e-01, %1601
%1603 = load double, double* %30
%1604 = fdiv double %1602, %1603
%1605 = call double @sqrt(double %1604)
store double %1605, double* %83
%1606 = load double, double* %42
%1607 = load double, double* %84
%1608 = load double, double* %59
%1609 = call double @llvm.fmuladd.f64(double %1607, double %1608, double %1606)
store double %1609, double* %55
%1610 = load double, double* %30
%1611 = load double, double* %42
%1612 = fmul double %1610, %1611
%1613 = load double, double* %85
%1614 = fsub double 1.000000e+00, %1613
%1615 = fmul double %1612, %1614
%1616 = load double, double* %55
%1617 = fdiv double %1615, %1616
%1618 = load double, double* %55
%1619 = fdiv double %1617, %1618
store double %1619, double* %65
%1620 = load double, double* %30
%1621 = load double, double* %59
%1622 = fmul double %1620, %1621
%1623 = load double, double* %85
%1624 = fsub double %1623, 1.000000e+00
%1625 = fmul double %1622, %1624
%1626 = load double, double* %55
%1627 = fdiv double %1625, %1626
%1628 = load double, double* %55
%1629 = fdiv double %1627, %1628
store double %1629, double* %66
%1630 = load double, double* %59
%1631 = load double, double* %84
%1632 = load double, double* %42
%1633 = call double @llvm.fmuladd.f64(double %1631, double %1632, double %1630)
%1634 = load double, double* %55
%1635 = fdiv double %1633, %1634
store double %1635, double* %67
%1636 = load double, double* %83
%1637 = load double, double* %67
%1638 = fmul double %1636, %1637
%1639 = load double, double* %32
%1640 = fmul double %1638, %1639
store double %1640, double* %77
%1641 = load double, double* %30
%1642 = fneg double %1641
%1643 = load double, double* %66
%1644 = load double, double* %49
%1645 = fmul double %1643, %1644
%1646 = load double, double* %49
%1647 = load double, double* %67
%1648 = call double @llvm.fmuladd.f64(double %1645, double %1646, double %1647)
%1649 = fmul double %1642, %1648
%1650 = load double, double* %36
%1651 = fmul double %1649, %1650
store double %1651, double* %75
%1652 = load double, double* %66
%1653 = load double, double* %83
%1654 = fmul double %1652, %1653
%1655 = load double, double* %44
%1656 = fmul double %1654, %1655
store double %1656, double* %76
%1657 = load double, double* %58
%1658 = load double, double* %81
%1659 = fadd double %1657, %1658
%1660 = load double, double* %63
%1661 = fdiv double %1659, %1660
%1662 = load double, double* %63
%1663 = fdiv double %1661, %1662
%1664 = load double, double* %58
%1665 = load double, double* %65
%1666 = fneg double %1664
%1667 = call double @llvm.fmuladd.f64(double %1666, double %1665, double %1663)
%1668 = load double, double* %79
%1669 = load double, double* %61
%1670 = load double, double* %58
%1671 = fmul double %1669, %1670
%1672 = load double, double* %81
%1673 = fmul double %1671, %1672
%1674 = load double, double* %65
%1675 = fmul double %1673, %1674
%1676 = load double, double* %78
%1677 = fmul double %1675, %1676
%1678 = call double @llvm.fmuladd.f64(double %1667, double %1668, double %1677)
%1679 = load double*, double** %25
%1680 = getelementptr inbounds double, double* %1679, i64 0
store double %1678, double* %1680
%1681 = load double*, double** %25
%1682 = getelementptr inbounds double, double* %1681, i64 0
%1683 = load double, double* %1682
%1684 = load double, double* %58
%1685 = load double, double* %76
%1686 = load double, double* %77
%1687 = fadd double %1685, %1686
%1688 = load double, double* %75
%1689 = fadd double %1687, %1688
%1690 = fneg double %1684
%1691 = call double @llvm.fmuladd.f64(double %1690, double %1689, double %1683)
%1692 = load double, double* %81
%1693 = fdiv double %1691, %1692
%1694 = load double*, double** %25
%1695 = getelementptr inbounds double, double* %1694, i64 0
store double %1693, double* %1695
%1696 = load double, double* %83
%1697 = load double, double* %66
%1698 = load double, double* %44
%1699 = load double, double* %67
%1700 = load double, double* %32
%1701 = fmul double %1699, %1700
%1702 = call double @llvm.fmuladd.f64(double %1697, double %1698, double %1701)
%1703 = load double, double* %30
%1704 = load double, double* %66
%1705 = load double, double* %49
%1706 = fmul double %1704, %1705
%1707 = load double, double* %49
%1708 = load double, double* %67
%1709 = call double @llvm.fmuladd.f64(double %1706, double %1707, double %1708)
%1710 = fmul double %1703, %1709
%1711 = load double, double* %36
%1712 = fmul double %1710, %1711
%1713 = fneg double %1712
%1714 = call double @llvm.fmuladd.f64(double %1696, double %1702, double %1713)
store double %1714, double* %91
%1715 = load double, double* %91
%1716 = load double, double* %65
%1717 = load double, double* %79
%1718 = load double, double* %61
%1719 = load double, double* %81
%1720 = fmul double %1718, %1719
%1721 = load double, double* %78
%1722 = fneg double %1720
%1723 = call double @llvm.fmuladd.f64(double %1722, double %1721, double %1717)
%1724 = call double @llvm.fmuladd.f64(double %1716, double %1723, double %1715)
%1725 = load double*, double** %25
%1726 = getelementptr inbounds double, double* %1725, i64 0
%1727 = load double, double* %1726
%1728 = fsub double %1724, %1727
%1729 = load double, double* %83
%1730 = load double, double* %34
%1731 = fadd double %1729, %1730
%1732 = fdiv double %1728, %1731
store double %1732, double* %87
%1733 = load double*, double** %25
%1734 = getelementptr inbounds double, double* %1733, i64 0
%1735 = load double, double* %1734
%1736 = load double, double* %28
%1737 = load double, double* %87
%1738 = call double @llvm.fmuladd.f64(double %1736, double %1737, double %1735)
%1739 = load double*, double** %25
%1740 = getelementptr inbounds double, double* %1739, i64 0
store double %1738, double* %1740
%1741 = load double*, double** %26
%1742 = getelementptr inbounds double, double* %1741, i64 1
%1743 = load double, double* %1742
%1744 = load double, double* %83
%1745 = fmul double %1743, %1744
%1746 = load double, double* %40
%1747 = fmul double %1745, %1746
%1748 = load double, double* %81
%1749 = fdiv double %1747, %1748
%1750 = load double*, double** %25
%1751 = getelementptr inbounds double, double* %1750, i64 2
store double %1749, double* %1751
%1752 = load double*, double** %25
%1753 = getelementptr inbounds double, double* %1752, i64 2
%1754 = load double, double* %1753
%1755 = fneg double %1754
%1756 = load double, double* %28
%1757 = load double, double* %40
%1758 = call double @llvm.fmuladd.f64(double %1756, double %1757, double %1755)
%1759 = load double*, double** %25
%1760 = getelementptr inbounds double, double* %1759, i64 2
store double %1758, double* %1760
br label %1761
1761: ; preds = %1581, %1519
br label %2048
1762: ; preds = %1449
%1763 = load double, double* %60
%1764 = load double*, double** %26
%1765 = getelementptr inbounds double, double* %1764, i64 0
store double %1763, double* %1765
%1766 = load double, double* %58
%1767 = load double*, double** %26
%1768 = getelementptr inbounds double, double* %1767, i64 1
store double %1766, double* %1768
%1769 = load double, double* %37
%1770 = load double*, double** %26
%1771 = getelementptr inbounds double, double* %1770, i64 2
store double %1769, double* %1771
%1772 = load double, double* %59
%1773 = load double*, double** %26
%1774 = getelementptr inbounds double, double* %1773, i64 3
store double %1772, double* %1774
%1775 = load double, double* %78
%1776 = load double, double* %58
%1777 = load double, double* %28
%1778 = fsub double %1776, %1777
%1779 = load double, double* %79
%1780 = fmul double %1778, %1779
%1781 = load double, double* %60
%1782 = fdiv double %1780, %1781
%1783 = load double, double* %62
%1784 = fdiv double %1782, %1783
%1785 = load double, double* %62
%1786 = fdiv double %1784, %1785
%1787 = fadd double %1775, %1786
%1788 = load double*, double** %25
%1789 = getelementptr inbounds double, double* %1788, i64 1
store double %1787, double* %1789
%1790 = load double, double* %79
%1791 = load double, double* %60
%1792 = load double, double* %58
%1793 = load double, double* %28
%1794 = fsub double %1792, %1793
%1795 = fmul double %1791, %1794
%1796 = load double, double* %78
%1797 = call double @llvm.fmuladd.f64(double %1795, double %1796, double %1790)
%1798 = load double*, double** %25
%1799 = getelementptr inbounds double, double* %1798, i64 3
store double %1797, double* %1799
%1800 = getelementptr inbounds [2 x i32], [2 x i32]* %51, i64 0, i64 0
%1801 = load i32, i32* %1800
%1802 = icmp ne i32 %1801, 0
br i1 %1802, label %1803, label %1865
1803: ; preds = %1762
%1804 = load double, double* %60
%1805 = load double, double* %58
%1806 = load double, double* %28
%1807 = fsub double %1805, %1806
%1808 = fmul double %1804, %1807
%1809 = load double, double* %62
%1810 = load double, double* %48
%1811 = fdiv double %1809, %1810
%1812 = load double, double* %84
%1813 = fadd double 1.000000e+00, %1812
%1814 = load double, double* %84
%1815 = fdiv double %1813, %1814
%1816 = call double @pow(double %1811, double %1815)
%1817 = fmul double %1808, %1816
%1818 = load double, double* %43
%1819 = load double, double* %31
%1820 = load double, double* %48
%1821 = fmul double %1819, %1820
%1822 = load double, double* %48
%1823 = fneg double %1821
%1824 = call double @llvm.fmuladd.f64(double %1823, double %1822, double %1818)
%1825 = fmul double %1817, %1824
%1826 = load double, double* %29
%1827 = fdiv double %1825, %1826
%1828 = load double*, double** %25
%1829 = getelementptr inbounds double, double* %1828, i64 0
store double %1827, double* %1829
%1830 = load double*, double** %25
%1831 = getelementptr inbounds double, double* %1830, i64 0
%1832 = load double, double* %1831
%1833 = load double*, double** %25
%1834 = getelementptr inbounds double, double* %1833, i64 3
%1835 = load double, double* %1834
%1836 = fadd double %1832, %1835
%1837 = load double, double* %62
%1838 = fdiv double %1836, %1837
%1839 = load double, double* %62
%1840 = fdiv double %1838, %1839
%1841 = load double*, double** %25
%1842 = getelementptr inbounds double, double* %1841, i64 0
store double %1840, double* %1842
%1843 = load double*, double** %26
%1844 = getelementptr inbounds double, double* %1843, i64 1
%1845 = load double, double* %1844
%1846 = fneg double %1845
%1847 = load double, double* %39
%1848 = fmul double %1846, %1847
%1849 = load double*, double** %26
%1850 = getelementptr inbounds double, double* %1849, i64 0
%1851 = load double, double* %1850
%1852 = fmul double %1848, %1851
%1853 = load double, double* %29
%1854 = fdiv double %1852, %1853
%1855 = load double*, double** %25
%1856 = getelementptr inbounds double, double* %1855, i64 2
store double %1854, double* %1856
%1857 = load double*, double** %25
%1858 = getelementptr inbounds double, double* %1857, i64 2
%1859 = load double, double* %1858
%1860 = load double, double* %28
%1861 = load double, double* %39
%1862 = call double @llvm.fmuladd.f64(double %1860, double %1861, double %1859)
%1863 = load double*, double** %25
%1864 = getelementptr inbounds double, double* %1863, i64 2
store double %1862, double* %1864
br label %2047
1865: ; preds = %1762
%1866 = load double, double* %45
%1867 = fadd double %1866, 1.000000e+00
%1868 = load double, double* %41
%1869 = load double, double* %45
%1870 = fsub double %1869, 1.000000e+00
%1871 = load double, double* %59
%1872 = fmul double %1870, %1871
%1873 = call double @llvm.fmuladd.f64(double %1867, double %1868, double %1872)
%1874 = fmul double 5.000000e-01, %1873
%1875 = load double, double* %60
%1876 = fdiv double %1874, %1875
%1877 = call double @sqrt(double %1876)
%1878 = fneg double %1877
store double %1878, double* %81
%1879 = load double, double* %45
%1880 = fadd double %1879, 1.000000e+00
%1881 = load double, double* %59
%1882 = load double, double* %45
%1883 = fsub double %1882, 1.000000e+00
%1884 = load double, double* %41
%1885 = fmul double %1883, %1884
%1886 = call double @llvm.fmuladd.f64(double %1880, double %1881, double %1885)
%1887 = fmul double 5.000000e-01, %1886
%1888 = load double, double* %29
%1889 = fdiv double %1887, %1888
%1890 = call double @sqrt(double %1889)
%1891 = fneg double %1890
store double %1891, double* %82
%1892 = load double, double* %41
%1893 = load double, double* %84
%1894 = load double, double* %59
%1895 = call double @llvm.fmuladd.f64(double %1893, double %1894, double %1892)
store double %1895, double* %55
%1896 = load double, double* %29
%1897 = load double, double* %41
%1898 = fmul double %1896, %1897
%1899 = load double, double* %85
%1900 = fsub double 1.000000e+00, %1899
%1901 = fmul double %1898, %1900
%1902 = load double, double* %55
%1903 = fdiv double %1901, %1902
%1904 = load double, double* %55
%1905 = fdiv double %1903, %1904
store double %1905, double* %65
%1906 = load double, double* %29
%1907 = load double, double* %59
%1908 = fmul double %1906, %1907
%1909 = load double, double* %85
%1910 = fsub double %1909, 1.000000e+00
%1911 = fmul double %1908, %1910
%1912 = load double, double* %55
%1913 = fdiv double %1911, %1912
%1914 = load double, double* %55
%1915 = fdiv double %1913, %1914
store double %1915, double* %66
%1916 = load double, double* %59
%1917 = load double, double* %84
%1918 = load double, double* %41
%1919 = call double @llvm.fmuladd.f64(double %1917, double %1918, double %1916)
%1920 = load double, double* %55
%1921 = fdiv double %1919, %1920
store double %1921, double* %67
%1922 = load double, double* %82
%1923 = load double, double* %67
%1924 = fmul double %1922, %1923
%1925 = load double, double* %31
%1926 = fmul double %1924, %1925
store double %1926, double* %77
%1927 = load double, double* %29
%1928 = fneg double %1927
%1929 = load double, double* %66
%1930 = load double, double* %48
%1931 = fmul double %1929, %1930
%1932 = load double, double* %48
%1933 = load double, double* %67
%1934 = call double @llvm.fmuladd.f64(double %1931, double %1932, double %1933)
%1935 = fmul double %1928, %1934
%1936 = load double, double* %35
%1937 = fmul double %1935, %1936
store double %1937, double* %75
%1938 = load double, double* %66
%1939 = load double, double* %82
%1940 = fmul double %1938, %1939
%1941 = load double, double* %43
%1942 = fmul double %1940, %1941
store double %1942, double* %76
%1943 = load double, double* %58
%1944 = load double, double* %81
%1945 = fadd double %1943, %1944
%1946 = load double, double* %62
%1947 = fdiv double %1945, %1946
%1948 = load double, double* %62
%1949 = fdiv double %1947, %1948
%1950 = load double, double* %65
%1951 = load double, double* %58
%1952 = fneg double %1950
%1953 = call double @llvm.fmuladd.f64(double %1952, double %1951, double %1949)
%1954 = load double, double* %79
%1955 = load double, double* %60
%1956 = load double, double* %58
%1957 = fmul double %1955, %1956
%1958 = load double, double* %81
%1959 = fmul double %1957, %1958
%1960 = load double, double* %65
%1961 = fmul double %1959, %1960
%1962 = load double, double* %78
%1963 = fmul double %1961, %1962
%1964 = call double @llvm.fmuladd.f64(double %1953, double %1954, double %1963)
%1965 = load double*, double** %25
%1966 = getelementptr inbounds double, double* %1965, i64 0
store double %1964, double* %1966
%1967 = load double*, double** %25
%1968 = getelementptr inbounds double, double* %1967, i64 0
%1969 = load double, double* %1968
%1970 = load double, double* %58
%1971 = load double, double* %76
%1972 = load double, double* %77
%1973 = fadd double %1971, %1972
%1974 = load double, double* %75
%1975 = fadd double %1973, %1974
%1976 = fneg double %1970
%1977 = call double @llvm.fmuladd.f64(double %1976, double %1975, double %1969)
%1978 = load double, double* %81
%1979 = fdiv double %1977, %1978
%1980 = load double*, double** %25
%1981 = getelementptr inbounds double, double* %1980, i64 0
store double %1979, double* %1981
%1982 = load double, double* %82
%1983 = load double, double* %66
%1984 = load double, double* %43
%1985 = load double, double* %67
%1986 = load double, double* %31
%1987 = fmul double %1985, %1986
%1988 = call double @llvm.fmuladd.f64(double %1983, double %1984, double %1987)
%1989 = load double, double* %29
%1990 = load double, double* %66
%1991 = load double, double* %48
%1992 = fmul double %1990, %1991
%1993 = load double, double* %48
%1994 = load double, double* %67
%1995 = call double @llvm.fmuladd.f64(double %1992, double %1993, double %1994)
%1996 = fmul double %1989, %1995
%1997 = load double, double* %35
%1998 = fmul double %1996, %1997
%1999 = fneg double %1998
%2000 = call double @llvm.fmuladd.f64(double %1982, double %1988, double %1999)
store double %2000, double* %91
%2001 = load double, double* %91
%2002 = load double, double* %65
%2003 = load double, double* %79
%2004 = load double, double* %60
%2005 = load double, double* %81
%2006 = fmul double %2004, %2005
%2007 = load double, double* %78
%2008 = fneg double %2006
%2009 = call double @llvm.fmuladd.f64(double %2008, double %2007, double %2003)
%2010 = call double @llvm.fmuladd.f64(double %2002, double %2009, double %2001)
%2011 = load double*, double** %25
%2012 = getelementptr inbounds double, double* %2011, i64 0
%2013 = load double, double* %2012
%2014 = fsub double %2010, %2013
%2015 = load double, double* %82
%2016 = load double, double* %33
%2017 = fadd double %2015, %2016
%2018 = fdiv double %2014, %2017
store double %2018, double* %87
%2019 = load double*, double** %25
%2020 = getelementptr inbounds double, double* %2019, i64 0
%2021 = load double, double* %2020
%2022 = load double, double* %28
%2023 = load double, double* %87
%2024 = call double @llvm.fmuladd.f64(double %2022, double %2023, double %2021)
%2025 = load double*, double** %25
%2026 = getelementptr inbounds double, double* %2025, i64 0
store double %2024, double* %2026
%2027 = load double*, double** %26
%2028 = getelementptr inbounds double, double* %2027, i64 1
%2029 = load double, double* %2028
%2030 = load double, double* %82
%2031 = fmul double %2029, %2030
%2032 = load double, double* %39
%2033 = fmul double %2031, %2032
%2034 = load double, double* %81
%2035 = fdiv double %2033, %2034
%2036 = load double*, double** %25
%2037 = getelementptr inbounds double, double* %2036, i64 2
store double %2035, double* %2037
%2038 = load double*, double** %25
%2039 = getelementptr inbounds double, double* %2038, i64 2
%2040 = load double, double* %2039
%2041 = fneg double %2040
%2042 = load double, double* %28
%2043 = load double, double* %39
%2044 = call double @llvm.fmuladd.f64(double %2042, double %2043, double %2041)
%2045 = load double*, double** %25
%2046 = getelementptr inbounds double, double* %2045, i64 2
store double %2044, double* %2046
br label %2047
2047: ; preds = %1865, %1803
br label %2048
2048: ; preds = %2047, %1761
br label %2049
2049: ; preds = %2048, %891
br label %2050
2050: ; preds = %2049, %693
br label %2051
2051: ; preds = %2050, %599
br label %2052
2052: ; preds = %2051, %511
%2053 = load double, double* %60
%2054 = load double*, double** %27
%2055 = getelementptr inbounds double, double* %2054, i64 0
store double %2053, double* %2055
%2056 = load double, double* %58
%2057 = load double*, double** %27
%2058 = getelementptr inbounds double, double* %2057, i64 1
store double %2056, double* %2058
%2059 = load double, double* %61
%2060 = load double*, double** %27
%2061 = getelementptr inbounds double, double* %2060, i64 2
store double %2059, double* %2061
%2062 = load double, double* %59
%2063 = load double*, double** %27
%2064 = getelementptr inbounds double, double* %2063, i64 3
store double %2062, double* %2064
br label %2065
2065: ; preds = %2052, %347
ret void
}

LLVM IR (-O2):
define void @linear_GRP_solver_Edir(double* nocapture writeonly %0, double* %1, double* %2, double* nocapture writeonly %3, double %4, double %5, double %6, double %7, double %8, double %9, double %10, double %11, double %12, double %13, double %14, double %15, double %16, double %17, double %18, double %19, double %20, double %21, double %22) {
%24 = alloca [2 x i32]
%25 = alloca double
%26 = alloca double
%27 = bitcast [2 x i32]* %24 to i8*
%28 = bitcast double* %25 to i8*
%29 = bitcast double* %26 to i8*
%30 = fadd double %21, -1.000000e+00
%31 = fadd double %21, 1.000000e+00
%32 = fdiv double %30, %31
%33 = fmul double %32, %32
%34 = fmul double %17, %21
%35 = fdiv double %34, %5
%36 = tail call double @sqrt(double %35)
%37 = fmul double %18, %21
%38 = fdiv double %37, %6
%39 = tail call double @sqrt(double %38)
%40 = fsub double %5, %6
%41 = fsub double %9, %10
%42 = fmul double %41, %41
%43 = tail call double @llvm.fmuladd.f64(double %40, double %40, double %42)
%44 = fsub double %17, %18
%45 = tail call double @llvm.fmuladd.f64(double %44, double %44, double %43)
%46 = fcmp olt double %45, %22
br i1 %46, label %47, label %126
47: ; preds = %23
%48 = fsub double %9, %36
store double %48, double* %0
%49 = fadd double %39, %10
%50 = getelementptr inbounds double, double* %0, i64 1
store double %49, double* %50
%51 = fadd double %9, %10
%52 = fmul double %51, 5.000000e-01
store double %52, double* %25
%53 = fadd double %17, %18
%54 = fmul double %53, 5.000000e-01
store double %54, double* %26
%55 = fmul double %36, %5
%56 = fdiv double %19, %55
%57 = fadd double %56, %11
%58 = fmul double %39, %6
%59 = fdiv double %20, %58
%60 = fsub double %12, %59
%61 = fadd double %36, %9
%62 = fsub double %10, %39
%63 = fmul double %62, %60
%64 = tail call double @llvm.fmuladd.f64(double %61, double %57, double %63)
%65 = fmul double %64, -5.000000e-01
%66 = getelementptr inbounds double, double* %1, i64 1
store double %65, double* %66
%67 = fmul double %5, -5.000000e-01
%68 = fmul double %67, %36
%69 = fneg double %63
%70 = tail call double @llvm.fmuladd.f64(double %61, double %57, double %69)
%71 = fmul double %68, %70
%72 = getelementptr inbounds double, double* %1, i64 3
store double %71, double* %72
%73 = fcmp ogt double %52, %4
br i1 %73, label %74, label %97
74: ; preds = %47
store double %5, double* %2
%75 = getelementptr inbounds double, double* %2, i64 1
store double %52, double* %75
%76 = getelementptr inbounds double, double* %2, i64 2
store double %13, double* %76
%77 = getelementptr inbounds double, double* %2, i64 3
store double %54, double* %77
%78 = load double, double* %66
%79 = fneg double %36
%80 = fmul double %36, %79
%81 = tail call double @llvm.fmuladd.f64(double %80, double %7, double %19)
%82 = tail call double @llvm.fmuladd.f64(double %52, double %81, double %78)
%83 = fdiv double %82, %36
%84 = fdiv double %83, %36
%85 = fneg double %9
%86 = fmul double %85, %15
%87 = getelementptr inbounds double, double* %1, i64 2
%88 = insertelement <2 x double> poison, double %4, i64 0
%89 = shufflevector <2 x double> %88, <2 x double> poison, <2 x i32> zeroinitializer
%90 = insertelement <2 x double> poison, double %7, i64 0
%91 = insertelement <2 x double> %90, double %11, i64 1
%92 = insertelement <2 x double> poison, double %84, i64 0
%93 = insertelement <2 x double> %92, double %78, i64 1
%94 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %89, <2 x double> %91, <2 x double> %93)
%95 = bitcast double* %1 to <2 x double>*
store <2 x double> %94, <2 x double>* %95
%96 = tail call double @llvm.fmuladd.f64(double %4, double %15, double %86)
store double %96, double* %87
br label %120
97: ; preds = %47
store double %6, double* %2
%98 = getelementptr inbounds double, double* %2, i64 1
store double %52, double* %98
%99 = getelementptr inbounds double, double* %2, i64 2
store double %14, double* %99
%100 = getelementptr inbounds double, double* %2, i64 3
store double %54, double* %100
%101 = load double, double* %66
%102 = fneg double %39
%103 = fmul double %39, %102
%104 = tail call double @llvm.fmuladd.f64(double %103, double %8, double %20)
%105 = tail call double @llvm.fmuladd.f64(double %52, double %104, double %101)
%106 = fdiv double %105, %39
%107 = fdiv double %106, %39
%108 = fneg double %10
%109 = fmul double %108, %16
%110 = getelementptr inbounds double, double* %1, i64 2
%111 = insertelement <2 x double> poison, double %4, i64 0
%112 = shufflevector <2 x double> %111, <2 x double> poison, <2 x i32> zeroinitializer
%113 = insertelement <2 x double> poison, double %8, i64 0
%114 = insertelement <2 x double> %113, double %12, i64 1
%115 = insertelement <2 x double> poison, double %107, i64 0
%116 = insertelement <2 x double> %115, double %101, i64 1
%117 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %112, <2 x double> %114, <2 x double> %116)
%118 = bitcast double* %1 to <2 x double>*
store <2 x double> %117, <2 x double>* %118
%119 = tail call double @llvm.fmuladd.f64(double %4, double %16, double %109)
store double %119, double* %110
br label %120
120: ; preds = %97, %74
%121 = phi double [ %20, %97 ], [ %19, %74 ]
%122 = load double, double* %72
%123 = tail call double @llvm.fmuladd.f64(double %4, double %121, double %122)
store double %123, double* %72
store double %5, double* %3
%124 = getelementptr inbounds double, double* %3, i64 1
store double %52, double* %124
%125 = getelementptr inbounds double, double* %3, i64 2
store double %6, double* %125
br label %848
126: ; preds = %23
%127 = getelementptr inbounds [2 x i32], [2 x i32]* %24, i64 0, i64 0
%128 = call i32 (double*, double*, double, double, double, double, double, double, double, i32*, double, i32, ...) bitcast (i32 (...)* @Riemann_solver_exact to i32 (double*, double*, double, double, double, double, double, double, double, i32*, double, i32, ...)*)(double* %25, double* %26, double %21, double %9, double %10, double %17, double %18, double %36, double %39, i32* %127, double %22, i32 500)
%129 = load i32, i32* %127
%130 = icmp eq i32 %129, 0
%131 = load double, double* %26
br i1 %130, label %144, label %132
132: ; preds = %126
%133 = fdiv double %131, %17
%134 = fdiv double 1.000000e+00, %21
%135 = call double @pow(double %133, double %134)
%136 = fmul double %135, %5
%137 = load double, double* %26
%138 = fdiv double %137, %17
%139 = fmul double %30, 5.000000e-01
%140 = fdiv double %139, %21
%141 = call double @pow(double %138, double %140)
%142 = fmul double %36, %141
%143 = fsub double %9, %36
br label %160
144: ; preds = %126
%145 = call double @llvm.fmuladd.f64(double %32, double %17, double %131)
%146 = fmul double %145, %5
%147 = call double @llvm.fmuladd.f64(double %32, double %131, double %17)
%148 = fdiv double %146, %147
%149 = fmul double %131, %21
%150 = fdiv double %149, %148
%151 = call double @sqrt(double %150)
%152 = load double, double* %26
%153 = fdiv double %152, %17
%154 = call double @llvm.fmuladd.f64(double %31, double %153, double %30)
%155 = fmul double %154, 5.000000e-01
%156 = fdiv double %155, %21
%157 = call double @sqrt(double %156)
%158 = fneg double %36
%159 = call double @llvm.fmuladd.f64(double %158, double %157, double %9)
br label %160
160: ; preds = %144, %132
%161 = phi double [ %142, %132 ], [ %151, %144 ]
%162 = phi double [ %136, %132 ], [ %148, %144 ]
%163 = phi double [ %143, %132 ], [ %159, %144 ]
%164 = getelementptr inbounds [2 x i32], [2 x i32]* %24, i64 0, i64 1
%165 = load i32, i32* %164
%166 = icmp eq i32 %165, 0
%167 = load double, double* %26
br i1 %166, label %180, label %168
168: ; preds = %160
%169 = fdiv double %167, %18
%170 = fdiv double 1.000000e+00, %21
%171 = call double @pow(double %169, double %170)
%172 = fmul double %171, %6
%173 = load double, double* %26
%174 = fdiv double %173, %18
%175 = fmul double %30, 5.000000e-01
%176 = fdiv double %175, %21
%177 = call double @pow(double %174, double %176)
%178 = fmul double %39, %177
%179 = fadd double %39, %10
br label %195
180: ; preds = %160
%181 = call double @llvm.fmuladd.f64(double %32, double %18, double %167)
%182 = fmul double %181, %6
%183 = call double @llvm.fmuladd.f64(double %32, double %167, double %18)
%184 = fdiv double %182, %183
%185 = fmul double %167, %21
%186 = fdiv double %185, %184
%187 = call double @sqrt(double %186)
%188 = load double, double* %26
%189 = fdiv double %188, %18
%190 = call double @llvm.fmuladd.f64(double %31, double %189, double %30)
%191 = fmul double %190, 5.000000e-01
%192 = fdiv double %191, %21
%193 = call double @sqrt(double %192)
%194 = call double @llvm.fmuladd.f64(double %39, double %193, double %10)
br label %195
195: ; preds = %180, %168
%196 = phi double [ %178, %168 ], [ %187, %180 ]
%197 = phi double [ %172, %168 ], [ %184, %180 ]
%198 = phi double [ %179, %168 ], [ %194, %180 ]
store double %163, double* %0
%199 = getelementptr inbounds double, double* %0, i64 1
store double %198, double* %199
%200 = load i32, i32* %164
%201 = icmp eq i32 %200, 0
br i1 %201, label %205, label %202
202: ; preds = %195
%203 = load double, double* %25
%204 = fadd double %196, %203
store double %204, double* %199
br label %205
205: ; preds = %202, %195
%206 = fcmp ogt double %163, %4
br i1 %206, label %207, label %237
207: ; preds = %205
%208 = fneg double %7
%209 = fneg double %5
%210 = fmul double %209, %11
%211 = call double @llvm.fmuladd.f64(double %208, double %9, double %210)
%212 = fneg double %9
%213 = fneg double %19
%214 = fdiv double %213, %5
%215 = call double @llvm.fmuladd.f64(double %212, double %11, double %214)
%216 = getelementptr inbounds double, double* %1, i64 1
%217 = fmul double %212, %15
%218 = fmul double %36, %5
%219 = fmul double %36, %218
%220 = fmul double %9, %19
%221 = call double @llvm.fmuladd.f64(double %219, double %11, double %220)
%222 = fneg double %221
%223 = getelementptr inbounds double, double* %1, i64 3
%224 = call double @llvm.fmuladd.f64(double %4, double %7, double %211)
store double %224, double* %1
%225 = insertelement <2 x double> poison, double %4, i64 0
%226 = shufflevector <2 x double> %225, <2 x double> poison, <2 x i32> zeroinitializer
%227 = insertelement <2 x double> poison, double %11, i64 0
%228 = insertelement <2 x double> %227, double %15, i64 1
%229 = insertelement <2 x double> poison, double %215, i64 0
%230 = insertelement <2 x double> %229, double %217, i64 1
%231 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %226, <2 x double> %228, <2 x double> %230)
%232 = bitcast double* %216 to <2 x double>*
store <2 x double> %231, <2 x double>* %232
%233 = call double @llvm.fmuladd.f64(double %4, double %19, double %222)
store double %233, double* %223
store double %5, double* %2
%234 = getelementptr inbounds double, double* %2, i64 1
store double %9, double* %234
%235 = getelementptr inbounds double, double* %2, i64 2
store double %13, double* %235
%236 = getelementptr inbounds double, double* %2, i64 3
store double %17, double* %236
br label %843
237: ; preds = %205
%238 = fcmp olt double %198, %4
br i1 %238, label %239, label %269
239: ; preds = %237
%240 = fneg double %8
%241 = fneg double %6
%242 = fmul double %241, %12
%243 = call double @llvm.fmuladd.f64(double %240, double %10, double %242)
%244 = fneg double %10
%245 = fneg double %20
%246 = fdiv double %245, %6
%247 = call double @llvm.fmuladd.f64(double %244, double %12, double %246)
%248 = getelementptr inbounds double, double* %1, i64 1
%249 = fmul double %244, %16
%250 = fmul double %39, %6
%251 = fmul double %39, %250
%252 = fmul double %10, %20
%253 = call double @llvm.fmuladd.f64(double %251, double %12, double %252)
%254 = fneg double %253
%255 = getelementptr inbounds double, double* %1, i64 3
%256 = call double @llvm.fmuladd.f64(double %4, double %8, double %243)
store double %256, double* %1
%257 = insertelement <2 x double> poison, double %4, i64 0
%258 = shufflevector <2 x double> %257, <2 x double> poison, <2 x i32> zeroinitializer
%259 = insertelement <2 x double> poison, double %12, i64 0
%260 = insertelement <2 x double> %259, double %16, i64 1
%261 = insertelement <2 x double> poison, double %247, i64 0
%262 = insertelement <2 x double> %261, double %249, i64 1
%263 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %258, <2 x double> %260, <2 x double> %262)
%264 = bitcast double* %248 to <2 x double>*
store <2 x double> %263, <2 x double>* %264
%265 = call double @llvm.fmuladd.f64(double %4, double %20, double %254)
store double %265, double* %255
store double %6, double* %2
%266 = getelementptr inbounds double, double* %2, i64 1
store double %10, double* %266
%267 = getelementptr inbounds double, double* %2, i64 2
store double %14, double* %267
%268 = getelementptr inbounds double, double* %2, i64 3
store double %18, double* %268
br label %843
269: ; preds = %237
%270 = load i32, i32* %127
%271 = icmp eq i32 %270, 0
br i1 %271, label %344, label %272
272: ; preds = %269
%273 = load double, double* %25
%274 = fsub double %273, %161
%275 = fcmp ogt double %274, %4
br i1 %275, label %276, label %344
276: ; preds = %272
%277 = fadd double %36, %4
%278 = fmul double %277, 2.000000e+00
%279 = fdiv double %278, %30
%280 = fadd double %279, %9
%281 = fmul double %32, %280
%282 = getelementptr inbounds double, double* %2, i64 1
store double %281, double* %282
%283 = fsub double %281, %4
%284 = fdiv double %283, %36
%285 = fmul double %21, 2.000000e+00
%286 = fdiv double %285, %30
%287 = call double @pow(double %284, double %286)
%288 = fmul double %287, %17
%289 = getelementptr inbounds double, double* %2, i64 3
store double %288, double* %289
%290 = fmul double %288, %21
%291 = fdiv double %290, %283
%292 = fdiv double %291, %283
store double %292, double* %2
%293 = fneg double %36
%294 = fmul double %293, %7
%295 = call double @llvm.fmuladd.f64(double %294, double %36, double %19)
%296 = fdiv double %295, %30
%297 = fdiv double %296, %5
%298 = fmul double %19, %21
%299 = fdiv double %298, %36
%300 = call double @llvm.fmuladd.f64(double %293, double %7, double %299)
%301 = fdiv double %300, %30
%302 = fdiv double %301, %5
%303 = fadd double %302, %11
%304 = fadd double %32, 1.000000e+00
%305 = fdiv double 5.000000e-01, %32
%306 = call double @pow(double %284, double %305)
%307 = fdiv double %304, %32
%308 = call double @pow(double %284, double %307)
%309 = fmul double %32, %308
%310 = call double @llvm.fmuladd.f64(double %304, double %306, double %309)
%311 = call double @llvm.fmuladd.f64(double %32, double 2.000000e+00, double 1.000000e+00)
%312 = fdiv double %310, %311
%313 = getelementptr inbounds double, double* %1, i64 1
%314 = fmul double %297, %312
%315 = call double @pow(double %284, double %305)
%316 = fmul double %315, %293
%317 = call double @llvm.fmuladd.f64(double %316, double %303, double %314)
store double %317, double* %313
%318 = load double, double* %2
%319 = load double, double* %282
%320 = fsub double %319, %4
%321 = fmul double %318, %320
%322 = fmul double %317, %321
%323 = getelementptr inbounds double, double* %1, i64 3
store double %322, double* %323
%324 = load double, double* %2
%325 = load double, double* %282
%326 = fsub double %325, %4
%327 = fmul double %324, %326
%328 = call double @pow(double %284, double %307)
%329 = fmul double %328, %327
%330 = fmul double %295, %329
%331 = fdiv double %330, %5
%332 = load double, double* %323
%333 = fadd double %332, %331
%334 = fdiv double %333, %283
%335 = fdiv double %334, %283
store double %335, double* %1
%336 = getelementptr inbounds double, double* %2, i64 2
store double %13, double* %336
%337 = load double, double* %282
%338 = fneg double %337
%339 = fmul double %338, %15
%340 = load double, double* %2
%341 = fmul double %339, %340
%342 = fdiv double %341, %5
%343 = getelementptr inbounds double, double* %1, i64 2
store double %342, double* %343
br label %843
344: ; preds = %272, %269
br i1 %201, label %417, label %345
345: ; preds = %344
%346 = load double, double* %25
%347 = fadd double %196, %346
%348 = fcmp olt double %347, %4
br i1 %348, label %349, label %417
349: ; preds = %345
%350 = fsub double %39, %4
%351 = fmul double %350, 2.000000e+00
%352 = fdiv double %351, %30
%353 = fsub double %10, %352
%354 = fmul double %32, %353
%355 = getelementptr inbounds double, double* %2, i64 1
store double %354, double* %355
%356 = fsub double %4, %354
%357 = fdiv double %356, %39
%358 = fmul double %21, 2.000000e+00
%359 = fdiv double %358, %30
%360 = call double @pow(double %357, double %359)
%361 = fmul double %360, %18
%362 = getelementptr inbounds double, double* %2, i64 3
store double %361, double* %362
%363 = fmul double %361, %21
%364 = fdiv double %363, %356
%365 = fdiv double %364, %356
store double %365, double* %2
%366 = fneg double %39
%367 = fmul double %366, %8
%368 = call double @llvm.fmuladd.f64(double %367, double %39, double %20)
%369 = fdiv double %368, %30
%370 = fdiv double %369, %6
%371 = fmul double %20, %21
%372 = fdiv double %371, %39
%373 = call double @llvm.fmuladd.f64(double %366, double %8, double %372)
%374 = fdiv double %373, %30
%375 = fdiv double %374, %6
%376 = fsub double %12, %375
%377 = fadd double %32, 1.000000e+00
%378 = fdiv double 5.000000e-01, %32
%379 = call double @pow(double %357, double %378)
%380 = fdiv double %377, %32
%381 = call double @pow(double %357, double %380)
%382 = fmul double %32, %381
%383 = call double @llvm.fmuladd.f64(double %377, double %379, double %382)
%384 = call double @llvm.fmuladd.f64(double %32, double 2.000000e+00, double 1.000000e+00)
%385 = fdiv double %383, %384
%386 = getelementptr inbounds double, double* %1, i64 1
%387 = fmul double %370, %385
%388 = call double @pow(double %357, double %378)
%389 = fmul double %39, %388
%390 = call double @llvm.fmuladd.f64(double %389, double %376, double %387)
store double %390, double* %386
%391 = load double, double* %2
%392 = load double, double* %355
%393 = fsub double %392, %4
%394 = fmul double %391, %393
%395 = fmul double %390, %394
%396 = getelementptr inbounds double, double* %1, i64 3
store double %395, double* %396
%397 = load double, double* %2
%398 = load double, double* %355
%399 = fsub double %398, %4
%400 = fmul double %397, %399
%401 = call double @pow(double %357, double %380)
%402 = fmul double %401, %400
%403 = fmul double %368, %402
%404 = fdiv double %403, %6
%405 = load double, double* %396
%406 = fadd double %405, %404
%407 = fdiv double %406, %356
%408 = fdiv double %407, %356
store double %408, double* %1
%409 = getelementptr inbounds double, double* %2, i64 2
store double %14, double* %409
%410 = load double, double* %355
%411 = fneg double %410
%412 = fmul double %411, %15
%413 = load double, double* %2
%414 = fmul double %412, %413
%415 = fdiv double %414, %6
%416 = getelementptr inbounds double, double* %1, i64 2
store double %415, double* %416
br label %843
417: ; preds = %345, %344
br i1 %271, label %451, label %418
418: ; preds = %417
%419 = fdiv double 1.000000e+00, %162
%420 = fdiv double %419, %161
%421 = fdiv double %161, %36
%422 = fneg double %36
%423 = fmul double %422, %7
%424 = call double @llvm.fmuladd.f64(double %423, double %36, double %19)
%425 = fdiv double %424, %30
%426 = fmul double %19, %21
%427 = fdiv double %426, %36
%428 = call double @llvm.fmuladd.f64(double %422, double %7, double %427)
%429 = fdiv double %428, %30
%430 = fdiv double %429, %5
%431 = fadd double %430, %11
%432 = fadd double %32, 1.000000e+00
%433 = fdiv double 5.000000e-01, %32
%434 = call double @pow(double %421, double %433)
%435 = fdiv double %432, %32
%436 = call double @pow(double %421, double %435)
%437 = fmul double %32, %436
%438 = call double @llvm.fmuladd.f64(double %432, double %434, double %437)
%439 = call double @llvm.fmuladd.f64(double %32, double 2.000000e+00, double 1.000000e+00)
%440 = insertelement <2 x double> poison, double %425, i64 0
%441 = insertelement <2 x double> %440, double %438, i64 1
%442 = insertelement <2 x double> poison, double %5, i64 0
%443 = insertelement <2 x double> %442, double %439, i64 1
%444 = fdiv <2 x double> %441, %443
%445 = shufflevector <2 x double> %444, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%446 = fmul <2 x double> %444, %445
%447 = extractelement <2 x double> %446, i64 0
%448 = call double @pow(double %421, double %433)
%449 = fmul double %448, %422
%450 = call double @llvm.fmuladd.f64(double %449, double %431, double %447)
br label %507
451: ; preds = %417
%452 = load double, double* %26
%453 = fmul double %30, %452
%454 = call double @llvm.fmuladd.f64(double %31, double %17, double %453)
%455 = fmul double %454, 5.000000e-01
%456 = fdiv double %455, %162
%457 = call double @sqrt(double %456)
%458 = load double, double* %26
%459 = fmul double %30, %17
%460 = call double @llvm.fmuladd.f64(double %31, double %458, double %459)
%461 = fmul double %460, 5.000000e-01
%462 = fdiv double %461, %5
%463 = call double @sqrt(double %462)
%464 = fneg double %463
%465 = fsub double 1.000000e+00, %32
%466 = load double, double* %26
%467 = call double @llvm.fmuladd.f64(double %32, double %17, double %466)
%468 = fmul double %467, %5
%469 = fdiv double %465, %468
%470 = call double @sqrt(double %469)
%471 = fmul double %470, 5.000000e-01
%472 = load double, double* %26
%473 = call double @llvm.fmuladd.f64(double %32, double 2.000000e+00, double 1.000000e+00)
%474 = call double @llvm.fmuladd.f64(double %473, double %17, double %472)
%475 = fmul double %471, %474
%476 = call double @llvm.fmuladd.f64(double %32, double %17, double %472)
%477 = fmul double %470, -5.000000e-01
%478 = fadd double %32, 2.000000e+00
%479 = fmul double %32, %17
%480 = call double @llvm.fmuladd.f64(double %478, double %472, double %479)
%481 = fmul double %477, %480
%482 = fdiv double %481, %476
%483 = fsub double %472, %17
%484 = fmul double %477, %483
%485 = fdiv double %484, %5
%486 = fdiv double -1.000000e+00, %5
%487 = call double @llvm.fmuladd.f64(double %463, double %482, double %486)
%488 = fmul double %36, %36
%489 = call double @llvm.fmuladd.f64(double %488, double %482, double %485)
%490 = call double @llvm.fmuladd.f64(double %5, double %489, double %464)
%491 = fmul double %463, %485
%492 = fmul double %162, %457
%493 = fmul double %161, %162
%494 = fmul double %161, %493
%495 = insertelement <2 x double> poison, double %457, i64 0
%496 = insertelement <2 x double> %495, double %475, i64 1
%497 = insertelement <2 x double> poison, double %494, i64 0
%498 = insertelement <2 x double> %497, double %476, i64 1
%499 = fdiv <2 x double> %496, %498
%500 = extractelement <2 x double> %499, i64 1
%501 = call double @llvm.fmuladd.f64(double %492, double %500, double 1.000000e+00)
%502 = extractelement <2 x double> %499, i64 0
%503 = fadd double %502, %500
%504 = fmul double %490, %11
%505 = call double @llvm.fmuladd.f64(double %491, double %7, double %504)
%506 = call double @llvm.fmuladd.f64(double %487, double %19, double %505)
br label %507
507: ; preds = %451, %418
%508 = phi double [ 1.000000e+00, %418 ], [ %501, %451 ]
%509 = phi double [ %420, %418 ], [ %503, %451 ]
%510 = phi double [ %450, %418 ], [ %506, %451 ]
%511 = load i32, i32* %164
%512 = icmp eq i32 %511, 0
br i1 %512, label %546, label %513
513: ; preds = %507
%514 = fdiv double -1.000000e+00, %197
%515 = fdiv double %514, %196
%516 = fdiv double %196, %39
%517 = fneg double %39
%518 = fmul double %517, %8
%519 = call double @llvm.fmuladd.f64(double %518, double %39, double %20)
%520 = fdiv double %519, %30
%521 = fmul double %20, %21
%522 = fdiv double %521, %39
%523 = call double @llvm.fmuladd.f64(double %517, double %8, double %522)
%524 = fdiv double %523, %30
%525 = fdiv double %524, %6
%526 = fsub double %12, %525
%527 = fadd double %32, 1.000000e+00
%528 = fdiv double 5.000000e-01, %32
%529 = call double @pow(double %516, double %528)
%530 = fdiv double %527, %32
%531 = call double @pow(double %516, double %530)
%532 = fmul double %32, %531
%533 = call double @llvm.fmuladd.f64(double %527, double %529, double %532)
%534 = call double @llvm.fmuladd.f64(double %32, double 2.000000e+00, double 1.000000e+00)
%535 = insertelement <2 x double> poison, double %520, i64 0
%536 = insertelement <2 x double> %535, double %533, i64 1
%537 = insertelement <2 x double> poison, double %6, i64 0
%538 = insertelement <2 x double> %537, double %534, i64 1
%539 = fdiv <2 x double> %536, %538
%540 = shufflevector <2 x double> %539, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%541 = fmul <2 x double> %539, %540
%542 = extractelement <2 x double> %541, i64 0
%543 = call double @pow(double %516, double %528)
%544 = fmul double %39, %543
%545 = call double @llvm.fmuladd.f64(double %544, double %526, double %542)
br label %604
546: ; preds = %507
%547 = load double, double* %26
%548 = fmul double %30, %547
%549 = call double @llvm.fmuladd.f64(double %31, double %18, double %548)
%550 = fmul double %549, 5.000000e-01
%551 = fdiv double %550, %197
%552 = call double @sqrt(double %551)
%553 = load double, double* %26
%554 = fmul double %30, %18
%555 = call double @llvm.fmuladd.f64(double %31, double %553, double %554)
%556 = fmul double %555, 5.000000e-01
%557 = fdiv double %556, %6
%558 = call double @sqrt(double %557)
%559 = fsub double 1.000000e+00, %32
%560 = load double, double* %26
%561 = call double @llvm.fmuladd.f64(double %32, double %18, double %560)
%562 = fmul double %561, %6
%563 = fdiv double %559, %562
%564 = call double @sqrt(double %563)
%565 = fmul double %564, 5.000000e-01
%566 = load double, double* %26
%567 = call double @llvm.fmuladd.f64(double %32, double 2.000000e+00, double 1.000000e+00)
%568 = call double @llvm.fmuladd.f64(double %567, double %18, double %566)
%569 = fmul double %565, %568
%570 = call double @llvm.fmuladd.f64(double %32, double %18, double %566)
%571 = fmul double %564, -5.000000e-01
%572 = fadd double %32, 2.000000e+00
%573 = fmul double %32, %18
%574 = call double @llvm.fmuladd.f64(double %572, double %566, double %573)
%575 = fmul double %571, %574
%576 = fdiv double %575, %570
%577 = fsub double %566, %18
%578 = fmul double %577, -5.000000e-01
%579 = fmul double %564, %578
%580 = fdiv double %579, %6
%581 = fdiv double -1.000000e+00, %6
%582 = call double @llvm.fmuladd.f64(double %558, double %576, double %581)
%583 = fmul double %39, %39
%584 = call double @llvm.fmuladd.f64(double %583, double %576, double %580)
%585 = fneg double %6
%586 = call double @llvm.fmuladd.f64(double %585, double %584, double %558)
%587 = fmul double %558, %580
%588 = fmul double %197, %552
%589 = fmul double %196, %197
%590 = fmul double %196, %589
%591 = insertelement <2 x double> poison, double %552, i64 0
%592 = insertelement <2 x double> %591, double %569, i64 1
%593 = insertelement <2 x double> poison, double %590, i64 0
%594 = insertelement <2 x double> %593, double %570, i64 1
%595 = fdiv <2 x double> %592, %594
%596 = extractelement <2 x double> %595, i64 1
%597 = call double @llvm.fmuladd.f64(double %588, double %596, double 1.000000e+00)
%598 = extractelement <2 x double> %595, i64 0
%599 = fadd double %598, %596
%600 = fneg double %599
%601 = fmul double %586, %12
%602 = call double @llvm.fmuladd.f64(double %587, double %8, double %601)
%603 = call double @llvm.fmuladd.f64(double %582, double %20, double %602)
br label %604
604: ; preds = %546, %513
%605 = phi double [ 1.000000e+00, %513 ], [ %597, %546 ]
%606 = phi double [ %515, %513 ], [ %600, %546 ]
%607 = phi double [ %545, %513 ], [ %603, %546 ]
%608 = fneg double %509
%609 = fmul double %605, %608
%610 = call double @llvm.fmuladd.f64(double %508, double %606, double %609)
%611 = fmul double %607, %608
%612 = call double @llvm.fmuladd.f64(double %606, double %510, double %611)
%613 = fdiv double %612, %610
%614 = fneg double %605
%615 = fmul double %510, %614
%616 = call double @llvm.fmuladd.f64(double %508, double %607, double %615)
%617 = fdiv double %616, %610
%618 = load double, double* %25
%619 = fcmp olt double %618, %4
br i1 %619, label %620, label %731
620: ; preds = %604
store double %197, double* %2
%621 = getelementptr inbounds double, double* %2, i64 1
store double %618, double* %621
%622 = getelementptr inbounds double, double* %2, i64 2
store double %14, double* %622
%623 = load double, double* %26
%624 = getelementptr inbounds double, double* %2, i64 3
store double %623, double* %624
%625 = fsub double %618, %4
%626 = fmul double %625, %617
%627 = fdiv double %626, %197
%628 = fdiv double %627, %196
%629 = fdiv double %628, %196
%630 = fadd double %613, %629
%631 = getelementptr inbounds double, double* %1, i64 1
store double %630, double* %631
%632 = fmul double %197, %625
%633 = call double @llvm.fmuladd.f64(double %632, double %613, double %617)
%634 = getelementptr inbounds double, double* %1, i64 3
store double %633, double* %634
%635 = load i32, i32* %164
%636 = icmp eq i32 %635, 0
br i1 %636, label %660, label %637
637: ; preds = %620
%638 = fdiv double %196, %39
%639 = fadd double %32, 1.000000e+00
%640 = fdiv double %639, %32
%641 = call double @pow(double %638, double %640)
%642 = fmul double %632, %641
%643 = fneg double %39
%644 = fmul double %643, %8
%645 = call double @llvm.fmuladd.f64(double %644, double %39, double %20)
%646 = fmul double %645, %642
%647 = fdiv double %646, %6
%648 = load double, double* %634
%649 = fadd double %648, %647
%650 = fdiv double %649, %196
%651 = fdiv double %650, %196
store double %651, double* %1
%652 = load double, double* %621
%653 = fneg double %652
%654 = fmul double %653, %16
%655 = load double, double* %2
%656 = fmul double %654, %655
%657 = fdiv double %656, %6
%658 = getelementptr inbounds double, double* %1, i64 2
%659 = call double @llvm.fmuladd.f64(double %4, double %16, double %657)
store double %659, double* %658
br label %843
660: ; preds = %620
%661 = fmul double %30, %623
%662 = call double @llvm.fmuladd.f64(double %31, double %18, double %661)
%663 = fmul double %662, 5.000000e-01
%664 = fdiv double %663, %197
%665 = call double @sqrt(double %664)
%666 = load double, double* %26
%667 = fmul double %30, %18
%668 = call double @llvm.fmuladd.f64(double %31, double %666, double %667)
%669 = fmul double %668, 5.000000e-01
%670 = fdiv double %669, %6
%671 = call double @sqrt(double %670)
%672 = load double, double* %26
%673 = call double @llvm.fmuladd.f64(double %32, double %672, double %18)
%674 = fmul double %6, %18
%675 = fsub double 1.000000e+00, %33
%676 = fmul double %674, %675
%677 = fdiv double %676, %673
%678 = fdiv double %677, %673
%679 = fmul double %672, %6
%680 = fadd double %33, -1.000000e+00
%681 = fmul double %680, %679
%682 = fdiv double %681, %673
%683 = fdiv double %682, %673
%684 = call double @llvm.fmuladd.f64(double %32, double %18, double %672)
%685 = fdiv double %684, %673
%686 = fmul double %671, %685
%687 = fmul double %686, %8
%688 = fneg double %6
%689 = fmul double %39, %683
%690 = call double @llvm.fmuladd.f64(double %689, double %39, double %685)
%691 = fmul double %690, %688
%692 = fmul double %691, %12
%693 = fmul double %671, %683
%694 = fmul double %693, %20
%695 = load double, double* %25
%696 = fadd double %665, %695
%697 = fdiv double %696, %196
%698 = fdiv double %697, %196
%699 = fneg double %695
%700 = call double @llvm.fmuladd.f64(double %699, double %678, double %698)
%701 = fmul double %197, %695
%702 = fmul double %665, %701
%703 = fmul double %702, %678
%704 = fmul double %613, %703
%705 = call double @llvm.fmuladd.f64(double %700, double %617, double %704)
%706 = fadd double %687, %694
%707 = fadd double %706, %692
%708 = call double @llvm.fmuladd.f64(double %699, double %707, double %705)
%709 = fdiv double %708, %665
%710 = fmul double %685, %8
%711 = call double @llvm.fmuladd.f64(double %683, double %20, double %710)
%712 = fneg double %690
%713 = fmul double %712, %6
%714 = fmul double %713, %12
%715 = call double @llvm.fmuladd.f64(double %671, double %711, double %714)
%716 = fneg double %197
%717 = fmul double %665, %716
%718 = call double @llvm.fmuladd.f64(double %717, double %613, double %617)
%719 = call double @llvm.fmuladd.f64(double %678, double %718, double %715)
%720 = fsub double %719, %709
%721 = fadd double %671, %10
%722 = fdiv double %720, %721
%723 = call double @llvm.fmuladd.f64(double %4, double %722, double %709)
store double %723, double* %1
%724 = load double, double* %621
%725 = getelementptr inbounds double, double* %1, i64 2
%726 = fneg double %724
%727 = fmul double %671, %726
%728 = fmul double %727, %16
%729 = fdiv double %728, %665
%730 = call double @llvm.fmuladd.f64(double %4, double %16, double %729)
store double %730, double* %725
br label %843
731: ; preds = %604
store double %162, double* %2
%732 = getelementptr inbounds double, double* %2, i64 1
store double %618, double* %732
%733 = getelementptr inbounds double, double* %2, i64 2
store double %13, double* %733
%734 = load double, double* %26
%735 = getelementptr inbounds double, double* %2, i64 3
store double %734, double* %735
%736 = fsub double %618, %4
%737 = fmul double %736, %617
%738 = fdiv double %737, %162
%739 = fdiv double %738, %161
%740 = fdiv double %739, %161
%741 = fadd double %613, %740
%742 = getelementptr inbounds double, double* %1, i64 1
store double %741, double* %742
%743 = fmul double %162, %736
%744 = call double @llvm.fmuladd.f64(double %743, double %613, double %617)
%745 = getelementptr inbounds double, double* %1, i64 3
store double %744, double* %745
%746 = load i32, i32* %127
%747 = icmp eq i32 %746, 0
br i1 %747, label %771, label %748
748: ; preds = %731
%749 = fdiv double %161, %36
%750 = fadd double %32, 1.000000e+00
%751 = fdiv double %750, %32
%752 = call double @pow(double %749, double %751)
%753 = fmul double %743, %752
%754 = fneg double %36
%755 = fmul double %754, %7
%756 = call double @llvm.fmuladd.f64(double %755, double %36, double %19)
%757 = fmul double %756, %753
%758 = fdiv double %757, %5
%759 = load double, double* %745
%760 = fadd double %759, %758
%761 = fdiv double %760, %161
%762 = fdiv double %761, %161
store double %762, double* %1
%763 = load double, double* %732
%764 = fneg double %763
%765 = fmul double %764, %15
%766 = load double, double* %2
%767 = fmul double %765, %766
%768 = fdiv double %767, %5
%769 = getelementptr inbounds double, double* %1, i64 2
%770 = call double @llvm.fmuladd.f64(double %4, double %15, double %768)
store double %770, double* %769
br label %843
771: ; preds = %731
%772 = fmul double %30, %734
%773 = call double @llvm.fmuladd.f64(double %31, double %17, double %772)
%774 = fmul double %773, 5.000000e-01
%775 = fdiv double %774, %162
%776 = call double @sqrt(double %775)
%777 = fneg double %776
%778 = load double, double* %26
%779 = fmul double %30, %17
%780 = call double @llvm.fmuladd.f64(double %31, double %778, double %779)
%781 = fmul double %780, 5.000000e-01
%782 = fdiv double %781, %5
%783 = call double @sqrt(double %782)
%784 = fneg double %783
%785 = load double, double* %26
%786 = call double @llvm.fmuladd.f64(double %32, double %785, double %17)
%787 = fmul double %5, %17
%788 = fsub double 1.000000e+00, %33
%789 = fmul double %787, %788
%790 = fdiv double %789, %786
%791 = fdiv double %790, %786
%792 = fmul double %785, %5
%793 = fadd double %33, -1.000000e+00
%794 = fmul double %793, %792
%795 = fdiv double %794, %786
%796 = fdiv double %795, %786
%797 = call double @llvm.fmuladd.f64(double %32, double %17, double %785)
%798 = fdiv double %797, %786
%799 = fmul double %798, %784
%800 = fmul double %799, %7
%801 = fneg double %5
%802 = fmul double %36, %796
%803 = call double @llvm.fmuladd.f64(double %802, double %36, double %798)
%804 = fmul double %803, %801
%805 = fmul double %804, %11
%806 = fmul double %796, %784
%807 = fmul double %806, %19
%808 = load double, double* %25
%809 = fsub double %808, %776
%810 = fdiv double %809, %161
%811 = fdiv double %810, %161
%812 = fneg double %791
%813 = call double @llvm.fmuladd.f64(double %812, double %808, double %811)
%814 = fmul double %162, %808
%815 = fmul double %814, %777
%816 = fmul double %815, %791
%817 = fmul double %613, %816
%818 = call double @llvm.fmuladd.f64(double %813, double %617, double %817)
%819 = fadd double %800, %807
%820 = fadd double %819, %805
%821 = fneg double %808
%822 = call double @llvm.fmuladd.f64(double %821, double %820, double %818)
%823 = fdiv double %822, %777
%824 = fmul double %798, %7
%825 = call double @llvm.fmuladd.f64(double %796, double %19, double %824)
%826 = fneg double %803
%827 = fmul double %826, %5
%828 = fmul double %827, %11
%829 = call double @llvm.fmuladd.f64(double %784, double %825, double %828)
%830 = fmul double %162, %776
%831 = call double @llvm.fmuladd.f64(double %830, double %613, double %617)
%832 = call double @llvm.fmuladd.f64(double %791, double %831, double %829)
%833 = fsub double %832, %823
%834 = fsub double %9, %783
%835 = fdiv double %833, %834
%836 = call double @llvm.fmuladd.f64(double %4, double %835, double %823)
store double %836, double* %1
%837 = load double, double* %732
%838 = getelementptr inbounds double, double* %1, i64 2
%839 = fmul double %783, %837
%840 = fmul double %839, %15
%841 = fdiv double %840, %777
%842 = call double @llvm.fmuladd.f64(double %4, double %15, double %841)
store double %842, double* %838
br label %843
843: ; preds = %239, %349, %748, %771, %637, %660, %276, %207
store double %162, double* %3
%844 = load double, double* %25
%845 = getelementptr inbounds double, double* %3, i64 1
store double %844, double* %845
%846 = getelementptr inbounds double, double* %3, i64 2
store double %197, double* %846
%847 = load double, double* %26
br label %848
848: ; preds = %843, %120
%849 = phi double [ %847, %843 ], [ %54, %120 ]
%850 = getelementptr inbounds double, double* %3, i64 3
store double %849, double* %850
ret void
}