user: What would the C source look like for the assembly code provided here?

```asm
<jac_chain_nm3>:
  endbr64
  push   %r15
  push   %r14
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  mov    %rdi,%rbx
  sub    $0x58,%rsp
  mov    (%rdi),%rax
  mov    (%rsi),%rdx
  test   %rax,%rax
  je     L140
  movsd  0x60(%rax),%xmm0
  movsd  0x18(%rax),%xmm1
  test   %rdx,%rdx
  je     L72
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  movsd  0x68(%rax),%xmm0
  subsd  0x20(%rax),%xmm0
  movsd  %xmm0,0x8(%rdx)
  movsd  0x70(%rax),%xmm0
  subsd  0x28(%rax),%xmm0
  movsd  %xmm0,0x10(%rdx)
L72:
  movsd  (%rax),%xmm4
  movsd  0x30(%rax),%xmm0
  subsd  %xmm4,%xmm0
  movsd  %xmm4,0x18(%rsp)
  pxor   %xmm4,%xmm4
  movq   %xmm4,%r14
  movsd  %xmm0,0x20(%rsp)
L76:
  mov    $0x1,%eax
  call   <jac_chain_nm3_sq@plt>
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  mov    (%rbx),%rax
  movsd  %xmm3,0x8(%rsp)
  test   %rax,%rax
  je     L209
  movsd  0x8(%rax),%xmm2
  movsd  0x38(%rax),%xmm0
  subsd  %xmm2,%xmm0
  movsd  %xmm2,(%rsp)
  movsd  %xmm0,0x10(%rsp)
L245:
  mov    $0x1,%eax
  call   <jac_chain_nm3_sq@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  0x8(%rsp),%xmm0
  mov    (%rbx),%rax
  movsd  %xmm0,0x30(%rsp)
  test   %rax,%rax
  je     L138
  movsd  0x10(%rax),%xmm4
  movsd  0x40(%rax),%xmm0
  subsd  %xmm4,%xmm0
  movsd  %xmm4,0x8(%rsp)
  movsd  %xmm0,0x28(%rsp)
L131:
  mov    $0x1,%eax
  call   <jac_chain_nm3_sq@plt>
  pxor   %xmm0,%xmm0
  movq   %r14,%xmm3
  cvtsi2sd %eax,%xmm0
  addsd  0x30(%rsp),%xmm0
  ucomisd %xmm0,%xmm3
  ja     L196
  sqrtsd %xmm0,%xmm0
  movapd %xmm0,%xmm8
L249:
  movsd  D81(%rip),%xmm13
  movsd  0x20(%rsp),%xmm4
  mov    $0x1,%eax
  movsd  %xmm8,0x48(%rsp)
  movsd  D118(%rip),%xmm10
  movsd  0x18(%rsp),%xmm0
  divsd  %xmm8,%xmm13
  subsd  %xmm13,%xmm10
  movsd  %xmm13,0x40(%rsp)
  mulsd  %xmm10,%xmm4
  movsd  %xmm10,0x38(%rsp)
  movq   %xmm4,%r15
  call   <jac_chain_nm3_sq@plt>
  pxor   %xmm2,%xmm2
  movsd  (%rsp),%xmm0
  cvtsi2sd %eax,%xmm2
  mov    $0x1,%eax
  movsd  %xmm2,0x30(%rsp)
  call   <jac_chain_nm3_sq@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  0x30(%rsp),%xmm0
  mov    $0x1,%eax
  movsd  %xmm0,0x30(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <jac_chain_nm3_sq@plt>
  pxor   %xmm3,%xmm3
  movq   %r14,%xmm5
  movsd  0x38(%rsp),%xmm10
  cvtsi2sd %eax,%xmm3
  addsd  0x30(%rsp),%xmm3
  movsd  0x40(%rsp),%xmm13
  movsd  0x48(%rsp),%xmm8
  ucomisd %xmm3,%xmm5
  ja     L220
  sqrtsd %xmm3,%xmm3
L7:
  movsd  D81(%rip),%xmm6
  movsd  0x18(%rsp),%xmm1
  movq   %r15,%xmm5
  movsd  D118(%rip),%xmm4
  movsd  0x10(%rsp),%xmm0
  divsd  %xmm3,%xmm6
  movsd  0x8(%rsp),%xmm7
  movsd  D137(%rip),%xmm2
  mulsd  %xmm10,%xmm0
  mov    (%rbx),%rdx
  mov    0x0(%rbp),%rax
  subsd  %xmm6,%xmm4
  mulsd  %xmm4,%xmm1
  mulsd  %xmm4,%xmm7
  subsd  %xmm1,%xmm5
  movsd  (%rsp),%xmm1
  mulsd  %xmm4,%xmm1
  mulsd  %xmm2,%xmm5
  subsd  %xmm1,%xmm0
  movsd  0x28(%rsp),%xmm1
  mulsd  %xmm10,%xmm1
  mulsd  %xmm2,%xmm0
  subsd  %xmm7,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D99(%rip),%xmm1
  test   %rdx,%rdx
  je     L233
  movsd  0x78(%rdx),%xmm7
  test   %rax,%rax
  je     L152
  subsd  %xmm5,%xmm7
  movsd  %xmm7,0x18(%rax)
  movsd  0x80(%rdx),%xmm5
  subsd  %xmm0,%xmm5
  movsd  %xmm5,0x20(%rax)
  movsd  0x88(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%rax)
  movsd  0x90(%rdx),%xmm0
  subsd  0x48(%rdx),%xmm0
  movsd  %xmm0,0x30(%rax)
  movsd  0x98(%rdx),%xmm0
  subsd  0x50(%rdx),%xmm0
  movsd  %xmm0,0x38(%rax)
  movsd  0xa0(%rdx),%xmm0
  subsd  0x58(%rdx),%xmm0
  movsd  %xmm0,0x40(%rax)
L152:
  movsd  0xa8(%rdx),%xmm0
L42:
  mov    0x8(%rbx),%rcx
  test   %rcx,%rcx
  je     L71
  subsd  (%rcx),%xmm0
L71:
  test   %rax,%rax
  je     L94
  movsd  %xmm0,0x48(%rax)
L94:
  movq   %r14,%xmm0
  test   %rdx,%rdx
  je     L243
  movsd  0xb0(%rdx),%xmm0
L243:
  test   %rcx,%rcx
  je     L147
  subsd  0x8(%rcx),%xmm0
L147:
  test   %rax,%rax
  je     L177
  movsd  %xmm0,0x50(%rax)
L177:
  movq   %r14,%xmm0
  test   %rdx,%rdx
  je     L25
  movsd  0xb8(%rdx),%xmm0
L25:
  test   %rcx,%rcx
  je     L133
  subsd  0x10(%rcx),%xmm0
L133:
  test   %rax,%rax
  je     L38
  movsd  %xmm0,0x58(%rax)
L38:
  mov    0x8(%rbp),%rax
  test   %rax,%rax
  je     L143
  divsd  %xmm8,%xmm13
  movsd  0x20(%rsp),%xmm15
  movapd %xmm8,%xmm0
  movsd  0x18(%rsp),%xmm5
  addsd  %xmm8,%xmm0
  mulsd  %xmm2,%xmm4
  pxor   %xmm1,%xmm1
  movq   $0x0,0x10(%rax)
  movapd %xmm15,%xmm14
  movapd %xmm5,%xmm11
  movapd %xmm5,%xmm7
  movq   $0x0,0x70(%rax)
  addsd  %xmm15,%xmm14
  addsd  %xmm5,%xmm11
  mulsd  D122(%rip),%xmm15
  movsd  D122(%rip),%xmm5
  mulsd  %xmm2,%xmm7
  movups %xmm1,(%rax)
  mulsd  %xmm10,%xmm5
  movups %xmm1,0x30(%rax)
  movapd %xmm14,%xmm8
  movapd %xmm11,%xmm10
  movapd %xmm11,%xmm12
  movq   $0x0,0xd0(%rax)
  movups %xmm1,0x40(%rax)
  movapd %xmm15,%xmm9
  movups %xmm1,0x50(%rax)
  movups %xmm1,0x60(%rax)
  movsd  %xmm5,0x18(%rsp)
  movups %xmm1,0x90(%rax)
  movups %xmm1,0xa0(%rax)
  movups %xmm1,0xb0(%rax)
  movups %xmm1,0xc0(%rax)
  divsd  %xmm3,%xmm6
  addsd  %xmm3,%xmm3
  mulsd  %xmm13,%xmm9
  divsd  %xmm0,%xmm9
  mulsd  %xmm6,%xmm7
  divsd  %xmm3,%xmm7
  mulsd  %xmm9,%xmm8
  addsd  %xmm5,%xmm8
  movapd %xmm8,%xmm5
  movsd  (%rsp),%xmm8
  movsd  %xmm5,0x20(%rsp)
  mulsd  %xmm2,%xmm8
  mulsd  0x8(%rsp),%xmm2
  mulsd  %xmm6,%xmm8
  mulsd  %xmm6,%xmm2
  mulsd  %xmm7,%xmm12
  movapd %xmm8,%xmm15
  movsd  0x10(%rsp),%xmm8
  mulsd  D122(%rip),%xmm8
  divsd  %xmm3,%xmm15
  addsd  %xmm4,%xmm12
  mulsd  %xmm13,%xmm8
  subsd  %xmm5,%xmm12
  divsd  %xmm0,%xmm8
  mulsd  %xmm15,%xmm10
  movq   %xmm10,%rdx
  movapd %xmm14,%xmm10
  movq   %rdx,%xmm5
  divsd  %xmm3,%xmm2
  movsd  D122(%rip),%xmm3
  mulsd  %xmm8,%xmm10
  subsd  %xmm10,%xmm5
  movsd  %xmm10,0x30(%rsp)
  movsd  0x28(%rsp),%xmm10
  mulsd  %xmm10,%xmm3
  unpcklpd %xmm5,%xmm12
  movups %xmm12,0x18(%rax)
  movapd %xmm9,%xmm12
  movapd %xmm3,%xmm5
  movsd  0x10(%rsp),%xmm3
  mulsd  %xmm13,%xmm5
  addsd  %xmm3,%xmm3
  mulsd  %xmm3,%xmm12
  divsd  %xmm0,%xmm5
  movsd  (%rsp),%xmm0
  mulsd  %xmm2,%xmm11
  addsd  %xmm0,%xmm0
  movapd %xmm0,%xmm13
  mulsd  %xmm15,%xmm13
  addsd  %xmm4,%xmm13
  mulsd  %xmm5,%xmm14
  subsd  %xmm14,%xmm11
  movsd  %xmm11,0x28(%rax)
  movapd %xmm7,%xmm11
  mulsd  %xmm0,%xmm11
  mulsd  %xmm2,%xmm0
  movapd %xmm11,%xmm6
  movapd %xmm3,%xmm11
  mulsd  %xmm8,%xmm11
  subsd  %xmm12,%xmm6
  mulsd  %xmm5,%xmm3
  addsd  0x18(%rsp),%xmm11
  subsd  %xmm11,%xmm13
  subsd  %xmm3,%xmm0
  unpcklpd %xmm13,%xmm6
  movups %xmm6,0x78(%rax)
  movapd %xmm10,%xmm6
  movsd  %xmm0,0x88(%rax)
  movsd  0x8(%rsp),%xmm0
  addsd  %xmm10,%xmm6
  movq   $0x0,0x250(%rax)
  addsd  %xmm0,%xmm0
  movups %xmm1,0xf0(%rax)
  mulsd  %xmm6,%xmm9
  movups %xmm1,0x100(%rax)
  mulsd  %xmm6,%xmm8
  movups %xmm1,0x110(%rax)
  mulsd  %xmm0,%xmm7
  movups %xmm1,0x130(%rax)
  mulsd  %xmm5,%xmm6
  movups %xmm1,0x140(%rax)
  addsd  0x18(%rsp),%xmm6
  movups %xmm1,0x150(%rax)
  movups %xmm1,0x160(%rax)
  movups %xmm1,0x170(%rax)
  subsd  %xmm9,%xmm7
  movups %xmm1,0x190(%rax)
  movups %xmm1,0x1a0(%rax)
  movups %xmm1,0x1b0(%rax)
  movsd  %xmm7,0xd8(%rax)
  movapd %xmm15,%xmm7
  mulsd  %xmm0,%xmm7
  movups %xmm1,0x1c0(%rax)
  mulsd  %xmm2,%xmm0
  movapd D34(%rip),%xmm2
  movups %xmm1,0x1d0(%rax)
  movups %xmm1,0x1e0(%rax)
  movups %xmm2,0x180(%rax)
  movups %xmm1,0x200(%rax)
  subsd  %xmm8,%xmm7
  movups %xmm1,0x210(%rax)
  addsd  %xmm4,%xmm0
  movsd  0x20(%rsp),%xmm4
  movups %xmm1,0x220(%rax)
  movups %xmm1,0x230(%rax)
  movsd  %xmm7,0xe0(%rax)
  subsd  %xmm6,%xmm0
  movups %xmm1,0x240(%rax)
  movsd  %xmm4,0x258(%rax)
  movsd  %xmm0,0xe8(%rax)
  movq   D73(%rip),%xmm0
  movups %xmm0,0x120(%rax)
  movups %xmm0,0x1f0(%rax)
  movsd  0x30(%rsp),%xmm10
  movups %xmm0,0x390(%rax)
  movups %xmm2,0x3f0(%rax)
  movq   $0x0,0x2b0(%rax)
  movq   $0x0,0x310(%rax)
  movsd  %xmm10,0x260(%rax)
  movsd  %xmm14,0x268(%rax)
  movups %xmm1,0x270(%rax)
  movups %xmm1,0x280(%rax)
  movups %xmm1,0x290(%rax)
  movups %xmm1,0x2a0(%rax)
  movsd  %xmm12,0x2b8(%rax)
  movsd  %xmm11,0x2c0(%rax)
  movsd  %xmm3,0x2c8(%rax)
  movups %xmm1,0x2d0(%rax)
  movups %xmm1,0x2e0(%rax)
  movups %xmm1,0x2f0(%rax)
  movups %xmm1,0x300(%rax)
  movsd  %xmm9,0x318(%rax)
  movsd  %xmm8,0x320(%rax)
  movsd  %xmm6,0x328(%rax)
  movups %xmm1,0x330(%rax)
  movups %xmm1,0x340(%rax)
  movups %xmm1,0x350(%rax)
  movups %xmm1,0x360(%rax)
  movups %xmm1,0x370(%rax)
  movups %xmm1,0x380(%rax)
  movups %xmm1,0x3a0(%rax)
  movups %xmm1,0x3b0(%rax)
  movups %xmm1,0x3c0(%rax)
  movups %xmm1,0x3d0(%rax)
  movups %xmm1,0x3e0(%rax)
  movups %xmm1,0x400(%rax)
  movq   D118(%rip),%xmm2
  movups %xmm0,0x460(%rax)
  movapd D117(%rip),%xmm0
  movups %xmm1,0x410(%rax)
  movups %xmm1,0x420(%rax)
  movups %xmm1,0x430(%rax)
  movups %xmm1,0x440(%rax)
  movups %xmm1,0x450(%rax)
  movups %xmm1,0x470(%rax)
  movups %xmm2,0x480(%rax)
  movups %xmm1,0x490(%rax)
  movups %xmm1,0x4a0(%rax)
  movups %xmm1,0x4b0(%rax)
  movups %xmm1,0x4c0(%rax)
  movups %xmm1,0x4d0(%rax)
  movups %xmm0,0x4e0(%rax)
  movups %xmm1,0x4f0(%rax)
  movups %xmm1,0x500(%rax)
  movups %xmm1,0x510(%rax)
  movups %xmm1,0x520(%rax)
  movups %xmm1,0x530(%rax)
  movups %xmm1,0x540(%rax)
  movups %xmm2,0x550(%rax)
  movups %xmm1,0x560(%rax)
  movups %xmm1,0x570(%rax)
  movups %xmm1,0x580(%rax)
  movups %xmm1,0x590(%rax)
  movups %xmm1,0x5a0(%rax)
  movups %xmm0,0x5b0(%rax)
  movups %xmm1,0x5c0(%rax)
  movups %xmm1,0x5d0(%rax)
  movups %xmm1,0x5e0(%rax)
  movups %xmm1,0x5f0(%rax)
  movups %xmm1,0x600(%rax)
  movups %xmm1,0x610(%rax)
  movups %xmm2,0x620(%rax)
  movups %xmm1,0x630(%rax)
  movups %xmm1,0x640(%rax)
  movups %xmm1,0x650(%rax)
  movups %xmm1,0x660(%rax)
  movups %xmm1,0x670(%rax)
  movups %xmm0,0x680(%rax)
  movups %xmm1,0x690(%rax)
  movups %xmm1,0x6a0(%rax)
  movups %xmm1,0x6b0(%rax)
  movups %xmm1,0x6c0(%rax)
  movups %xmm1,0x6d0(%rax)
  movups %xmm1,0x6e0(%rax)
  movups %xmm2,0x6f0(%rax)
  movups %xmm1,0x700(%rax)
  movups %xmm1,0x710(%rax)
  movups %xmm1,0x720(%rax)
  movups %xmm1,0x730(%rax)
  movups %xmm1,0x740(%rax)
  movups %xmm0,0x750(%rax)
  movups %xmm1,0x760(%rax)
  movups %xmm1,0x770(%rax)
  movups %xmm1,0x780(%rax)
  movups %xmm1,0x790(%rax)
  movups %xmm1,0x7a0(%rax)
  movups %xmm1,0x7b0(%rax)
  movups %xmm2,0x7c0(%rax)
  movups %xmm1,0x7d0(%rax)
  movups %xmm1,0x7e0(%rax)
  movups %xmm1,0x7f0(%rax)
  movups %xmm1,0x800(%rax)
  movups %xmm1,0x810(%rax)
  movups %xmm0,0x820(%rax)
  movups %xmm1,0x830(%rax)
  movups %xmm1,0x840(%rax)
  movups %xmm1,0x850(%rax)
  movups %xmm1,0x860(%rax)
  movups %xmm1,0x870(%rax)
  movups %xmm1,0x880(%rax)
  movups %xmm2,0x890(%rax)
  movups %xmm1,0x8a0(%rax)
  movups %xmm1,0x8b0(%rax)
  movups %xmm1,0x8c0(%rax)
  movups %xmm1,0x8d0(%rax)
  movups %xmm1,0x8e0(%rax)
  movups %xmm0,0x8f0(%rax)
L143:
  add    $0x58,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L233:
  test   %rax,%rax
  je     L229
  movq   %r14,%xmm7
  movq   $0x0,0x30(%rax)
  subsd  %xmm5,%xmm7
  movq   %r14,%xmm5
  movq   $0x0,0x38(%rax)
  subsd  %xmm0,%xmm5
  movq   $0x0,0x40(%rax)
  movsd  %xmm7,0x18(%rax)
  movq   %r14,%xmm7
  subsd  %xmm1,%xmm7
  movsd  %xmm5,0x20(%rax)
  movsd  %xmm7,0x28(%rax)
L229:
  movq   %r14,%xmm0
  jmp    L42
  nopl   0x0(%rax)
L140:
  test   %rdx,%rdx
  je     L21
  pxor   %xmm4,%xmm4
  movq   $0x0,(%rdx)
  movq   %xmm4,%r14
  movsd  %xmm4,0x20(%rsp)
  movapd %xmm4,%xmm0
  movq   $0x0,0x8(%rdx)
  movq   $0x0,0x10(%rdx)
  movsd  %xmm4,0x18(%rsp)
  jmp    L76
  nopw   0x0(%rax,%rax,1)
L138:
  mov    %r14,0x28(%rsp)
  movq   %r14,%xmm0
  mov    %r14,0x8(%rsp)
  jmp    L131
  nopl   0x0(%rax)
L209:
  mov    %r14,0x10(%rsp)
  movq   %r14,%xmm0
  mov    %r14,(%rsp)
  jmp    L245
  nopl   0x0(%rax,%rax,1)
L21:
  pxor   %xmm7,%xmm7
  movq   %xmm7,%r14
  movsd  %xmm7,0x20(%rsp)
  movapd %xmm7,%xmm0
  movsd  %xmm7,0x18(%rsp)
  jmp    L76
L196:
  call   <sqrt@plt>
  movapd %xmm0,%xmm8
  jmp    L249
L220:
  movapd %xmm3,%xmm0
  movsd  %xmm10,0x40(%rsp)
  movsd  %xmm13,0x38(%rsp)
  movsd  %xmm8,0x30(%rsp)
  call   <sqrt@plt>
  movsd  0x40(%rsp),%xmm10
  movsd  0x38(%rsp),%xmm13
  movsd  0x30(%rsp),%xmm8
  movapd %xmm0,%xmm3
  jmp    L7
```

