void write_continuation_parameters(double *v) {
  printf(
      "****************** CURRENT CONTINUATION PARAMETERS *****************\n");
  printf("GLOBAL MONITOR : \n");
  printf("  1. the condition of the homotopy           : %d\n", (int)v[0]);
  printf("  2. number of paths tracked simultaneously  : %d\n", (int)v[1]);
  printf("  3. maximum number of steps along a path    : %d\n", (int)v[2]);
  printf("  4. distance from target to start end game  : %.3e\n", v[3]);
  printf("  5. order of extrapolator in end game       : %d\n", (int)v[4]);
  printf("  6. maximum number of re-runs               : %d\n", (int)v[5]);
  printf("STEP CONTROL (PREDICTOR) : ");
  printf("                   along path : end game\n");
  printf("  7: 8. type %s:%s : ", predictor_banner((int)v[6]),
         predictor_banner((int)v[7]));
  printf("%d", (int)v[6]);
  printf("         : ");
  printf("%d\n", (int)v[7]);
  printf("  9:10. minimum step size                    : ");
  printf("%.3e", v[8]);
  printf(" : ");
  printf("%.3e\n", v[9]);
  printf(" 11:12. maximum step size                    : ");
  printf("%.3e", v[10]);
  printf(" : ");
  printf("%.3e\n", v[11]);
  printf(" 13:14. reduction factor for step size       : ");
  printf("%.3e", v[12]);
  printf(" : ");
  printf("%.3e\n", v[13]);
  printf(" 15:16. expansion factor for step size       : ");
  printf("%.3e", v[15]);
  printf(" : ");
  printf("%.3e\n", v[16]);
  printf(" 17:18. expansion threshold                  : ");
  printf("%d", (int)v[16]);
  printf("         : ");
  printf("%d\n", (int)v[17]);
  printf("PATH CLOSENESS (CORRECTOR) : ");
  printf("                 along path : end game\n");
  printf(" 19:20. maximum number of iterations         : ");
  printf("%d", (int)v[18]);
  printf("         : ");
  printf("%d\n", (int)v[19]);
  printf(" 21:22. relative precision for residuals     : ");
  printf("%.3e", v[20]);
  printf(" : ");
  printf("%.3e\n", v[21]);
  printf(" 23:24. absolute precision for residuals     : ");
  printf("%.3e", v[22]);
  printf(" : ");
  printf("%.3e\n", v[23]);
  printf(" 25:26. relative precision for corrections   : ");
  printf("%.3e", v[24]);
  printf(" : ");
  printf("%.3e\n", v[25]);
  printf(" 27:28. absolute precision for corrections   : ");
  printf("%.3e", v[26]);
  printf(" : ");
  printf("%.3e\n", v[27]);
  printf("SOLUTION TOLERANCES : ");
  printf("                        along path : end game\n");
  printf(" 29:30. inverse condition of Jacobian        : ");
  printf("%.3e", v[28]);
  printf(" : ");
  printf("%.3e\n", v[29]);
  printf(" 31:32. clustering of solutions              : ");
  printf("%.3e", v[30]);
  printf(" : ");
  printf("%.3e\n", v[31]);
  printf(" 33:34. solution at infinity                 : ");
  printf("%.3e", v[32]);
  printf(" : ");
  printf("%.3e\n", v[33]);
  printf(
      "********************************************************************\n");
}


