void R_Schrodinger_Fixed_Logderiv(n, l, v, match, u_logderiv, Eig, u,
                                  uprime) int n,
    l;
double v[];
int match;
double u_logderiv;
double *Eig;
double u[], uprime[];
{
  int i, j, iteration, node, Ngrid;
  double E, de, Emax, Emin, log_amesh, log_amesh2, gamma, L2, r2, sum, uout,
      upout, upin, *r, *f_upp, *upp;
  E = *Eig;
  gamma = ((double)(l + 1));
  L2 = ((double)(l * (l + 1)));
  Ngrid = N_LogGrid();
  log_amesh = log_amesh_LogGrid();
  log_amesh2 = log_amesh * log_amesh;
  r = (double *)r_LogGrid();
  f_upp = (double *)alloc_LogGrid();
  upp = (double *)alloc_LogGrid();
  Emax = E + 10.0;
  Emin = E - 10.0;
  iteration = 0;
  while (iteration < 500) {
    ++iteration;
    for (i = 0; i < Ngrid; ++i) {
      r2 = r[i];
      r2 = r2 * r2;
      f_upp[i] = log_amesh2 * (L2 + 2.0 * (v[i] - E) * r2);
    }
    for (i = 0; i < 4; ++i) {
      u[i] = pow(r[i], gamma);
      uprime[i] = log_amesh * gamma * u[i];
    }
    for (i = 0; i < 4; ++i)
      upp[i] = log_amesh * uprime[i] + f_upp[i] * u[i];
    node = 0;
    for (i = 3; i < match; ++i) {
      u[i + 1] = Predictor_Out(i, u, uprime);
      uprime[i + 1] = Predictor_Out(i, uprime, upp);
      for (j = 0; j < 6; ++j) {
        upp[i + 1] = log_amesh * uprime[i + 1] + f_upp[i + 1] * u[i + 1];
        uprime[i + 1] = Corrector_Out(i, uprime, upp);
        u[i + 1] = Corrector_Out(i, u, uprime);
      }
      if (u[i + 1] * u[i] <= 0)
        node = node + 1;
    }
    uout = u[match];
    upout = uprime[match];
    if ((node - n + l + 1) < 0) {
      Emin = E;
      E = 0.5 * (Emin + Emax);
    } else if ((node - n + l + 1) > 0) {
      Emax = E;
      E = 0.5 * (Emin + Emax);
    } else {
      upin = u_logderiv * uout;
      sum = Norm_LogGrid(match, gamma, u);
      sum = 1.0 / sqrt(sum);
      uout = sum * uout;
      upout = sum * upout;
      upin = sum * upin;
      for (i = 0; i <= match; ++i) {
        u[i] = sum * u[i];
        uprime[i] = sum * uprime[i];
      }
      for (i = match + 1; i < Ngrid; ++i) {
        u[i] = 0.0;
        uprime[i] = 0.0;
      }
      de = 0.5 * uout * (upout - upin) / (log_amesh * r[match]);
      if (fabs(de) < (((fabs(E) > 0.2) ? fabs(E) : 0.2) * 1.0e-10)) {
        *Eig = E;
        dealloc_LogGrid(upp);
        dealloc_LogGrid(f_upp);
        return;
      }
      if (de > 0.0)
        Emin = E;
      else
        Emax = E;
      E = E + de;
      if ((E > Emax) || (E < Emin))
        E = 0.5 * (Emin + Emax);
    }
  }
  printf("Error R_Schrodinger_Fixed_Logderiv: More than %d iterations\n", 500);
  *Eig = E;
  dealloc_LogGrid(upp);
  dealloc_LogGrid(f_upp);
  return;
}