tool_calls: name: read_data
arguments: label: D81
data_type: byte[8]
name: read_data
arguments: label: D118
data_type: f64
name: read_data
arguments: label: D137
data_type: byte[8]
name: read_data
arguments: label: D99
data_type: byte[8]
name: read_data
arguments: label: D122
data_type: byte[8]
name: read_data
arguments: label: D34
data_type: f64[2]
name: read_data
arguments: label: D73
data_type: byte[8]
name: read_data
arguments: label: D117
data_type: f64[2]

tool: {"D81": [0x4c,0x37,0x89,0x41,0x60,0xe5,0xa0,0x3f]}

tool: D118: 1

tool: {"D137": [0xab,0xaa,0xaa,0xaa,0xaa,0xaa,0x40,0x40]}

tool: {"D99": [0x1f,0x85,0xeb,0x51,0xb8,0x9e,0x23,0x40]}

tool: {"D122": [0xab,0xaa,0xaa,0xaa,0xaa,0xaa,0x40,0xc0]}

tool: {"D34": [0.0,-1.0]}

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

tool: {"D117": [0.0,1.0]}

assistant: ```c
int jac_chain_nm3(const double **arg, double **res, int *iw, double *w, int mem) {
  double a0 = arg[0] ? arg[0][12] : 0;
  double a1 = arg[0] ? arg[0][3] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][0] = a0;
  a0 = arg[0] ? arg[0][13] : 0;
  a1 = arg[0] ? arg[0][4] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][1] = a0;
  a0 = arg[0] ? arg[0][14] : 0;
  a1 = arg[0] ? arg[0][5] : 0;
  a0 = (a0 - a1);
  if (res[0] != 0)
    res[0][2] = a0;
  a0 = arg[0] ? arg[0][6] : 0;
  a1 = arg[0] ? arg[0][0] : 0;
  a0 = (a0 - a1);
  double a2 = jac_chain_nm3_sq(a0);
  double a3 = arg[0] ? arg[0][7] : 0;
  double a4 = arg[0] ? arg[0][1] : 0;
  a3 = (a3 - a4);
  double a5 = jac_chain_nm3_sq(a3);
  a2 = (a2 + a5);
  a5 = arg[0] ? arg[0][8] : 0;
  double a6 = arg[0] ? arg[0][2] : 0;
  a5 = (a5 - a6);
  double a7 = jac_chain_nm3_sq(a5);
  a2 = (a2 + a7);
  a2 = sqrt(a2);
  a7 = 3.3000000000000002e-02;
  double a8 = (a7 / a2);
  double a9 = 1.;
  double a10 = (a9 - a8);
  double a11 = (a10 * a0);
  double a12 = jac_chain_nm3_sq(a1);
  double a13 = jac_chain_nm3_sq(a4);
  a12 = (a12 + a13);
  a13 = jac_chain_nm3_sq(a6);
  a12 = (a12 + a13);
  a12 = sqrt(a12);
  a7 = (a7 / a12);
  a13 = (a9 - a7);
  double a14 = (a13 * a1);
  a11 = (a11 - a14);
  a14 = 3.3333333333333336e+01;
  a11 = (a14 * a11);
  double a15 = arg[0] ? arg[0][15] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][3] = a15;
  a15 = (a10 * a3);
  a11 = (a13 * a4);
  a15 = (a15 - a11);
  a15 = (a14 * a15);
  a11 = arg[0] ? arg[0][16] : 0;
  a11 = (a11 - a15);
  if (res[0] != 0)
    res[0][4] = a11;
  a11 = (a10 * a5);
  a15 = (a13 * a6);
  a11 = (a11 - a15);
  a11 = (a14 * a11);
  a15 = 9.8100000000000005e+00;
  a11 = (a11 - a15);
  a15 = arg[0] ? arg[0][17] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][5] = a15;
  a15 = arg[0] ? arg[0][18] : 0;
  a11 = arg[0] ? arg[0][9] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][6] = a15;
  a15 = arg[0] ? arg[0][19] : 0;
  a11 = arg[0] ? arg[0][10] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][7] = a15;
  a15 = arg[0] ? arg[0][20] : 0;
  a11 = arg[0] ? arg[0][11] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][8] = a15;
  a15 = arg[0] ? arg[0][21] : 0;
  a11 = arg[1] ? arg[1][0] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][9] = a15;
  a15 = arg[0] ? arg[0][22] : 0;
  a11 = arg[1] ? arg[1][1] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][10] = a15;
  a15 = arg[0] ? arg[0][23] : 0;
  a11 = arg[1] ? arg[1][2] : 0;
  a15 = (a15 - a11);
  if (res[0] != 0)
    res[0][11] = a15;
  a15 = 0.;
  if (res[1] != 0)
    res[1][0] = a15;
  if (res[1] != 0)
    res[1][1] = a15;
  if (res[1] != 0)
    res[1][2] = a15;
  a11 = (a14 * a13);
  double a16 = (a1 + a1);
  a7 = (a7 / a12);
  a1 = (a14 * a1);
  a1 = (a7 * a1);
  a12 = (a12 + a12);
  a1 = (a1 / a12);
  double a17 = (a16 * a1);
  a11 = (a11 + a17);
  a17 = -3.3333333333333336e+01;
  double a18 = (a17 * a10);
  double a19 = (a0 + a0);
  a8 = (a8 / a2);
  a0 = (a17 * a0);
  a0 = (a8 * a0);
  a2 = (a2 + a2);
  a0 = (a0 / a2);
  double a20 = (a19 * a0);
  a18 = (a18 + a20);
  a11 = (a11 - a18);
  if (res[1] != 0)
    res[1][3] = a11;
  a11 = (a14 * a4);
  a11 = (a7 * a11);
  a11 = (a11 / a12);
  a20 = (a16 * a11);
  double a21 = (a17 * a3);
  a21 = (a8 * a21);
  a21 = (a21 / a2);
  double a22 = (a19 * a21);
  a20 = (a20 - a22);
  if (res[1] != 0)
    res[1][4] = a20;
  a20 = (a14 * a6);
  a7 = (a7 * a20);
  a7 = (a7 / a12);
  a16 = (a16 * a7);
  a12 = (a17 * a5);
  a8 = (a8 * a12);
  a8 = (a8 / a2);
  a19 = (a19 * a8);
  a16 = (a16 - a19);
  if (res[1] != 0)
    res[1][5] = a16;
  if (res[1] != 0)
    res[1][6] = a15;
  if (res[1] != 0)
    res[1][7] = a15;
  if (res[1] != 0)
    res[1][8] = a15;
  if (res[1] != 0)
    res[1][9] = a15;
  if (res[1] != 0)
    res[1][10] = a15;
  if (res[1] != 0)
    res[1][11] = a15;
  if (res[1] != 0)
    res[1][12] = a15;
  if (res[1] != 0)
    res[1][13] = a15;
  if (res[1] != 0)
    res[1][14] = a15;
  a4 = (a4 + a4);
  a16 = (a4 * a1);
  a3 = (a3 + a3);
  a2 = (a3 * a0);
  a16 = (a16 - a2);
  if (res[1] != 0)
    res[1][15] = a16;
  a16 = (a14 * a13);
  a12 = (a4 * a11);
  a16 = (a16 + a12);
  a12 = (a17 * a10);
  a20 = (a3 * a21);
  a12 = (a12 + a20);
  a16 = (a16 - a12);
  if (res[1] != 0)
    res[1][16] = a16;
  a4 = (a4 * a7);
  a3 = (a3 * a8);
  a4 = (a4 - a3);
  if (res[1] != 0)
    res[1][17] = a4;
  if (res[1] != 0)
    res[1][18] = a15;
  if (res[1] != 0)
    res[1][19] = a15;
  if (res[1] != 0)
    res[1][20] = a15;
  if (res[1] != 0)
    res[1][21] = a15;
  if (res[1] != 0)
    res[1][22] = a15;
  if (res[1] != 0)
    res[1][23] = a15;
  if (res[1] != 0)
    res[1][24] = a15;
  if (res[1] != 0)
    res[1][25] = a15;
  if (res[1] != 0)
    res[1][26] = a15;
  a6 = (a6 + a6);
  a1 = (a6 * a1);
  a5 = (a5 + a5);
  a0 = (a5 * a0);
  a1 = (a1 - a0);
  if (res[1] != 0)
    res[1][27] = a1;
  a11 = (a6 * a11);
  a21 = (a5 * a21);
  a11 = (a11 - a21);
  if (res[1] != 0)
    res[1][28] = a11;
  a14 = (a14 * a13);
  a6 = (a6 * a7);
  a14 = (a14 + a6);
  a17 = (a17 * a10);
  a5 = (a5 * a8);
  a17 = (a17 + a5);
  a14 = (a14 - a17);
  if (res[1] != 0)
    res[1][29] = a14;
  if (res[1] != 0)
    res[1][30] = a15;
  if (res[1] != 0)
    res[1][31] = a15;
  if (res[1] != 0)
    res[1][32] = a15;
  if (res[1] != 0)
    res[1][33] = a15;
  if (res[1] != 0)
    res[1][34] = a15;
  if (res[1] != 0)
    res[1][35] = a15;
  a14 = -1.;
  if (res[1] != 0)
    res[1][36] = a14;
  if (res[1] != 0)
    res[1][37] = a15;
  if (res[1] != 0)
    res[1][38] = a15;
  if (res[1] != 0)
    res[1][39] = a15;
  if (res[1] != 0)
    res[1][40] = a15;
  if (res[1] != 0)
    res[1][41] = a15;
  if (res[1] != 0)
    res[1][42] = a15;
  if (res[1] != 0)
    res[1][43] = a15;
  if (res[1] != 0)
    res[1][44] = a15;
  if (res[1] != 0)
    res[1][45] = a15;
  if (res[1] != 0)
    res[1][46] = a15;
  if (res[1] != 0)
    res[1][47] = a15;
  if (res[1] != 0)
    res[1][48] = a15;
  if (res[1] != 0)
    res[1][49] = a14;
  if (res[1] != 0)
    res[1][50] = a15;
  if (res[1] != 0)
    res[1][51] = a15;
  if (res[1] != 0)
    res[1][52] = a15;
  if (res[1] != 0)
    res[1][53] = a15;
  if (res[1] != 0)
    res[1][54] = a15;
  if (res[1] != 0)
    res[1][55] = a15;
  if (res[1] != 0)
    res[1][56] = a15;
  if (res[1] != 0)
    res[1][57] = a15;
  if (res[1] != 0)
    res[1][58] = a15;
  if (res[1] != 0)
    res[1][59] = a15;
  if (res[1] != 0)
    res[1][60] = a15;
  if (res[1] != 0)
    res[1][61] = a15;
  if (res[1] != 0)
    res[1][62] = a14;
  if (res[1] != 0)
    res[1][63] = a15;
  if (res[1] != 0)
    res[1][64] = a15;
  if (res[1] != 0)
    res[1][65] = a15;
  if (res[1] != 0)
    res[1][66] = a15;
  if (res[1] != 0)
    res[1][67] = a15;
  if (res[1] != 0)
    res[1][68] = a15;
  if (res[1] != 0)
    res[1][69] = a15;
  if (res[1] != 0)
    res[1][70] = a15;
  if (res[1] != 0)
    res[1][71] = a15;
  if (res[1] != 0)
    res[1][72] = a15;
  if (res[1] != 0)
    res[1][73] = a15;
  if (res[1] != 0)
    res[1][74] = a15;
  if (res[1] != 0)
    res[1][75] = a18;
  if (res[1] != 0)
    res[1][76] = a22;
  if (res[1] != 0)
    res[1][77] = a19;
  if (res[1] != 0)
    res[1][78] = a15;
  if (res[1] != 0)
    res[1][79] = a15;
  if (res[1] != 0)
    res[1][80] = a15;
  if (res[1] != 0)
    res[1][81] = a15;
  if (res[1] != 0)
    res[1][82] = a15;
  if (res[1] != 0)
    res[1][83] = a15;
  if (res[1] != 0)
    res[1][84] = a15;
  if (res[1] != 0)
    res[1][85] = a15;
  if (res[1] != 0)
    res[1][86] = a15;
  if (res[1] != 0)
    res[1][87] = a2;
  if (res[1] != 0)
    res[1][88] = a12;
  if (res[1] != 0)
    res[1][89] = a3;
  if (res[1] != 0)
    res[1][90] = a15;
  if (res[1] != 0)
    res[1][91] = a15;
  if (res[1] != 0)
    res[1][92] = a15;
  if (res[1] != 0)
    res[1][93] = a15;
  if (res[1] != 0)
    res[1][94] = a15;
  if (res[1] != 0)
    res[1][95] = a15;
  if (res[1] != 0)
    res[1][96] = a15;
  if (res[1] != 0)
    res[1][97] = a15;
  if (res[1] != 0)
    res[1][98] = a15;
  if (res[1] != 0)
    res[1][99] = a0;
  if (res[1] != 0)
    res[1][100] = a21;
  if (res[1] != 0)
    res[1][101] = a17;
  if (res[1] != 0)
    res[1][102] = a15;
  if (res[1] != 0)
    res[1][103] = a15;
  if (res[1] != 0)
    res[1][104] = a15;
  if (res[1] != 0)
    res[1][105] = a15;
  if (res[1] != 0)
    res[1][106] = a15;
  if (res[1] != 0)
    res[1][107] = a15;
  if (res[1] != 0)
    res[1][108] = a15;
  if (res[1] != 0)
    res[1][109] = a15;
  if (res[1] != 0)
    res[1][110] = a15;
  if (res[1] != 0)
    res[1][111] = a15;
  if (res[1] != 0)
    res[1][112] = a15;
  if (res[1] != 0)
    res[1][113] = a15;
  if (res[1] != 0)
    res[1][114] = a14;
  if (res[1] != 0)
    res[1][115] = a15;
  if (res[1] != 0)
    res[1][116] = a15;
  if (res[1] != 0)
    res[1][117] = a15;
  if (res[1] != 0)
    res[1][118] = a15;
  if (res[1] != 0)
    res[1][119] = a15;
  if (res[1] != 0)
    res[1][120] = a15;
  if (res[1] != 0)
    res[1][121] = a15;
  if (res[1] != 0)
    res[1][122] = a15;
  if (res[1] != 0)
    res[1][123] = a15;
  if (res[1] != 0)
    res[1][124] = a15;
  if (res[1] != 0)
    res[1][125] = a15;
  if (res[1] != 0)
    res[1][126] = a15;
  if (res[1] != 0)
    res[1][127] = a14;
  if (res[1] != 0)
    res[1][128] = a15;
  if (res[1] != 0)
    res[1][129] = a15;
  if (res[1] != 0)
    res[1][130] = a15;
  if (res[1] != 0)
    res[1][131] = a15;
  if (res[1] != 0)
    res[1][132] = a15;
  if (res[1] != 0)
    res[1][133] = a15;
  if (res[1] != 0)
    res[1][134] = a15;
  if (res[1] != 0)
    res[1][135] = a15;
  if (res[1] != 0)
    res[1][136] = a15;
  if (res[1] != 0)
    res[1][137] = a15;
  if (res[1] != 0)
    res[1][138] = a15;
  if (res[1] != 0)
    res[1][139] = a15;
  if (res[1] != 0)
    res[1][140] = a14;
  if (res[1] != 0)
    res[1][141] = a15;
  if (res[1] != 0)
    res[1][142] = a15;
  if (res[1] != 0)
    res[1][143] = a15;
  if (res[1] != 0)
    res[1][144] = a9;
  if (res[1] != 0)
    res[1][145] = a15;
  if (res[1] != 0)
    res[1][146] = a15;
  if (res[1] != 0)
    res[1][147] = a15;
  if (res[1] != 0)
    res[1][148] = a15;
  if (res[1] != 0)
    res[1][149] = a15;
  if (res[1] != 0)
    res[1][150] = a15;
  if (res[1] != 0)
    res[1][151] = a15;
  if (res[1] != 0)
    res[1][152] = a15;
  if (res[1] != 0)
    res[1][153] = a15;
  if (res[1] != 0)
    res[1][154] = a15;
  if (res[1] != 0)
    res[1][155] = a15;
  if (res[1] != 0)
    res[1][156] = a15;
  if (res[1] != 0)
    res[1][157] = a9;
  if (res[1] != 0)
    res[1][158] = a15;
  if (res[1] != 0)
    res[1][159] = a15;
  if (res[1] != 0)
    res[1][160] = a15;
  if (res[1] != 0)
    res[1][161] = a15;
  if (res[1] != 0)
    res[1][162] = a15;
  if (res[1] != 0)
    res[1][163] = a15;
  if (res[1] != 0)
    res[1][164] = a15;
  if (res[1] != 0)
    res[1][165] = a15;
  if (res[1] != 0)
    res[1][166] = a15;
  if (res[1] != 0)
    res[1][167] = a15;
  if (res[1] != 0)
    res[1][168] = a15;
  if (res[1] != 0)
    res[1][169] = a15;
  if (res[1] != 0)
    res[1][170] = a9;
  if (res[1] != 0)
    res[1][171] = a15;
  if (res[1] != 0)
    res[1][172] = a15;
  if (res[1] != 0)
    res[1][173] = a15;
  if (res[1] != 0)
    res[1][174] = a15;
  if (res[1] != 0)
    res[1][175] = a15;
  if (res[1] != 0)
    res[1][176] = a15;
  if (res[1] != 0)
    res[1][177] = a15;
  if (res[1] != 0)
    res[1][178] = a15;
  if (res[1] != 0)
    res[1][179] = a15;
  if (res[1] != 0)
    res[1][180] = a15;
  if (res[1] != 0)
    res[1][181] = a15;
  if (res[1] != 0)
    res[1][182] = a15;
  if (res[1] != 0)
    res[1][183] = a9;
  if (res[1] != 0)
    res[1][184] = a15;
  if (res[1] != 0)
    res[1][185] = a15;
  if (res[1] != 0)
    res[1][186] = a15;
  if (res[1] != 0)
    res[1][187] = a15;
  if (res[1] != 0)
    res[1][188] = a15;
  if (res[1] != 0)
    res[1][189] = a15;
  if (res[1] != 0)
    res[1][190] = a15;
  if (res[1] != 0)
    res[1][191] = a15;
  if (res[1] != 0)
    res[1][192] = a15;
  if (res[1] != 0)
    res[1][193] = a15;
  if (res[1] != 0)
    res[1][194] = a15;
  if (res[1] != 0)
    res[1][195] = a15;
  if (res[1] != 0)
    res[1][196] = a9;
  if (res[1] != 0)
    res[1][197] = a15;
  if (res[1] != 0)
    res[1][198] = a15;
  if (res[1] != 0)
    res[1][199] = a15;
  if (res[1] != 0)
    res[1][200] = a15;
  if (res[1] != 0)
    res[1][201] = a15;
  if (res[1] != 0)
    res[1][202] = a15;
  if (res[1] != 0)
    res[1][203] = a15;
  if (res[1] != 0)
    res[1][204] = a15;
  if (res[1] != 0)
    res[1][205] = a15;
  if (res[1] != 0)
    res[1][206] = a15;
  if (res[1] != 0)
    res[1][207] = a15;
  if (res[1] != 0)
    res[1][208] = a15;
  if (res[1] != 0)
    res[1][209] = a9;
  if (res[1] != 0)
    res[1][210] = a15;
  if (res[1] != 0)
    res[1][211] = a15;
  if (res[1] != 0)
    res[1][212] = a15;
  if (res[1] != 0)
    res[1][213] = a15;
  if (res[1] != 0)
    res[1][214] = a15;
  if (res[1] != 0)
    res[1][215] = a15;
  if (res[1] != 0)
    res[1][216] = a15;
  if (res[1] != 0)
    res[1][217] = a15;
  if (res[1] != 0)
    res[1][218] = a15;
  if (res[1] != 0)
    res[1][219] = a15;
  if (res[1] != 0)
    res[1][220] = a15;
  if (res[1] != 0)
    res[1][221] = a15;
  if (res[1] != 0)
    res[1][222] = a9;
  if (res[1] != 0)
    res[1][223] = a15;
  if (res[1] != 0)
    res[1][224] = a15;
  if (res[1] != 0)
    res[1][225] = a15;
  if (res[1] != 0)
    res[1][226] = a15;
  if (res[1] != 0)
    res[1][227] = a15;
  if (res[1] != 0)
    res[1][228] = a15;
  if (res[1] != 0)
    res[1][229] = a15;
  if (res[1] != 0)
    res[1][230] = a15;
  if (res[1] != 0)
    res[1][231] = a15;
  if (res[1] != 0)
    res[1][232] = a15;
  if (res[1] != 0)
    res[1][233] = a15;
  if (res[1] != 0)
    res[1][234] = a15;
  if (res[1] != 0)
    res[1][235] = a9;
  if (res[1] != 0)
    res[1][236] = a15;
  if (res[1] != 0)
    res[1][237] = a15;
  if (res[1] != 0)
    res[1][238] = a15;
  if (res[1] != 0)
    res[1][239] = a15;
  if (res[1] != 0)
    res[1][240] = a15;
  if (res[1] != 0)
    res[1][241] = a15;
  if (res[1] != 0)
    res[1][242] = a15;
  if (res[1] != 0)
    res[1][243] = a15;
  if (res[1] != 0)
    res[1][244] = a15;
  if (res[1] != 0)
    res[1][245] = a15;
  if (res[1] != 0)
    res[1][246] = a15;
  if (res[1] != 0)
    res[1][247] = a15;
  if (res[1] != 0)
    res[1][248] = a9;
  if (res[1] != 0)
    res[1][249] = a15;
  if (res[1] != 0)
    res[1][250] = a15;
  if (res[1] != 0)
    res[1][251] = a15;
  if (res[1] != 0)
    res[1][252] = a15;
  if (res[1] != 0)
    res[1][253] = a15;
  if (res[1] != 0)
    res[1][254] = a15;
  if (res[1] != 0)
    res[1][255] = a15;
  if (res[1] != 0)
    res[1][256] = a15;
  if (res[1] != 0)
    res[1][257] = a15;
  if (res[1] != 0)
    res[1][258] = a15;
  if (res[1] != 0)
    res[1][259] = a15;
  if (res[1] != 0)
    res[1][260] = a15;
  if (res[1] != 0)
    res[1][261] = a9;
  if (res[1] != 0)
    res[1][262] = a15;
  if (res[1] != 0)
    res[1][263] = a15;
  if (res[1] != 0)
    res[1][264] = a15;
  if (res[1] != 0)
    res[1][265] = a15;
  if (res[1] != 0)
    res[1][266] = a15;
  if (res[1] != 0)
    res[1][267] = a15;
  if (res[1] != 0)
    res[1][268] = a15;
  if (res[1] != 0)
    res[1][269] = a15;
  if (res[1] != 0)
    res[1][270] = a15;
  if (res[1] != 0)
    res[1][271] = a15;
  if (res[1] != 0)
    res[1][272] = a15;
  if (res[1] != 0)
    res[1][273] = a15;
  if (res[1] != 0)
    res[1][274] = a9;
  if (res[1] != 0)
    res[1][275] = a15;
  if (res[1] != 0)
    res[1][276] = a15;
  if (res[1] != 0)
    res[1][277] = a15;
  if (res[1] != 0)
    res[1][278] = a15;
  if (res[1] != 0)
    res[1][279] = a15;
  if (res[1] != 0)
    res[1][280] = a15;
  if (res[1] != 0)
    res[1][281] = a15;
  if (res[1] != 0)
    res[1][282] = a15;
  if (res[1] != 0)
    res[1][283] = a15;
  if (res[1] != 0)
    res[1][284] = a15;
  if (res[1] != 0)
    res[1][285] = a15;
  if (res[1] != 0)
    res[1][286] = a15;
  if (res[1] != 0)
    res[1][287] = a9;
  return 0;
}
```