user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  lea    D738(%rip),%r13
  push   %r12
  push   %rbp
  push   %rbx
  xor    %ebx,%ebx
  sub    $0x158,%rsp
  movapd D915(%rip),%xmm0
  movapd D1226(%rip),%xmm1
  mov    %fs:0x28,%rax
  mov    %rax,0x148(%rsp)
  xor    %eax,%eax
  movapd D523(%rip),%xmm2
  lea    0xa0(%rsp),%r12
  lea    0xf0(%rsp),%rbp
  movaps %xmm0,0xa0(%rsp)
  movsd  D1016(%rip),%xmm0
  movaps %xmm1,0xb0(%rsp)
  movsd  %xmm0,0xc0(%rsp)
  movaps %xmm2,0xf0(%rsp)
  movaps %xmm1,0x100(%rsp)
  movsd  %xmm0,0x110(%rsp)
L155:
  movsd  (%r12,%rbx,8),%xmm1
  movsd  0x0(%rbp,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D672(%rip),%xmm3
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm3
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L155
  movapd D122(%rip),%xmm1
  xor    %ebx,%ebx
  movapd D871(%rip),%xmm0
  lea    D172(%rip),%r13
  movaps %xmm1,0xa0(%rsp)
  movaps %xmm0,0xb0(%rsp)
  movsd  D1121(%rip),%xmm0
  movaps %xmm1,0xf0(%rsp)
  movapd D931(%rip),%xmm1
  movsd  %xmm0,0xc0(%rsp)
  movaps %xmm1,0x100(%rsp)
  movsd  %xmm0,0x110(%rsp)
L377:
  movsd  (%r12,%rbx,8),%xmm1
  movsd  0x0(%rbp,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D672(%rip),%xmm4
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm4
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L377
  mov    D37(%rip),%rax
  movapd D1169(%rip),%xmm0
  xor    %ebx,%ebx
  lea    D431(%rip),%r13
  movapd D1209(%rip),%xmm1
  mov    %rax,0xc0(%rsp)
  mov    D653(%rip),%rax
  movaps %xmm0,0xa0(%rsp)
  movapd D204(%rip),%xmm0
  mov    %rax,0x110(%rsp)
  movaps %xmm0,0xb0(%rsp)
  movaps %xmm1,0xf0(%rsp)
  movaps %xmm0,0x100(%rsp)
L324:
  movsd  (%r12,%rbx,8),%xmm1
  movsd  0x0(%rbp,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D672(%rip),%xmm5
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm5
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L324
  mov    D530(%rip),%rax
  xor    %ebx,%ebx
  movapd D162(%rip),%xmm0
  lea    D954(%rip),%r13
  movaps %xmm0,0xa0(%rsp)
  movapd D1168(%rip),%xmm0
  mov    %rax,0xc0(%rsp)
  mov    D467(%rip),%rax
  movaps %xmm0,0xb0(%rsp)
  movapd D897(%rip),%xmm0
  mov    %rax,0x110(%rsp)
  movaps %xmm0,0xf0(%rsp)
  movapd D696(%rip),%xmm0
  movaps %xmm0,0x100(%rsp)
L228:
  movsd  (%r12,%rbx,8),%xmm1
  movsd  0x0(%rbp,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D672(%rip),%xmm6
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm6
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L228
  movapd D442(%rip),%xmm7
  mov    D961(%rip),%rax
  mov    $0x5,%esi
  mov    %rbp,%rdi
  movaps %xmm7,0xf0(%rsp)
  movapd D1153(%rip),%xmm7
  mov    %rax,0x110(%rsp)
  xor    %eax,%eax
  movaps %xmm7,0x100(%rsp)
  call   <CSPL_Array_min@plt>
  pxor   %xmm0,%xmm0
  movsd  D672(%rip),%xmm7
  cvtsi2sd %eax,%xmm0
  subsd  D442(%rip),%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm7
  ja     L141
  nopl   0x0(%rax)
L37:
  mov    $0x1,%eax
L14:
  mov    0x148(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L158
  add    $0x158,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L141:
  mov    D961(%rip),%rax
  movapd D442(%rip),%xmm2
  mov    $0x5,%esi
  mov    %rbp,%rdi
  movapd D1153(%rip),%xmm7
  mov    %rax,0x110(%rsp)
  xor    %eax,%eax
  movaps %xmm2,0xf0(%rsp)
  movaps %xmm7,0x100(%rsp)
  call   <CSPL_Array_max@plt>
  pxor   %xmm0,%xmm0
  movsd  D672(%rip),%xmm2
  cvtsi2sd %eax,%xmm0
  subsd  D1153(%rip),%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L37
  movapd D442(%rip),%xmm2
  mov    D961(%rip),%rax
  mov    $0x5,%esi
  mov    %rbp,%rdi
  movaps %xmm2,0xf0(%rsp)
  movapd D1153(%rip),%xmm2
  mov    %rax,0x110(%rsp)
  xor    %eax,%eax
  movaps %xmm2,0x100(%rsp)
  call   <CSPL_Array_range@plt>
  pxor   %xmm0,%xmm0
  lea    D206(%rip),%rdi
  cvtsi2sd %eax,%xmm0
  mov    D689(%rip),%rax
  movq   %rax,%xmm1
  mov    $0x2,%eax
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  D672(%rip),%xmm7
  subsd  D689(%rip),%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm7
  jbe    L37
  mov    D961(%rip),%rax
  lea    0x10(%rsp),%r13
  xor    %esi,%esi
  xor    %ebx,%ebx
  movapd D1029(%rip),%xmm0
  movapd D1153(%rip),%xmm2
  mov    $0x5,%ecx
  mov    $0xa,%edx
  mov    %rax,0x30(%rsp)
  mov    %r13,%rdi
  movapd D442(%rip),%xmm7
  lea    0x40(%rsp),%r15
  movaps %xmm0,0x70(%rsp)
  lea    D607(%rip),%r14
  movaps %xmm0,0xa0(%rsp)
  movapd D116(%rip),%xmm0
  mov    %rax,0x60(%rsp)
  mov    %rax,0x90(%rsp)
  mov    %rax,0xc0(%rsp)
  mov    D660(%rip),%rax
  movaps %xmm0,0xb0(%rsp)
  movapd D660(%rip),%xmm0
  mov    %rax,0x110(%rsp)
  xor    %eax,%eax
  movaps %xmm7,0x10(%rsp)
  movaps %xmm2,0x20(%rsp)
  movaps %xmm7,0x40(%rsp)
  movaps %xmm2,0x50(%rsp)
  movaps %xmm2,0x80(%rsp)
  movaps %xmm0,0xf0(%rsp)
  movaps %xmm0,0x100(%rsp)
  call   <CSPL_Array_clip@plt>
L259:
  movsd  (%r15,%rbx,8),%xmm1
  movsd  0x0(%r13,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r14,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  0x0(%r13,%rbx,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D672(%rip),%xmm7
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm7
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L259
  mov    $0x5,%ecx
  mov    $0xa,%edx
  mov    %r13,%rdi
  xor    %eax,%eax
  mov    $0x3,%esi
  xor    %ebx,%ebx
  lea    0x70(%rsp),%r15
  call   <CSPL_Array_clip@plt>
L35:
  movsd  (%r15,%rbx,8),%xmm1
  movsd  0x0(%r13,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r14,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  0x0(%r13,%rbx,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D672(%rip),%xmm2
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L35
  mov    $0x5,%edx
  mov    $0x3,%esi
  mov    %r13,%rdi
  xor    %ebx,%ebx
  mov    D414(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_clip@plt>
L311:
  movsd  (%r12,%rbx,8),%xmm1
  movsd  0x0(%r13,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r14,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  0x0(%r13,%rbx,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D672(%rip),%xmm7
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm7
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L311
  mov    $0x5,%ecx
  mov    $0xfffffffc,%edx
  mov    %r13,%rdi
  xor    %eax,%eax
  mov    $0xfffffff6,%esi
  xor    %ebx,%ebx
  call   <CSPL_Array_clip@plt>
L264:
  movsd  0x0(%rbp,%rbx,8),%xmm1
  movsd  0x0(%r13,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r14,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  0x0(%r13,%rbx,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D672(%rip),%xmm2
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L264
  mov    D961(%rip),%rax
  movapd D443(%rip),%xmm0
  xor    %ebx,%ebx
  lea    D219(%rip),%r13
  movapd D1173(%rip),%xmm7
  movapd D8(%rip),%xmm2
  mov    %rax,0xc0(%rsp)
  mov    D1153(%rip),%rax
  movaps %xmm0,0xf0(%rsp)
  movapd D518(%rip),%xmm0
  mov    %rax,0x110(%rsp)
  movaps %xmm7,0xa0(%rsp)
  movaps %xmm2,0xb0(%rsp)
  movaps %xmm0,0x100(%rsp)
L111:
  xor    %edx,%edx
  mov    $0x4,%ecx
  mov    %r12,%rsi
  mov    %rbx,%rdi
  xor    %eax,%eax
  call   <CSPL_Array_quickselect@plt>
  pxor   %xmm0,%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  cvtsi2sd %eax,%xmm0
  mov    $0x1,%eax
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  D672(%rip),%xmm7
  subsd  0x0(%rbp,%rbx,8),%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm7
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x5,%rbx
  jne    L111
  mov    D961(%rip),%rax
  movapd D1173(%rip),%xmm7
  xor    %ebx,%ebx
  movq   $0x0,0x110(%rsp)
  movapd D8(%rip),%xmm2
  movapd D1154(%rip),%xmm0
  lea    D135(%rip),%r13
  movaps %xmm7,0xa0(%rsp)
  movapd D442(%rip),%xmm7
  mov    %rax,0xc0(%rsp)
  movaps %xmm2,0xb0(%rsp)
  movaps %xmm7,0xf0(%rsp)
  movaps %xmm0,0x100(%rsp)
L227:
  xor    %edx,%edx
  mov    $0x3,%ecx
  mov    %r12,%rsi
  mov    %rbx,%rdi
  xor    %eax,%eax
  call   <CSPL_Array_quickselect@plt>
  pxor   %xmm0,%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  cvtsi2sd %eax,%xmm0
  mov    $0x1,%eax
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  D672(%rip),%xmm2
  subsd  0x0(%rbp,%rbx,8),%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L37
  add    $0x1,%rbx
  cmp    $0x4,%rbx
  jne    L227
  mov    D1180(%rip),%rax
  xor    %ebx,%ebx
  movapd D692(%rip),%xmm0
  lea    D859(%rip),%r13
  movaps %xmm0,0xf0(%rsp)
  movapd D592(%rip),%xmm0
  mov    %rax,0x110(%rsp)
  movaps %xmm0,0x100(%rsp)
L349:
  movsd  0x0(%rbp,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  mov    $0x1,%eax
  add    $0x1,%rbx
  call   <printf@plt>
  cmp    $0x5,%rbx
  jne    L349
  movsd  D1087(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbp,%rdi
  mov    $0x1,%eax
  lea    D1062(%rip),%r14
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%rbx
  mov    D1087(%rip),%rax
  mov    %rbx,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  test   %rbx,%rbx
  jne    L37
  movsd  D946(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbp,%rdi
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D946(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  sub    $0x1,%r15
  jne    L37
  movsd  D592(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbp,%rdi
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D592(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x3,%r15
  jne    L37
  mov    D414(%rip),%rax
  mov    $0x5,%esi
  mov    %rbp,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D414(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x3,%r15
  jne    L37
  movsd  D1160(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbp,%rdi
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D1160(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x5,%r15
  jne    L37
  movapd D644(%rip),%xmm0
  mov    D1226(%rip),%rax
  movaps %xmm0,0xf0(%rsp)
  movapd D237(%rip),%xmm0
  mov    %rax,0x110(%rsp)
  movaps %xmm0,0x100(%rsp)
L55:
  movsd  0x0(%rbp,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  mov    $0x1,%eax
  add    $0x1,%rbx
  call   <printf@plt>
  cmp    $0x5,%rbx
  jne    L55
  mov    $0x5,%esi
  mov    %rbp,%rdi
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  pxor   %xmm0,%xmm0
  mov    %r14,%rdi
  movslq %eax,%rbx
  mov    $0x1,%eax
  mov    %rbx,%rsi
  call   <printf@plt>
  test   %rbx,%rbx
  jne    L37
  movsd  D1029(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbp,%rdi
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r13
  mov    D1029(%rip),%rax
  mov    %r13,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  sub    $0x1,%r13
  jne    L37
  movsd  D797(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbp,%rdi
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r13
  mov    D797(%rip),%rax
  mov    %r13,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x2,%r13
  jne    L37
  movapd D673(%rip),%xmm0
  mov    D589(%rip),%rax
  mov    %rbp,%rdi
  xor    %r13d,%r13d
  mov    $0xa,%esi
  lea    D1252(%rip),%r14
  movaps %xmm0,0xa0(%rsp)
  movapd D50(%rip),%xmm0
  movq   %rax,%xmm1
  mov    D673(%rip),%rax
  movaps %xmm0,0xb0(%rsp)
  movapd D1253(%rip),%xmm0
  movaps %xmm0,0xc0(%rsp)
  movapd D602(%rip),%xmm0
  movaps %xmm0,0xd0(%rsp)
  movapd D43(%rip),%xmm0
  movaps %xmm0,0xe0(%rsp)
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <CSPL_Array_linspace@plt>
L52:
  movsd  (%r12,%r13,8),%xmm1
  movsd  0x0(%rbp,%r13,8),%xmm0
  mov    %r13,%rsi
  mov    %r14,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  0x0(%rbp,%r13,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D672(%rip),%xmm6
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm6
  jbe    L37
  add    $0x1,%r13
  cmp    $0xa,%r13
  jne    L52
  movapd D94(%rip),%xmm0
  mov    D589(%rip),%rax
  mov    $0xa,%esi
  mov    %rbp,%rdi
  lea    D56(%rip),%r13
  movaps %xmm0,0xa0(%rsp)
  movapd D230(%rip),%xmm0
  movq   %rax,%xmm1
  mov    D673(%rip),%rax
  movaps %xmm0,0xb0(%rsp)
  movapd D226(%rip),%xmm0
  movaps %xmm0,0xc0(%rsp)
  movapd D101(%rip),%xmm0
  movaps %xmm0,0xd0(%rsp)
  movapd D91(%rip),%xmm0
  movaps %xmm0,0xe0(%rsp)
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <CSPL_Array_logspace@plt>
L240:
  movsd  (%r12,%rbx,8),%xmm1
  movsd  0x0(%rbp,%rbx,8),%xmm0
  mov    %rbx,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  0x0(%rbp,%rbx,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D672(%rip),%xmm2
  subsd  %xmm1,%xmm0
  andpd  D628(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L37
  add    $0x1,%rbx
  cmp    $0xa,%rbx
  jne    L240
  xor    %eax,%eax
  jmp    L14
L158:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_label: D738
datatype: string
name: disassemble_data
arguments: data_label: D915
datatype: f64[2]
name: disassemble_data
arguments: data_label: D1226
datatype: f64[2]
name: disassemble_data
arguments: data_label: D523
datatype: f64[2]
name: disassemble_data
arguments: data_label: D1016
datatype: f64
name: disassemble_data
arguments: data_label: D672
datatype: byte[8]
name: disassemble_data
arguments: data_label: D628
datatype: qword[2]
name: disassemble_data
arguments: data_label: D122
datatype: byte[16]
name: disassemble_data
arguments: data_label: D871
datatype: f64[2]
name: disassemble_data
arguments: data_label: D172
datatype: string
name: disassemble_data
arguments: data_label: D1121
datatype: byte[8]
name: disassemble_data
arguments: data_label: D931
datatype: byte[16]
name: disassemble_data
arguments: data_label: D37
datatype: f64
name: disassemble_data
arguments: data_label: D1169
datatype: f64[2]
name: disassemble_data
arguments: data_label: D431
datatype: string
name: disassemble_data
arguments: data_label: D1209
datatype: f64[2]
name: disassemble_data
arguments: data_label: D653
datatype: byte[8]
name: disassemble_data
arguments: data_label: D204
datatype: f64[2]
name: disassemble_data
arguments: data_label: D530
datatype: f64
name: disassemble_data
arguments: data_label: D162
datatype: f64[2]
name: disassemble_data
arguments: data_label: D954
datatype: string
name: disassemble_data
arguments: data_label: D1168
datatype: f64[2]
name: disassemble_data
arguments: data_label: D467
datatype: byte[8]
name: disassemble_data
arguments: data_label: D897
datatype: byte[16]
name: disassemble_data
arguments: data_label: D696
datatype: byte[16]
name: disassemble_data
arguments: data_label: D442
datatype: f64[2]
name: disassemble_data
arguments: data_label: D961
datatype: f64
name: disassemble_data
arguments: data_label: D1153
datatype: f64[2]
name: disassemble_data
arguments: data_label: D206
datatype: string
name: disassemble_data
arguments: data_label: D689
datatype: f64
name: disassemble_data
arguments: data_label: D1029
datatype: byte[16]
name: disassemble_data
arguments: data_label: D607
datatype: string
name: disassemble_data
arguments: data_label: D116
datatype: f64[2]
name: disassemble_data
arguments: data_label: D660
datatype: byte[16]
name: disassemble_data
arguments: data_label: D414
datatype: f64
name: disassemble_data
arguments: data_label: D443
datatype: f64[2]
name: disassemble_data
arguments: data_label: D219
datatype: string
name: disassemble_data
arguments: data_label: D1173
datatype: f64[2]
name: disassemble_data
arguments: data_label: D8
datatype: f64[2]
name: disassemble_data
arguments: data_label: D518
datatype: f64[2]
name: disassemble_data
arguments: data_label: D1154
datatype: f64[2]
name: disassemble_data
arguments: data_label: D135
datatype: string
name: disassemble_data
arguments: data_label: D1180
datatype: byte[8]
name: disassemble_data
arguments: data_label: D692
datatype: f64[2]
name: disassemble_data
arguments: data_label: D859
datatype: string
name: disassemble_data
arguments: data_label: D592
datatype: f64[2]
name: disassemble_data
arguments: data_label: D1087
datatype: byte[8]
name: disassemble_data
arguments: data_label: D1062
datatype: string
name: disassemble_data
arguments: data_label: D946
datatype: f64
name: disassemble_data
arguments: data_label: D1160
datatype: f64
name: disassemble_data
arguments: data_label: D644
datatype: f64[2]
name: disassemble_data
arguments: data_label: D237
datatype: byte[16]
name: disassemble_data
arguments: data_label: D797
datatype: f64
name: disassemble_data
arguments: data_label: D673
datatype: f64[2]
name: disassemble_data
arguments: data_label: D589
datatype: f64
name: disassemble_data
arguments: data_label: D1252
datatype: string
name: disassemble_data
arguments: data_label: D50
datatype: f64[2]
name: disassemble_data
arguments: data_label: D1253
datatype: f64[2]
name: disassemble_data
arguments: data_label: D602
datatype: f64[2]
name: disassemble_data
arguments: data_label: D43
datatype: f64[2]
name: disassemble_data
arguments: data_label: D94
datatype: f64[2]
name: disassemble_data
arguments: data_label: D56
datatype: string
name: disassemble_data
arguments: data_label: D230
datatype: f64[2]
name: disassemble_data
arguments: data_label: D226
datatype: f64[2]
name: disassemble_data
arguments: data_label: D101
datatype: f64[2]
name: disassemble_data
arguments: data_label: D91
datatype: f64[2]

tool: D738: CSPL_Array_add[%ld]=%lf  %lf


tool: {"D915": [6.5,5.7]}

tool: {"D1226": [9.0,5.5]}

tool: {"D523": [6.5,5.699999999999999]}

tool: D1016: 7.6

tool: {"D672": [0xf1,0x68,0xe3,0x88,0xb5,0xf8,0xe4,0x3e]}

tool: {"D628": [0x7fffffffffffffff,0x0000000000000000]}

tool: {"D122": [0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xc0,0x9a,0x99,0x99,0x99,0x99,0x99,0xf1,0x3f]}

tool: {"D871": [2.2,3.5]}

tool: D172: CSPL_Array_subtract[%ld]=%lf  %lf


tool: {"D1121": [0x66,0x66,0x66,0x66,0x66,0x66,0xf6,0xbf]}

tool: {"D931": [0x99,0x99,0x99,0x99,0x99,0x99,0x01,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x40]}

tool: D37: 13.95

tool: {"D1169": [9.0,7.82]}

tool: D431: CSPL_Array_multiply[%ld]=%lf  %lf


tool: {"D1209": [9.0,7.819999999999999]}

tool: {"D653": [0x67,0x66,0x66,0x66,0x66,0xe6,0x2b,0x40]}

tool: {"D204": [19.04,4.5]}

tool: D530: 0.688889

tool: {"D162": [0.444444,1.478261]}

tool: D954: CSPL_Array_divide[%ld]=%lf  %lf


tool: {"D1168": [1.647059,4.5]}

tool: {"D467": [0xb6,0x60,0x0b,0xb6,0x60,0x0b,0xe6,0x3f]}

tool: {"D897": [0x1c,0xc7,0x71,0x1c,0xc7,0x71,0xdc,0x3f,0x7b,0xd3,0x9b,0xde,0xf4,0xa6,0xf7,0x3f]}

tool: {"D696": [0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0xfa,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x40]}

tool: {"D442": [2.0,3.4]}

tool: D961: 3.1

tool: {"D1153": [5.6,4.5]}

tool: D206: CSPL_Array_range: %lf, %lf


tool: D689: 3.6

tool: {"D1029": [0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x33,0x33,0x33,0x33,0x33,0x33,0x0b,0x40]}

tool: D607: CSPL_Array_clip[%ld]=%lf  %lf


tool: {"D116": [5.5,4.5]}

tool: {"D660": [0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xc0]}

tool: D414: 5.5

tool: {"D443": [2.0,3.1]}

tool: D219: CSPL_Array_quickselect(%ld, d1, 0, 4)=%lf


tool: {"D1173": [5.6,3.4]}

tool: {"D8": [2.0,4.5]}

tool: {"D518": [3.4,4.5]}

tool: {"D1154": [4.5,5.6]}

tool: D135: CSPL_Array_quickselect(%ld, d1, 0, 3)=%lf


tool: {"D1180": [0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40]}

tool: {"D692": [1.0,2.0]}

tool: D859: dat1[%ld]=%lf


tool: {"D592": [5.0,7.0]}

tool: {"D1087": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xbf]}

tool: D1062: CSPL_Array_bisect(%lf, dat1, 5)=%ld


tool: D946: 1.5

tool: D1160: 8.5

tool: {"D644": [1.0,4.0]}

tool: {"D237": [0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40]}

tool: D797: 4

tool: {"D673": [12.3,14.73333333]}

tool: D589: 34.2

tool: D1252: CSPL_Array_linspace[%ld]=%lf  ->  %lf


tool: {"D50": [17.16666667,19.6]}

tool: {"D1253": [22.03333333,24.46666667]}

tool: {"D602": [26.9,29.33333333]}

tool: {"D43": [31.76666667,34.2]}

tool: {"D94": [12.3,13.78008475]}

tool: D56: CSPL_Array_logspace[%ld]=%lf  ->  %lf


tool: {"D230": [15.4382712,17.2959907]}

tool: {"D226": [19.37725347,21.70895895]}

tool: {"D101": [24.32124343,27.24786957]}

tool: {"D91": [30.52666276,34.2]}

assistant: ```c
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);
}
```