x86 assembly (clang, -O0):
<R_Schrodinger_Fixed_Logderiv>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
movsd  %xmm0,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x8(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
imul   %ecx,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    $0x0,%al
call   10d0 <N_LogGrid@plt>
mov    %eax,-0x44(%rbp)
mov    $0x0,%al
call   1030 <log_amesh_LogGrid@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x70(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    $0x0,%al
call   1070 <r_LogGrid@plt>
cltq
mov    %rax,-0xb8(%rbp)
mov    $0x0,%al
call   10c0 <alloc_LogGrid@plt>
cltq
mov    %rax,-0xc0(%rbp)
mov    $0x0,%al
call   10c0 <alloc_LogGrid@plt>
cltq
mov    %rax,-0xc8(%rbp)
movsd  0xd92(%rip),%xmm0
addsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  0xd7b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movl   $0x0,-0x3c(%rbp)
cmpl   $0x1f4,-0x3c(%rbp)
jge    1917 <R_Schrodinger_Fixed_Logderiv+0x767>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x44(%rbp),%eax
jge    134b <R_Schrodinger_Fixed_Logderiv+0x19b>
mov    -0xb8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x88(%rbp),%xmm2
ff
mov    -0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm3
subsd  -0x50(%rbp),%xmm3
movsd  0xd13(%rip),%xmm1
mulsd  %xmm3,%xmm1
movsd  -0x90(%rbp),%xmm3
ff
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mov    -0xc0(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    12b2 <R_Schrodinger_Fixed_Logderiv+0x102>
movl   $0x0,-0x34(%rbp)
cmpl   $0x4,-0x34(%rbp)
jge    13b5 <R_Schrodinger_Fixed_Logderiv+0x205>
mov    -0xb8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x80(%rbp),%xmm1
call   1090 <pow@plt>
mov    -0x30(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mulsd  -0x80(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1352 <R_Schrodinger_Fixed_Logderiv+0x1a2>
movl   $0x0,-0x34(%rbp)
cmpl   $0x4,-0x34(%rbp)
jge    141b <R_Schrodinger_Fixed_Logderiv+0x26b>
movsd  -0x70(%rbp),%xmm0
mov    0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    -0xc0(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x30(%rbp),%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0xc8(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    13bc <R_Schrodinger_Fixed_Logderiv+0x20c>
movl   $0x0,-0x40(%rbp)
movl   $0x3,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    159d <R_Schrodinger_Fixed_Logderiv+0x3ed>
mov    -0x34(%rbp),%edi
mov    -0x30(%rbp),%rsi
mov    0x10(%rbp),%rdx
mov    $0x0,%al
call   1060 <Predictor_Out@plt>
cvtsi2sd %eax,%xmm0
mov    -0x30(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%edi
mov    0x10(%rbp),%rsi
mov    -0xc8(%rbp),%rdx
mov    $0x0,%al
call   1060 <Predictor_Out@plt>
cvtsi2sd %eax,%xmm0
mov    0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movl   $0x0,-0x38(%rbp)
cmpl   $0x6,-0x38(%rbp)
jge    1555 <R_Schrodinger_Fixed_Logderiv+0x3a5>
movsd  -0x70(%rbp),%xmm0
mov    0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mov    -0xc0(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x30(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0xc8(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%edi
mov    0x10(%rbp),%rsi
mov    -0xc8(%rbp),%rdx
mov    $0x0,%al
call   1050 <Corrector_Out@plt>
cvtsi2sd %eax,%xmm0
mov    0x10(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%edi
mov    -0x30(%rbp),%rsi
mov    0x10(%rbp),%rdx
mov    $0x0,%al
call   1050 <Corrector_Out@plt>
cvtsi2sd %eax,%xmm0
mov    -0x30(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    148f <R_Schrodinger_Fixed_Logderiv+0x2df>
mov    -0x30(%rbp),%rax
mov    -0x34(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x30(%rbp),%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     158a <R_Schrodinger_Fixed_Logderiv+0x3da>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    158f <R_Schrodinger_Fixed_Logderiv+0x3df>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1429 <R_Schrodinger_Fixed_Logderiv+0x279>
mov    -0x30(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x40(%rbp),%eax
sub    -0x4(%rbp),%eax
add    -0x8(%rbp),%eax
add    $0x1,%eax
cmp    $0x0,%eax
jge    1606 <R_Schrodinger_Fixed_Logderiv+0x456>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm1
addsd  -0x60(%rbp),%xmm1
movsd  0xa20(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    1912 <R_Schrodinger_Fixed_Logderiv+0x762>
mov    -0x40(%rbp),%eax
sub    -0x4(%rbp),%eax
add    -0x8(%rbp),%eax
add    $0x1,%eax
cmp    $0x0,%eax
jle    1645 <R_Schrodinger_Fixed_Logderiv+0x495>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm1
addsd  -0x60(%rbp),%xmm1
movsd  0x9e1(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    190d <R_Schrodinger_Fixed_Logderiv+0x75d>
movsd  -0x20(%rbp),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x14(%rbp),%edi
movsd  -0x80(%rbp),%xmm0
mov    -0x30(%rbp),%rsi
mov    $0x1,%al
call   1080 <Norm_LogGrid@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
call   10a0 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  0x977(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x14(%rbp),%eax
jg     174a <R_Schrodinger_Fixed_Logderiv+0x59a>
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x30(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x98(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    16ec <R_Schrodinger_Fixed_Logderiv+0x53c>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x44(%rbp),%eax
jge    178d <R_Schrodinger_Fixed_Logderiv+0x5dd>
mov    -0x30(%rbp),%rax
movslq -0x34(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    0x10(%rbp),%rax
movslq -0x34(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1753 <R_Schrodinger_Fixed_Logderiv+0x5a3>
movsd  0x883(%rip),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm1
ff
subsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  -0x70(%rbp),%xmm1
mov    -0xb8(%rbp),%rax
movslq -0x14(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movaps 0x855(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movaps 0x83d(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x811(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1826 <R_Schrodinger_Fixed_Logderiv+0x676>
movsd  -0x50(%rbp),%xmm0
movaps 0x81b(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    183b <R_Schrodinger_Fixed_Logderiv+0x68b>
movsd  0x7e2(%rip),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    183b <R_Schrodinger_Fixed_Logderiv+0x68b>
movsd  -0xd0(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  0x7cd(%rip),%xmm2
mulsd  %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jbe    188f <R_Schrodinger_Fixed_Logderiv+0x6df>
movsd  -0x50(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0xc8(%rbp),%rdi
mov    $0x0,%al
call   10b0 <dealloc_LogGrid@plt>
mov    -0xc0(%rbp),%rdi
mov    $0x0,%al
call   10b0 <dealloc_LogGrid@plt>
jmp    1953 <R_Schrodinger_Fixed_Logderiv+0x7a3>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    18b0 <R_Schrodinger_Fixed_Logderiv+0x700>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    18ba <R_Schrodinger_Fixed_Logderiv+0x70a>
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x50(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x50(%rbp),%xmm0
ucomisd -0x60(%rbp),%xmm0
ja     18ed <R_Schrodinger_Fixed_Logderiv+0x73d>
movsd  -0x50(%rbp),%xmm1
movsd  -0x68(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jbe    1908 <R_Schrodinger_Fixed_Logderiv+0x758>
movsd  -0x68(%rbp),%xmm1
addsd  -0x60(%rbp),%xmm1
movsd  0x719(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    190d <R_Schrodinger_Fixed_Logderiv+0x75d>
jmp    1912 <R_Schrodinger_Fixed_Logderiv+0x762>
jmp    1295 <R_Schrodinger_Fixed_Logderiv+0xe5>
lea    0x722(%rip),%rdi
mov    $0x1f4,%esi
mov    $0x0,%al
call   1040 <printf@plt>
movsd  -0x50(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0xc8(%rbp),%rdi
mov    $0x0,%al
call   10b0 <dealloc_LogGrid@plt>
mov    -0xc0(%rbp),%rdi
mov    $0x0,%al
call   10b0 <dealloc_LogGrid@plt>
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<R_Schrodinger_Fixed_Logderiv>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x1b8,%rsp
mov    %r9,%rbx
movsd  %xmm0,0x198(%rsp)
mov    %ecx,0x1c(%rsp)
mov    %rdx,%r15
mov    %edi,0x8c(%rsp)
mov    0x1f0(%rsp),%r14
lea    0x1(%rsi),%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rsp)
mov    %r8,0xa0(%rsp)
movsd  (%r8),%xmm0
movaps %xmm0,0x60(%rsp)
mov    %rsi,0x1b0(%rsp)
imul   %esi,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0xf0(%rsp)
xor    %eax,%eax
call   10d0 <N_LogGrid@plt>
mov    %eax,%r12d
xor    %eax,%eax
call   1030 <log_amesh_LogGrid@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x10(%rsp)
mulsd  %xmm0,%xmm0
movapd %xmm0,0xe0(%rsp)
xor    %eax,%eax
call   1070 <r_LogGrid@plt>
movslq %eax,%rbp
xor    %eax,%eax
call   10c0 <alloc_LogGrid@plt>
movslq %eax,%r13
xor    %eax,%eax
call   10c0 <alloc_LogGrid@plt>
movapd 0xe0(%rsp),%xmm9
movsd  0x10(%rsp),%xmm10
movapd 0xf0(%rsp),%xmm8
movapd 0x60(%rsp),%xmm5
mov    %eax,0x90(%rsp)
movslq 0x1c(%rsp),%rax
mov    %rax,0x70(%rsp)
lea    0x1(%rax),%r10d
mov    %r12d,%edi
sub    %eax,%r12d
add    $0xfffffffe,%r12d
lea    0x1(%r12),%r9
lea    (%r14,%r10,8),%rax
mov    %rax,0x80(%rsp)
lea    0x0(,%rdi,8),%r11
add    %r13,%r11
lea    0x0(,%rdi,8),%rax
add    %rbp,%rax
lea    (%r15,%rdi,8),%r8
mov    %r10d,%esi
and    $0xfffffffc,%esi
mov    %rsi,0x180(%rsp)
add    $0xfffffffffffffffc,%rsi
mov    %rsi,0x178(%rsp)
shr    $0x2,%rsi
add    $0x1,%rsi
mov    %r9,0x168(%rsp)
and    $0xfffffffffffffffc,%r9
lea    -0x4(%r9),%rcx
mov    %rcx,0x158(%rsp)
shr    $0x2,%rcx
add    $0x1,%rcx
cmp    %rax,%r13
setb   %al
cmp    %r11,%rbp
setb   %dl
and    %al,%dl
cmp    %r8,%r13
setb   %r8b
cmp    %r15,%r11
seta   %al
and    %r8b,%al
or     %dl,%al
mov    %al,0xf(%rsp)
mov    %edi,%eax
and    $0xfffffffc,%eax
mov    %rax,0x1a0(%rsp)
mov    %rdi,%rax
neg    %rax
mov    %rax,0x1a8(%rsp)
cmp    %rbx,0x80(%rsp)
lea    (%rbx,%r10,8),%rax
seta   %dl
cmp    %r14,%rax
seta   %al
and    %dl,%al
mov    %al,0xe(%rsp)
movabs $0x7ffffffffffffffc,%rdx
ff ff 7f
or     $0x2,%rdx
mov    %rsi,%rax
mov    %rsi,0x170(%rsp)
and    %rsi,%rdx
mov    %rdx,0x138(%rsp)
mov    %r10,%rax
neg    %rax
mov    %rax,0x188(%rsp)
movslq %r10d,%r8
lea    (%rbx,%r8,8),%rsi
mov    %r12,0x190(%rsp)
lea    (%r8,%r12,1),%rax
lea    (%r14,%rax,8),%rdx
add    $0x8,%rdx
mov    %rsi,0x150(%rsp)
cmp    %rdx,%rsi
lea    0x8(%rbx,%rax,8),%rax
setb   %dl
lea    (%r14,%r8,8),%rsi
cmp    %rax,%rsi
setb   %al
and    %dl,%al
mov    %al,0xd(%rsp)
movslq 0x90(%rsp),%r12
movsd  0x1c13(%rip),%xmm0
addsd  %xmm5,%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x1c09(%rip),%xmm0
addsd  %xmm5,%xmm0
movapd %xmm0,0xd0(%rsp)
movsd  0x20(%rsp),%xmm0
mulsd  %xmm10,%xmm0
movsd  %xmm0,0x58(%rsp)
movapd %xmm8,%xmm6
unpcklpd %xmm8,%xmm6
movapd %xmm9,%xmm7
unpcklpd %xmm9,%xmm7
mov    %ecx,%edx
and    $0x3,%edx
and    $0xfffffffffffffffc,%rcx
mov    %rcx,0x120(%rsp)
lea    0x0(,%rdi,8),%r11
and    $0xffffffffffffffe0,%r11
mov    0x70(%rsp),%rax
mov    %eax,%eax
add    $0xfffffffffffffffd,%rax
mov    %rdx,0x148(%rsp)
shl    $0x5,%rdx
mov    %r9,0x160(%rsp)
mov    %r8,0xa8(%rsp)
lea    (%r9,%r8,1),%rcx
mov    %rcx,0x140(%rsp)
mov    %rdx,%r8
lea    0x10(%r14),%rcx
mov    %rcx,0x130(%rsp)
lea    0x10(%rbx),%rcx
mov    %rcx,0x128(%rsp)
movl   $0x0,0x34(%rsp)
mov    %r15,0x50(%rsp)
mov    %rbp,0x48(%rsp)
mov    %r10,0xc0(%rsp)
mov    %rdi,0x40(%rsp)
mov    %r12,0x38(%rsp)
mov    %rsi,0xb8(%rsp)
movapd %xmm6,0x110(%rsp)
movapd %xmm7,0x100(%rsp)
mov    %r11,0x78(%rsp)
mov    %rax,0x80(%rsp)
mov    %rdx,0xb0(%rsp)
jmp    154d <R_Schrodinger_Fixed_Logderiv+0x39d>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movsd  0x28(%rsp),%xmm0
addsd  %xmm1,%xmm0
mulsd  0x1b06(%rip),%xmm0
movapd %xmm1,0xd0(%rsp)
movapd %xmm0,%xmm5
mov    0x50(%rsp),%r15
mov    %rbp,%r13
mov    0x48(%rsp),%rbp
mov    0x40(%rsp),%rdi
mov    0x38(%rsp),%r12
mov    0x34(%rsp),%ecx
add    $0x1,%ecx
mov    %ecx,0x34(%rsp)
cmp    $0x1f4,%ecx
je     2004 <R_Schrodinger_Fixed_Logderiv+0xe54>
test   %edi,%edi
jle    16a4 <R_Schrodinger_Fixed_Logderiv+0x4f4>
cmp    $0x4,%edi
setb   %al
or     0xf(%rsp),%al
je     1570 <R_Schrodinger_Fixed_Logderiv+0x3c0>
xor    %ecx,%ecx
jmp    15f4 <R_Schrodinger_Fixed_Logderiv+0x444>
nopl   0x0(%rax,%rax,1)
movapd %xmm5,%xmm0
unpcklpd %xmm5,%xmm0
xor    %eax,%eax
nopw   0x0(%rax,%rax,1)
movupd 0x0(%rbp,%rax,1),%xmm1
movupd 0x10(%rbp,%rax,1),%xmm2
mulpd  %xmm1,%xmm1
mulpd  %xmm2,%xmm2
movupd (%r15,%rax,1),%xmm3
movupd 0x10(%r15,%rax,1),%xmm4
subpd  %xmm0,%xmm3
subpd  %xmm0,%xmm4
addpd  %xmm3,%xmm3
mulpd  %xmm1,%xmm3
addpd  %xmm4,%xmm4
mulpd  %xmm2,%xmm4
addpd  %xmm6,%xmm3
addpd  %xmm6,%xmm4
mulpd  %xmm7,%xmm3
mulpd  %xmm7,%xmm4
movupd %xmm3,0x0(%r13,%rax,1)
movupd %xmm4,0x10(%r13,%rax,1)
add    $0x20,%rax
cmp    %rax,%r11
jne    1580 <R_Schrodinger_Fixed_Logderiv+0x3d0>
mov    0x1a0(%rsp),%rax
mov    %rax,%rcx
cmp    %rdi,%rax
je     16a4 <R_Schrodinger_Fixed_Logderiv+0x4f4>
mov    %rcx,%rax
test   $0x1,%dil
je     1631 <R_Schrodinger_Fixed_Logderiv+0x481>
movsd  0x0(%rbp,%rcx,8),%xmm0
mulsd  %xmm0,%xmm0
movsd  (%r15,%rcx,8),%xmm1
subsd  %xmm5,%xmm1
addsd  %xmm1,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm8,%xmm1
mulsd  %xmm9,%xmm1
movsd  %xmm1,0x0(%r13,%rcx,8)
mov    %rcx,%rax
or     $0x1,%rax
not    %rcx
cmp    0x1a8(%rsp),%rcx
je     16a4 <R_Schrodinger_Fixed_Logderiv+0x4f4>
xchg   %ax,%ax
movsd  0x0(%rbp,%rax,8),%xmm0
mulsd  %xmm0,%xmm0
movsd  (%r15,%rax,8),%xmm1
subsd  %xmm5,%xmm1
addsd  %xmm1,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm8,%xmm1
mulsd  %xmm9,%xmm1
movsd  %xmm1,0x0(%r13,%rax,8)
movsd  0x8(%rbp,%rax,8),%xmm0
mulsd  %xmm0,%xmm0
movsd  0x8(%r15,%rax,8),%xmm1
subsd  %xmm5,%xmm1
addsd  %xmm1,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm8,%xmm1
mulsd  %xmm9,%xmm1
movsd  %xmm1,0x8(%r13,%rax,8)
add    $0x2,%rax
cmp    %rax,%rdi
jne    1640 <R_Schrodinger_Fixed_Logderiv+0x490>
movapd %xmm5,0x60(%rsp)
movsd  0x0(%rbp),%xmm0
movsd  0x20(%rsp),%xmm1
call   1090 <pow@plt>
movsd  %xmm0,(%rbx)
mulsd  0x58(%rsp),%xmm0
movsd  %xmm0,(%r14)
movsd  0x8(%rbp),%xmm0
movsd  0x20(%rsp),%xmm1
call   1090 <pow@plt>
movsd  %xmm0,0x8(%rbx)
mulsd  0x58(%rsp),%xmm0
movsd  %xmm0,0x8(%r14)
movsd  0x10(%rbp),%xmm0
movsd  0x20(%rsp),%xmm1
call   1090 <pow@plt>
movsd  %xmm0,0x10(%rbx)
mulsd  0x58(%rsp),%xmm0
movsd  %xmm0,0x10(%r14)
movsd  0x18(%rbp),%xmm0
movsd  0x20(%rsp),%xmm1
call   1090 <pow@plt>
movsd  %xmm0,0x18(%rbx)
mulsd  0x58(%rsp),%xmm0
movsd  %xmm0,0x18(%r14)
movsd  0x0(%r13),%xmm0
mulsd  (%rbx),%xmm0
movsd  (%r14),%xmm1
movsd  0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,(%r12)
movsd  0x8(%r13),%xmm0
mulsd  0x8(%rbx),%xmm0
xor    %ecx,%ecx
movsd  0x8(%r14),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%r12)
movsd  0x10(%r13),%xmm0
mulsd  0x10(%rbx),%xmm0
movsd  0x10(%r14),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%r12)
movsd  0x18(%r13),%xmm0
mulsd  0x18(%rbx),%xmm0
movsd  0x18(%r14),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%r12)
cmpl   $0x4,0x1c(%rsp)
mov    %r13,%rbp
jl     1a67 <R_Schrodinger_Fixed_Logderiv+0x8b7>
xor    %r13d,%r13d
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    %ecx,0x90(%rsp)
lea    0x3(%r13),%r15d
mov    %r15d,%edi
mov    %rbx,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1060 <Predictor_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rbx,%r13,8)
mov    %r15d,%edi
mov    %r14,%rsi
mov    %r12,%rdx
xor    %eax,%eax
call   1060 <Predictor_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%r14,%r13,8)
movsd  0x20(%rbp,%r13,8),%xmm1
mulsd  0x20(%rbx,%r13,8),%xmm1
mulsd  0x10(%rsp),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x20(%r12,%r13,8)
mov    %r15d,%edi
mov    %r14,%rsi
mov    %r12,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%r14,%r13,8)
mov    %r15d,%edi
mov    %rbx,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rbx,%r13,8)
mulsd  0x20(%rbp,%r13,8),%xmm0
movsd  0x20(%r14,%r13,8),%xmm1
mulsd  0x10(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%r12,%r13,8)
mov    %r15d,%edi
mov    %r14,%rsi
mov    %r12,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%r14,%r13,8)
mov    %r15d,%edi
mov    %rbx,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rbx,%r13,8)
mulsd  0x20(%rbp,%r13,8),%xmm0
movsd  0x20(%r14,%r13,8),%xmm1
mulsd  0x10(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%r12,%r13,8)
mov    %r15d,%edi
mov    %r14,%rsi
mov    %r12,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%r14,%r13,8)
mov    %r15d,%edi
mov    %rbx,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rbx,%r13,8)
mulsd  0x20(%rbp,%r13,8),%xmm0
movsd  0x20(%r14,%r13,8),%xmm1
mulsd  0x10(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%r12,%r13,8)
mov    %r15d,%edi
mov    %r14,%rsi
mov    %r12,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%r14,%r13,8)
mov    %r15d,%edi
mov    %rbx,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rbx,%r13,8)
mulsd  0x20(%rbp,%r13,8),%xmm0
movsd  0x20(%r14,%r13,8),%xmm1
mulsd  0x10(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%r12,%r13,8)
mov    %r15d,%edi
mov    %r14,%rsi
mov    %r12,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%r14,%r13,8)
mov    %r15d,%edi
mov    %rbx,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%rbx,%r13,8)
mulsd  0x20(%rbp,%r13,8),%xmm0
movsd  0x20(%r14,%r13,8),%xmm1
mulsd  0x10(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%r12,%r13,8)
mov    %r15d,%edi
mov    %r14,%rsi
mov    %r12,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x20(%r14,%r13,8)
mov    %r15d,%edi
mov    %rbx,%rsi
mov    %r14,%rdx
xor    %eax,%eax
call   1050 <Corrector_Out@plt>
mov    0x90(%rsp),%ecx
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mov    0x80(%rsp),%rax
movsd  %xmm0,0x20(%rbx,%r13,8)
mulsd  0x18(%rbx,%r13,8),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
sbb    $0xffffffff,%ecx
add    $0x1,%r13
cmp    %r13,%rax
jne    17d0 <R_Schrodinger_Fixed_Logderiv+0x620>
sub    0x8c(%rsp),%ecx
add    0x1b0(%rsp),%ecx
cmp    $0xfffffffe,%ecx
movapd 0x60(%rsp),%xmm1
movapd 0xf0(%rsp),%xmm8
movapd 0xe0(%rsp),%xmm9
movapd 0x110(%rsp),%xmm6
movapd 0x100(%rsp),%xmm7
mov    0x78(%rsp),%r11
jle    1500 <R_Schrodinger_Fixed_Logderiv+0x350>
test   %ecx,%ecx
js     1ad3 <R_Schrodinger_Fixed_Logderiv+0x923>
movapd 0xd0(%rsp),%xmm0
addsd  %xmm1,%xmm0
mulsd  0x1550(%rip),%xmm0
movsd  %xmm1,0x28(%rsp)
jmp    151b <R_Schrodinger_Fixed_Logderiv+0x36b>
mov    0x70(%rsp),%rax
movsd  (%rbx,%rax,8),%xmm0
movaps %xmm0,0x90(%rsp)
movsd  (%r14,%rax,8),%xmm0
movsd  %xmm0,0xc8(%rsp)
mov    0x1c(%rsp),%edi
movsd  0x20(%rsp),%xmm0
mov    %rbx,%rsi
mov    $0x1,%al
call   1080 <Norm_LogGrid@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1b1f <R_Schrodinger_Fixed_Logderiv+0x96f>
sqrtsd %xmm0,%xmm0
jmp    1b24 <R_Schrodinger_Fixed_Logderiv+0x974>
call   10a0 <sqrt@plt>
movapd 0x60(%rsp),%xmm5
mov    0x50(%rsp),%r15
movapd 0xf0(%rsp),%xmm8
mov    %rbp,%r13
movsd  0x10(%rsp),%xmm10
movapd 0xe0(%rsp),%xmm9
mov    0x48(%rsp),%rbp
mov    0xc0(%rsp),%r10
mov    0x40(%rsp),%rdi
mov    0x38(%rsp),%r12
mov    0xb8(%rsp),%rsi
movapd 0x110(%rsp),%xmm6
movapd 0x100(%rsp),%xmm7
mov    0x78(%rsp),%r11
mov    0xb0(%rsp),%r8
movapd 0x90(%rsp),%xmm4
movsd  0xc8(%rsp),%xmm11
movsd  0x146a(%rip),%xmm1
divsd  %xmm0,%xmm1
cmpl   $0x0,0x1c(%rsp)
js     1d69 <R_Schrodinger_Fixed_Logderiv+0xbb9>
cmp    $0x4,%r10d
setb   %al
or     0xe(%rsp),%al
je     1bc9 <R_Schrodinger_Fixed_Logderiv+0xa19>
xor    %ecx,%ecx
jmp    1ce0 <R_Schrodinger_Fixed_Logderiv+0xb30>
movapd %xmm1,%xmm0
unpcklpd %xmm1,%xmm0
cmpq   $0x0,0x178(%rsp)
je     1dad <R_Schrodinger_Fixed_Logderiv+0xbfd>
mov    0x138(%rsp),%rcx
xor    %eax,%eax
nopw   0x0(%rax,%rax,1)
movupd (%rbx,%rax,8),%xmm2
movupd 0x10(%rbx,%rax,8),%xmm3
mulpd  %xmm0,%xmm2
mulpd  %xmm0,%xmm3
movupd %xmm2,(%rbx,%rax,8)
movupd %xmm3,0x10(%rbx,%rax,8)
movupd (%r14,%rax,8),%xmm2
movupd 0x10(%r14,%rax,8),%xmm3
mulpd  %xmm0,%xmm2
mulpd  %xmm0,%xmm3
movupd %xmm2,(%r14,%rax,8)
movupd %xmm3,0x10(%r14,%rax,8)
movupd 0x20(%rbx,%rax,8),%xmm2
movupd 0x30(%rbx,%rax,8),%xmm3
mulpd  %xmm0,%xmm2
mulpd  %xmm0,%xmm3
movupd %xmm2,0x20(%rbx,%rax,8)
movupd %xmm3,0x30(%rbx,%rax,8)
movupd 0x20(%r14,%rax,8),%xmm2
movupd 0x30(%r14,%rax,8),%xmm3
mulpd  %xmm0,%xmm2
mulpd  %xmm0,%xmm3
movupd %xmm2,0x20(%r14,%rax,8)
movupd %xmm3,0x30(%r14,%rax,8)
add    $0x8,%rax
add    $0xfffffffffffffffe,%rcx
jne    1bf0 <R_Schrodinger_Fixed_Logderiv+0xa40>
testb  $0x1,0x170(%rsp)
01
je     1ccc <R_Schrodinger_Fixed_Logderiv+0xb1c>
movupd (%rbx,%rax,8),%xmm2
movupd 0x10(%rbx,%rax,8),%xmm3
mulpd  %xmm0,%xmm2
mulpd  %xmm0,%xmm3
movupd %xmm2,(%rbx,%rax,8)
movupd %xmm3,0x10(%rbx,%rax,8)
movupd (%r14,%rax,8),%xmm2
movupd 0x10(%r14,%rax,8),%xmm3
mulpd  %xmm0,%xmm2
mulpd  %xmm0,%xmm3
movupd %xmm2,(%r14,%rax,8)
movupd %xmm3,0x10(%r14,%rax,8)
mov    0x180(%rsp),%rax
mov    %rax,%rcx
cmp    %r10,%rax
je     1d69 <R_Schrodinger_Fixed_Logderiv+0xbb9>
mov    %rcx,%rax
test   $0x1,%r10b
je     1d0e <R_Schrodinger_Fixed_Logderiv+0xb5e>
movsd  (%rbx,%rcx,8),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,(%rbx,%rcx,8)
movsd  (%r14,%rcx,8),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,(%r14,%rcx,8)
mov    %rcx,%rax
or     $0x1,%rax
not    %rcx
cmp    0x188(%rsp),%rcx
je     1d69 <R_Schrodinger_Fixed_Logderiv+0xbb9>
nopl   0x0(%rax,%rax,1)
movsd  (%rbx,%rax,8),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,(%rbx,%rax,8)
movsd  (%r14,%rax,8),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,(%r14,%rax,8)
movsd  0x8(%rbx,%rax,8),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rbx,%rax,8)
movsd  0x8(%r14,%rax,8),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%r14,%rax,8)
add    $0x2,%rax
cmp    %rax,%r10
jne    1d20 <R_Schrodinger_Fixed_Logderiv+0xb70>
cmp    %edi,%r10d
jge    1f2e <R_Schrodinger_Fixed_Logderiv+0xd7e>
cmpl   $0x3,0x190(%rsp)
03
setb   %al
or     0xd(%rsp),%al
mov    0xa8(%rsp),%rax
jne    1ead <R_Schrodinger_Fixed_Logderiv+0xcfd>
cmpq   $0xc,0x158(%rsp)
mov    0x150(%rsp),%rdx
jae    1dc2 <R_Schrodinger_Fixed_Logderiv+0xc12>
xor    %eax,%eax
xorpd  %xmm0,%xmm0
jmp    1e38 <R_Schrodinger_Fixed_Logderiv+0xc88>
xor    %eax,%eax
testb  $0x1,0x170(%rsp)
01
jne    1c8c <R_Schrodinger_Fixed_Logderiv+0xadc>
jmp    1ccc <R_Schrodinger_Fixed_Logderiv+0xb1c>
mov    0x120(%rsp),%rcx
xor    %eax,%eax
xorpd  %xmm0,%xmm0
movupd %xmm0,(%rdx,%rax,8)
movupd %xmm0,0x10(%rdx,%rax,8)
movupd %xmm0,(%rsi,%rax,8)
movupd %xmm0,0x10(%rsi,%rax,8)
movupd %xmm0,0x20(%rdx,%rax,8)
movupd %xmm0,0x30(%rdx,%rax,8)
movupd %xmm0,0x20(%rsi,%rax,8)
movupd %xmm0,0x30(%rsi,%rax,8)
movupd %xmm0,0x40(%rdx,%rax,8)
movupd %xmm0,0x50(%rdx,%rax,8)
movupd %xmm0,0x40(%rsi,%rax,8)
movupd %xmm0,0x50(%rsi,%rax,8)
movupd %xmm0,0x60(%rdx,%rax,8)
movupd %xmm0,0x70(%rdx,%rax,8)
movupd %xmm0,0x60(%rsi,%rax,8)
movupd %xmm0,0x70(%rsi,%rax,8)
add    $0x10,%rax
add    $0xfffffffffffffffc,%rcx
jne    1dd0 <R_Schrodinger_Fixed_Logderiv+0xc20>
cmpq   $0x0,0x148(%rsp)
je     1e8f <R_Schrodinger_Fixed_Logderiv+0xcdf>
add    0xa8(%rsp),%rax
mov    0x130(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    0x128(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nop
movupd %xmm0,-0x10(%rax,%rdx,1)
movupd %xmm0,(%rax,%rdx,1)
movupd %xmm0,-0x10(%rcx,%rdx,1)
movupd %xmm0,(%rcx,%rdx,1)
add    $0x20,%rdx
cmp    %rdx,%r8
jne    1e70 <R_Schrodinger_Fixed_Logderiv+0xcc0>
mov    0x140(%rsp),%rax
mov    0x160(%rsp),%rcx
cmp    %rcx,0x168(%rsp)
je     1f2e <R_Schrodinger_Fixed_Logderiv+0xd7e>
mov    %edi,%edx
sub    %eax,%edx
mov    %eax,%ecx
not    %ecx
add    %edi,%ecx
and    $0x3,%edx
je     1ed9 <R_Schrodinger_Fixed_Logderiv+0xd29>
nopl   0x0(%rax)
movq   $0x0,(%rbx,%rax,8)
movq   $0x0,(%r14,%rax,8)
add    $0x1,%rax
add    $0xffffffff,%edx
jne    1ec0 <R_Schrodinger_Fixed_Logderiv+0xd10>
cmp    $0x3,%ecx
jb     1f2e <R_Schrodinger_Fixed_Logderiv+0xd7e>
xchg   %ax,%ax
movq   $0x0,(%rbx,%rax,8)
movq   $0x0,(%r14,%rax,8)
movq   $0x0,0x8(%rbx,%rax,8)
movq   $0x0,0x8(%r14,%rax,8)
movq   $0x0,0x10(%rbx,%rax,8)
movq   $0x0,0x10(%r14,%rax,8)
movq   $0x0,0x18(%rbx,%rax,8)
movq   $0x0,0x18(%r14,%rax,8)
add    $0x4,%rax
cmp    %eax,%edi
jne    1ee0 <R_Schrodinger_Fixed_Logderiv+0xd30>
movapd %xmm4,%xmm0
mulsd  0x198(%rsp),%xmm0
mulsd  %xmm1,%xmm4
mulsd  %xmm1,%xmm11
mulsd  %xmm1,%xmm0
subsd  %xmm0,%xmm11
mulsd  0x10c3(%rip),%xmm4
mulsd  %xmm11,%xmm4
mov    0x70(%rsp),%rax
movsd  0x0(%rbp,%rax,8),%xmm0
mulsd  %xmm10,%xmm0
divsd  %xmm0,%xmm4
movapd %xmm4,%xmm0
movapd 0x10c6(%rip),%xmm2
andpd  %xmm2,%xmm0
movapd %xmm5,%xmm1
andpd  %xmm2,%xmm1
maxsd  0x1092(%rip),%xmm1
mulsd  0x1092(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     2023 <R_Schrodinger_Fixed_Logderiv+0xe73>
ucomisd 0x1088(%rip),%xmm4
ja     1fb0 <R_Schrodinger_Fixed_Logderiv+0xe00>
movsd  %xmm5,0x28(%rsp)
xorpd  %xmm0,%xmm0
cmpltsd %xmm4,%xmm0
movapd %xmm0,%xmm1
andpd  %xmm5,%xmm1
andnpd 0xd0(%rsp),%xmm0
orpd   %xmm1,%xmm0
addsd  %xmm4,%xmm5
ucomisd 0x28(%rsp),%xmm5
movapd %xmm0,0xd0(%rsp)
ja     1fed <R_Schrodinger_Fixed_Logderiv+0xe3d>
ucomisd %xmm5,%xmm0
jbe    1536 <R_Schrodinger_Fixed_Logderiv+0x386>
movapd %xmm0,%xmm5
addsd  0x28(%rsp),%xmm5
mulsd  0x1019(%rip),%xmm5
jmp    1536 <R_Schrodinger_Fixed_Logderiv+0x386>
lea    0x1045(%rip),%rdi
mov    $0x1f4,%esi
xor    %eax,%eax
movapd %xmm5,0x60(%rsp)
call   1040 <printf@plt>
movapd 0x60(%rsp),%xmm5
mov    0xa0(%rsp),%rax
movsd  %xmm5,(%rax)
mov    %r12,%rdi
xor    %eax,%eax
call   10b0 <dealloc_LogGrid@plt>
mov    %r13,%rdi
xor    %eax,%eax
add    $0x1b8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10b0 <dealloc_LogGrid@plt>

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

LLVM IR (-O2):
@.str = [61 x i8] c"Error R_Schrodinger_Fixed_Logderiv: More than %d iterations\0A\00"
define void @R_Schrodinger_Fixed_Logderiv(i32 %0, i32 %1, double* nocapture %2, i32 %3, double %4, double* nocapture %5, double* %6, double* %7) {
%9 = load double, double* %5
%10 = add nsw i32 %1, 1
%11 = sitofp i32 %10 to double
%12 = mul nsw i32 %10, %1
%13 = sitofp i32 %12 to double
%14 = tail call i32 (...) @N_LogGrid()
%15 = tail call i32 (...) @log_amesh_LogGrid()
%16 = sitofp i32 %15 to double
%17 = fmul double %16, %16
%18 = tail call i32 (...) @r_LogGrid()
%19 = sext i32 %18 to i64
%20 = inttoptr i64 %19 to double*
%21 = inttoptr i64 %19 to i8*
%22 = tail call i32 (...) @alloc_LogGrid()
%23 = sext i32 %22 to i64
%24 = inttoptr i64 %23 to double*
%25 = inttoptr i64 %23 to i8*
%26 = tail call i32 (...) @alloc_LogGrid()
%27 = sext i32 %26 to i64
%28 = inttoptr i64 %27 to double*
%29 = fadd double %9, 1.000000e+01
%30 = fadd double %9, -1.000000e+01
%31 = icmp sgt i32 %14, 0
%32 = fmul double %11, %16
%33 = icmp sgt i32 %3, 3
%34 = sext i32 %3 to i64
%35 = getelementptr inbounds double, double* %6, i64 %34
%36 = getelementptr inbounds double, double* %7, i64 %34
%37 = icmp slt i32 %3, 0
%38 = add i32 %3, 1
%39 = icmp slt i32 %38, %14
%40 = getelementptr inbounds double, double* %20, i64 %34
%41 = sext i32 %38 to i64
%42 = zext i32 %14 to i64
%43 = getelementptr inbounds double, double* %20, i64 1
%44 = getelementptr inbounds double, double* %6, i64 1
%45 = getelementptr inbounds double, double* %7, i64 1
%46 = getelementptr inbounds double, double* %20, i64 2
%47 = getelementptr inbounds double, double* %6, i64 2
%48 = getelementptr inbounds double, double* %7, i64 2
%49 = getelementptr inbounds double, double* %20, i64 3
%50 = getelementptr inbounds double, double* %6, i64 3
%51 = getelementptr inbounds double, double* %7, i64 3
%52 = getelementptr inbounds double, double* %24, i64 1
%53 = getelementptr inbounds double, double* %28, i64 1
%54 = getelementptr inbounds double, double* %24, i64 2
%55 = getelementptr inbounds double, double* %28, i64 2
%56 = getelementptr inbounds double, double* %24, i64 3
%57 = getelementptr inbounds double, double* %28, i64 3
%58 = zext i32 %3 to i64
%59 = zext i32 %38 to i64
%60 = getelementptr double, double* %6, i64 %41
%61 = add i32 %14, -2
%62 = sub i32 %61, %3
%63 = zext i32 %62 to i64
%64 = add nsw i64 %41, %63
%65 = add nsw i64 %64, 1
%66 = getelementptr double, double* %6, i64 %65
%67 = getelementptr double, double* %7, i64 %41
%68 = getelementptr double, double* %7, i64 %65
%69 = add i32 %14, -2
%70 = sub i32 %69, %3
%71 = zext i32 %70 to i64
%72 = add nuw nsw i64 %71, 1
%73 = getelementptr double, double* %6, i64 %59
%74 = getelementptr double, double* %7, i64 %59
%75 = getelementptr double, double* %24, i64 %42
%76 = bitcast double* %75 to i8*
%77 = getelementptr double, double* %20, i64 %42
%78 = bitcast double* %77 to i8*
%79 = getelementptr double, double* %2, i64 %42
%80 = bitcast double* %79 to i8*
%81 = and i64 %59, 4294967292
%82 = add nsw i64 %81, -4
%83 = lshr exact i64 %82, 2
%84 = add nuw nsw i64 %83, 1
%85 = and i64 %72, 8589934588
%86 = add nsw i64 %85, -4
%87 = lshr exact i64 %86, 2
%88 = add nuw nsw i64 %87, 1
%89 = icmp ult i32 %14, 4
%90 = icmp ult i8* %25, %78
%91 = icmp ult i8* %21, %76
%92 = and i1 %90, %91
%93 = icmp ult i8* %25, %80
%94 = icmp ugt double* %75, %2
%95 = and i1 %93, %94
%96 = or i1 %92, %95
%97 = and i64 %42, 4294967292
%98 = insertelement <2 x double> poison, double %13, i64 0
%99 = shufflevector <2 x double> %98, <2 x double> poison, <2 x i32> zeroinitializer
%100 = insertelement <2 x double> poison, double %13, i64 0
%101 = shufflevector <2 x double> %100, <2 x double> poison, <2 x i32> zeroinitializer
%102 = insertelement <2 x double> poison, double %17, i64 0
%103 = shufflevector <2 x double> %102, <2 x double> poison, <2 x i32> zeroinitializer
%104 = insertelement <2 x double> poison, double %17, i64 0
%105 = shufflevector <2 x double> %104, <2 x double> poison, <2 x i32> zeroinitializer
%106 = icmp eq i64 %97, %42
%107 = and i64 %42, 1
%108 = icmp eq i64 %107, 0
%109 = sub nsw i64 0, %42
%110 = icmp ult i32 %38, 4
%111 = icmp ugt double* %74, %6
%112 = icmp ugt double* %73, %7
%113 = and i1 %111, %112
%114 = and i64 %59, 4294967292
%115 = and i64 %84, 1
%116 = icmp eq i64 %82, 0
%117 = and i64 %84, 9223372036854775806
%118 = icmp eq i64 %115, 0
%119 = icmp eq i64 %114, %59
%120 = and i64 %59, 1
%121 = icmp eq i64 %120, 0
%122 = sub nsw i64 0, %59
%123 = icmp ult i32 %70, 3
%124 = icmp ult double* %60, %68
%125 = icmp ult double* %67, %66
%126 = and i1 %124, %125
%127 = and i64 %72, 8589934588
%128 = add nsw i64 %127, %41
%129 = and i64 %88, 3
%130 = icmp ult i64 %86, 12
%131 = and i64 %88, 9223372036854775804
%132 = icmp eq i64 %129, 0
%133 = icmp eq i64 %72, %127
br label %134
134: ; preds = %8, %581
%135 = phi i32 [ 0, %8 ], [ %139, %581 ]
%136 = phi double [ %9, %8 ], [ %584, %581 ]
%137 = phi double [ %29, %8 ], [ %583, %581 ]
%138 = phi double [ %30, %8 ], [ %582, %581 ]
%139 = add nuw nsw i32 %135, 1
br i1 %31, label %140, label %196
140: ; preds = %134
%141 = select i1 %89, i1 true, i1 %96
br i1 %141, label %178, label %142
142: ; preds = %140
%143 = insertelement <2 x double> poison, double %136, i64 0
%144 = shufflevector <2 x double> %143, <2 x double> poison, <2 x i32> zeroinitializer
%145 = insertelement <2 x double> poison, double %136, i64 0
%146 = shufflevector <2 x double> %145, <2 x double> poison, <2 x i32> zeroinitializer
br label %147
147: ; preds = %147, %142
%148 = phi i64 [ 0, %142 ], [ %175, %147 ]
%149 = getelementptr inbounds double, double* %20, i64 %148
%150 = bitcast double* %149 to <2 x double>*
%151 = load <2 x double>, <2 x double>* %150
%152 = getelementptr inbounds double, double* %149, i64 2
%153 = bitcast double* %152 to <2 x double>*
%154 = load <2 x double>, <2 x double>* %153
%155 = fmul <2 x double> %151, %151
%156 = fmul <2 x double> %154, %154
%157 = getelementptr inbounds double, double* %2, i64 %148
%158 = bitcast double* %157 to <2 x double>*
%159 = load <2 x double>, <2 x double>* %158
%160 = getelementptr inbounds double, double* %157, i64 2
%161 = bitcast double* %160 to <2 x double>*
%162 = load <2 x double>, <2 x double>* %161
%163 = fsub <2 x double> %159, %144
%164 = fsub <2 x double> %162, %146
%165 = fmul <2 x double> %163, <double 2.000000e+00, double 2.000000e+00>
%166 = fmul <2 x double> %164, <double 2.000000e+00, double 2.000000e+00>
%167 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %165, <2 x double> %155, <2 x double> %99)
%168 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %166, <2 x double> %156, <2 x double> %101)
%169 = fmul <2 x double> %103, %167
%170 = fmul <2 x double> %105, %168
%171 = getelementptr inbounds double, double* %24, i64 %148
%172 = bitcast double* %171 to <2 x double>*
store <2 x double> %169, <2 x double>* %172
%173 = getelementptr inbounds double, double* %171, i64 2
%174 = bitcast double* %173 to <2 x double>*
store <2 x double> %170, <2 x double>* %174
%175 = add nuw i64 %148, 4
%176 = icmp eq i64 %175, %97
br i1 %176, label %177, label %147
177: ; preds = %147
br i1 %106, label %196, label %178
178: ; preds = %140, %177
%179 = phi i64 [ 0, %140 ], [ %97, %177 ]
%180 = xor i64 %179, -1
br i1 %108, label %193, label %181
181: ; preds = %178
%182 = getelementptr inbounds double, double* %20, i64 %179
%183 = load double, double* %182
%184 = fmul double %183, %183
%185 = getelementptr inbounds double, double* %2, i64 %179
%186 = load double, double* %185
%187 = fsub double %186, %136
%188 = fmul double %187, 2.000000e+00
%189 = tail call double @llvm.fmuladd.f64(double %188, double %184, double %13)
%190 = fmul double %17, %189
%191 = getelementptr inbounds double, double* %24, i64 %179
store double %190, double* %191
%192 = or i64 %179, 1
br label %193
193: ; preds = %181, %178
%194 = phi i64 [ %179, %178 ], [ %192, %181 ]
%195 = icmp eq i64 %180, %109
br i1 %195, label %196, label %229
196: ; preds = %193, %229, %177, %134
%197 = load double, double* %20
%198 = tail call double @pow(double %197, double %11)
store double %198, double* %6
%199 = fmul double %32, %198
store double %199, double* %7
%200 = load double, double* %43
%201 = tail call double @pow(double %200, double %11)
store double %201, double* %44
%202 = fmul double %32, %201
store double %202, double* %45
%203 = load double, double* %46
%204 = tail call double @pow(double %203, double %11)
store double %204, double* %47
%205 = fmul double %32, %204
store double %205, double* %48
%206 = load double, double* %49
%207 = tail call double @pow(double %206, double %11)
store double %207, double* %50
%208 = fmul double %32, %207
store double %208, double* %51
%209 = load double, double* %7
%210 = load double, double* %24
%211 = load double, double* %6
%212 = fmul double %210, %211
%213 = tail call double @llvm.fmuladd.f64(double %16, double %209, double %212)
store double %213, double* %28
%214 = load double, double* %45
%215 = load double, double* %52
%216 = load double, double* %44
%217 = fmul double %215, %216
%218 = tail call double @llvm.fmuladd.f64(double %16, double %214, double %217)
store double %218, double* %53
%219 = load double, double* %48
%220 = load double, double* %54
%221 = load double, double* %47
%222 = fmul double %220, %221
%223 = tail call double @llvm.fmuladd.f64(double %16, double %219, double %222)
store double %223, double* %55
%224 = load double, double* %51
%225 = load double, double* %56
%226 = load double, double* %50
%227 = fmul double %225, %226
%228 = tail call double @llvm.fmuladd.f64(double %16, double %224, double %227)
store double %228, double* %57
br i1 %33, label %254, label %322
229: ; preds = %193, %229
%230 = phi i64 [ %252, %229 ], [ %194, %193 ]
%231 = getelementptr inbounds double, double* %20, i64 %230
%232 = load double, double* %231
%233 = fmul double %232, %232
%234 = getelementptr inbounds double, double* %2, i64 %230
%235 = load double, double* %234
%236 = fsub double %235, %136
%237 = fmul double %236, 2.000000e+00
%238 = tail call double @llvm.fmuladd.f64(double %237, double %233, double %13)
%239 = fmul double %17, %238
%240 = getelementptr inbounds double, double* %24, i64 %230
store double %239, double* %240
%241 = add nuw nsw i64 %230, 1
%242 = getelementptr inbounds double, double* %20, i64 %241
%243 = load double, double* %242
%244 = fmul double %243, %243
%245 = getelementptr inbounds double, double* %2, i64 %241
%246 = load double, double* %245
%247 = fsub double %246, %136
%248 = fmul double %247, 2.000000e+00
%249 = tail call double @llvm.fmuladd.f64(double %248, double %244, double %13)
%250 = fmul double %17, %249
%251 = getelementptr inbounds double, double* %24, i64 %241
store double %250, double* %251
%252 = add nuw nsw i64 %230, 2
%253 = icmp eq i64 %252, %42
br i1 %253, label %196, label %229
254: ; preds = %196, %254
%255 = phi i64 [ %260, %254 ], [ 3, %196 ]
%256 = phi i32 [ %320, %254 ], [ 0, %196 ]
%257 = trunc i64 %255 to i32
%258 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Predictor_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %6, double* %7)
%259 = sitofp i32 %258 to double
%260 = add nuw nsw i64 %255, 1
%261 = getelementptr inbounds double, double* %6, i64 %260
store double %259, double* %261
%262 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Predictor_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %7, double* %28)
%263 = sitofp i32 %262 to double
%264 = getelementptr inbounds double, double* %7, i64 %260
store double %263, double* %264
%265 = getelementptr inbounds double, double* %24, i64 %260
%266 = getelementptr inbounds double, double* %28, i64 %260
%267 = load double, double* %265
%268 = load double, double* %261
%269 = fmul double %267, %268
%270 = tail call double @llvm.fmuladd.f64(double %16, double %263, double %269)
store double %270, double* %266
%271 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %7, double* %28)
%272 = sitofp i32 %271 to double
store double %272, double* %264
%273 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %6, double* %7)
%274 = sitofp i32 %273 to double
store double %274, double* %261
%275 = load double, double* %264
%276 = load double, double* %265
%277 = fmul double %276, %274
%278 = tail call double @llvm.fmuladd.f64(double %16, double %275, double %277)
store double %278, double* %266
%279 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %7, double* %28)
%280 = sitofp i32 %279 to double
store double %280, double* %264
%281 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %6, double* %7)
%282 = sitofp i32 %281 to double
store double %282, double* %261
%283 = load double, double* %264
%284 = load double, double* %265
%285 = fmul double %284, %282
%286 = tail call double @llvm.fmuladd.f64(double %16, double %283, double %285)
store double %286, double* %266
%287 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %7, double* %28)
%288 = sitofp i32 %287 to double
store double %288, double* %264
%289 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %6, double* %7)
%290 = sitofp i32 %289 to double
store double %290, double* %261
%291 = load double, double* %264
%292 = load double, double* %265
%293 = fmul double %292, %290
%294 = tail call double @llvm.fmuladd.f64(double %16, double %291, double %293)
store double %294, double* %266
%295 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %7, double* %28)
%296 = sitofp i32 %295 to double
store double %296, double* %264
%297 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %6, double* %7)
%298 = sitofp i32 %297 to double
store double %298, double* %261
%299 = load double, double* %264
%300 = load double, double* %265
%301 = fmul double %300, %298
%302 = tail call double @llvm.fmuladd.f64(double %16, double %299, double %301)
store double %302, double* %266
%303 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %7, double* %28)
%304 = sitofp i32 %303 to double
store double %304, double* %264
%305 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %6, double* %7)
%306 = sitofp i32 %305 to double
store double %306, double* %261
%307 = load double, double* %264
%308 = load double, double* %265
%309 = fmul double %308, %306
%310 = tail call double @llvm.fmuladd.f64(double %16, double %307, double %309)
store double %310, double* %266
%311 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %7, double* %28)
%312 = sitofp i32 %311 to double
store double %312, double* %264
%313 = tail call i32 (i32, double*, double*, ...) bitcast (i32 (...)* @Corrector_Out to i32 (i32, double*, double*, ...)*)(i32 %257, double* %6, double* %7)
%314 = sitofp i32 %313 to double
store double %314, double* %261
%315 = getelementptr inbounds double, double* %6, i64 %255
%316 = load double, double* %315
%317 = fmul double %316, %314
%318 = fcmp ole double %317, 0.000000e+00
%319 = zext i1 %318 to i32
%320 = add nuw nsw i32 %256, %319
%321 = icmp eq i64 %260, %58
br i1 %321, label %322, label %254
322: ; preds = %254, %196
%323 = phi i32 [ 0, %196 ], [ %320, %254 ]
%324 = load double, double* %35
%325 = load double, double* %36
%326 = sub nsw i32 %323, %0
%327 = add nsw i32 %326, %1
%328 = icmp slt i32 %327, -1
br i1 %328, label %329, label %332
329: ; preds = %322
%330 = fadd double %137, %136
%331 = fmul double %330, 5.000000e-01
br label %581
332: ; preds = %322
%333 = icmp sgt i32 %327, -1
br i1 %333, label %334, label %337
334: ; preds = %332
%335 = fadd double %138, %136
%336 = fmul double %335, 5.000000e-01
br label %581
337: ; preds = %332
%338 = fmul double %324, %4
%339 = tail call i32 (i32, double, double*, ...) bitcast (i32 (...)* @Norm_LogGrid to i32 (i32, double, double*, ...)*)(i32 %3, double %11, double* %6)
%340 = sitofp i32 %339 to double
%341 = tail call double @sqrt(double %340)
%342 = fdiv double 1.000000e+00, %341
%343 = fmul double %324, %342
%344 = fmul double %325, %342
%345 = fmul double %338, %342
br i1 %37, label %438, label %346
346: ; preds = %337
%347 = or i1 %110, %113
br i1 %347, label %424, label %348
348: ; preds = %346
%349 = insertelement <2 x double> poison, double %342, i64 0
%350 = shufflevector <2 x double> %349, <2 x double> poison, <2 x i32> zeroinitializer
%351 = insertelement <2 x double> poison, double %342, i64 0
%352 = shufflevector <2 x double> %351, <2 x double> poison, <2 x i32> zeroinitializer
br i1 %116, label %400, label %353
353: ; preds = %348, %353
%354 = phi i64 [ %397, %353 ], [ 0, %348 ]
%355 = phi i64 [ %398, %353 ], [ 0, %348 ]
%356 = getelementptr inbounds double, double* %6, i64 %354
%357 = bitcast double* %356 to <2 x double>*
%358 = load <2 x double>, <2 x double>* %357
%359 = getelementptr inbounds double, double* %356, i64 2
%360 = bitcast double* %359 to <2 x double>*
%361 = load <2 x double>, <2 x double>* %360
%362 = fmul <2 x double> %350, %358
%363 = fmul <2 x double> %352, %361
%364 = bitcast double* %356 to <2 x double>*
store <2 x double> %362, <2 x double>* %364
%365 = bitcast double* %359 to <2 x double>*
store <2 x double> %363, <2 x double>* %365
%366 = getelementptr inbounds double, double* %7, i64 %354
%367 = bitcast double* %366 to <2 x double>*
%368 = load <2 x double>, <2 x double>* %367
%369 = getelementptr inbounds double, double* %366, i64 2
%370 = bitcast double* %369 to <2 x double>*
%371 = load <2 x double>, <2 x double>* %370
%372 = fmul <2 x double> %350, %368
%373 = fmul <2 x double> %352, %371
%374 = bitcast double* %366 to <2 x double>*
store <2 x double> %372, <2 x double>* %374
%375 = bitcast double* %369 to <2 x double>*
store <2 x double> %373, <2 x double>* %375
%376 = or i64 %354, 4
%377 = getelementptr inbounds double, double* %6, i64 %376
%378 = bitcast double* %377 to <2 x double>*
%379 = load <2 x double>, <2 x double>* %378
%380 = getelementptr inbounds double, double* %377, i64 2
%381 = bitcast double* %380 to <2 x double>*
%382 = load <2 x double>, <2 x double>* %381
%383 = fmul <2 x double> %350, %379
%384 = fmul <2 x double> %352, %382
%385 = bitcast double* %377 to <2 x double>*
store <2 x double> %383, <2 x double>* %385
%386 = bitcast double* %380 to <2 x double>*
store <2 x double> %384, <2 x double>* %386
%387 = getelementptr inbounds double, double* %7, i64 %376
%388 = bitcast double* %387 to <2 x double>*
%389 = load <2 x double>, <2 x double>* %388
%390 = getelementptr inbounds double, double* %387, i64 2
%391 = bitcast double* %390 to <2 x double>*
%392 = load <2 x double>, <2 x double>* %391
%393 = fmul <2 x double> %350, %389
%394 = fmul <2 x double> %352, %392
%395 = bitcast double* %387 to <2 x double>*
store <2 x double> %393, <2 x double>* %395
%396 = bitcast double* %390 to <2 x double>*
store <2 x double> %394, <2 x double>* %396
%397 = add nuw i64 %354, 8
%398 = add i64 %355, 2
%399 = icmp eq i64 %398, %117
br i1 %399, label %400, label %353
400: ; preds = %353, %348
%401 = phi i64 [ 0, %348 ], [ %397, %353 ]
br i1 %118, label %423, label %402
402: ; preds = %400
%403 = getelementptr inbounds double, double* %6, i64 %401
%404 = bitcast double* %403 to <2 x double>*
%405 = load <2 x double>, <2 x double>* %404
%406 = getelementptr inbounds double, double* %403, i64 2
%407 = bitcast double* %406 to <2 x double>*
%408 = load <2 x double>, <2 x double>* %407
%409 = fmul <2 x double> %350, %405
%410 = fmul <2 x double> %352, %408
%411 = bitcast double* %403 to <2 x double>*
store <2 x double> %409, <2 x double>* %411
%412 = bitcast double* %406 to <2 x double>*
store <2 x double> %410, <2 x double>* %412
%413 = getelementptr inbounds double, double* %7, i64 %401
%414 = bitcast double* %413 to <2 x double>*
%415 = load <2 x double>, <2 x double>* %414
%416 = getelementptr inbounds double, double* %413, i64 2
%417 = bitcast double* %416 to <2 x double>*
%418 = load <2 x double>, <2 x double>* %417
%419 = fmul <2 x double> %350, %415
%420 = fmul <2 x double> %352, %418
%421 = bitcast double* %413 to <2 x double>*
store <2 x double> %419, <2 x double>* %421
%422 = bitcast double* %416 to <2 x double>*
store <2 x double> %420, <2 x double>* %422
br label %423
423: ; preds = %400, %402
br i1 %119, label %438, label %424
424: ; preds = %346, %423
%425 = phi i64 [ 0, %346 ], [ %114, %423 ]
%426 = xor i64 %425, -1
br i1 %121, label %435, label %427
427: ; preds = %424
%428 = getelementptr inbounds double, double* %6, i64 %425
%429 = load double, double* %428
%430 = fmul double %342, %429
store double %430, double* %428
%431 = getelementptr inbounds double, double* %7, i64 %425
%432 = load double, double* %431
%433 = fmul double %342, %432
store double %433, double* %431
%434 = or i64 %425, 1
br label %435
435: ; preds = %427, %424
%436 = phi i64 [ %425, %424 ], [ %434, %427 ]
%437 = icmp eq i64 %426, %122
br i1 %437, label %438, label %524
438: ; preds = %435, %524, %423, %337
br i1 %39, label %439, label %557
439: ; preds = %438
%440 = select i1 %123, i1 true, i1 %126
br i1 %440, label %505, label %441
441: ; preds = %439
br i1 %130, label %487, label %442
442: ; preds = %441, %442
%443 = phi i64 [ %484, %442 ], [ 0, %441 ]
%444 = phi i64 [ %485, %442 ], [ 0, %441 ]
%445 = add i64 %443, %41
%446 = getelementptr inbounds double, double* %6, i64 %445
%447 = bitcast double* %446 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %447
%448 = getelementptr inbounds double, double* %446, i64 2
%449 = bitcast double* %448 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %449
%450 = getelementptr inbounds double, double* %7, i64 %445
%451 = bitcast double* %450 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %451
%452 = getelementptr inbounds double, double* %450, i64 2
%453 = bitcast double* %452 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %453
%454 = or i64 %443, 4
%455 = add i64 %454, %41
%456 = getelementptr inbounds double, double* %6, i64 %455
%457 = bitcast double* %456 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %457
%458 = getelementptr inbounds double, double* %456, i64 2
%459 = bitcast double* %458 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %459
%460 = getelementptr inbounds double, double* %7, i64 %455
%461 = bitcast double* %460 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %461
%462 = getelementptr inbounds double, double* %460, i64 2
%463 = bitcast double* %462 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %463
%464 = or i64 %443, 8
%465 = add i64 %464, %41
%466 = getelementptr inbounds double, double* %6, i64 %465
%467 = bitcast double* %466 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %467
%468 = getelementptr inbounds double, double* %466, i64 2
%469 = bitcast double* %468 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %469
%470 = getelementptr inbounds double, double* %7, i64 %465
%471 = bitcast double* %470 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %471
%472 = getelementptr inbounds double, double* %470, i64 2
%473 = bitcast double* %472 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %473
%474 = or i64 %443, 12
%475 = add i64 %474, %41
%476 = getelementptr inbounds double, double* %6, i64 %475
%477 = bitcast double* %476 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %477
%478 = getelementptr inbounds double, double* %476, i64 2
%479 = bitcast double* %478 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %479
%480 = getelementptr inbounds double, double* %7, i64 %475
%481 = bitcast double* %480 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %481
%482 = getelementptr inbounds double, double* %480, i64 2
%483 = bitcast double* %482 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %483
%484 = add nuw i64 %443, 16
%485 = add nuw i64 %444, 4
%486 = icmp eq i64 %485, %131
br i1 %486, label %487, label %442
487: ; preds = %442, %441
%488 = phi i64 [ 0, %441 ], [ %484, %442 ]
br i1 %132, label %504, label %489
489: ; preds = %487, %489
%490 = phi i64 [ %501, %489 ], [ %488, %487 ]
%491 = phi i64 [ %502, %489 ], [ 0, %487 ]
%492 = add i64 %490, %41
%493 = getelementptr inbounds double, double* %6, i64 %492
%494 = bitcast double* %493 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %494
%495 = getelementptr inbounds double, double* %493, i64 2
%496 = bitcast double* %495 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %496
%497 = getelementptr inbounds double, double* %7, i64 %492
%498 = bitcast double* %497 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %498
%499 = getelementptr inbounds double, double* %497, i64 2
%500 = bitcast double* %499 to <2 x double>*
store <2 x double> zeroinitializer, <2 x double>* %500
%501 = add nuw i64 %490, 4
%502 = add i64 %491, 1
%503 = icmp eq i64 %502, %129
br i1 %503, label %504, label %489
504: ; preds = %489, %487
br i1 %133, label %557, label %505
505: ; preds = %439, %504
%506 = phi i64 [ %41, %439 ], [ %128, %504 ]
%507 = trunc i64 %506 to i32
%508 = sub i32 %14, %507
%509 = xor i32 %507, -1
%510 = add i32 %14, %509
%511 = and i32 %508, 3
%512 = icmp eq i32 %511, 0
br i1 %512, label %521, label %513
513: ; preds = %505, %513
%514 = phi i64 [ %518, %513 ], [ %506, %505 ]
%515 = phi i32 [ %519, %513 ], [ 0, %505 ]
%516 = getelementptr inbounds double, double* %6, i64 %514
store double 0.000000e+00, double* %516
%517 = getelementptr inbounds double, double* %7, i64 %514
store double 0.000000e+00, double* %517
%518 = add nsw i64 %514, 1
%519 = add i32 %515, 1
%520 = icmp eq i32 %519, %511
br i1 %520, label %521, label %513
521: ; preds = %513, %505
%522 = phi i64 [ %506, %505 ], [ %518, %513 ]
%523 = icmp ult i32 %510, 3
br i1 %523, label %557, label %541
524: ; preds = %435, %524
%525 = phi i64 [ %539, %524 ], [ %436, %435 ]
%526 = getelementptr inbounds double, double* %6, i64 %525
%527 = load double, double* %526
%528 = fmul double %342, %527
store double %528, double* %526
%529 = getelementptr inbounds double, double* %7, i64 %525
%530 = load double, double* %529
%531 = fmul double %342, %530
store double %531, double* %529
%532 = add nuw nsw i64 %525, 1
%533 = getelementptr inbounds double, double* %6, i64 %532
%534 = load double, double* %533
%535 = fmul double %342, %534
store double %535, double* %533
%536 = getelementptr inbounds double, double* %7, i64 %532
%537 = load double, double* %536
%538 = fmul double %342, %537
store double %538, double* %536
%539 = add nuw nsw i64 %525, 2
%540 = icmp eq i64 %539, %59
br i1 %540, label %438, label %524
541: ; preds = %521, %541
%542 = phi i64 [ %554, %541 ], [ %522, %521 ]
%543 = getelementptr inbounds double, double* %6, i64 %542
store double 0.000000e+00, double* %543
%544 = getelementptr inbounds double, double* %7, i64 %542
store double 0.000000e+00, double* %544
%545 = add nsw i64 %542, 1
%546 = getelementptr inbounds double, double* %6, i64 %545
store double 0.000000e+00, double* %546
%547 = getelementptr inbounds double, double* %7, i64 %545
store double 0.000000e+00, double* %547
%548 = add nsw i64 %542, 2
%549 = getelementptr inbounds double, double* %6, i64 %548
store double 0.000000e+00, double* %549
%550 = getelementptr inbounds double, double* %7, i64 %548
store double 0.000000e+00, double* %550
%551 = add nsw i64 %542, 3
%552 = getelementptr inbounds double, double* %6, i64 %551
store double 0.000000e+00, double* %552
%553 = getelementptr inbounds double, double* %7, i64 %551
store double 0.000000e+00, double* %553
%554 = add nsw i64 %542, 4
%555 = trunc i64 %554 to i32
%556 = icmp eq i32 %14, %555
br i1 %556, label %557, label %541
557: ; preds = %521, %541, %504, %438
%558 = fmul double %343, 5.000000e-01
%559 = fsub double %344, %345
%560 = fmul double %558, %559
%561 = load double, double* %40
%562 = fmul double %561, %16
%563 = fdiv double %560, %562
%564 = tail call double @llvm.fabs.f64(double %563)
%565 = tail call double @llvm.fabs.f64(double %136)
%566 = fcmp ogt double %565, 2.000000e-01
%567 = select i1 %566, double %565, double 2.000000e-01
%568 = fmul double %567, 1.000000e-10
%569 = fcmp olt double %564, %568
br i1 %569, label %588, label %570
570: ; preds = %557
%571 = fcmp ogt double %563, 0.000000e+00
%572 = select i1 %571, double %136, double %138
%573 = select i1 %571, double %137, double %136
%574 = fadd double %136, %563
%575 = fcmp ogt double %574, %573
%576 = fcmp olt double %574, %572
%577 = select i1 %575, i1 true, i1 %576
br i1 %577, label %578, label %581
578: ; preds = %570
%579 = fadd double %572, %573
%580 = fmul double %579, 5.000000e-01
br label %581
581: ; preds = %570, %334, %578, %329
%582 = phi double [ %136, %329 ], [ %138, %334 ], [ %572, %578 ], [ %572, %570 ]
%583 = phi double [ %137, %329 ], [ %136, %334 ], [ %573, %578 ], [ %573, %570 ]
%584 = phi double [ %331, %329 ], [ %336, %334 ], [ %580, %578 ], [ %574, %570 ]
%585 = icmp eq i32 %139, 500
br i1 %585, label %586, label %134
586: ; preds = %581
%587 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str, i64 0, i64 0), i32 500)
br label %588
588: ; preds = %557, %586
%589 = phi double [ %584, %586 ], [ %136, %557 ]
store double %589, double* %5
%590 = tail call i32 (double*, ...) bitcast (i32 (...)* @dealloc_LogGrid to i32 (double*, ...)*)(double* %28)
%591 = tail call i32 (double*, ...) bitcast (i32 (...)* @dealloc_LogGrid to i32 (double*, ...)*)(double* %24)
ret void
}