x86 assembly (clang, -O0):
<write_continuation_parameters>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
lea    0xecd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf05(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si (%rax),%esi
lea    0xf02(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x8(%rax),%esi
lea    0xf1e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x10(%rax),%esi
lea    0xf3a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
lea    0xf56(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x20(%rax),%esi
lea    0xf74(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x28(%rax),%esi
lea    0xf90(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xfb5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x11fb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x30(%rax),%edi
mov    $0x0,%al
call   1030 <predictor_banner@plt>
mov    %eax,-0xc(%rbp)
mov    -0x8(%rbp),%rax
cvttsd2si 0x38(%rax),%edi
mov    $0x0,%al
call   1030 <predictor_banner@plt>
mov    -0xc(%rbp),%esi
mov    %eax,%edx
lea    0xf8d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x30(%rax),%esi
lea    0xf8c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xfa5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x38(%rax),%esi
lea    0xf31(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf5c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x40(%rax),%xmm0
lea    0xf75(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xf63(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x48(%rax),%xmm0
lea    0xe7f(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xf47(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x50(%rax),%xmm0
lea    0xf2b(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xf19(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x58(%rax),%xmm0
lea    0xe35(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xf2d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x60(%rax),%xmm0
lea    0xee1(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xecf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x68(%rax),%xmm0
lea    0xdeb(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xf13(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x78(%rax),%xmm0
lea    0xe97(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe85(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x80(%rax),%xmm0
lea    0xd9e(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xef6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x80(%rax),%esi
lea    0xe14(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe2d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x88(%rax),%esi
lea    0xdb6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xed6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xff4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xed8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x90(%rax),%esi
lea    0xda8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xdc1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
cvttsd2si 0x98(%rax),%esi
lea    0xd4a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xeb8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
lea    0xd8b(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xd79(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xa8(%rax),%xmm0
lea    0xc92(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe98(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xb0(%rax),%xmm0
lea    0xd3b(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xd29(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xb8(%rax),%xmm0
lea    0xc42(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe78(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xc0(%rax),%xmm0
lea    0xceb(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xcd9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xc8(%rax),%xmm0
lea    0xbf2(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe58(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xd0(%rax),%xmm0
lea    0xc9b(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xc89(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xd8(%rax),%xmm0
lea    0xba2(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe38(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe41(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe62(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xe0(%rax),%xmm0
lea    0xc2f(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xc1d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xe8(%rax),%xmm0
lea    0xb36(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe42(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xf0(%rax),%xmm0
lea    0xbdf(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xbcd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0xf8(%rax),%xmm0
lea    0xae6(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe22(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x100(%rax),%xmm0
lea    0xb8f(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xb7d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rax
movsd  0x108(%rax),%xmm0
lea    0xa96(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xe02(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<write_continuation_parameters>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %rdi,%rbx
lea    0x12ce(%rip),%rdi
call   1030 <puts@plt>
lea    0x1307(%rip),%rdi
call   1030 <puts@plt>
cvttsd2si (%rbx),%esi
lea    0xe9f(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x8(%rbx),%esi
lea    0xebf(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x10(%rbx),%esi
lea    0xedf(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x18(%rbx),%xmm0
lea    0xeff(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
cvttsd2si 0x20(%rbx),%esi
lea    0xf21(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x28(%rbx),%esi
lea    0xf41(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xf66(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x1293(%rip),%rdi
call   1030 <puts@plt>
cvttsd2si 0x30(%rbx),%edi
xor    %eax,%eax
call   1040 <predictor_banner@plt>
mov    %eax,%ebp
cvttsd2si 0x38(%rbx),%edi
xor    %eax,%eax
call   1040 <predictor_banner@plt>
lea    0xf4e(%rip),%rdi
mov    %ebp,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x30(%rbx),%esi
lea    0xf4d(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xf66(%rip),%rbp
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x38(%rbx),%esi
lea    0xef3(%rip),%r13
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xf1b(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x40(%rbx),%xmm0
lea    0xf38(%rip),%r14
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xf23(%rip),%r15
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x48(%rbx),%xmm0
lea    0xe40(%rip),%r12
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xf05(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x50(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x58(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xeff(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x60(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x68(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xef9(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x78(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x80(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xef0(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x80(%rbx),%esi
lea    0xe12(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x88(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xee0(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x10e5(%rip),%rdi
call   1030 <puts@plt>
lea    0xee4(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x90(%rbx),%esi
lea    0xdb8(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
cvttsd2si 0x98(%rbx),%esi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xed4(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xa0(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xa8(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xec8(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xb0(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xb8(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xebc(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xc0(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xc8(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xeb0(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xd0(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xd8(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xea4(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xf94(%rip),%rdi
call   1030 <puts@plt>
lea    0xea1(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xe0(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xe8(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xe95(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xf0(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xf8(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xe89(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x100(%rbx),%xmm0
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0x108(%rbx),%xmm0
mov    %r12,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xf02(%rip),%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [70 x i8] c"****************** CURRENT CONTINUATION PARAMETERS *****************\0A\00"
@.str.1 = [19 x i8] c"GLOBAL MONITOR : \0A\00"
@.str.2 = [51 x i8] c" 1. the condition of the homotopy : %d\0A\00"
@.str.3 = [51 x i8] c" 2. number of paths tracked simultaneously : %d\0A\00"
@.str.4 = [51 x i8] c" 3. maximum number of steps along a path : %d\0A\00"
@.str.5 = [53 x i8] c" 4. distance from target to start end game : %.3e\0A\00"
@.str.6 = [51 x i8] c" 5. order of extrapolator in end game : %d\0A\00"
@.str.7 = [51 x i8] c" 6. maximum number of re-runs : %d\0A\00"
@.str.8 = [28 x i8] c"STEP CONTROL (PREDICTOR) : \00"
@.str.9 = [42 x i8] c" along path : end game\0A\00"
@.str.10 = [22 x i8] c" 7: 8. type %s:%s : \00"
@.str.11 = [3 x i8] c"%d\00"
@.str.12 = [12 x i8] c" : \00"
@.str.13 = [4 x i8] c"%d\0A\00"
@.str.14 = [48 x i8] c" 9:10. minimum step size : \00"
@.str.15 = [5 x i8] c"%.3e\00"
@.str.16 = [4 x i8] c" : \00"
@.str.17 = [6 x i8] c"%.3e\0A\00"
@.str.18 = [48 x i8] c" 11:12. maximum step size : \00"
@.str.19 = [48 x i8] c" 13:14. reduction factor for step size : \00"
@.str.20 = [48 x i8] c" 15:16. expansion factor for step size : \00"
@.str.21 = [48 x i8] c" 17:18. expansion threshold : \00"
@.str.22 = [30 x i8] c"PATH CLOSENESS (CORRECTOR) : \00"
@.str.23 = [40 x i8] c" along path : end game\0A\00"
@.str.24 = [48 x i8] c" 19:20. maximum number of iterations : \00"
@.str.25 = [48 x i8] c" 21:22. relative precision for residuals : \00"
@.str.26 = [48 x i8] c" 23:24. absolute precision for residuals : \00"
@.str.27 = [48 x i8] c" 25:26. relative precision for corrections : \00"
@.str.28 = [48 x i8] c" 27:28. absolute precision for corrections : \00"
@.str.29 = [23 x i8] c"SOLUTION TOLERANCES : \00"
@.str.30 = [47 x i8] c" along path : end game\0A\00"
@.str.31 = [48 x i8] c" 29:30. inverse condition of Jacobian : \00"
@.str.32 = [48 x i8] c" 31:32. clustering of solutions : \00"
@.str.33 = [48 x i8] c" 33:34. solution at infinity : \00"
@.str.34 = [70 x i8] c"********************************************************************\0A\00"
define void @write_continuation_parameters(double* %0) {
%2 = alloca double*
store double* %0, double** %2
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1, i64 0, i64 0))
%5 = load double*, double** %2
%6 = getelementptr inbounds double, double* %5, i64 0
%7 = load double, double* %6
%8 = fptosi double %7 to i32
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.2, i64 0, i64 0), i32 %8)
%10 = load double*, double** %2
%11 = getelementptr inbounds double, double* %10, i64 1
%12 = load double, double* %11
%13 = fptosi double %12 to i32
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.3, i64 0, i64 0), i32 %13)
%15 = load double*, double** %2
%16 = getelementptr inbounds double, double* %15, i64 2
%17 = load double, double* %16
%18 = fptosi double %17 to i32
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.4, i64 0, i64 0), i32 %18)
%20 = load double*, double** %2
%21 = getelementptr inbounds double, double* %20, i64 3
%22 = load double, double* %21
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.5, i64 0, i64 0), double %22)
%24 = load double*, double** %2
%25 = getelementptr inbounds double, double* %24, i64 4
%26 = load double, double* %25
%27 = fptosi double %26 to i32
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.6, i64 0, i64 0), i32 %27)
%29 = load double*, double** %2
%30 = getelementptr inbounds double, double* %29, i64 5
%31 = load double, double* %30
%32 = fptosi double %31 to i32
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.7, i64 0, i64 0), i32 %32)
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.9, i64 0, i64 0))
%36 = load double*, double** %2
%37 = getelementptr inbounds double, double* %36, i64 6
%38 = load double, double* %37
%39 = fptosi double %38 to i32
%40 = call i32 (i32, ...) bitcast (i32 (...)* @predictor_banner to i32 (i32, ...)*)(i32 %39)
%41 = load double*, double** %2
%42 = getelementptr inbounds double, double* %41, i64 7
%43 = load double, double* %42
%44 = fptosi double %43 to i32
%45 = call i32 (i32, ...) bitcast (i32 (...)* @predictor_banner to i32 (i32, ...)*)(i32 %44)
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.10, i64 0, i64 0), i32 %40, i32 %45)
%47 = load double*, double** %2
%48 = getelementptr inbounds double, double* %47, i64 6
%49 = load double, double* %48
%50 = fptosi double %49 to i32
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32 %50)
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%53 = load double*, double** %2
%54 = getelementptr inbounds double, double* %53, i64 7
%55 = load double, double* %54
%56 = fptosi double %55 to i32
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), i32 %56)
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.14, i64 0, i64 0))
%59 = load double*, double** %2
%60 = getelementptr inbounds double, double* %59, i64 8
%61 = load double, double* %60
%62 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %61)
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%64 = load double*, double** %2
%65 = getelementptr inbounds double, double* %64, i64 9
%66 = load double, double* %65
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %66)
%68 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.18, i64 0, i64 0))
%69 = load double*, double** %2
%70 = getelementptr inbounds double, double* %69, i64 10
%71 = load double, double* %70
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %71)
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%74 = load double*, double** %2
%75 = getelementptr inbounds double, double* %74, i64 11
%76 = load double, double* %75
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %76)
%78 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.19, i64 0, i64 0))
%79 = load double*, double** %2
%80 = getelementptr inbounds double, double* %79, i64 12
%81 = load double, double* %80
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %81)
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%84 = load double*, double** %2
%85 = getelementptr inbounds double, double* %84, i64 13
%86 = load double, double* %85
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %86)
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.20, i64 0, i64 0))
%89 = load double*, double** %2
%90 = getelementptr inbounds double, double* %89, i64 15
%91 = load double, double* %90
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %91)
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%94 = load double*, double** %2
%95 = getelementptr inbounds double, double* %94, i64 16
%96 = load double, double* %95
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %96)
%98 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.21, i64 0, i64 0))
%99 = load double*, double** %2
%100 = getelementptr inbounds double, double* %99, i64 16
%101 = load double, double* %100
%102 = fptosi double %101 to i32
%103 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32 %102)
%104 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%105 = load double*, double** %2
%106 = getelementptr inbounds double, double* %105, i64 17
%107 = load double, double* %106
%108 = fptosi double %107 to i32
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), i32 %108)
%110 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.22, i64 0, i64 0))
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.23, i64 0, i64 0))
%112 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0))
%113 = load double*, double** %2
%114 = getelementptr inbounds double, double* %113, i64 18
%115 = load double, double* %114
%116 = fptosi double %115 to i32
%117 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32 %116)
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%119 = load double*, double** %2
%120 = getelementptr inbounds double, double* %119, i64 19
%121 = load double, double* %120
%122 = fptosi double %121 to i32
%123 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), i32 %122)
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.25, i64 0, i64 0))
%125 = load double*, double** %2
%126 = getelementptr inbounds double, double* %125, i64 20
%127 = load double, double* %126
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %127)
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%130 = load double*, double** %2
%131 = getelementptr inbounds double, double* %130, i64 21
%132 = load double, double* %131
%133 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %132)
%134 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.26, i64 0, i64 0))
%135 = load double*, double** %2
%136 = getelementptr inbounds double, double* %135, i64 22
%137 = load double, double* %136
%138 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %137)
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%140 = load double*, double** %2
%141 = getelementptr inbounds double, double* %140, i64 23
%142 = load double, double* %141
%143 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %142)
%144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.27, i64 0, i64 0))
%145 = load double*, double** %2
%146 = getelementptr inbounds double, double* %145, i64 24
%147 = load double, double* %146
%148 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %147)
%149 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%150 = load double*, double** %2
%151 = getelementptr inbounds double, double* %150, i64 25
%152 = load double, double* %151
%153 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %152)
%154 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.28, i64 0, i64 0))
%155 = load double*, double** %2
%156 = getelementptr inbounds double, double* %155, i64 26
%157 = load double, double* %156
%158 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %157)
%159 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%160 = load double*, double** %2
%161 = getelementptr inbounds double, double* %160, i64 27
%162 = load double, double* %161
%163 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %162)
%164 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.29, i64 0, i64 0))
%165 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.30, i64 0, i64 0))
%166 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.31, i64 0, i64 0))
%167 = load double*, double** %2
%168 = getelementptr inbounds double, double* %167, i64 28
%169 = load double, double* %168
%170 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %169)
%171 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%172 = load double*, double** %2
%173 = getelementptr inbounds double, double* %172, i64 29
%174 = load double, double* %173
%175 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %174)
%176 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.32, i64 0, i64 0))
%177 = load double*, double** %2
%178 = getelementptr inbounds double, double* %177, i64 30
%179 = load double, double* %178
%180 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %179)
%181 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%182 = load double*, double** %2
%183 = getelementptr inbounds double, double* %182, i64 31
%184 = load double, double* %183
%185 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %184)
%186 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.33, i64 0, i64 0))
%187 = load double*, double** %2
%188 = getelementptr inbounds double, double* %187, i64 32
%189 = load double, double* %188
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %189)
%191 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%192 = load double*, double** %2
%193 = getelementptr inbounds double, double* %192, i64 33
%194 = load double, double* %193
%195 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %194)
%196 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.34, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str.2 = [51 x i8] c" 1. the condition of the homotopy : %d\0A\00"
@.str.3 = [51 x i8] c" 2. number of paths tracked simultaneously : %d\0A\00"
@.str.4 = [51 x i8] c" 3. maximum number of steps along a path : %d\0A\00"
@.str.5 = [53 x i8] c" 4. distance from target to start end game : %.3e\0A\00"
@.str.6 = [51 x i8] c" 5. order of extrapolator in end game : %d\0A\00"
@.str.7 = [51 x i8] c" 6. maximum number of re-runs : %d\0A\00"
@.str.8 = [28 x i8] c"STEP CONTROL (PREDICTOR) : \00"
@.str.10 = [22 x i8] c" 7: 8. type %s:%s : \00"
@.str.11 = [3 x i8] c"%d\00"
@.str.12 = [12 x i8] c" : \00"
@.str.13 = [4 x i8] c"%d\0A\00"
@.str.14 = [48 x i8] c" 9:10. minimum step size : \00"
@.str.15 = [5 x i8] c"%.3e\00"
@.str.16 = [4 x i8] c" : \00"
@.str.17 = [6 x i8] c"%.3e\0A\00"
@.str.18 = [48 x i8] c" 11:12. maximum step size : \00"
@.str.19 = [48 x i8] c" 13:14. reduction factor for step size : \00"
@.str.20 = [48 x i8] c" 15:16. expansion factor for step size : \00"
@.str.21 = [48 x i8] c" 17:18. expansion threshold : \00"
@.str.22 = [30 x i8] c"PATH CLOSENESS (CORRECTOR) : \00"
@.str.24 = [48 x i8] c" 19:20. maximum number of iterations : \00"
@.str.25 = [48 x i8] c" 21:22. relative precision for residuals : \00"
@.str.26 = [48 x i8] c" 23:24. absolute precision for residuals : \00"
@.str.27 = [48 x i8] c" 25:26. relative precision for corrections : \00"
@.str.28 = [48 x i8] c" 27:28. absolute precision for corrections : \00"
@.str.29 = [23 x i8] c"SOLUTION TOLERANCES : \00"
@.str.31 = [48 x i8] c" 29:30. inverse condition of Jacobian : \00"
@.str.32 = [48 x i8] c" 31:32. clustering of solutions : \00"
@.str.33 = [48 x i8] c" 33:34. solution at infinity : \00"
@str = [69 x i8] c"****************** CURRENT CONTINUATION PARAMETERS *****************\00"
@str.35 = [18 x i8] c"GLOBAL MONITOR : \00"
@str.36 = [41 x i8] c" along path : end game\00"
@str.37 = [39 x i8] c" along path : end game\00"
@str.38 = [46 x i8] c" along path : end game\00"
@str.39 = [69 x i8] c"********************************************************************\00"
define void @write_continuation_parameters(double* %0) {
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @str.35, i64 0, i64 0))
%4 = load double, double* %0
%5 = fptosi double %4 to i32
%6 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.2, i64 0, i64 0), i32 %5)
%7 = getelementptr inbounds double, double* %0, i64 1
%8 = load double, double* %7
%9 = fptosi double %8 to i32
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.3, i64 0, i64 0), i32 %9)
%11 = getelementptr inbounds double, double* %0, i64 2
%12 = load double, double* %11
%13 = fptosi double %12 to i32
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.4, i64 0, i64 0), i32 %13)
%15 = getelementptr inbounds double, double* %0, i64 3
%16 = load double, double* %15
%17 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.5, i64 0, i64 0), double %16)
%18 = getelementptr inbounds double, double* %0, i64 4
%19 = load double, double* %18
%20 = fptosi double %19 to i32
%21 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.6, i64 0, i64 0), i32 %20)
%22 = getelementptr inbounds double, double* %0, i64 5
%23 = load double, double* %22
%24 = fptosi double %23 to i32
%25 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.7, i64 0, i64 0), i32 %24)
%26 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.36, i64 0, i64 0))
%28 = getelementptr inbounds double, double* %0, i64 6
%29 = load double, double* %28
%30 = fptosi double %29 to i32
%31 = tail call i32 (i32, ...) bitcast (i32 (...)* @predictor_banner to i32 (i32, ...)*)(i32 %30)
%32 = getelementptr inbounds double, double* %0, i64 7
%33 = load double, double* %32
%34 = fptosi double %33 to i32
%35 = tail call i32 (i32, ...) bitcast (i32 (...)* @predictor_banner to i32 (i32, ...)*)(i32 %34)
%36 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.10, i64 0, i64 0), i32 %31, i32 %35)
%37 = load double, double* %28
%38 = fptosi double %37 to i32
%39 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32 %38)
%40 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%41 = load double, double* %32
%42 = fptosi double %41 to i32
%43 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), i32 %42)
%44 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.14, i64 0, i64 0))
%45 = getelementptr inbounds double, double* %0, i64 8
%46 = load double, double* %45
%47 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %46)
%48 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%49 = getelementptr inbounds double, double* %0, i64 9
%50 = load double, double* %49
%51 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %50)
%52 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.18, i64 0, i64 0))
%53 = getelementptr inbounds double, double* %0, i64 10
%54 = load double, double* %53
%55 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %54)
%56 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%57 = getelementptr inbounds double, double* %0, i64 11
%58 = load double, double* %57
%59 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %58)
%60 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.19, i64 0, i64 0))
%61 = getelementptr inbounds double, double* %0, i64 12
%62 = load double, double* %61
%63 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %62)
%64 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%65 = getelementptr inbounds double, double* %0, i64 13
%66 = load double, double* %65
%67 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %66)
%68 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.20, i64 0, i64 0))
%69 = getelementptr inbounds double, double* %0, i64 15
%70 = load double, double* %69
%71 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %70)
%72 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%73 = getelementptr inbounds double, double* %0, i64 16
%74 = load double, double* %73
%75 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %74)
%76 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.21, i64 0, i64 0))
%77 = load double, double* %73
%78 = fptosi double %77 to i32
%79 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32 %78)
%80 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%81 = getelementptr inbounds double, double* %0, i64 17
%82 = load double, double* %81
%83 = fptosi double %82 to i32
%84 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), i32 %83)
%85 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.22, i64 0, i64 0))
%86 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @str.37, i64 0, i64 0))
%87 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0))
%88 = getelementptr inbounds double, double* %0, i64 18
%89 = load double, double* %88
%90 = fptosi double %89 to i32
%91 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), i32 %90)
%92 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%93 = getelementptr inbounds double, double* %0, i64 19
%94 = load double, double* %93
%95 = fptosi double %94 to i32
%96 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), i32 %95)
%97 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.25, i64 0, i64 0))
%98 = getelementptr inbounds double, double* %0, i64 20
%99 = load double, double* %98
%100 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %99)
%101 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%102 = getelementptr inbounds double, double* %0, i64 21
%103 = load double, double* %102
%104 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %103)
%105 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.26, i64 0, i64 0))
%106 = getelementptr inbounds double, double* %0, i64 22
%107 = load double, double* %106
%108 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %107)
%109 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%110 = getelementptr inbounds double, double* %0, i64 23
%111 = load double, double* %110
%112 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %111)
%113 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.27, i64 0, i64 0))
%114 = getelementptr inbounds double, double* %0, i64 24
%115 = load double, double* %114
%116 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %115)
%117 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%118 = getelementptr inbounds double, double* %0, i64 25
%119 = load double, double* %118
%120 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %119)
%121 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.28, i64 0, i64 0))
%122 = getelementptr inbounds double, double* %0, i64 26
%123 = load double, double* %122
%124 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %123)
%125 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%126 = getelementptr inbounds double, double* %0, i64 27
%127 = load double, double* %126
%128 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %127)
%129 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.29, i64 0, i64 0))
%130 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.38, i64 0, i64 0))
%131 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.31, i64 0, i64 0))
%132 = getelementptr inbounds double, double* %0, i64 28
%133 = load double, double* %132
%134 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %133)
%135 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%136 = getelementptr inbounds double, double* %0, i64 29
%137 = load double, double* %136
%138 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %137)
%139 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.32, i64 0, i64 0))
%140 = getelementptr inbounds double, double* %0, i64 30
%141 = load double, double* %140
%142 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %141)
%143 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%144 = getelementptr inbounds double, double* %0, i64 31
%145 = load double, double* %144
%146 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %145)
%147 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.33, i64 0, i64 0))
%148 = getelementptr inbounds double, double* %0, i64 32
%149 = load double, double* %148
%150 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), double %149)
%151 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%152 = getelementptr inbounds double, double* %0, i64 33
%153 = load double, double* %152
%154 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %153)
%155 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.39, i64 0, i64 0))
ret void
}