// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../tools/evolver_ndf15.c
// Function: adjust_stepsize
int adjust_stepsize(double **dif, double abshdivabshlast, int neq,int k){
  double mydifU[5][5]={{-1,-2,-3,-4,-5},{0,1,3,6,10},{0,0,-1,-4,-10},{0,0,0,1,5},{0,0,0,0,-1}};
  double tempvec[5];
  double mydifRU[5][5];
  int ii,jj,kk;

  for(ii=1;ii<=5;ii++) mydifRU[0][ii-1] = -ii*abshdivabshlast;
  for(jj=2;jj<=5;jj++){
    for(ii=1;ii<=5;ii++){
      mydifRU[jj-1][ii-1] = mydifRU[jj-2][ii-1]*(1.0-(1.0+ii*abshdivabshlast)/jj);
    }
  }
  for(ii=0;ii<5;ii++){
    for(kk=0;kk<5;kk++){
      /* Save the i'th row of mydifRU */
      tempvec[kk] = mydifRU[ii][kk];
    }
    for(jj=0;jj<5;jj++){
      /* Now do the matrix multiplication: */
      mydifRU[ii][jj] = 0.0;
      for(kk=0;kk<5;kk++)    mydifRU[ii][jj] += tempvec[kk]*mydifU[kk][jj];
    }
  }

  for(ii=0;ii<neq;ii++){
    for(kk=0;kk<k;kk++){
      /* Save the k first values of the i'th row of dif */
      tempvec[kk] = dif[ii+1][kk+1];
    }
    for(jj=0;jj<k;jj++){
      /* Now do the matrix multiplication: */
      dif[ii+1][jj+1] = 0.0;
      for(kk=0;kk<k;kk++) dif[ii+1][jj+1] += tempvec[kk]*mydifRU[kk][jj];
    }
  }
  return _SUCCESS_;
}

// Assembly:
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rdi, 0x1f0(%rsp)
movsd %xmm0, 0x1e8(%rsp)
movl %esi, 0x1e4(%rsp)
movl %edx, 0x1e0(%rsp)
leaq 0x110(%rsp), %rdi
leaq 0x1bc8bb(%rip), %rsi    # 0x1d35c0
movl $0xc8, %edx
callq 0x8300
movl $0x1, 0xc(%rsp)
cmpl $0x5, 0xc(%rsp)
jg 0x16d4d
xorl %eax, %eax
subl 0xc(%rsp), %eax
cvtsi2sd %eax, %xmm0
mulsd 0x1e8(%rsp), %xmm0
movl 0xc(%rsp), %eax
subl $0x1, %eax
cltq
movsd %xmm0, 0x10(%rsp,%rax,8)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x16d17
movl $0x2, 0x8(%rsp)
cmpl $0x5, 0x8(%rsp)
jg 0x16e18
movl $0x1, 0xc(%rsp)
cmpl $0x5, 0xc(%rsp)
jg 0x16e06
movl 0x8(%rsp), %eax
subl $0x2, %eax
movslq %eax, %rcx
leaq 0x10(%rsp), %rax
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
cvtsi2sdl 0xc(%rsp), %xmm2
movsd 0x1e8(%rsp), %xmm1
mulsd %xmm1, %xmm2
movsd 0x1bb495(%rip), %xmm1   # 0x1d2248
addsd %xmm1, %xmm2
cvtsi2sdl 0x8(%rsp), %xmm1
divsd %xmm1, %xmm2
movsd 0x1bb47f(%rip), %xmm1   # 0x1d2248
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movl 0x8(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rcx
leaq 0x10(%rsp), %rax
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x16d68
jmp 0x16e08
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0x16d55
movl $0x0, 0xc(%rsp)
cmpl $0x5, 0xc(%rsp)
jge 0x16f35
movl $0x0, 0x4(%rsp)
cmpl $0x5, 0x4(%rsp)
jge 0x16e70
movslq 0xc(%rsp), %rcx
leaq 0x10(%rsp), %rax
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movslq 0x4(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movslq 0x4(%rsp), %rax
movsd %xmm0, 0xe0(%rsp,%rax,8)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0x16e33
movl $0x0, 0x8(%rsp)
cmpl $0x5, 0x8(%rsp)
jge 0x16f23
movslq 0xc(%rsp), %rcx
leaq 0x10(%rsp), %rax
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movslq 0x8(%rsp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, 0x4(%rsp)
cmpl $0x5, 0x4(%rsp)
jge 0x16f11
movslq 0x4(%rsp), %rax
movsd 0xe0(%rsp,%rax,8), %xmm0
movslq 0x4(%rsp), %rcx
leaq 0x110(%rsp), %rax
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movslq 0x8(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm2
movslq 0xc(%rsp), %rcx
leaq 0x10(%rsp), %rax
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movslq 0x8(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0x16ea9
jmp 0x16f13
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0x16e78
jmp 0x16f25
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x16e20
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
cmpl 0x1e4(%rsp), %eax
jge 0x17085
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
cmpl 0x1e0(%rsp), %eax
jge 0x16fa3
movq 0x1f0(%rsp), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl 0x4(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movslq 0x4(%rsp), %rax
movsd %xmm0, 0xe0(%rsp,%rax,8)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0x16f56
movl $0x0, 0x8(%rsp)
movl 0x8(%rsp), %eax
cmpl 0x1e0(%rsp), %eax
jge 0x17073
movq 0x1f0(%rsp), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl 0x8(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, 0x4(%rsp)
movl 0x4(%rsp), %eax
cmpl 0x1e0(%rsp), %eax
jge 0x17061
movslq 0x4(%rsp), %rax
movsd 0xe0(%rsp,%rax,8), %xmm0
movslq 0x4(%rsp), %rcx
leaq 0x10(%rsp), %rax
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movslq 0x8(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm2
movq 0x1f0(%rsp), %rax
movl 0xc(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl 0x8(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0x16fec
jmp 0x17063
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0x16fab
jmp 0x17075
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x16f3d
xorl %eax, %eax
addq $0x1f8, %rsp            # imm = 0x1F8
retq
nop