int main(void) {
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {6.5, 5.7, 9.0, 5.5, 7.6};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] + d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_add[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {-2.5, 1.1, 2.2, 3.5, -1.4};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] - d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_subtract[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {9.0, 7.82, 19.04, 4.5, 13.95};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] * d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_multiply[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {0.444444, 1.478261, 1.647059, 4.5, 0.688889};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] / d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_divide[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer = 2.0;
    double out;
    out = CSPL_Array_min(d1, 5);
    {
      if ((fabs((out) - (answer)) < (1e-5)) == 0)
        return (1);
    };
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer = 5.6;
    double out;
    out = CSPL_Array_max(d1, 5);
    {
      if ((fabs((out) - (answer)) < (1e-5)) == 0)
        return (1);
    };
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer = 3.6;
    double out;
    out = CSPL_Array_range(d1, 5);
    printf("CSPL_Array_range: %lf, %lf\n", out, answer);
    {
      if ((fabs((out) - (answer)) < (1e-5)) == 0)
        return (1);
    };
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer2[5] = {3, 3.4, 5.6, 4.5, 3.1};
    double answer3[5] = {3, 3.4, 5.5, 4.5, 3.1};
    double answer4[5] = {-4, -4, -4, -4, -4};
    long i;
    CSPL_Array_clip(d1, 0, 10, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer1[i]);
      {
        if ((fabs((d1[i]) - (answer1[i])) < (1e-5)) == 0)
          return (1);
      };
    }
    CSPL_Array_clip(d1, 3, 10, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer2[i]);
      {
        if ((fabs((d1[i]) - (answer2[i])) < (1e-5)) == 0)
          return (1);
      };
    }
    CSPL_Array_clip(d1, 3, 5.5, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer3[i]);
      {
        if ((fabs((d1[i]) - (answer3[i])) < (1e-5)) == 0)
          return (1);
      };
    }
    CSPL_Array_clip(d1, -10, -4, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer4[i]);
      {
        if ((fabs((d1[i]) - (answer4[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {5.6, 3.4, 2, 4.5, 3.1};
    double answer1[5] = {2, 3.1, 3.4, 4.5, 5.6};
    unsigned long i;
    double tst;
    for (i = 0; i < 5; i++) {
      tst = CSPL_Array_quickselect(i, d1, 0, 4);
      printf("CSPL_Array_quickselect(%ld, d1, 0, 4)=%lf\n", i, tst);
      {
        if ((fabs((tst) - (answer1[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {5.6, 3.4, 2, 4.5, 3.1};
    double answer1[5] = {2, 3.4, 4.5, 5.6};
    unsigned long i;
    double tst;
    for (i = 0; i < 4; i++) {
      tst = CSPL_Array_quickselect(i, d1, 0, 3);
      printf("CSPL_Array_quickselect(%ld, d1, 0, 3)=%lf\n", i, tst);
      {
        if ((fabs((tst) - (answer1[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double dat1[5] = {1, 2, 5, 7, 8};
    long ans, i;
    double val;
    for (i = 0; i < 5; i++)
      printf("dat1[%ld]=%lf\n", i, dat1[i]);
    val = -1;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (0 != ans)
        return (1);
    };
    val = 1.5;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (1 != ans)
        return (1);
    };
    val = 5.0;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (3 != ans)
        return (1);
    };
    val = 5.5;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (3 != ans)
        return (1);
    };
    val = 8.5;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (5 != ans)
        return (1);
    };
  }
  {
    double dat1[5] = {1, 4, 7, 8, 9};
    long ans, i;
    double val;
    for (i = 0; i < 5; i++)
      printf("dat1[%ld]=%lf\n", i, dat1[i]);
    val = 0;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (0 != ans)
        return (1);
    };
    val = 3;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (1 != ans)
        return (1);
    };
    val = 4.0;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (2 != ans)
        return (1);
    };
  }
  {
    double ans[10] = {12.3,        14.73333333, 17.16666667, 19.6,
                      22.03333333, 24.46666667, 26.9,        29.33333333,
                      31.76666667, 34.2};
    long i;
    double outval[10];
    CSPL_Array_linspace(outval, 12.3, 34.2, 10);
    for (i = 0; i < 10; i++) {
      printf("CSPL_Array_linspace[%ld]=%lf  ->  %lf\n", i, outval[i], ans[i]);
      {
        if ((fabs((outval[i]) - (ans[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double ans[10] = {12.3,        13.78008475, 15.4382712,  17.2959907,
                      19.37725347, 21.70895895, 24.32124343, 27.24786957,
                      30.52666276, 34.2};
    long i;
    double outval[10];
    CSPL_Array_logspace(outval, 12.3, 34.2, 10);
    for (i = 0; i < 10; i++) {
      printf("CSPL_Array_logspace[%ld]=%lf  ->  %lf\n", i, outval[i], ans[i]);
      {
        if ((fabs((outval[i]) - (ans[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  return (0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x7c0,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x30(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1e7e(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0x1e51(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0x1e5c(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0x1e27(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0x1e3a(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
lea    -0x60(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1dfd(%rip),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0x1e08(%rip),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0x1df3(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0x1dde(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0x1dc9(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
lea    -0x90(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1da1(%rip),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  0x1d89(%rip),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0x1d71(%rip),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0x1d5c(%rip),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  0x1d47(%rip),%xmm0
movsd  %xmm0,-0x70(%rbp)
movq   $0x0,-0xd0(%rbp)
cmpq   $0x5,-0xd0(%rbp)
05
jge    1318 <main+0x168>
mov    -0xd0(%rbp),%rax
movsd  -0x30(%rbp,%rax,8),%xmm0
mov    -0xd0(%rbp),%rax
addsd  -0x60(%rbp,%rax,8),%xmm0
mov    -0xd0(%rbp),%rax
movsd  %xmm0,-0xc0(%rbp,%rax,8)
ff ff
mov    -0xd0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xd0(%rbp)
jmp    12c9 <main+0x119>
movq   $0x0,-0xc8(%rbp)
cmpq   $0x5,-0xc8(%rbp)
05
jge    13d6 <main+0x226>
mov    -0xc8(%rbp),%rsi
mov    -0xc8(%rbp),%rax
movsd  -0xc0(%rbp,%rax,8),%xmm0
ff ff
mov    -0xc8(%rbp),%rax
movsd  -0x90(%rbp,%rax,8),%xmm1
ff ff
lea    0x1de1(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0xc8(%rbp),%rax
movsd  -0xc0(%rbp,%rax,8),%xmm1
ff ff
mov    -0xc8(%rbp),%rax
subsd  -0x90(%rbp,%rax,8),%xmm1
ff ff
movaps 0x1da3(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x1d27(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    13ba <main+0x20a>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    13bf <main+0x20f>
mov    -0xc8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xc8(%rbp)
jmp    1323 <main+0x173>
lea    -0x100(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1c67(%rip),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  0x1c37(%rip),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  0x1c3f(%rip),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  0x1c07(%rip),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  0x1c17(%rip),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
lea    -0x130(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1bd4(%rip),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  0x1bdc(%rip),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  0x1bc4(%rip),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  0x1bac(%rip),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  0x1b94(%rip),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
lea    -0x160(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1bc9(%rip),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  0x1bb1(%rip),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  0x1b99(%rip),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  0x1b81(%rip),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  0x1b69(%rip),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movq   $0x0,-0x1a0(%rbp)
cmpq   $0x5,-0x1a0(%rbp)
05
jge    155f <main+0x3af>
mov    -0x1a0(%rbp),%rax
movsd  -0x100(%rbp,%rax,8),%xmm0
ff ff
mov    -0x1a0(%rbp),%rax
subsd  -0x130(%rbp,%rax,8),%xmm0
ff ff
mov    -0x1a0(%rbp),%rax
movsd  %xmm0,-0x190(%rbp,%rax,8)
ff ff
mov    -0x1a0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x1a0(%rbp)
jmp    150a <main+0x35a>
movq   $0x0,-0x198(%rbp)
cmpq   $0x5,-0x198(%rbp)
05
jge    161d <main+0x46d>
mov    -0x198(%rbp),%rsi
mov    -0x198(%rbp),%rax
movsd  -0x190(%rbp,%rax,8),%xmm0
ff ff
mov    -0x198(%rbp),%rax
movsd  -0x160(%rbp,%rax,8),%xmm1
ff ff
lea    0x1bb8(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x198(%rbp),%rax
movsd  -0x190(%rbp,%rax,8),%xmm1
ff ff
mov    -0x198(%rbp),%rax
subsd  -0x160(%rbp,%rax,8),%xmm1
ff ff
movaps 0x1b5c(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x1ae0(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    1601 <main+0x451>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    1606 <main+0x456>
mov    -0x198(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x198(%rbp)
jmp    156a <main+0x3ba>
lea    -0x1d0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1a20(%rip),%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  0x19f0(%rip),%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  0x19f8(%rip),%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  0x19c0(%rip),%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  0x19d0(%rip),%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
lea    -0x200(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x198d(%rip),%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  0x1995(%rip),%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  0x197d(%rip),%xmm0
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  0x1965(%rip),%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  0x194d(%rip),%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
lea    -0x230(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1912(%rip),%xmm0
movsd  %xmm0,-0x230(%rbp)
ff
movsd  0x198a(%rip),%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  0x1972(%rip),%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  0x18fa(%rip),%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  0x194a(%rip),%xmm0
movsd  %xmm0,-0x210(%rbp)
ff
movq   $0x0,-0x270(%rbp)
cmpq   $0x5,-0x270(%rbp)
05
jge    17a6 <main+0x5f6>
mov    -0x270(%rbp),%rax
movsd  -0x1d0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x270(%rbp),%rax
mulsd  -0x200(%rbp,%rax,8),%xmm0
ff ff
mov    -0x270(%rbp),%rax
movsd  %xmm0,-0x260(%rbp,%rax,8)
ff ff
mov    -0x270(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x270(%rbp)
jmp    1751 <main+0x5a1>
movq   $0x0,-0x268(%rbp)
cmpq   $0x5,-0x268(%rbp)
05
jge    1864 <main+0x6b4>
mov    -0x268(%rbp),%rsi
mov    -0x268(%rbp),%rax
movsd  -0x260(%rbp,%rax,8),%xmm0
ff ff
mov    -0x268(%rbp),%rax
movsd  -0x230(%rbp,%rax,8),%xmm1
ff ff
lea    0x1994(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x268(%rbp),%rax
movsd  -0x260(%rbp,%rax,8),%xmm1
ff ff
mov    -0x268(%rbp),%rax
subsd  -0x230(%rbp,%rax,8),%xmm1
ff ff
movaps 0x1915(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x1899(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    1848 <main+0x698>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    184d <main+0x69d>
mov    -0x268(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x268(%rbp)
jmp    17b1 <main+0x601>
lea    -0x2a0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x17d9(%rip),%xmm0
movsd  %xmm0,-0x2a0(%rbp)
ff
movsd  0x17a9(%rip),%xmm0
movsd  %xmm0,-0x298(%rbp)
ff
movsd  0x17b1(%rip),%xmm0
movsd  %xmm0,-0x290(%rbp)
ff
movsd  0x1779(%rip),%xmm0
movsd  %xmm0,-0x288(%rbp)
ff
movsd  0x1789(%rip),%xmm0
movsd  %xmm0,-0x280(%rbp)
ff
lea    -0x2d0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1746(%rip),%xmm0
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  0x174e(%rip),%xmm0
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  0x1736(%rip),%xmm0
movsd  %xmm0,-0x2c0(%rbp)
ff
movsd  0x171e(%rip),%xmm0
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  0x1706(%rip),%xmm0
movsd  %xmm0,-0x2b0(%rbp)
ff
lea    -0x300(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1773(%rip),%xmm0
movsd  %xmm0,-0x300(%rbp)
ff
movsd  0x175b(%rip),%xmm0
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  0x1743(%rip),%xmm0
movsd  %xmm0,-0x2f0(%rbp)
ff
movsd  0x16b3(%rip),%xmm0
movsd  %xmm0,-0x2e8(%rbp)
ff
movsd  0x171b(%rip),%xmm0
movsd  %xmm0,-0x2e0(%rbp)
ff
movq   $0x0,-0x340(%rbp)
cmpq   $0x5,-0x340(%rbp)
05
jge    19ed <main+0x83d>
mov    -0x340(%rbp),%rax
movsd  -0x2a0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x340(%rbp),%rax
divsd  -0x2d0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x340(%rbp),%rax
movsd  %xmm0,-0x330(%rbp,%rax,8)
ff ff
mov    -0x340(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x340(%rbp)
jmp    1998 <main+0x7e8>
movq   $0x0,-0x338(%rbp)
cmpq   $0x5,-0x338(%rbp)
05
jge    1aab <main+0x8fb>
mov    -0x338(%rbp),%rsi
mov    -0x338(%rbp),%rax
movsd  -0x330(%rbp,%rax,8),%xmm0
ff ff
mov    -0x338(%rbp),%rax
movsd  -0x300(%rbp,%rax,8),%xmm1
ff ff
lea    0x1770(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x338(%rbp),%rax
movsd  -0x330(%rbp,%rax,8),%xmm1
ff ff
mov    -0x338(%rbp),%rax
subsd  -0x300(%rbp,%rax,8),%xmm1
ff ff
movaps 0x16ce(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x1652(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    1a8f <main+0x8df>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    1a94 <main+0x8e4>
mov    -0x338(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x338(%rbp)
jmp    19f8 <main+0x848>
lea    -0x370(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1592(%rip),%xmm0
movsd  %xmm0,-0x370(%rbp)
ff
movsd  0x1562(%rip),%xmm0
movsd  %xmm0,-0x368(%rbp)
ff
movsd  0x156a(%rip),%xmm0
movsd  %xmm0,-0x360(%rbp)
ff
movsd  0x1532(%rip),%xmm0
movsd  %xmm0,-0x358(%rbp)
ff
movsd  0x1542(%rip),%xmm0
movsd  %xmm0,-0x350(%rbp)
ff
movsd  0x1542(%rip),%xmm0
movsd  %xmm0,-0x378(%rbp)
ff
lea    -0x370(%rbp),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   10b0 <CSPL_Array_min@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x380(%rbp)
ff
movsd  -0x380(%rbp),%xmm1
ff
subsd  -0x378(%rbp),%xmm1
ff
movaps 0x15dc(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x1560(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    1b81 <main+0x9d1>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
lea    -0x3b0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x14bc(%rip),%xmm0
movsd  %xmm0,-0x3b0(%rbp)
ff
movsd  0x148c(%rip),%xmm0
movsd  %xmm0,-0x3a8(%rbp)
ff
movsd  0x1494(%rip),%xmm0
movsd  %xmm0,-0x3a0(%rbp)
ff
movsd  0x145c(%rip),%xmm0
movsd  %xmm0,-0x398(%rbp)
ff
movsd  0x146c(%rip),%xmm0
movsd  %xmm0,-0x390(%rbp)
ff
movsd  0x1464(%rip),%xmm0
movsd  %xmm0,-0x3b8(%rbp)
ff
lea    -0x3b0(%rbp),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   10d0 <CSPL_Array_max@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x3c0(%rbp)
ff
movsd  -0x3c0(%rbp),%xmm1
ff
subsd  -0x3b8(%rbp),%xmm1
ff
movaps 0x1506(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x148a(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    1c57 <main+0xaa7>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
lea    -0x3f0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x13e6(%rip),%xmm0
movsd  %xmm0,-0x3f0(%rbp)
ff
movsd  0x13b6(%rip),%xmm0
movsd  %xmm0,-0x3e8(%rbp)
ff
movsd  0x13be(%rip),%xmm0
movsd  %xmm0,-0x3e0(%rbp)
ff
movsd  0x1386(%rip),%xmm0
movsd  %xmm0,-0x3d8(%rbp)
ff
movsd  0x1396(%rip),%xmm0
movsd  %xmm0,-0x3d0(%rbp)
ff
movsd  0x1406(%rip),%xmm0
movsd  %xmm0,-0x3f8(%rbp)
ff
lea    -0x3f0(%rbp),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1040 <CSPL_Array_range@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x400(%rbp)
ff
movsd  -0x400(%rbp),%xmm0
ff
movsd  -0x3f8(%rbp),%xmm1
ff
lea    0x14c5(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  -0x400(%rbp),%xmm1
ff
subsd  -0x3f8(%rbp),%xmm1
ff
movaps 0x1412(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x1396(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    1d4b <main+0xb9b>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
lea    -0x430(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x12f2(%rip),%xmm0
movsd  %xmm0,-0x430(%rbp)
ff
movsd  0x12c2(%rip),%xmm0
movsd  %xmm0,-0x428(%rbp)
ff
movsd  0x12ca(%rip),%xmm0
movsd  %xmm0,-0x420(%rbp)
ff
movsd  0x1292(%rip),%xmm0
movsd  %xmm0,-0x418(%rbp)
ff
movsd  0x12a2(%rip),%xmm0
movsd  %xmm0,-0x410(%rbp)
ff
lea    -0x460(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x128f(%rip),%xmm0
movsd  %xmm0,-0x460(%rbp)
ff
movsd  0x125f(%rip),%xmm0
movsd  %xmm0,-0x458(%rbp)
ff
movsd  0x1267(%rip),%xmm0
movsd  %xmm0,-0x450(%rbp)
ff
movsd  0x122f(%rip),%xmm0
movsd  %xmm0,-0x448(%rbp)
movsd  0x123f(%rip),%xmm0
movsd  %xmm0,-0x440(%rbp)
ff
lea    -0x490(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x12ac(%rip),%xmm0
movsd  %xmm0,-0x490(%rbp)
ff
movsd  0x11fc(%rip),%xmm0
movsd  %xmm0,-0x488(%rbp)
ff
movsd  0x1204(%rip),%xmm0
movsd  %xmm0,-0x480(%rbp)
ff
movsd  0x11cc(%rip),%xmm0
movsd  %xmm0,-0x478(%rbp)
ff
movsd  0x11dc(%rip),%xmm0
movsd  %xmm0,-0x470(%rbp)
ff
lea    -0x4c0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x1249(%rip),%xmm0
movsd  %xmm0,-0x4c0(%rbp)
ff
movsd  0x1199(%rip),%xmm0
movsd  %xmm0,-0x4b8(%rbp)
ff
movsd  0x1159(%rip),%xmm0
movsd  %xmm0,-0x4b0(%rbp)
ff
movsd  0x1169(%rip),%xmm0
movsd  %xmm0,-0x4a8(%rbp)
ff
movsd  0x1179(%rip),%xmm0
movsd  %xmm0,-0x4a0(%rbp)
ff
lea    -0x4f0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x11de(%rip),%xmm0
movsd  %xmm0,-0x4f0(%rbp)
ff
movsd  0x11ce(%rip),%xmm0
movsd  %xmm0,-0x4e8(%rbp)
ff
movsd  0x11be(%rip),%xmm0
movsd  %xmm0,-0x4e0(%rbp)
ff
movsd  0x11ae(%rip),%xmm0
movsd  %xmm0,-0x4d8(%rbp)
ff
movsd  0x119e(%rip),%xmm0
movsd  %xmm0,-0x4d0(%rbp)
ff
lea    -0x430(%rbp),%rdi
xor    %esi,%esi
mov    $0xa,%edx
mov    $0x5,%ecx
mov    $0x0,%al
call   1090 <CSPL_Array_clip@plt>
movq   $0x0,-0x4f8(%rbp)
cmpq   $0x5,-0x4f8(%rbp)
05
jge    2012 <main+0xe62>
mov    -0x4f8(%rbp),%rsi
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm0
ff ff
mov    -0x4f8(%rbp),%rax
movsd  -0x460(%rbp,%rax,8),%xmm1
ff ff
lea    0x1246(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm1
ff ff
mov    -0x4f8(%rbp),%rax
subsd  -0x460(%rbp,%rax,8),%xmm1
ff ff
movaps 0x1167(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x10eb(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    1ff6 <main+0xe46>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    1ffb <main+0xe4b>
mov    -0x4f8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x4f8(%rbp)
jmp    1f5f <main+0xdaf>
lea    -0x430(%rbp),%rdi
mov    $0x3,%esi
mov    $0xa,%edx
mov    $0x5,%ecx
mov    $0x0,%al
call   1090 <CSPL_Array_clip@plt>
movq   $0x0,-0x4f8(%rbp)
cmpq   $0x5,-0x4f8(%rbp)
05
jge    20ed <main+0xf3d>
mov    -0x4f8(%rbp),%rsi
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm0
ff ff
mov    -0x4f8(%rbp),%rax
movsd  -0x490(%rbp,%rax,8),%xmm1
ff ff
lea    0x116b(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm1
ff ff
mov    -0x4f8(%rbp),%rax
subsd  -0x490(%rbp,%rax,8),%xmm1
ff ff
movaps 0x108c(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x1010(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    20d1 <main+0xf21>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    20d6 <main+0xf26>
mov    -0x4f8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x4f8(%rbp)
jmp    203a <main+0xe8a>
lea    -0x430(%rbp),%rdi
mov    $0x3,%esi
movsd  0xf07(%rip),%xmm0
mov    $0x5,%edx
mov    $0x1,%al
call   1090 <CSPL_Array_clip@plt>
movq   $0x0,-0x4f8(%rbp)
cmpq   $0x5,-0x4f8(%rbp)
05
jge    21cb <main+0x101b>
mov    -0x4f8(%rbp),%rsi
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm0
ff ff
mov    -0x4f8(%rbp),%rax
movsd  -0x4c0(%rbp,%rax,8),%xmm1
ff ff
lea    0x108d(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm1
ff ff
mov    -0x4f8(%rbp),%rax
subsd  -0x4c0(%rbp,%rax,8),%xmm1
ff ff
movaps 0xfae(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0xf32(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    21af <main+0xfff>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    21b4 <main+0x1004>
mov    -0x4f8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x4f8(%rbp)
jmp    2118 <main+0xf68>
lea    -0x430(%rbp),%rdi
mov    $0xfffffff6,%esi
mov    $0xfffffffc,%edx
mov    $0x5,%ecx
mov    $0x0,%al
call   1090 <CSPL_Array_clip@plt>
movq   $0x0,-0x4f8(%rbp)
cmpq   $0x5,-0x4f8(%rbp)
05
jge    22a6 <main+0x10f6>
mov    -0x4f8(%rbp),%rsi
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm0
ff ff
mov    -0x4f8(%rbp),%rax
movsd  -0x4f0(%rbp,%rax,8),%xmm1
ff ff
lea    0xfb2(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x4f8(%rbp),%rax
movsd  -0x430(%rbp,%rax,8),%xmm1
ff ff
mov    -0x4f8(%rbp),%rax
subsd  -0x4f0(%rbp,%rax,8),%xmm1
ff ff
movaps 0xed3(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0xe57(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    228a <main+0x10da>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    228f <main+0x10df>
mov    -0x4f8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x4f8(%rbp)
jmp    21f3 <main+0x1043>
lea    -0x520(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0xd8f(%rip),%xmm0
movsd  %xmm0,-0x520(%rbp)
ff
movsd  0xd67(%rip),%xmm0
movsd  %xmm0,-0x518(%rbp)
ff
movsd  0xd77(%rip),%xmm0
movsd  %xmm0,-0x510(%rbp)
ff
movsd  0xd37(%rip),%xmm0
movsd  %xmm0,-0x508(%rbp)
ff
movsd  0xd47(%rip),%xmm0
movsd  %xmm0,-0x500(%rbp)
ff
lea    -0x550(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0xd34(%rip),%xmm0
movsd  %xmm0,-0x550(%rbp)
ff
movsd  0xd14(%rip),%xmm0
movsd  %xmm0,-0x548(%rbp)
ff
movsd  0xcf4(%rip),%xmm0
movsd  %xmm0,-0x540(%rbp)
ff
movsd  0xcd4(%rip),%xmm0
movsd  %xmm0,-0x538(%rbp)
ff
movsd  0xcec(%rip),%xmm0
movsd  %xmm0,-0x530(%rbp)
ff
movq   $0x0,-0x558(%rbp)
cmpq   $0x5,-0x558(%rbp)
05
jae    2432 <main+0x1282>
mov    -0x558(%rbp),%rdi
lea    -0x520(%rbp),%rsi
xor    %edx,%edx
mov    $0x4,%ecx
mov    $0x0,%al
call   1030 <CSPL_Array_quickselect@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x560(%rbp)
ff
mov    -0x558(%rbp),%rsi
movsd  -0x560(%rbp),%xmm0
ff
lea    0xe3d(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  -0x560(%rbp),%xmm1
ff
mov    -0x558(%rbp),%rax
subsd  -0x550(%rbp,%rax,8),%xmm1
ff ff
movaps 0xd47(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0xccb(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    2416 <main+0x1266>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    241b <main+0x126b>
mov    -0x558(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x558(%rbp)
jmp    2377 <main+0x11c7>
lea    -0x590(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0xc03(%rip),%xmm0
movsd  %xmm0,-0x590(%rbp)
ff
movsd  0xbdb(%rip),%xmm0
movsd  %xmm0,-0x588(%rbp)
ff
movsd  0xbeb(%rip),%xmm0
movsd  %xmm0,-0x580(%rbp)
ff
movsd  0xbab(%rip),%xmm0
movsd  %xmm0,-0x578(%rbp)
ff
movsd  0xbbb(%rip),%xmm0
movsd  %xmm0,-0x570(%rbp)
ff
lea    -0x5c0(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0xba8(%rip),%xmm0
movsd  %xmm0,-0x5c0(%rbp)
ff
movsd  0xb78(%rip),%xmm0
movsd  %xmm0,-0x5b8(%rbp)
ff
movsd  0xb58(%rip),%xmm0
movsd  %xmm0,-0x5b0(%rbp)
ff
movsd  0xb70(%rip),%xmm0
movsd  %xmm0,-0x5a8(%rbp)
ff
movq   $0x0,-0x5c8(%rbp)
cmpq   $0x4,-0x5c8(%rbp)
04
jae    25ae <main+0x13fe>
mov    -0x5c8(%rbp),%rdi
lea    -0x590(%rbp),%rsi
xor    %edx,%edx
mov    $0x3,%ecx
mov    $0x0,%al
call   1030 <CSPL_Array_quickselect@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x5d0(%rbp)
ff
mov    -0x5c8(%rbp),%rsi
movsd  -0x5d0(%rbp),%xmm0
ff
lea    0xcec(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  -0x5d0(%rbp),%xmm1
ff
mov    -0x5c8(%rbp),%rax
subsd  -0x5c0(%rbp,%rax,8),%xmm1
ff ff
movaps 0xbcb(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0xb4f(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    2592 <main+0x13e2>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    2597 <main+0x13e7>
mov    -0x5c8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x5c8(%rbp)
jmp    24f3 <main+0x1343>
lea    -0x600(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0xa67(%rip),%xmm0
movsd  %xmm0,-0x600(%rbp)
ff
movsd  0xa7f(%rip),%xmm0
movsd  %xmm0,-0x5f8(%rbp)
ff
movsd  0xb07(%rip),%xmm0
movsd  %xmm0,-0x5f0(%rbp)
ff
movsd  0xaef(%rip),%xmm0
movsd  %xmm0,-0x5e8(%rbp)
movsd  0xad7(%rip),%xmm0
movsd  %xmm0,-0x5e0(%rbp)
ff
movq   $0x0,-0x610(%rbp)
cmpq   $0x5,-0x610(%rbp)
05
jge    2666 <main+0x14b6>
mov    -0x610(%rbp),%rsi
mov    -0x610(%rbp),%rax
movsd  -0x600(%rbp,%rax,8),%xmm0
ff ff
lea    0xc0e(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    -0x610(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x610(%rbp)
jmp    261c <main+0x146c>
movsd  0xa8a(%rip),%xmm0
movsd  %xmm0,-0x618(%rbp)
ff
movsd  -0x618(%rbp),%xmm0
ff
lea    -0x600(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x608(%rbp)
movsd  -0x618(%rbp),%xmm0
ff
mov    -0x608(%rbp),%rsi
lea    0xbb5(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
xor    %eax,%eax
cmp    -0x608(%rbp),%rax
je     26d2 <main+0x1522>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
movsd  0xa26(%rip),%xmm0
movsd  %xmm0,-0x618(%rbp)
ff
movsd  -0x618(%rbp),%xmm0
ff
lea    -0x600(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x608(%rbp)
movsd  -0x618(%rbp),%xmm0
ff
mov    -0x608(%rbp),%rsi
lea    0xb49(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    $0x1,%eax
cmp    -0x608(%rbp),%rax
je     2741 <main+0x1591>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
movsd  0x9a7(%rip),%xmm0
movsd  %xmm0,-0x618(%rbp)
ff
movsd  -0x618(%rbp),%xmm0
ff
lea    -0x600(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x608(%rbp)
movsd  -0x618(%rbp),%xmm0
ff
mov    -0x608(%rbp),%rsi
lea    0xada(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    $0x3,%eax
cmp    -0x608(%rbp),%rax
je     27b0 <main+0x1600>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
movsd  0x850(%rip),%xmm0
movsd  %xmm0,-0x618(%rbp)
ff
movsd  -0x618(%rbp),%xmm0
ff
lea    -0x600(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x608(%rbp)
movsd  -0x618(%rbp),%xmm0
ff
mov    -0x608(%rbp),%rsi
lea    0xa6b(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    $0x3,%eax
cmp    -0x608(%rbp),%rax
je     281f <main+0x166f>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
movsd  0x8e1(%rip),%xmm0
movsd  %xmm0,-0x618(%rbp)
ff
movsd  -0x618(%rbp),%xmm0
ff
lea    -0x600(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x608(%rbp)
movsd  -0x618(%rbp),%xmm0
ff
mov    -0x608(%rbp),%rsi
lea    0x9fc(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    $0x5,%eax
cmp    -0x608(%rbp),%rax
je     288e <main+0x16de>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
lea    -0x640(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1060 <memset@plt>
movsd  0x787(%rip),%xmm0
movsd  %xmm0,-0x640(%rbp)
ff
movsd  0x857(%rip),%xmm0
movsd  %xmm0,-0x638(%rbp)
ff
movsd  0x81f(%rip),%xmm0
movsd  %xmm0,-0x630(%rbp)
ff
movsd  0x807(%rip),%xmm0
movsd  %xmm0,-0x628(%rbp)
ff
movsd  0x727(%rip),%xmm0
movsd  %xmm0,-0x620(%rbp)
ff
movq   $0x0,-0x650(%rbp)
cmpq   $0x5,-0x650(%rbp)
05
jge    2946 <main+0x1796>
mov    -0x650(%rbp),%rsi
mov    -0x650(%rbp),%rax
movsd  -0x640(%rbp,%rax,8),%xmm0
ff ff
lea    0x92e(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    -0x650(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x650(%rbp)
jmp    28fc <main+0x174c>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x658(%rbp)
ff
movsd  -0x658(%rbp),%xmm0
ff
lea    -0x640(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x648(%rbp)
movsd  -0x658(%rbp),%xmm0
ff
mov    -0x648(%rbp),%rsi
lea    0x8da(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
xor    %eax,%eax
cmp    -0x648(%rbp),%rax
je     29ad <main+0x17fd>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
movsd  0x723(%rip),%xmm0
movsd  %xmm0,-0x658(%rbp)
ff
movsd  -0x658(%rbp),%xmm0
ff
lea    -0x640(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x648(%rbp)
movsd  -0x658(%rbp),%xmm0
ff
mov    -0x648(%rbp),%rsi
lea    0x86e(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    $0x1,%eax
cmp    -0x648(%rbp),%rax
je     2a1c <main+0x186c>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
movsd  0x6ec(%rip),%xmm0
movsd  %xmm0,-0x658(%rbp)
ff
movsd  -0x658(%rbp),%xmm0
ff
lea    -0x640(%rbp),%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   10a0 <CSPL_Array_bisect@plt>
cltq
mov    %rax,-0x648(%rbp)
movsd  -0x658(%rbp),%xmm0
ff
mov    -0x648(%rbp),%rsi
lea    0x7ff(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    $0x2,%eax
cmp    -0x648(%rbp),%rax
je     2a8b <main+0x18db>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
lea    -0x6b0(%rbp),%rdi
lea    0x847(%rip),%rsi
mov    $0x50,%edx
call   1080 <memcpy@plt>
lea    -0x710(%rbp),%rdi
movsd  0x666(%rip),%xmm0
movsd  0x666(%rip),%xmm1
mov    $0xa,%esi
mov    $0x2,%al
call   10c0 <CSPL_Array_linspace@plt>
movq   $0x0,-0x6b8(%rbp)
cmpq   $0xa,-0x6b8(%rbp)
0a
jge    2b84 <main+0x19d4>
mov    -0x6b8(%rbp),%rsi
mov    -0x6b8(%rbp),%rax
movsd  -0x710(%rbp,%rax,8),%xmm0
ff ff
mov    -0x6b8(%rbp),%rax
movsd  -0x6b0(%rbp,%rax,8),%xmm1
ff ff
lea    0x77d(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x6b8(%rbp),%rax
movsd  -0x710(%rbp,%rax,8),%xmm1
ff ff
mov    -0x6b8(%rbp),%rax
subsd  -0x6b0(%rbp,%rax,8),%xmm1
ff ff
movaps 0x5f5(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x579(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    2b68 <main+0x19b8>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    2b6d <main+0x19bd>
mov    -0x6b8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x6b8(%rbp)
jmp    2ad1 <main+0x1921>
lea    -0x760(%rbp),%rdi
lea    0x79e(%rip),%rsi
mov    $0x50,%edx
call   1080 <memcpy@plt>
lea    -0x7c0(%rbp),%rdi
movsd  0x56d(%rip),%xmm0
movsd  0x56d(%rip),%xmm1
mov    $0xa,%esi
mov    $0x2,%al
call   1070 <CSPL_Array_logspace@plt>
movq   $0x0,-0x768(%rbp)
cmpq   $0xa,-0x768(%rbp)
0a
jge    2c7d <main+0x1acd>
mov    -0x768(%rbp),%rsi
mov    -0x768(%rbp),%rax
movsd  -0x7c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x768(%rbp),%rax
movsd  -0x760(%rbp,%rax,8),%xmm1
ff ff
lea    0x6ab(%rip),%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    -0x768(%rbp),%rax
movsd  -0x7c0(%rbp,%rax,8),%xmm1
ff ff
mov    -0x768(%rbp),%rax
subsd  -0x760(%rbp,%rax,8),%xmm1
ff ff
movaps 0x4fc(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  0x480(%rip),%xmm0
ucomisd %xmm1,%xmm0
seta   %al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x0,%eax
jne    2c61 <main+0x1ab1>
movl   $0x1,-0x4(%rbp)
jmp    2c84 <main+0x1ad4>
jmp    2c66 <main+0x1ab6>
mov    -0x768(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x768(%rbp)
jmp    2bca <main+0x1a1a>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x7c0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r14
push   %rbx
sub    $0x60,%rsp
lea    0x21a1(%rip),%rbx
movsd  0x1e59(%rip),%xmm0
mov    %rbx,%rdi
xor    %esi,%esi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1e4a(%rip),%xmm0
movsd  0x1e4a(%rip),%xmm1
mov    $0x1,%esi
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1e3b(%rip),%xmm0
mov    $0x2,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1e29(%rip),%xmm0
mov    $0x3,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1e17(%rip),%xmm0
mov    $0x4,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
lea    0x2134(%rip),%rbx
movsd  0x1dfe(%rip),%xmm0
mov    %rbx,%rdi
xor    %esi,%esi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1def(%rip),%xmm0
mov    $0x1,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1ddd(%rip),%xmm0
movsd  0x1ddd(%rip),%xmm1
mov    $0x2,%esi
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1dce(%rip),%xmm0
mov    $0x3,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1dbc(%rip),%xmm0
mov    $0x4,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
lea    0x20cc(%rip),%rbx
mov    %rbx,%rdi
xor    %esi,%esi
movsd  0x1d56(%rip),%xmm0
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1d8c(%rip),%xmm0
movsd  0x1d8c(%rip),%xmm1
mov    $0x1,%esi
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1d7d(%rip),%xmm0
mov    $0x2,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1d6b(%rip),%xmm0
mov    $0x3,%esi
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1d59(%rip),%xmm0
movsd  0x1d59(%rip),%xmm1
mov    $0x4,%esi
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
lea    0x205f(%rip),%rbx
movsd  0x1d43(%rip),%xmm0
movsd  0x1d43(%rip),%xmm1
mov    %rbx,%rdi
xor    %esi,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1d37(%rip),%xmm0
movsd  0x1d37(%rip),%xmm1
mov    $0x1,%esi
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1d28(%rip),%xmm0
movsd  0x1d28(%rip),%xmm1
mov    $0x2,%esi
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    $0x3,%esi
mov    %rbx,%rdi
movsd  0x1cc9(%rip),%xmm0
movaps %xmm0,%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x1cff(%rip),%xmm0
movsd  0x1cff(%rip),%xmm1
mov    $0x4,%esi
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movaps 0x1ed1(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x1ed6(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
movabs $0x4008cccccccccccd,%rbx
cc 08 40
mov    %rbx,0x20(%rsp)
mov    %rsp,%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   1090 <CSPL_Array_min@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x1cb4(%rip),%xmm0
andpd  0x1eac(%rip),%xmm0
movsd  0x1cac(%rip),%xmm1
ucomisd %xmm0,%xmm1
mov    $0x1,%ebp
jbe    2796 <main+0x1606>
movaps 0x1e6e(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x1e73(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
mov    %rbx,0x20(%rsp)
mov    %rsp,%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   10b0 <CSPL_Array_max@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x1c6b(%rip),%xmm0
andpd  0x1e53(%rip),%xmm0
movsd  0x1c53(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movaps 0x1e1a(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x1e1f(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
mov    %rbx,0x20(%rsp)
mov    %rsp,%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   1040 <CSPL_Array_range@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x1ef7(%rip),%rdi
movsd  0x1c12(%rip),%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x1c05(%rip),%xmm1
andpd  0x1ddd(%rip),%xmm1
movsd  0x1bdd(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
movaps 0x1da4(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x1da9(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
mov    %rbx,0x20(%rsp)
mov    %rsp,%rdi
xor    %esi,%esi
mov    $0xa,%edx
mov    $0x5,%ecx
xor    %eax,%eax
call   1070 <CSPL_Array_clip@plt>
movsd  (%rsp),%xmm0
lea    0x1e9e(%rip),%rdi
movsd  0x1bad(%rip),%xmm1
xor    %esi,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x1b6f(%rip),%xmm0
andpd  0x1d67(%rip),%xmm0
movsd  0x1b67(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x8(%rsp),%xmm0
lea    0x1e59(%rip),%rdi
movsd  0x1b70(%rip),%xmm1
mov    $0x1,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x8(%rsp),%xmm0
addsd  0x1b5e(%rip),%xmm0
andpd  0x1d1e(%rip),%xmm0
movsd  0x1b1e(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x10(%rsp),%xmm0
lea    0x1e10(%rip),%rdi
movsd  0x1b37(%rip),%xmm1
mov    $0x2,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x10(%rsp),%xmm0
addsd  0x1aed(%rip),%xmm0
andpd  0x1cd5(%rip),%xmm0
movsd  0x1ad5(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x18(%rsp),%xmm0
lea    0x1dc7(%rip),%rdi
movsd  0x1a56(%rip),%xmm1
mov    $0x3,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x18(%rsp),%xmm0
addsd  0x1adc(%rip),%xmm0
andpd  0x1c8c(%rip),%xmm0
movsd  0x1a8c(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x20(%rsp),%xmm0
lea    0x1d7e(%rip),%rdi
movsd  0x1ab5(%rip),%xmm1
mov    $0x4,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x20(%rsp),%xmm0
addsd  0x1aa3(%rip),%xmm0
andpd  0x1c43(%rip),%xmm0
movsd  0x1a43(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
mov    %rsp,%rdi
mov    $0x3,%esi
mov    $0xa,%edx
mov    $0x5,%ecx
xor    %eax,%eax
call   1070 <CSPL_Array_clip@plt>
movsd  (%rsp),%xmm0
lea    0x1d1d(%rip),%rdi
movsd  0x1a64(%rip),%xmm1
xor    %esi,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x1a56(%rip),%xmm0
andpd  0x1be6(%rip),%xmm0
movsd  0x19e6(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x8(%rsp),%xmm0
lea    0x1cd8(%rip),%rdi
movsd  0x19ef(%rip),%xmm1
mov    $0x1,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x8(%rsp),%xmm0
addsd  0x19dd(%rip),%xmm0
andpd  0x1b9d(%rip),%xmm0
movsd  0x199d(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x10(%rsp),%xmm0
lea    0x1c8f(%rip),%rdi
movsd  0x19b6(%rip),%xmm1
mov    $0x2,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x10(%rsp),%xmm0
addsd  0x196c(%rip),%xmm0
andpd  0x1b54(%rip),%xmm0
movsd  0x1954(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x18(%rsp),%xmm0
lea    0x1c46(%rip),%rdi
movsd  0x18d5(%rip),%xmm1
mov    $0x3,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x18(%rsp),%xmm0
addsd  0x195b(%rip),%xmm0
andpd  0x1b0b(%rip),%xmm0
movsd  0x190b(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x20(%rsp),%xmm0
lea    0x1bfd(%rip),%rdi
movsd  0x1934(%rip),%xmm1
mov    $0x4,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x20(%rsp),%xmm0
addsd  0x1922(%rip),%xmm0
andpd  0x1ac2(%rip),%xmm0
movsd  0x18c2(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
mov    %rsp,%rdi
movsd  0x17f5(%rip),%xmm0
mov    $0x3,%esi
mov    $0x5,%edx
mov    $0x1,%al
call   1070 <CSPL_Array_clip@plt>
movsd  (%rsp),%xmm0
lea    0x1b99(%rip),%rdi
movsd  0x18e0(%rip),%xmm1
xor    %esi,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x18d2(%rip),%xmm0
andpd  0x1a62(%rip),%xmm0
movsd  0x1862(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x8(%rsp),%xmm0
lea    0x1b54(%rip),%rdi
movsd  0x186b(%rip),%xmm1
mov    $0x1,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x8(%rsp),%xmm0
addsd  0x1859(%rip),%xmm0
andpd  0x1a19(%rip),%xmm0
movsd  0x1819(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x10(%rsp),%xmm0
lea    0x1b0b(%rip),%rdi
movsd  0x1742(%rip),%xmm1
mov    $0x2,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x10(%rsp),%xmm0
addsd  0x1848(%rip),%xmm0
andpd  0x19d0(%rip),%xmm0
movsd  0x17d0(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x18(%rsp),%xmm0
lea    0x1ac2(%rip),%rdi
movsd  0x1751(%rip),%xmm1
mov    $0x3,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x18(%rsp),%xmm0
addsd  0x17d7(%rip),%xmm0
andpd  0x1987(%rip),%xmm0
movsd  0x1787(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x20(%rsp),%xmm0
lea    0x1a79(%rip),%rdi
movsd  0x17b0(%rip),%xmm1
mov    $0x4,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x20(%rsp),%xmm0
addsd  0x179e(%rip),%xmm0
andpd  0x193e(%rip),%xmm0
movsd  0x173e(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
mov    %rsp,%rdi
mov    $0xfffffff6,%esi
mov    $0xfffffffc,%edx
mov    $0x5,%ecx
xor    %eax,%eax
call   1070 <CSPL_Array_clip@plt>
movsd  (%rsp),%xmm0
lea    0x1a18(%rip),%rdi
movsd  0x1777(%rip),%xmm1
xor    %esi,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x1769(%rip),%xmm0
andpd  0x18e1(%rip),%xmm0
movsd  0x16e1(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x8(%rsp),%xmm0
lea    0x19d3(%rip),%rdi
movsd  0x1732(%rip),%xmm1
mov    $0x1,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x8(%rsp),%xmm0
addsd  0x1720(%rip),%xmm0
andpd  0x1898(%rip),%xmm0
movsd  0x1698(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x10(%rsp),%xmm0
lea    0x198a(%rip),%rdi
movsd  0x16e9(%rip),%xmm1
mov    $0x2,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x10(%rsp),%xmm0
addsd  0x16d7(%rip),%xmm0
andpd  0x184f(%rip),%xmm0
movsd  0x164f(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x18(%rsp),%xmm0
lea    0x1941(%rip),%rdi
movsd  0x16a0(%rip),%xmm1
mov    $0x3,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x18(%rsp),%xmm0
addsd  0x168e(%rip),%xmm0
andpd  0x1806(%rip),%xmm0
movsd  0x1606(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x20(%rsp),%xmm0
lea    0x18f8(%rip),%rdi
movsd  0x1657(%rip),%xmm1
mov    $0x4,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x20(%rsp),%xmm0
addsd  0x1645(%rip),%xmm0
andpd  0x17bd(%rip),%xmm0
movsd  0x15bd(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movaps 0x17b4(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x17b9(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
mov    %rbx,0x20(%rsp)
mov    %rsp,%rsi
xor    %edi,%edi
xor    %edx,%edx
mov    $0x4,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x1898(%rip),%rdi
xor    %esi,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x1551(%rip),%xmm1
andpd  0x1749(%rip),%xmm1
movsd  0x1549(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
mov    %rsp,%rsi
mov    $0x1,%edi
xor    %edx,%edx
mov    $0x4,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x183d(%rip),%rdi
mov    $0x1,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x154b(%rip),%xmm1
andpd  0x16eb(%rip),%xmm1
movsd  0x14eb(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
mov    %rsp,%rsi
mov    $0x2,%edi
xor    %edx,%edx
mov    $0x4,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x17df(%rip),%rdi
mov    $0x2,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x14cd(%rip),%xmm1
andpd  0x168d(%rip),%xmm1
movsd  0x148d(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
mov    %rsp,%rsi
mov    $0x3,%edi
xor    %edx,%edx
mov    $0x4,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x1781(%rip),%rdi
mov    $0x3,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x147f(%rip),%xmm1
andpd  0x162f(%rip),%xmm1
movsd  0x142f(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
mov    %rsp,%rsi
mov    $0x4,%edi
xor    %edx,%edx
mov    $0x4,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x1723(%rip),%rdi
mov    $0x4,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x13e9(%rip),%xmm1
andpd  0x15d1(%rip),%xmm1
movsd  0x13d1(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
movaps 0x15c8(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x15cd(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
mov    %rbx,0x20(%rsp)
mov    %rsp,%rsi
xor    %edi,%edi
xor    %edx,%edx
mov    $0x3,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x16d7(%rip),%rdi
xor    %esi,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x1365(%rip),%xmm1
andpd  0x155d(%rip),%xmm1
movsd  0x135d(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
mov    %rsp,%rsi
mov    $0x1,%edi
xor    %edx,%edx
mov    $0x3,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x167c(%rip),%rdi
mov    $0x1,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x133f(%rip),%xmm1
andpd  0x14ff(%rip),%xmm1
movsd  0x12ff(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
mov    %rsp,%rsi
mov    $0x2,%edi
xor    %edx,%edx
mov    $0x3,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x161e(%rip),%rdi
mov    $0x2,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x12f1(%rip),%xmm1
andpd  0x14a1(%rip),%xmm1
movsd  0x12a1(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
mov    %rsp,%rsi
mov    $0x3,%edi
xor    %edx,%edx
mov    $0x3,%ecx
xor    %eax,%eax
call   1030 <CSPL_Array_quickselect@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd %xmm0,0x50(%rsp)
lea    0x15c0(%rip),%rdi
mov    $0x3,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movapd 0x50(%rsp),%xmm1
addsd  0x125b(%rip),%xmm1
andpd  0x1443(%rip),%xmm1
movsd  0x1243(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    2796 <main+0x1606>
movaps 0x145a(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x145f(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
movabs $0x4020000000000000,%rax
mov    %rax,0x20(%rsp)
lea    0x158a(%rip),%r14
movsd  0x1284(%rip),%xmm0
mov    %r14,%rdi
xor    %esi,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x8(%rsp),%xmm0
mov    $0x1,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x10(%rsp),%xmm0
mov    $0x2,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x18(%rsp),%xmm0
mov    $0x3,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x20(%rsp),%xmm0
mov    $0x4,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x1224(%rip),%xmm0
mov    %rsp,%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x1510(%rip),%rdi
movsd  0x1203(%rip),%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
test   %r14d,%r14d
jne    2796 <main+0x1606>
movsd  0x11f0(%rip),%xmm0
mov    %rsp,%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x14d4(%rip),%rdi
movsd  0x11cf(%rip),%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
cmp    $0x1,%r14d
jne    2796 <main+0x1606>
movsd  0x11bb(%rip),%xmm0
mov    %rsp,%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x1497(%rip),%rdi
movsd  0x119a(%rip),%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
cmp    $0x3,%r14d
jne    2796 <main+0x1606>
movsd  0x102e(%rip),%xmm0
mov    %rsp,%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x145a(%rip),%rdi
movsd  0x100d(%rip),%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
cmp    $0x3,%r14d
jne    2796 <main+0x1606>
movsd  0x1149(%rip),%xmm0
mov    %rsp,%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x141d(%rip),%rdi
movsd  0x1128(%rip),%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
cmp    $0x5,%r14d
jne    2796 <main+0x1606>
movaps 0x12b5(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0x12ba(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
movabs $0x4022000000000000,%rax
mov    %rax,0x20(%rsp)
lea    0x13c5(%rip),%r14
movsd  0x10bf(%rip),%xmm0
mov    %r14,%rdi
xor    %esi,%esi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x10a3(%rip),%xmm0
mov    $0x1,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x10bc(%rip),%xmm0
mov    $0x2,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0x10ad(%rip),%xmm0
mov    $0x3,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xf26(%rip),%xmm0
mov    $0x4,%esi
mov    %r14,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %rsp,%rdi
xorpd  %xmm0,%xmm0
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x1347(%rip),%rdi
xorpd  %xmm0,%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
test   %r14d,%r14d
jne    2796 <main+0x1606>
movsd  0xff3(%rip),%xmm0
mov    %rsp,%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x130f(%rip),%rdi
movsd  0xfd2(%rip),%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
cmp    $0x1,%r14d
jne    2796 <main+0x1606>
movsd  0xfd6(%rip),%xmm0
mov    %rsp,%rdi
mov    $0x5,%esi
mov    $0x1,%al
call   1080 <CSPL_Array_bisect@plt>
movslq %eax,%r14
lea    0x12d2(%rip),%rdi
movsd  0xfb5(%rip),%xmm0
mov    %r14,%rsi
mov    $0x1,%al
call   1050 <printf@plt>
cmp    $0x2,%r14d
jne    2796 <main+0x1606>
mov    %rsp,%rdi
movsd  0xfd6(%rip),%xmm0
movsd  0xfd6(%rip),%xmm1
mov    $0xa,%esi
mov    $0x2,%al
call   10a0 <CSPL_Array_linspace@plt>
movsd  (%rsp),%xmm0
lea    0x12b0(%rip),%rdi
xor    %esi,%esi
movsd  0xfac(%rip),%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xfa8(%rip),%xmm0
andpd  0x10d0(%rip),%xmm0
movsd  0xed0(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x8(%rsp),%xmm0
lea    0x126b(%rip),%rdi
movsd  0xf81(%rip),%xmm1
mov    $0x1,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x8(%rsp),%xmm0
addsd  0xf6f(%rip),%xmm0
andpd  0x1087(%rip),%xmm0
movsd  0xe87(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x10(%rsp),%xmm0
lea    0x1222(%rip),%rdi
movsd  0xf48(%rip),%xmm1
mov    $0x2,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x10(%rsp),%xmm0
addsd  0xf36(%rip),%xmm0
andpd  0x103e(%rip),%xmm0
movsd  0xe3e(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x18(%rsp),%xmm0
lea    0x11d9(%rip),%rdi
movsd  0xf0f(%rip),%xmm1
mov    $0x3,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x18(%rsp),%xmm0
addsd  0xefd(%rip),%xmm0
andpd  0xff5(%rip),%xmm0
movsd  0xdf5(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x20(%rsp),%xmm0
lea    0x1190(%rip),%rdi
movsd  0xed6(%rip),%xmm1
mov    $0x4,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x20(%rsp),%xmm0
addsd  0xec4(%rip),%xmm0
andpd  0xfac(%rip),%xmm0
movsd  0xdac(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x28(%rsp),%xmm0
lea    0x1147(%rip),%rdi
movsd  0xe9d(%rip),%xmm1
mov    $0x5,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x28(%rsp),%xmm0
addsd  0xe8b(%rip),%xmm0
andpd  0xf63(%rip),%xmm0
movsd  0xd63(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x30(%rsp),%xmm0
lea    0x10fe(%rip),%rdi
movsd  0xe64(%rip),%xmm1
mov    $0x6,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x30(%rsp),%xmm0
addsd  0xe52(%rip),%xmm0
andpd  0xf1a(%rip),%xmm0
movsd  0xd1a(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x38(%rsp),%xmm0
lea    0x10b5(%rip),%rdi
movsd  0xe2b(%rip),%xmm1
mov    $0x7,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x38(%rsp),%xmm0
addsd  0xe19(%rip),%xmm0
andpd  0xed1(%rip),%xmm0
movsd  0xcd1(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x40(%rsp),%xmm0
lea    0x106c(%rip),%rdi
movsd  0xdf2(%rip),%xmm1
mov    $0x8,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x40(%rsp),%xmm0
addsd  0xde0(%rip),%xmm0
andpd  0xe88(%rip),%xmm0
movsd  0xc88(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x48(%rsp),%xmm0
lea    0x1023(%rip),%rdi
movsd  0xd29(%rip),%xmm1
mov    $0x9,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x48(%rsp),%xmm0
addsd  0xd9f(%rip),%xmm0
andpd  0xe3f(%rip),%xmm0
movsd  0xc3f(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
mov    %rsp,%rdi
movsd  0xce2(%rip),%xmm0
movsd  0xce2(%rip),%xmm1
mov    $0xa,%esi
mov    $0x2,%al
call   1060 <CSPL_Array_logspace@plt>
movsd  (%rsp),%xmm0
lea    0xfe3(%rip),%rdi
xor    %esi,%esi
movsd  0xcb8(%rip),%xmm1
mov    $0x2,%al
call   1050 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xcb4(%rip),%xmm0
andpd  0xddc(%rip),%xmm0
mov    $0x1,%ebp
movsd  0xbd7(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x8(%rsp),%xmm0
lea    0xf99(%rip),%rdi
movsd  0xd10(%rip),%xmm1
mov    $0x1,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x8(%rsp),%xmm0
addsd  0xcfe(%rip),%xmm0
andpd  0xd8e(%rip),%xmm0
movsd  0xb8e(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x10(%rsp),%xmm0
lea    0xf50(%rip),%rdi
movsd  0xcd7(%rip),%xmm1
mov    $0x2,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x10(%rsp),%xmm0
addsd  0xcc5(%rip),%xmm0
andpd  0xd45(%rip),%xmm0
movsd  0xb45(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x18(%rsp),%xmm0
lea    0xf07(%rip),%rdi
movsd  0xc9e(%rip),%xmm1
mov    $0x3,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x18(%rsp),%xmm0
addsd  0xc8c(%rip),%xmm0
andpd  0xcfc(%rip),%xmm0
movsd  0xafc(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x20(%rsp),%xmm0
lea    0xebe(%rip),%rdi
movsd  0xc65(%rip),%xmm1
mov    $0x4,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x20(%rsp),%xmm0
addsd  0xc53(%rip),%xmm0
andpd  0xcb3(%rip),%xmm0
movsd  0xab3(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x28(%rsp),%xmm0
lea    0xe75(%rip),%rdi
movsd  0xc2c(%rip),%xmm1
mov    $0x5,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x28(%rsp),%xmm0
addsd  0xc1a(%rip),%xmm0
andpd  0xc6a(%rip),%xmm0
movsd  0xa6a(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x30(%rsp),%xmm0
lea    0xe2c(%rip),%rdi
movsd  0xbf3(%rip),%xmm1
mov    $0x6,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x30(%rsp),%xmm0
addsd  0xbe1(%rip),%xmm0
andpd  0xc21(%rip),%xmm0
movsd  0xa21(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x38(%rsp),%xmm0
lea    0xde3(%rip),%rdi
movsd  0xbba(%rip),%xmm1
mov    $0x7,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x38(%rsp),%xmm0
addsd  0xba8(%rip),%xmm0
andpd  0xbd8(%rip),%xmm0
movsd  0x9d8(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x40(%rsp),%xmm0
lea    0xd9a(%rip),%rdi
movsd  0xb81(%rip),%xmm1
mov    $0x8,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x40(%rsp),%xmm0
addsd  0xb6f(%rip),%xmm0
andpd  0xb8f(%rip),%xmm0
movsd  0x98f(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
movsd  0x48(%rsp),%xmm0
lea    0xd55(%rip),%rdi
movsd  0xa34(%rip),%xmm1
mov    $0x9,%esi
mov    $0x2,%al
call   1050 <printf@plt>
movsd  0x48(%rsp),%xmm0
addsd  0xaaa(%rip),%xmm0
andpd  0xb4a(%rip),%xmm0
movsd  0x94a(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    2796 <main+0x1606>
xor    %ebp,%ebp
mov    %ebp,%eax
add    $0x60,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [30 x i8] c"CSPL_Array_add[%ld]=%lf %lf\0A\00"
@.str.1 = [35 x i8] c"CSPL_Array_subtract[%ld]=%lf %lf\0A\00"
@.str.2 = [35 x i8] c"CSPL_Array_multiply[%ld]=%lf %lf\0A\00"
@.str.3 = [33 x i8] c"CSPL_Array_divide[%ld]=%lf %lf\0A\00"
@.str.4 = [28 x i8] c"CSPL_Array_range: %lf, %lf\0A\00"
@.str.5 = [31 x i8] c"CSPL_Array_clip[%ld]=%lf %lf\0A\00"
@.str.6 = [43 x i8] c"CSPL_Array_quickselect(%ld, d1, 0, 4)=%lf\0A\00"
@.str.7 = [43 x i8] c"CSPL_Array_quickselect(%ld, d1, 0, 3)=%lf\0A\00"
@.str.8 = [15 x i8] c"dat1[%ld]=%lf\0A\00"
@.str.9 = [37 x i8] c"CSPL_Array_bisect(%lf, dat1, 5)=%ld\0A\00"
@.str.10 = [39 x i8] c"CSPL_Array_linspace[%ld]=%lf -> %lf\0A\00"
@.str.12 = [39 x i8] c"CSPL_Array_logspace[%ld]=%lf -> %lf\0A\00"
define i32 @main() {
%1 = alloca [5 x double]
%2 = alloca [5 x double]
%3 = alloca [5 x double]
%4 = alloca [5 x double]
%5 = alloca [5 x double]
%6 = alloca [5 x double]
%7 = alloca [5 x double]
%8 = alloca [5 x double]
%9 = alloca [10 x double]
%10 = alloca [10 x double]
%11 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0), i64 0, double 6.500000e+00, double 6.500000e+00)
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0), i64 1, double 0x4016CCCCCCCCCCCC, double 5.700000e+00)
%13 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0), i64 2, double 9.000000e+00, double 9.000000e+00)
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0), i64 3, double 5.500000e+00, double 5.500000e+00)
%15 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0), i64 4, double 7.600000e+00, double 7.600000e+00)
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.1, i64 0, i64 0), i64 0, double -2.500000e+00, double -2.500000e+00)
%17 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.1, i64 0, i64 0), i64 1, double 1.100000e+00, double 1.100000e+00)
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.1, i64 0, i64 0), i64 2, double 0x4001999999999999, double 2.200000e+00)
%19 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.1, i64 0, i64 0), i64 3, double 3.500000e+00, double 3.500000e+00)
%20 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.1, i64 0, i64 0), i64 4, double -1.400000e+00, double -1.400000e+00)
%21 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.2, i64 0, i64 0), i64 0, double 9.000000e+00, double 9.000000e+00)
%22 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.2, i64 0, i64 0), i64 1, double 0x401F47AE147AE147, double 7.820000e+00)
%23 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.2, i64 0, i64 0), i64 2, double 1.904000e+01, double 1.904000e+01)
%24 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.2, i64 0, i64 0), i64 3, double 4.500000e+00, double 4.500000e+00)
%25 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.2, i64 0, i64 0), i64 4, double 0x402BE66666666667, double 1.395000e+01)
%26 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.3, i64 0, i64 0), i64 0, double 0x3FDC71C71C71C71C, double 4.444440e-01)
%27 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.3, i64 0, i64 0), i64 1, double 0x3FF7A6F4DE9BD37B, double 0x3FF7A6F5019F3C71)
%28 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.3, i64 0, i64 0), i64 2, double 0x3FFA5A5A5A5A5A5A, double 0x3FFA5A5A89B951C6)
%29 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.3, i64 0, i64 0), i64 3, double 4.500000e+00, double 4.500000e+00)
%30 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.3, i64 0, i64 0), i64 4, double 0x3FE60B60B60B60B6, double 6.888890e-01)
%31 = bitcast [5 x double]* %1 to i8*
%32 = getelementptr inbounds [5 x double], [5 x double]* %1, i64 0, i64 0
%33 = bitcast [5 x double]* %1 to <2 x double>*
store <2 x double> <double 2.000000e+00, double 3.400000e+00>, <2 x double>* %33
%34 = getelementptr inbounds [5 x double], [5 x double]* %1, i64 0, i64 2
%35 = bitcast double* %34 to <2 x double>*
store <2 x double> <double 5.600000e+00, double 4.500000e+00>, <2 x double>* %35
%36 = getelementptr inbounds [5 x double], [5 x double]* %1, i64 0, i64 4
store double 3.100000e+00, double* %36
%37 = call i32 (double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_min to i32 (double*, i32, ...)*)(double* %32, i32 5)
%38 = sitofp i32 %37 to double
%39 = fadd double %38, -2.000000e+00
%40 = call double @llvm.fabs.f64(double %39)
%41 = fcmp uge double %40, 1.000000e-05
br i1 %41, label %535, label %42
42: ; preds = %0
%43 = bitcast [5 x double]* %2 to i8*
%44 = getelementptr inbounds [5 x double], [5 x double]* %2, i64 0, i64 0
%45 = bitcast [5 x double]* %2 to <2 x double>*
store <2 x double> <double 2.000000e+00, double 3.400000e+00>, <2 x double>* %45
%46 = getelementptr inbounds [5 x double], [5 x double]* %2, i64 0, i64 2
%47 = bitcast double* %46 to <2 x double>*
store <2 x double> <double 5.600000e+00, double 4.500000e+00>, <2 x double>* %47
%48 = getelementptr inbounds [5 x double], [5 x double]* %2, i64 0, i64 4
store double 3.100000e+00, double* %48
%49 = call i32 (double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_max to i32 (double*, i32, ...)*)(double* %44, i32 5)
%50 = sitofp i32 %49 to double
%51 = fadd double %50, -5.600000e+00
%52 = call double @llvm.fabs.f64(double %51)
%53 = fcmp uge double %52, 1.000000e-05
br i1 %53, label %535, label %54
54: ; preds = %42
%55 = bitcast [5 x double]* %3 to i8*
%56 = getelementptr inbounds [5 x double], [5 x double]* %3, i64 0, i64 0
%57 = bitcast [5 x double]* %3 to <2 x double>*
store <2 x double> <double 2.000000e+00, double 3.400000e+00>, <2 x double>* %57
%58 = getelementptr inbounds [5 x double], [5 x double]* %3, i64 0, i64 2
%59 = bitcast double* %58 to <2 x double>*
store <2 x double> <double 5.600000e+00, double 4.500000e+00>, <2 x double>* %59
%60 = getelementptr inbounds [5 x double], [5 x double]* %3, i64 0, i64 4
store double 3.100000e+00, double* %60
%61 = call i32 (double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_range to i32 (double*, i32, ...)*)(double* %56, i32 5)
%62 = sitofp i32 %61 to double
%63 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.4, i64 0, i64 0), double %62, double 3.600000e+00)
%64 = fadd double %62, -3.600000e+00
%65 = call double @llvm.fabs.f64(double %64)
%66 = fcmp uge double %65, 1.000000e-05
br i1 %66, label %535, label %67
67: ; preds = %54
%68 = bitcast [5 x double]* %4 to i8*
%69 = getelementptr inbounds [5 x double], [5 x double]* %4, i64 0, i64 0
%70 = getelementptr inbounds [5 x double], [5 x double]* %4, i64 0, i64 1
%71 = bitcast [5 x double]* %4 to <2 x double>*
store <2 x double> <double 2.000000e+00, double 3.400000e+00>, <2 x double>* %71
%72 = getelementptr inbounds [5 x double], [5 x double]* %4, i64 0, i64 2
%73 = getelementptr inbounds [5 x double], [5 x double]* %4, i64 0, i64 3
%74 = bitcast double* %72 to <2 x double>*
store <2 x double> <double 5.600000e+00, double 4.500000e+00>, <2 x double>* %74
%75 = getelementptr inbounds [5 x double], [5 x double]* %4, i64 0, i64 4
store double 3.100000e+00, double* %75
%76 = call i32 (double*, i32, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_clip to i32 (double*, i32, i32, i32, ...)*)(double* %69, i32 0, i32 10, i32 5)
%77 = load double, double* %69
%78 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 0, double %77, double 2.000000e+00)
%79 = load double, double* %69
%80 = fadd double %79, -2.000000e+00
%81 = call double @llvm.fabs.f64(double %80)
%82 = fcmp uge double %81, 1.000000e-05
br i1 %82, label %232, label %83
83: ; preds = %67
%84 = load double, double* %70
%85 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 1, double %84, double 3.400000e+00)
%86 = load double, double* %70
%87 = fadd double %86, -3.400000e+00
%88 = call double @llvm.fabs.f64(double %87)
%89 = fcmp uge double %88, 1.000000e-05
br i1 %89, label %232, label %90
90: ; preds = %83
%91 = load double, double* %72
%92 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 2, double %91, double 5.600000e+00)
%93 = load double, double* %72
%94 = fadd double %93, -5.600000e+00
%95 = call double @llvm.fabs.f64(double %94)
%96 = fcmp uge double %95, 1.000000e-05
br i1 %96, label %232, label %97
97: ; preds = %90
%98 = load double, double* %73
%99 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 3, double %98, double 4.500000e+00)
%100 = load double, double* %73
%101 = fadd double %100, -4.500000e+00
%102 = call double @llvm.fabs.f64(double %101)
%103 = fcmp uge double %102, 1.000000e-05
br i1 %103, label %232, label %104
104: ; preds = %97
%105 = load double, double* %75
%106 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 4, double %105, double 3.100000e+00)
%107 = load double, double* %75
%108 = fadd double %107, -3.100000e+00
%109 = call double @llvm.fabs.f64(double %108)
%110 = fcmp uge double %109, 1.000000e-05
br i1 %110, label %232, label %111
111: ; preds = %104
%112 = call i32 (double*, i32, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_clip to i32 (double*, i32, i32, i32, ...)*)(double* %69, i32 3, i32 10, i32 5)
%113 = load double, double* %69
%114 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 0, double %113, double 3.000000e+00)
%115 = load double, double* %69
%116 = fadd double %115, -3.000000e+00
%117 = call double @llvm.fabs.f64(double %116)
%118 = fcmp uge double %117, 1.000000e-05
br i1 %118, label %232, label %119
119: ; preds = %111
%120 = load double, double* %70
%121 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 1, double %120, double 3.400000e+00)
%122 = load double, double* %70
%123 = fadd double %122, -3.400000e+00
%124 = call double @llvm.fabs.f64(double %123)
%125 = fcmp uge double %124, 1.000000e-05
br i1 %125, label %232, label %126
126: ; preds = %119
%127 = load double, double* %72
%128 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 2, double %127, double 5.600000e+00)
%129 = load double, double* %72
%130 = fadd double %129, -5.600000e+00
%131 = call double @llvm.fabs.f64(double %130)
%132 = fcmp uge double %131, 1.000000e-05
br i1 %132, label %232, label %133
133: ; preds = %126
%134 = load double, double* %73
%135 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 3, double %134, double 4.500000e+00)
%136 = load double, double* %73
%137 = fadd double %136, -4.500000e+00
%138 = call double @llvm.fabs.f64(double %137)
%139 = fcmp uge double %138, 1.000000e-05
br i1 %139, label %232, label %140
140: ; preds = %133
%141 = load double, double* %75
%142 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 4, double %141, double 3.100000e+00)
%143 = load double, double* %75
%144 = fadd double %143, -3.100000e+00
%145 = call double @llvm.fabs.f64(double %144)
%146 = fcmp uge double %145, 1.000000e-05
br i1 %146, label %232, label %147
147: ; preds = %140
%148 = call i32 (double*, i32, double, i32, ...) bitcast (i32 (...)* @CSPL_Array_clip to i32 (double*, i32, double, i32, ...)*)(double* %69, i32 3, double 5.500000e+00, i32 5)
%149 = load double, double* %69
%150 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 0, double %149, double 3.000000e+00)
%151 = load double, double* %69
%152 = fadd double %151, -3.000000e+00
%153 = call double @llvm.fabs.f64(double %152)
%154 = fcmp uge double %153, 1.000000e-05
br i1 %154, label %232, label %155
155: ; preds = %147
%156 = load double, double* %70
%157 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 1, double %156, double 3.400000e+00)
%158 = load double, double* %70
%159 = fadd double %158, -3.400000e+00
%160 = call double @llvm.fabs.f64(double %159)
%161 = fcmp uge double %160, 1.000000e-05
br i1 %161, label %232, label %162
162: ; preds = %155
%163 = load double, double* %72
%164 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 2, double %163, double 5.500000e+00)
%165 = load double, double* %72
%166 = fadd double %165, -5.500000e+00
%167 = call double @llvm.fabs.f64(double %166)
%168 = fcmp uge double %167, 1.000000e-05
br i1 %168, label %232, label %169
169: ; preds = %162
%170 = load double, double* %73
%171 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 3, double %170, double 4.500000e+00)
%172 = load double, double* %73
%173 = fadd double %172, -4.500000e+00
%174 = call double @llvm.fabs.f64(double %173)
%175 = fcmp uge double %174, 1.000000e-05
br i1 %175, label %232, label %176
176: ; preds = %169
%177 = load double, double* %75
%178 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 4, double %177, double 3.100000e+00)
%179 = load double, double* %75
%180 = fadd double %179, -3.100000e+00
%181 = call double @llvm.fabs.f64(double %180)
%182 = fcmp uge double %181, 1.000000e-05
br i1 %182, label %232, label %183
183: ; preds = %176
%184 = call i32 (double*, i32, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_clip to i32 (double*, i32, i32, i32, ...)*)(double* %69, i32 -10, i32 -4, i32 5)
%185 = load double, double* %69
%186 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 0, double %185, double -4.000000e+00)
%187 = load double, double* %69
%188 = fadd double %187, 4.000000e+00
%189 = call double @llvm.fabs.f64(double %188)
%190 = fcmp uge double %189, 1.000000e-05
br i1 %190, label %232, label %191
191: ; preds = %183
%192 = load double, double* %70
%193 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 1, double %192, double -4.000000e+00)
%194 = load double, double* %70
%195 = fadd double %194, 4.000000e+00
%196 = call double @llvm.fabs.f64(double %195)
%197 = fcmp uge double %196, 1.000000e-05
br i1 %197, label %232, label %198
198: ; preds = %191
%199 = load double, double* %72
%200 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 2, double %199, double -4.000000e+00)
%201 = load double, double* %72
%202 = fadd double %201, 4.000000e+00
%203 = call double @llvm.fabs.f64(double %202)
%204 = fcmp uge double %203, 1.000000e-05
br i1 %204, label %232, label %205
205: ; preds = %198
%206 = load double, double* %73
%207 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 3, double %206, double -4.000000e+00)
%208 = load double, double* %73
%209 = fadd double %208, 4.000000e+00
%210 = call double @llvm.fabs.f64(double %209)
%211 = fcmp uge double %210, 1.000000e-05
br i1 %211, label %232, label %212
212: ; preds = %205
%213 = load double, double* %75
%214 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.5, i64 0, i64 0), i64 4, double %213, double -4.000000e+00)
%215 = load double, double* %75
%216 = fadd double %215, 4.000000e+00
%217 = call double @llvm.fabs.f64(double %216)
%218 = fcmp uge double %217, 1.000000e-05
br i1 %218, label %232, label %219
219: ; preds = %212
%220 = bitcast [5 x double]* %5 to i8*
%221 = getelementptr inbounds [5 x double], [5 x double]* %5, i64 0, i64 0
%222 = bitcast [5 x double]* %5 to <2 x double>*
store <2 x double> <double 5.600000e+00, double 3.400000e+00>, <2 x double>* %222
%223 = getelementptr inbounds [5 x double], [5 x double]* %5, i64 0, i64 2
%224 = bitcast double* %223 to <2 x double>*
store <2 x double> <double 2.000000e+00, double 4.500000e+00>, <2 x double>* %224
%225 = getelementptr inbounds [5 x double], [5 x double]* %5, i64 0, i64 4
store double 3.100000e+00, double* %225
%226 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 0, double* %221, i32 0, i32 4)
%227 = sitofp i32 %226 to double
%228 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.6, i64 0, i64 0), i64 0, double %227)
%229 = fadd double %227, -2.000000e+00
%230 = call double @llvm.fabs.f64(double %229)
%231 = fcmp uge double %230, 1.000000e-05
br i1 %231, label %274, label %233
232: ; preds = %67, %83, %90, %97, %104, %111, %119, %126, %133, %140, %147, %155, %162, %169, %176, %183, %191, %198, %205, %212
br label %535
233: ; preds = %219
%234 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 1, double* %221, i32 0, i32 4)
%235 = sitofp i32 %234 to double
%236 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.6, i64 0, i64 0), i64 1, double %235)
%237 = fadd double %235, -3.100000e+00
%238 = call double @llvm.fabs.f64(double %237)
%239 = fcmp uge double %238, 1.000000e-05
br i1 %239, label %274, label %240
240: ; preds = %233
%241 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 2, double* %221, i32 0, i32 4)
%242 = sitofp i32 %241 to double
%243 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.6, i64 0, i64 0), i64 2, double %242)
%244 = fadd double %242, -3.400000e+00
%245 = call double @llvm.fabs.f64(double %244)
%246 = fcmp uge double %245, 1.000000e-05
br i1 %246, label %274, label %247
247: ; preds = %240
%248 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 3, double* %221, i32 0, i32 4)
%249 = sitofp i32 %248 to double
%250 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.6, i64 0, i64 0), i64 3, double %249)
%251 = fadd double %249, -4.500000e+00
%252 = call double @llvm.fabs.f64(double %251)
%253 = fcmp uge double %252, 1.000000e-05
br i1 %253, label %274, label %254
254: ; preds = %247
%255 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 4, double* %221, i32 0, i32 4)
%256 = sitofp i32 %255 to double
%257 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.6, i64 0, i64 0), i64 4, double %256)
%258 = fadd double %256, -5.600000e+00
%259 = call double @llvm.fabs.f64(double %258)
%260 = fcmp uge double %259, 1.000000e-05
br i1 %260, label %274, label %261
261: ; preds = %254
%262 = bitcast [5 x double]* %6 to i8*
%263 = getelementptr inbounds [5 x double], [5 x double]* %6, i64 0, i64 0
%264 = bitcast [5 x double]* %6 to <2 x double>*
store <2 x double> <double 5.600000e+00, double 3.400000e+00>, <2 x double>* %264
%265 = getelementptr inbounds [5 x double], [5 x double]* %6, i64 0, i64 2
%266 = bitcast double* %265 to <2 x double>*
store <2 x double> <double 2.000000e+00, double 4.500000e+00>, <2 x double>* %266
%267 = getelementptr inbounds [5 x double], [5 x double]* %6, i64 0, i64 4
store double 3.100000e+00, double* %267
%268 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 0, double* %263, i32 0, i32 3)
%269 = sitofp i32 %268 to double
%270 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.7, i64 0, i64 0), i64 0, double %269)
%271 = fadd double %269, -2.000000e+00
%272 = call double @llvm.fabs.f64(double %271)
%273 = fcmp uge double %272, 1.000000e-05
br i1 %273, label %318, label %275
274: ; preds = %254, %247, %240, %233, %219
br label %535
275: ; preds = %261
%276 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 1, double* %263, i32 0, i32 3)
%277 = sitofp i32 %276 to double
%278 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.7, i64 0, i64 0), i64 1, double %277)
%279 = fadd double %277, -3.400000e+00
%280 = call double @llvm.fabs.f64(double %279)
%281 = fcmp uge double %280, 1.000000e-05
br i1 %281, label %318, label %282
282: ; preds = %275
%283 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 2, double* %263, i32 0, i32 3)
%284 = sitofp i32 %283 to double
%285 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.7, i64 0, i64 0), i64 2, double %284)
%286 = fadd double %284, -4.500000e+00
%287 = call double @llvm.fabs.f64(double %286)
%288 = fcmp uge double %287, 1.000000e-05
br i1 %288, label %318, label %289
289: ; preds = %282
%290 = call i32 (i64, double*, i32, i32, ...) bitcast (i32 (...)* @CSPL_Array_quickselect to i32 (i64, double*, i32, i32, ...)*)(i64 3, double* %263, i32 0, i32 3)
%291 = sitofp i32 %290 to double
%292 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.7, i64 0, i64 0), i64 3, double %291)
%293 = fadd double %291, -5.600000e+00
%294 = call double @llvm.fabs.f64(double %293)
%295 = fcmp uge double %294, 1.000000e-05
br i1 %295, label %318, label %296
296: ; preds = %289
%297 = bitcast [5 x double]* %7 to i8*
%298 = getelementptr inbounds [5 x double], [5 x double]* %7, i64 0, i64 0
%299 = getelementptr inbounds [5 x double], [5 x double]* %7, i64 0, i64 1
%300 = bitcast [5 x double]* %7 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 2.000000e+00>, <2 x double>* %300
%301 = getelementptr inbounds [5 x double], [5 x double]* %7, i64 0, i64 2
%302 = getelementptr inbounds [5 x double], [5 x double]* %7, i64 0, i64 3
%303 = bitcast double* %301 to <2 x double>*
store <2 x double> <double 5.000000e+00, double 7.000000e+00>, <2 x double>* %303
%304 = getelementptr inbounds [5 x double], [5 x double]* %7, i64 0, i64 4
store double 8.000000e+00, double* %304
%305 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 0, double 1.000000e+00)
%306 = load double, double* %299
%307 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 1, double %306)
%308 = load double, double* %301
%309 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 2, double %308)
%310 = load double, double* %302
%311 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 3, double %310)
%312 = load double, double* %304
%313 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 4, double %312)
%314 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double -1.000000e+00, double* %298, i32 5)
%315 = sext i32 %314 to i64
%316 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double -1.000000e+00, i64 %315)
%317 = icmp eq i32 %314, 0
br i1 %317, label %319, label %339
318: ; preds = %289, %282, %275, %261
br label %535
319: ; preds = %296
%320 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double 1.500000e+00, double* %298, i32 5)
%321 = sext i32 %320 to i64
%322 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double 1.500000e+00, i64 %321)
%323 = icmp eq i32 %320, 1
br i1 %323, label %324, label %339
324: ; preds = %319
%325 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double 5.000000e+00, double* %298, i32 5)
%326 = sext i32 %325 to i64
%327 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double 5.000000e+00, i64 %326)
%328 = icmp eq i32 %325, 3
br i1 %328, label %329, label %339
329: ; preds = %324
%330 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double 5.500000e+00, double* %298, i32 5)
%331 = sext i32 %330 to i64
%332 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double 5.500000e+00, i64 %331)
%333 = icmp eq i32 %330, 3
br i1 %333, label %334, label %339
334: ; preds = %329
%335 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double 8.500000e+00, double* %298, i32 5)
%336 = sext i32 %335 to i64
%337 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double 8.500000e+00, i64 %336)
%338 = icmp eq i32 %335, 5
br i1 %338, label %340, label %339
339: ; preds = %296, %319, %324, %329, %334
br label %535
340: ; preds = %334
%341 = bitcast [5 x double]* %8 to i8*
%342 = getelementptr inbounds [5 x double], [5 x double]* %8, i64 0, i64 0
%343 = bitcast [5 x double]* %8 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 4.000000e+00>, <2 x double>* %343
%344 = getelementptr inbounds [5 x double], [5 x double]* %8, i64 0, i64 2
%345 = bitcast double* %344 to <2 x double>*
store <2 x double> <double 7.000000e+00, double 8.000000e+00>, <2 x double>* %345
%346 = getelementptr inbounds [5 x double], [5 x double]* %8, i64 0, i64 4
store double 9.000000e+00, double* %346
%347 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 0, double 1.000000e+00)
%348 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 1, double 4.000000e+00)
%349 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 2, double 7.000000e+00)
%350 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 3, double 8.000000e+00)
%351 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), i64 4, double 9.000000e+00)
%352 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double 0.000000e+00, double* %342, i32 5)
%353 = sext i32 %352 to i64
%354 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double 0.000000e+00, i64 %353)
%355 = icmp eq i32 %352, 0
br i1 %355, label %356, label %366
356: ; preds = %340
%357 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double 3.000000e+00, double* %342, i32 5)
%358 = sext i32 %357 to i64
%359 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double 3.000000e+00, i64 %358)
%360 = icmp eq i32 %357, 1
br i1 %360, label %361, label %366
361: ; preds = %356
%362 = call i32 (double, double*, i32, ...) bitcast (i32 (...)* @CSPL_Array_bisect to i32 (double, double*, i32, ...)*)(double 4.000000e+00, double* %342, i32 5)
%363 = sext i32 %362 to i64
%364 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.9, i64 0, i64 0), double 4.000000e+00, i64 %363)
%365 = icmp eq i32 %362, 2
br i1 %365, label %367, label %366
366: ; preds = %340, %356, %361
br label %535
367: ; preds = %361
%368 = bitcast [10 x double]* %9 to i8*
%369 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 0
%370 = call i32 (double*, double, double, i32, ...) bitcast (i32 (...)* @CSPL_Array_linspace to i32 (double*, double, double, i32, ...)*)(double* %369, double 1.230000e+01, double 3.420000e+01, i32 10)
%371 = load double, double* %369
%372 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 0, double %371, double 1.230000e+01)
%373 = load double, double* %369
%374 = fadd double %373, -1.230000e+01
%375 = call double @llvm.fabs.f64(double %374)
%376 = fcmp uge double %375, 1.000000e-05
br i1 %376, label %459, label %377
377: ; preds = %367
%378 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 1
%379 = load double, double* %378
%380 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 1, double %379, double 0x402D7777775AD564)
%381 = load double, double* %378
%382 = fadd double %381, 0xC02D7777775AD564
%383 = call double @llvm.fabs.f64(double %382)
%384 = fcmp uge double %383, 1.000000e-05
br i1 %384, label %459, label %385
385: ; preds = %377
%386 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 2
%387 = load double, double* %386
%388 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 2, double %387, double 0x40312AAAAAB8FBB5)
%389 = load double, double* %386
%390 = fadd double %389, 0xC0312AAAAAB8FBB5
%391 = call double @llvm.fabs.f64(double %390)
%392 = fcmp uge double %391, 1.000000e-05
br i1 %392, label %459, label %393
393: ; preds = %385
%394 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 3
%395 = load double, double* %394
%396 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 3, double %395, double 1.960000e+01)
%397 = load double, double* %394
%398 = fadd double %397, -1.960000e+01
%399 = call double @llvm.fabs.f64(double %398)
%400 = fcmp uge double %399, 1.000000e-05
br i1 %400, label %459, label %401
401: ; preds = %393
%402 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 4
%403 = load double, double* %402
%404 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 4, double %403, double 0x40360888887A377F)
%405 = load double, double* %402
%406 = fadd double %405, 0xC0360888887A377F
%407 = call double @llvm.fabs.f64(double %406)
%408 = fcmp uge double %407, 1.000000e-05
br i1 %408, label %459, label %409
409: ; preds = %401
%410 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 5
%411 = load double, double* %410
%412 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 5, double %411, double 0x403877777785C881)
%413 = load double, double* %410
%414 = fadd double %413, 0xC03877777785C881
%415 = call double @llvm.fabs.f64(double %414)
%416 = fcmp uge double %415, 1.000000e-05
br i1 %416, label %459, label %417
417: ; preds = %409
%418 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 6
%419 = load double, double* %418
%420 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 6, double %419, double 2.690000e+01)
%421 = load double, double* %418
%422 = fadd double %421, -2.690000e+01
%423 = call double @llvm.fabs.f64(double %422)
%424 = fcmp uge double %423, 1.000000e-05
br i1 %424, label %459, label %425
425: ; preds = %417
%426 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 7
%427 = load double, double* %426
%428 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 7, double %427, double 0x403D55555547044B)
%429 = load double, double* %426
%430 = fadd double %429, 0xC03D55555547044B
%431 = call double @llvm.fabs.f64(double %430)
%432 = fcmp uge double %431, 1.000000e-05
br i1 %432, label %459, label %433
433: ; preds = %425
%434 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 8
%435 = load double, double* %434
%436 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 8, double %435, double 0x403FC4444452954E)
%437 = load double, double* %434
%438 = fadd double %437, 0xC03FC4444452954E
%439 = call double @llvm.fabs.f64(double %438)
%440 = fcmp uge double %439, 1.000000e-05
br i1 %440, label %459, label %441
441: ; preds = %433
%442 = getelementptr inbounds [10 x double], [10 x double]* %9, i64 0, i64 9
%443 = load double, double* %442
%444 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0), i64 9, double %443, double 3.420000e+01)
%445 = load double, double* %442
%446 = fadd double %445, -3.420000e+01
%447 = call double @llvm.fabs.f64(double %446)
%448 = fcmp uge double %447, 1.000000e-05
br i1 %448, label %459, label %449
449: ; preds = %441
%450 = bitcast [10 x double]* %10 to i8*
%451 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 0
%452 = call i32 (double*, double, double, i32, ...) bitcast (i32 (...)* @CSPL_Array_logspace to i32 (double*, double, double, i32, ...)*)(double* %451, double 1.230000e+01, double 3.420000e+01, i32 10)
%453 = load double, double* %451
%454 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 0, double %453, double 1.230000e+01)
%455 = load double, double* %451
%456 = fadd double %455, -1.230000e+01
%457 = call double @llvm.fabs.f64(double %456)
%458 = fcmp uge double %457, 1.000000e-05
br i1 %458, label %533, label %460
459: ; preds = %441, %433, %425, %417, %409, %401, %393, %385, %377, %367
br label %535
460: ; preds = %449
%461 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 1
%462 = load double, double* %461
%463 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 1, double %462, double 0x402B8F6744B2B778)
%464 = load double, double* %461
%465 = fadd double %464, 0xC02B8F6744B2B778
%466 = call double @llvm.fabs.f64(double %465)
%467 = fcmp uge double %466, 1.000000e-05
br i1 %467, label %533, label %468
468: ; preds = %460
%469 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 2
%470 = load double, double* %469
%471 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 2, double %470, double 0x402EE065152D8EAF)
%472 = load double, double* %469
%473 = fadd double %472, 0xC02EE065152D8EAF
%474 = call double @llvm.fabs.f64(double %473)
%475 = fcmp uge double %474, 1.000000e-05
br i1 %475, label %533, label %476
476: ; preds = %468
%477 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 3
%478 = load double, double* %477
%479 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 3, double %478, double 0x40314BC60BE86B8F)
%480 = load double, double* %477
%481 = fadd double %480, 0xC0314BC60BE86B8F
%482 = call double @llvm.fabs.f64(double %481)
%483 = fcmp uge double %482, 1.000000e-05
br i1 %483, label %533, label %484
484: ; preds = %476
%485 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 4
%486 = load double, double* %485
%487 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 4, double %486, double 0x40336093AEF3F3D8)
%488 = load double, double* %485
%489 = fadd double %488, 0xC0336093AEF3F3D8
%490 = call double @llvm.fabs.f64(double %489)
%491 = fcmp uge double %490, 1.000000e-05
br i1 %491, label %533, label %492
492: ; preds = %484
%493 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 5
%494 = load double, double* %493
%495 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 5, double %494, double 0x4035B57E557074DD)
%496 = load double, double* %493
%497 = fadd double %496, 0xC035B57E557074DD
%498 = call double @llvm.fabs.f64(double %497)
%499 = fcmp uge double %498, 1.000000e-05
br i1 %499, label %533, label %500
500: ; preds = %492
%501 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 6
%502 = load double, double* %501
%503 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 6, double %502, double 0x4038523D0269E7A5)
%504 = load double, double* %501
%505 = fadd double %504, 0xC038523D0269E7A5
%506 = call double @llvm.fabs.f64(double %505)
%507 = fcmp uge double %506, 1.000000e-05
br i1 %507, label %533, label %508
508: ; preds = %500
%509 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 7
%510 = load double, double* %509
%511 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 7, double %510, double 0x403B3F746150D2D6)
%512 = load double, double* %509
%513 = fadd double %512, 0xC03B3F746150D2D6
%514 = call double @llvm.fabs.f64(double %513)
%515 = fcmp uge double %514, 1.000000e-05
br i1 %515, label %533, label %516
516: ; preds = %508
%517 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 8
%518 = load double, double* %517
%519 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 8, double %518, double 0x403E86D35EE2389A)
%520 = load double, double* %517
%521 = fadd double %520, 0xC03E86D35EE2389A
%522 = call double @llvm.fabs.f64(double %521)
%523 = fcmp uge double %522, 1.000000e-05
br i1 %523, label %533, label %524
524: ; preds = %516
%525 = getelementptr inbounds [10 x double], [10 x double]* %10, i64 0, i64 9
%526 = load double, double* %525
%527 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.12, i64 0, i64 0), i64 9, double %526, double 3.420000e+01)
%528 = load double, double* %525
%529 = fadd double %528, -3.420000e+01
%530 = call double @llvm.fabs.f64(double %529)
%531 = fcmp uge double %530, 1.000000e-05
br i1 %531, label %533, label %532
532: ; preds = %524
br label %533
533: ; preds = %532, %524, %516, %508, %500, %492, %484, %476, %468, %460, %449
%534 = phi i32 [ 1, %449 ], [ 1, %460 ], [ 1, %468 ], [ 1, %476 ], [ 1, %484 ], [ 1, %492 ], [ 1, %500 ], [ 1, %508 ], [ 1, %516 ], [ 1, %524 ], [ 0, %532 ]
br label %535
535: ; preds = %459, %366, %339, %318, %274, %232, %533, %54, %42, %0
%536 = phi i32 [ 1, %0 ], [ 1, %42 ], [ 1, %54 ], [ 1, %274 ], [ 1, %318 ], [ 1, %459 ], [ %534, %533 ], [ 1, %232 ], [ 1, %339 ], [ 1, %366 ]
ret i32 %536
}