user: Translate the below assembly code into C programming language:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x9000(%rsp),%r11
L799:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L799
  sub    $0xc90,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    $0x0,%eax
  call   <check_offloading@plt>
  movl   $0x0,-0x9c90(%rbp)
  movl   $0x0,-0x9c8c(%rbp)
  jmp    L202
L2247:
  mov    -0x9c8c(%rbp),%eax
  cltq
  movsd  D714(%rip),%xmm0
  movsd  %xmm0,-0x5d10(%rbp,%rax,8)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x9c8c(%rbp),%xmm0
  mov    -0x9c8c(%rbp),%eax
  cltq
  movsd  %xmm0,-0x3e10(%rbp,%rax,8)
  mov    -0x9c8c(%rbp),%eax
  neg    %eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0x9c8c(%rbp),%eax
  cltq
  movsd  %xmm0,-0x1f10(%rbp,%rax,8)
  addl   $0x1,-0x9c8c(%rbp)
L202:
  cmpl   $0x3df,-0x9c8c(%rbp)
  jle    L2247
  movl   $0x0,-0x9c88(%rbp)
  jmp    L1988
L77:
  mov    -0x9c88(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c88(%rbp)
L1988:
  cmpl   $0x3df,-0x9c88(%rbp)
  jle    L77
  movl   $0x0,-0x9c84(%rbp)
  jmp    L1754
L2266:
  movl   $0x0,-0x9c80(%rbp)
  jmp    L1496
L1487:
  mov    -0x9c80(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c80(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c80(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c80(%rbp)
L1496:
  cmpl   $0x1ff,-0x9c80(%rbp)
  jle    L1487
  addl   $0x1,-0x9c84(%rbp)
L1754:
  cmpl   $0x0,-0x9c84(%rbp)
  jle    L2266
  movl   $0x0,-0x9c7c(%rbp)
  jmp    L2290
L853:
  mov    -0x9c7c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1763
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L221
L1763:
  mov    -0x9c7c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c7c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L221:
  addl   $0x1,-0x9c7c(%rbp)
L2290:
  cmpl   $0x1ff,-0x9c7c(%rbp)
  jle    L853
  cmpl   $0x0,-0x9c90(%rbp)
  je     L2051
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L852
L2051:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L852:
  movl   $0x0,-0x9c78(%rbp)
  jmp    L451
L617:
  mov    -0x9c78(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c78(%rbp)
L451:
  cmpl   $0x3df,-0x9c78(%rbp)
  jle    L617
  movl   $0x0,-0x9c74(%rbp)
  jmp    L1820
L478:
  movl   $0x0,-0x9c70(%rbp)
  jmp    L169
L2024:
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c70(%rbp)
L169:
  cmpl   $0x1f3,-0x9c70(%rbp)
  jle    L2024
  addl   $0x1,-0x9c74(%rbp)
L1820:
  cmpl   $0x0,-0x9c74(%rbp)
  jle    L478
  movl   $0x0,-0x9c6c(%rbp)
  jmp    L1258
L213:
  mov    -0x9c6c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1118
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L149
L1118:
  mov    -0x9c6c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c6c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L149:
  addl   $0x1,-0x9c6c(%rbp)
L1258:
  cmpl   $0x1f3,-0x9c6c(%rbp)
  jle    L213
  cmpl   $0x0,-0x9c90(%rbp)
  je     L2223
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1085
L2223:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1085:
  movl   $0x0,-0x9c68(%rbp)
  jmp    L2165
L1352:
  mov    -0x9c68(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c68(%rbp)
L2165:
  cmpl   $0x3df,-0x9c68(%rbp)
  jle    L1352
  movl   $0x0,-0x9c64(%rbp)
  jmp    L1382
L347:
  movl   $0x0,-0x9c60(%rbp)
  jmp    L1571
L1997:
  mov    -0x9c60(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c60(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c60(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c60(%rbp)
L1571:
  cmpl   $0x7a,-0x9c60(%rbp)
  jle    L1997
  addl   $0x1,-0x9c64(%rbp)
L1382:
  cmpl   $0x0,-0x9c64(%rbp)
  jle    L347
  movl   $0x0,-0x9c5c(%rbp)
  jmp    L1387
L797:
  mov    -0x9c5c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L234
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L2091
L234:
  mov    -0x9c5c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c5c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L2091:
  addl   $0x1,-0x9c5c(%rbp)
L1387:
  cmpl   $0x7a,-0x9c5c(%rbp)
  jle    L797
  cmpl   $0x0,-0x9c90(%rbp)
  je     L2235
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L76
L2235:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L76:
  movl   $0x0,-0x9c58(%rbp)
  jmp    L589
L1132:
  mov    -0x9c58(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c58(%rbp)
L589:
  cmpl   $0x3df,-0x9c58(%rbp)
  jle    L1132
  movl   $0x0,-0x9c54(%rbp)
  jmp    L2220
L1935:
  movl   $0x0,-0x9c50(%rbp)
  jmp    L2066
L1406:
  mov    -0x9c50(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c50(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c50(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c50(%rbp)
L2066:
  cmpl   $0x1ff,-0x9c50(%rbp)
  jle    L1406
  addl   $0x1,-0x9c54(%rbp)
L2220:
  cmpl   $0x0,-0x9c54(%rbp)
  jle    L1935
  movl   $0x0,-0x9c4c(%rbp)
  jmp    L186
L288:
  mov    -0x9c4c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L6
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L2030
L6:
  mov    -0x9c4c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c4c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L2030:
  addl   $0x1,-0x9c4c(%rbp)
L186:
  cmpl   $0x1ff,-0x9c4c(%rbp)
  jle    L288
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1148
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L348
L1148:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L348:
  movl   $0x0,-0x9c48(%rbp)
  jmp    L1544
L358:
  mov    -0x9c48(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c48(%rbp)
L1544:
  cmpl   $0x3df,-0x9c48(%rbp)
  jle    L358
  movl   $0x0,-0x9c44(%rbp)
  jmp    L935
L177:
  movl   $0x0,-0x9c40(%rbp)
  jmp    L647
L101:
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c40(%rbp)
L647:
  cmpl   $0x1ff,-0x9c40(%rbp)
  jle    L101
  addl   $0x1,-0x9c44(%rbp)
L935:
  cmpl   $0x0,-0x9c44(%rbp)
  jle    L177
  movl   $0x0,-0x9c3c(%rbp)
  jmp    L732
L547:
  mov    -0x9c3c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L779
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L362
L779:
  mov    -0x9c3c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c3c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L362:
  addl   $0x1,-0x9c3c(%rbp)
L732:
  cmpl   $0x1ff,-0x9c3c(%rbp)
  jle    L547
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1895
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2080
L1895:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L2080:
  movl   $0x0,-0x9c38(%rbp)
  jmp    L2001
L30:
  mov    -0x9c38(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c38(%rbp)
L2001:
  cmpl   $0x3df,-0x9c38(%rbp)
  jle    L30
  movl   $0xa,-0x9b54(%rbp)
  mov    $0x200,%eax
  cltd
  idivl  -0x9b54(%rbp)
  mov    %eax,-0x9b50(%rbp)
  movl   $0x0,-0x9c34(%rbp)
  jmp    L310
L1547:
  movl   $0x0,-0x9c30(%rbp)
  jmp    L1873
L1412:
  mov    -0x9c30(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c30(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c30(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c30(%rbp)
L1873:
  cmpl   $0x1ff,-0x9c30(%rbp)
  jle    L1412
  addl   $0x1,-0x9c34(%rbp)
L310:
  cmpl   $0x0,-0x9c34(%rbp)
  jle    L1547
  movl   $0x0,-0x9c2c(%rbp)
  jmp    L1219
L861:
  mov    -0x9c2c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1578
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1836
L1578:
  mov    -0x9c2c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c2c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1836:
  addl   $0x1,-0x9c2c(%rbp)
L1219:
  cmpl   $0x1ff,-0x9c2c(%rbp)
  jle    L861
  cmpl   $0x0,-0x9c90(%rbp)
  je     L475
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L230
L475:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L230:
  movl   $0x0,-0x9c28(%rbp)
  jmp    L766
L576:
  mov    -0x9c28(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c28(%rbp)
L766:
  cmpl   $0x3df,-0x9c28(%rbp)
  jle    L576
  movl   $0x0,-0x9c24(%rbp)
  jmp    L1106
L2311:
  movl   $0x0,-0x9c20(%rbp)
  jmp    L819
L427:
  mov    -0x9c20(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c20(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c20(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c20(%rbp)
L819:
  cmpl   $0x1f3,-0x9c20(%rbp)
  jle    L427
  addl   $0x1,-0x9c24(%rbp)
L1106:
  cmpl   $0x0,-0x9c24(%rbp)
  jle    L2311
  movl   $0x0,-0x9c1c(%rbp)
  jmp    L2014
L840:
  mov    -0x9c1c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L918
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L93
L918:
  mov    -0x9c1c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c1c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L93:
  addl   $0x1,-0x9c1c(%rbp)
L2014:
  cmpl   $0x1f3,-0x9c1c(%rbp)
  jle    L840
  cmpl   $0x0,-0x9c90(%rbp)
  je     L2054
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1546
L2054:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1546:
  movl   $0x0,-0x9c18(%rbp)
  jmp    L1828
L80:
  mov    -0x9c18(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c18(%rbp)
L1828:
  cmpl   $0x3df,-0x9c18(%rbp)
  jle    L80
  movl   $0x0,-0x9c14(%rbp)
  jmp    L1041
L1862:
  movl   $0x0,-0x9c10(%rbp)
  jmp    L168
L1381:
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c10(%rbp)
L168:
  cmpl   $0x1f3,-0x9c10(%rbp)
  jle    L1381
  addl   $0x1,-0x9c14(%rbp)
L1041:
  cmpl   $0x0,-0x9c14(%rbp)
  jle    L1862
  movl   $0x0,-0x9c0c(%rbp)
  jmp    L1424
L111:
  mov    -0x9c0c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1584
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L2304
L1584:
  mov    -0x9c0c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9c0c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L2304:
  addl   $0x1,-0x9c0c(%rbp)
L1424:
  cmpl   $0x1f3,-0x9c0c(%rbp)
  jle    L111
  cmpl   $0x0,-0x9c90(%rbp)
  je     L907
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L934
L907:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L934:
  movl   $0x0,-0x9c08(%rbp)
  jmp    L767
L2209:
  mov    -0x9c08(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c08(%rbp)
L767:
  cmpl   $0x3df,-0x9c08(%rbp)
  jle    L2209
  movl   $0xa,-0x9b54(%rbp)
  mov    $0x1f4,%eax
  cltd
  idivl  -0x9b54(%rbp)
  mov    %eax,-0x9b50(%rbp)
  movl   $0x0,-0x9c04(%rbp)
  jmp    L2291
L222:
  movl   $0x0,-0x9c00(%rbp)
  jmp    L1156
L1355:
  mov    -0x9c00(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c00(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c00(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c00(%rbp)
L1156:
  cmpl   $0x1f3,-0x9c00(%rbp)
  jle    L1355
  addl   $0x1,-0x9c04(%rbp)
L2291:
  cmpl   $0x0,-0x9c04(%rbp)
  jle    L222
  movl   $0x0,-0x9bfc(%rbp)
  jmp    L1119
L1198:
  mov    -0x9bfc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L428
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1386
L428:
  mov    -0x9bfc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9bfc(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1386:
  addl   $0x1,-0x9bfc(%rbp)
L1119:
  cmpl   $0x1f3,-0x9bfc(%rbp)
  jle    L1198
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1876
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L311
L1876:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L311:
  movl   $0x0,-0x9bf8(%rbp)
  jmp    L397
L1931:
  mov    -0x9bf8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bf8(%rbp)
L397:
  cmpl   $0x3df,-0x9bf8(%rbp)
  jle    L1931
  movl   $0x0,-0x9bf4(%rbp)
  jmp    L1742
L1874:
  movl   $0x0,-0x9bf0(%rbp)
  jmp    L919
L1702:
  mov    -0x9bf0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bf0(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bf0(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bf0(%rbp)
L919:
  cmpl   $0x7a,-0x9bf0(%rbp)
  jle    L1702
  addl   $0x1,-0x9bf4(%rbp)
L1742:
  cmpl   $0x0,-0x9bf4(%rbp)
  jle    L1874
  movl   $0x0,-0x9bec(%rbp)
  jmp    L265
L1675:
  mov    -0x9bec(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L104
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1683
L104:
  mov    -0x9bec(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9bec(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1683:
  addl   $0x1,-0x9bec(%rbp)
L265:
  cmpl   $0x7a,-0x9bec(%rbp)
  jle    L1675
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1887
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L734
L1887:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L734:
  movl   $0x0,-0x9be8(%rbp)
  jmp    L211
L1867:
  mov    -0x9be8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9be8(%rbp)
L211:
  cmpl   $0x3df,-0x9be8(%rbp)
  jle    L1867
  movl   $0x0,-0x9be4(%rbp)
  jmp    L719
L578:
  movl   $0x0,-0x9be0(%rbp)
  jmp    L1639
L965:
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9be0(%rbp)
L1639:
  cmpl   $0x7a,-0x9be0(%rbp)
  jle    L965
  addl   $0x1,-0x9be4(%rbp)
L719:
  cmpl   $0x0,-0x9be4(%rbp)
  jle    L578
  movl   $0x0,-0x9bdc(%rbp)
  jmp    L176
L1234:
  mov    -0x9bdc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L432
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L780
L432:
  mov    -0x9bdc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9bdc(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L780:
  addl   $0x1,-0x9bdc(%rbp)
L176:
  cmpl   $0x7a,-0x9bdc(%rbp)
  jle    L1234
  cmpl   $0x0,-0x9c90(%rbp)
  je     L831
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1704
L831:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1704:
  movl   $0x0,-0x9bd8(%rbp)
  jmp    L1489
L538:
  mov    -0x9bd8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bd8(%rbp)
L1489:
  cmpl   $0x3df,-0x9bd8(%rbp)
  jle    L538
  movl   $0xa,-0x9b54(%rbp)
  mov    $0x7b,%eax
  cltd
  idivl  -0x9b54(%rbp)
  mov    %eax,-0x9b50(%rbp)
  movl   $0x0,-0x9bd4(%rbp)
  jmp    L2026
L1541:
  movl   $0x0,-0x9bd0(%rbp)
  jmp    L1378
L196:
  mov    -0x9bd0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bd0(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bd0(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bd0(%rbp)
L1378:
  cmpl   $0x7a,-0x9bd0(%rbp)
  jle    L196
  addl   $0x1,-0x9bd4(%rbp)
L2026:
  cmpl   $0x0,-0x9bd4(%rbp)
  jle    L1541
  movl   $0x0,-0x9bcc(%rbp)
  jmp    L1481
L1146:
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L610
  movsd  D714(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L199
L610:
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D714(%rip),%rdx
  mov    -0x9bcc(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D895(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L199:
  addl   $0x1,-0x9bcc(%rbp)
L1481:
  cmpl   $0x7a,-0x9bcc(%rbp)
  jle    L1146
  cmpl   $0x0,-0x9c90(%rbp)
  je     L323
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L58
L323:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L58:
  movl   $0x0,-0x9bc8(%rbp)
  jmp    L1950
L254:
  mov    -0x9bc8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bc8(%rbp)
L1950:
  cmpl   $0x3df,-0x9bc8(%rbp)
  jle    L254
  movl   $0x0,-0x9bc4(%rbp)
  jmp    L1
L1842:
  mov    -0x9bc4(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bc4(%rbp)
L1:
  cmpl   $0x3df,-0x9bc4(%rbp)
  jle    L1842
  movsd  D129(%rip),%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  D366(%rip),%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  movl   $0x0,-0x9bc0(%rbp)
  jmp    L392
L2176:
  movl   $0x0,-0x9bbc(%rbp)
  jmp    L764
L289:
  movsd  D129(%rip),%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  D503(%rip),%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  addsd  -0x9b48(%rbp),%xmm0
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  addsd  -0x9b40(%rbp),%xmm0
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bbc(%rbp)
L764:
  cmpl   $0x3df,-0x9bbc(%rbp)
  jle    L289
  addl   $0x1,-0x9bc0(%rbp)
L392:
  cmpl   $0x0,-0x9bc0(%rbp)
  jle    L2176
  movl   $0x0,-0x9bb8(%rbp)
  jmp    L173
L183:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  ucomisd D129(%rip),%xmm0
  jp     L2199
  ucomisd D129(%rip),%xmm0
  je     L1619
L2199:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D129(%rip),%rdx
  mov    -0x9bb8(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1619:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  ucomisd D503(%rip),%xmm0
  jp     L970
  ucomisd D503(%rip),%xmm0
  je     L1848
L970:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  mov    D503(%rip),%rdx
  mov    -0x9bb8(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D191(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1848:
  addl   $0x1,-0x9bb8(%rbp)
L173:
  cmpl   $0x3df,-0x9bb8(%rbp)
  jle    L183
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1790
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L899
L1790:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L899:
  movl   $0x0,-0x9bb4(%rbp)
  jmp    L1272
L1786:
  mov    -0x9bb4(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bb4(%rbp)
L1272:
  cmpl   $0x3df,-0x9bb4(%rbp)
  jle    L1786
  movl   $0x0,-0x9bb0(%rbp)
  jmp    L673
L517:
  mov    -0x9bb0(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bb0(%rbp)
L673:
  cmpl   $0x3df,-0x9bb0(%rbp)
  jle    L517
  movsd  D129(%rip),%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  D366(%rip),%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  movl   $0x0,-0x9bac(%rbp)
  jmp    L530
L1728:
  movl   $0x0,-0x9ba8(%rbp)
  jmp    L1059
L2117:
  movsd  -0x9b48(%rbp),%xmm1
  movsd  D503(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  -0x9b40(%rbp),%xmm1
  movsd  D1060(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  addsd  -0x9b48(%rbp),%xmm0
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  addsd  -0x9b40(%rbp),%xmm0
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9ba8(%rbp)
L1059:
  cmpl   $0x7f,-0x9ba8(%rbp)
  jle    L2117
  addl   $0x1,-0x9bac(%rbp)
L530:
  cmpl   $0x0,-0x9bac(%rbp)
  jle    L1728
  movl   $0x0,-0x9ba4(%rbp)
  jmp    L1572
L1122:
  mov    -0x9ba4(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  jne    L612
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  ucomisd D533(%rip),%xmm0
  jp     L967
  ucomisd D533(%rip),%xmm0
  je     L693
L967:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D533(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L693:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  ucomisd D941(%rip),%xmm0
  jp     L146
  ucomisd D941(%rip),%xmm0
  je     L309
L146:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  mov    D941(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D191(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
  jmp    L309
L612:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  ucomisd D1145(%rip),%xmm0
  jp     L1074
  ucomisd D1145(%rip),%xmm0
  je     L84
L1074:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1145(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L84:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  ucomisd D482(%rip),%xmm0
  jp     L1101
  ucomisd D482(%rip),%xmm0
  je     L309
L1101:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  mov    D482(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D191(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L309:
  addl   $0x1,-0x9ba4(%rbp)
L1572:
  cmpl   $0x7f,-0x9ba4(%rbp)
  jle    L1122
  cmpl   $0x0,-0x9c90(%rbp)
  je     L297
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L187
L297:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L187:
  movl   $0xffffffff,-0x9ba0(%rbp)
  movl   $0x0,-0x9b9c(%rbp)
  jmp    L2076
L1260:
  mov    $0x0,%eax
  call   <omp_get_team_num@plt>
  mov    %eax,-0x9ba0(%rbp)
  addl   $0x1,-0x9b9c(%rbp)
L2076:
  mov    $0x0,%eax
  call   <omp_get_num_teams@plt>
  cmp    %eax,-0x9b9c(%rbp)
  jl     L1260
  cmpl   $0x9,-0x9ba0(%rbp)
  je     L2265
  mov    -0x9ba0(%rbp),%eax
  mov    $0x9,%edx
  mov    %eax,%esi
  lea    D830(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L2265:
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1691
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1297
L1691:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1297:
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b38(%rbp)
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b30(%rbp)
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b28(%rbp)
  movl   $0x0,-0x9b98(%rbp)
  jmp    L2188
L2171:
  movl   $0x0,-0x9b94(%rbp)
  jmp    L382
L17:
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b30(%rbp),%rax
  add    %rdx,%rax
  movsd  D714(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b28(%rbp),%rax
  add    %rdx,%rax
  movsd  D129(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b94(%rbp)
L382:
  cmpl   $0x3df,-0x9b94(%rbp)
  jle    L17
  addl   $0x1,-0x9b98(%rbp)
L2188:
  cmpl   $0x3df,-0x9b98(%rbp)
  jle    L2171
  movl   $0x0,-0x9b90(%rbp)
  jmp    L997
L414:
  movl   $0x0,-0x9b8c(%rbp)
  jmp    L2078
L1967:
  movl   $0x0,-0x9b88(%rbp)
  jmp    L1392
L1523:
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm2,%xmm0
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b88(%rbp)
L1392:
  cmpl   $0x3df,-0x9b88(%rbp)
  jle    L1523
  addl   $0x1,-0x9b8c(%rbp)
L2078:
  cmpl   $0x3df,-0x9b8c(%rbp)
  jle    L1967
  addl   $0x1,-0x9b90(%rbp)
L997:
  cmpl   $0x0,-0x9b90(%rbp)
  jle    L414
  movl   $0x0,-0x9b84(%rbp)
  jmp    L606
L804:
  movl   $0x0,-0x9b80(%rbp)
  jmp    L280
L2043:
  mov    -0x9b84(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  ucomisd D503(%rip),%xmm0
  jp     L927
  ucomisd D503(%rip),%xmm0
  je     L1921
L927:
  mov    -0x9b84(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    D503(%rip),%rcx
  mov    -0x9b80(%rbp),%edx
  mov    -0x9b84(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %eax,%esi
  lea    D821(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1921:
  addl   $0x1,-0x9b80(%rbp)
L280:
  cmpl   $0x3df,-0x9b80(%rbp)
  jle    L2043
  addl   $0x1,-0x9b84(%rbp)
L606:
  cmpl   $0x3df,-0x9b84(%rbp)
  jle    L804
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1189
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L495
L1189:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L495:
  movl   $0x7c,-0x9b4c(%rbp)
  mov    -0x9b4c(%rbp),%eax
  imul   %eax,%eax
  imul   -0x9b4c(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b20(%rbp)
  mov    -0x9b4c(%rbp),%eax
  imul   %eax,%eax
  imul   -0x9b4c(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b18(%rbp)
  movl   $0x0,-0x9b7c(%rbp)
  jmp    L1773
L2077:
  movl   $0x0,-0x9b78(%rbp)
  jmp    L561
L1484:
  movl   $0x0,-0x9b74(%rbp)
  jmp    L1894
L1446:
  mov    -0x9b7c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b78(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  D129(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9b7c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b78(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b18(%rbp),%rax
  add    %rdx,%rax
  movsd  D503(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b74(%rbp)
L1894:
  mov    -0x9b74(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L1446
  addl   $0x1,-0x9b78(%rbp)
L561:
  mov    -0x9b78(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L1484
  addl   $0x1,-0x9b7c(%rbp)
L1773:
  mov    -0x9b7c(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L2077
  movl   $0x0,-0x9b70(%rbp)
  jmp    L488
L702:
  movl   $0x0,-0x9b6c(%rbp)
  jmp    L62
L706:
  movl   $0x0,-0x9b68(%rbp)
  jmp    L46
L607:
  movl   $0x0,-0x9b64(%rbp)
  jmp    L1814
L1051:
  mov    -0x9b6c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b68(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9b6c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b68(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9b6c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b68(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b64(%rbp)
L1814:
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L1051
  addl   $0x1,-0x9b68(%rbp)
L46:
  mov    -0x9b68(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L607
  addl   $0x1,-0x9b6c(%rbp)
L62:
  mov    -0x9b6c(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L706
  addl   $0x1,-0x9b70(%rbp)
L488:
  cmpl   $0x0,-0x9b70(%rbp)
  jle    L702
  movl   $0x0,-0x9b60(%rbp)
  jmp    L47
L1558:
  movl   $0x0,-0x9b5c(%rbp)
  jmp    L916
L2006:
  movl   $0x0,-0x9b58(%rbp)
  jmp    L2154
L1399:
  mov    -0x9b60(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b5c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b58(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  ucomisd D533(%rip),%xmm0
  jp     L1749
  ucomisd D533(%rip),%xmm0
  je     L462
L1749:
  mov    -0x9b60(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b5c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b58(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    D503(%rip),%rcx
  mov    -0x9b5c(%rbp),%edx
  mov    -0x9b60(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %eax,%esi
  lea    D821(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L462:
  addl   $0x1,-0x9b58(%rbp)
L2154:
  mov    -0x9b58(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L1399
  addl   $0x1,-0x9b5c(%rbp)
L916:
  mov    -0x9b5c(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L2006
  addl   $0x1,-0x9b60(%rbp)
L47:
  mov    -0x9b60(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L1558
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1438
  lea    D743(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L599
L1438:
  lea    D972(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L599:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L1197
  call   <__stack_chk_fail@plt>
L1197:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D714
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D895
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D743
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D972
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D129
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D366
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D503
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D44
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D191
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D1060
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D533
type_infered: f32[2]
name: extract_symbolic_data
arguments: data_tag: D941
type_infered: f32[2]
name: extract_symbolic_data
arguments: data_tag: D1145
type_infered: f32[2]
name: extract_symbolic_data
arguments: data_tag: D482
type_infered: f32[2]
name: extract_symbolic_data
arguments: data_tag: D830
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D821
type_infered: string

tool: D714: 1

tool: D895: Error at %d, h = %lf, d = %lf


tool: D743: Failed

tool: D972: Succeeded

tool: D129: 2

tool: D366: 4

tool: D503: 3

tool: D44: Error at A[%d], h = %lf, d = %lf


tool: D191: Error at B[%d], h = %lf, d = %lf


tool: D1060: 7

tool: {"D533": [0.0,2.3125]}

tool: {"D941": [0.0,2.59375]}

tool: {"D1145": [0.0,2.5]}

tool: {"D482": [0.0,2.78125]}

tool: D830: lastpriv value is %d and should have been %d


tool: D821: Error at (%d,%d), h = %lf, d = %lf


assistant: ```c
int main(void) {
  check_offloading();
  double A[(992)], B[(992)], C[(992)], D[(992)], E[(992)];
  int fail = 0;
  {
    int i;
    for (i = 0; i < (992); i++) {
      {
        C[i] = 1;
        D[i] = i;
        E[i] = -i;
      }
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute simd
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute simd dist_schedule(static, 1)
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute simd dist_schedule(static, 512)
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  int ten = 10;
  int chunkSize = 512 / ten;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute simd dist_schedule(static, chunkSize)
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd dist_schedule(static, 1)
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd dist_schedule(static, 500)
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  ten = 10;
  chunkSize = 500 / ten;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd dist_schedule(static, chunkSize)
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd dist_schedule(static, 1)
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd dist_schedule(static, 123)
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  ten = 10;
  chunkSize = 123 / ten;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute simd dist_schedule(static, chunkSize)
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      B[i] = 0;
    }
  };
  double p = 2.0, q = 4.0;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
    {
#pragma omp distribute simd private(p, q)
      for (int i = 0; i < (992); i++) {
        p = 2;
        q = 3;
        A[i] += p;
        B[i] += q;
      }
    }
  }
  for (int i = 0; i < (992); i++) {
    if (A[i] != (1) * 2) {
      printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(1) * 2, A[i]);
      fail = 1;
    }
    if (B[i] != (1) * 3) {
      printf("Error at B[%d], h = %lf, d = %lf\n", i, (double)(1) * 3, B[i]);
      fail = 1;
    }
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      B[i] = 0;
    }
  };
  p = 2.0, q = 4.0;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(64)
    {
#pragma omp distribute simd firstprivate(p, q)
      for (int i = 0; i < 128; i++) {
        p += 3.0;
        q += 7.0;
        A[i] += p;
        B[i] += q;
      }
    }
  }
  for (int i = 0; i < 128; i++) {
    if (i % 2 == 0) {
      if (A[i] != (2.0 + 3.0) * (1)) {
        printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(2.0 + 3.0) * (1), A[i]);
        fail = 1;
      }
      if (B[i] != (4.0 + 7.0) * (1)) {
        printf("Error at B[%d], h = %lf, d = %lf\n", i, (double)(4.0 + 7.0) * (1), B[i]);
        fail = 1;
      }
    } else {
      if (A[i] != (2.0 + 3.0 * 2) * (1)) {
        printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(2.0 + 3.0 * 2) * (1), A[i]);
        fail = 1;
      }
      if (B[i] != (4.0 + 7.0 * 2) * (1)) {
        printf("Error at B[%d], h = %lf, d = %lf\n", i, (double)(4.0 + 7.0 * 2) * (1), B[i]);
        fail = 1;
      }
    }
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  int lastpriv = -1;
#pragma omp target map(tofrom : lastpriv)
#pragma omp teams num_teams(10)
#pragma omp distribute simd lastprivate(lastpriv)
  for (int i = 0; i < omp_get_num_teams(); i++)
    lastpriv = omp_get_team_num();
  if (lastpriv != 9) {
    printf("lastpriv value is %d and should have been %d\n", lastpriv, 9);
    fail = 1;
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  double *S = malloc((992) * (992) * sizeof(double));
  double *T = malloc((992) * (992) * sizeof(double));
  double *U = malloc((992) * (992) * sizeof(double));
  for (int i = 0; i < (992); i++)
    for (int j = 0; j < (992); j++) {
      S[i * (992) + j] = 0.0;
      T[i * (992) + j] = 1.0;
      U[i * (992) + j] = 2.0;
    }
  for (int t = 0; t < (1); t++) {
#pragma omp target map(tofrom : S[:N * N]), map(to : T[:N * N], U[:N * N])
#pragma omp teams num_teams(512)
#pragma omp distribute simd collapse(2)
    for (int i = 0; i < (992); i++)
      for (int j = 0; j < (992); j++)
        S[i * (992) + j] += T[i * (992) + j] + U[i * (992) + j];
  }
  for (int i = 0; i < (992); i++)
    for (int j = 0; j < (992); j++)
      if (S[i * (992) + j] != (1) * 3.0) {
        printf("Error at (%d,%d), h = %lf, d = %lf\n", i, j, (double)(1) * 3.0, S[i * (992) + j]);
        fail = 1;
      }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  int M = (992) / 8;
  double *V = malloc(M * M * M * sizeof(double));
  double *Z = malloc(M * M * M * sizeof(double));
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      for (int k = 0; k < M; k++) {
        V[i * M * M + j * M + k] = 2.0;
        Z[i * M * M + j * M + k] = 3.0;
      }
  for (int t = 0; t < (1); t++) {
#pragma omp target map(tofrom : V[:M * M * M]), map(to : Z[:M * M * M])
#pragma omp teams num_teams(512)
#pragma omp distribute simd collapse(3)
    for (int i = 0; i < M; i++)
      for (int j = 0; j < M; j++)
        for (int k = 0; k < M; k++)
          V[i * M * M + j * M + k] += Z[i * M * M + j * M + k];
  }
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      for (int k = 0; k < M; k++)
        if (V[i * M * M + j * M + k] != 2.0 + (1) * 3.0) {
          printf("Error at (%d,%d), h = %lf, d = %lf\n", i, j, (double)(1) * 3.0, V[i * M * M + j * M + k]);
          fail = 1;
        }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  return 0;
}
```