user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<calculate_answer_precise>:
  endbr64
  mov    %edi,%eax
  mov    0x10(%rsp),%r10d
  mov    0x8(%rsp),%edi
  cmp    $0x2,%eax
  je     L229
  cmp    $0x3,%eax
  je     L192
  pxor   %xmm0,%xmm0
  cmp    $0x4,%eax
  je     L587
L319:
  ret
  nopw   0x0(%rax,%rax,1)
L192:
  cmp    $0x2a,%r9b
  je     L926
  cmp    $0x2f,%r9b
  je     L477
  cmp    $0x2b,%r9b
  je     L938
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r9b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %edx,%xmm2
  cvtsi2sd %ecx,%xmm1
  cmp    $0x2a,%dil
  je     L388
  cmp    $0x2f,%dil
  je     L802
  subsd  %xmm2,%xmm0
  jmp    L764
  nopl   (%rax)
L229:
  cmp    $0x2b,%r9b
  je     L50
  cmp    $0x2d,%r9b
  je     L617
  cmp    $0x2a,%r9b
  je     L699
  pxor   %xmm0,%xmm0
  cmp    $0x2f,%r9b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %edx,%xmm1
  divsd  %xmm1,%xmm0
  ret
  nopl   0x0(%rax)
L587:
  cmp    $0x2a,%r9b
  je     L662
  cmp    $0x2f,%r9b
  je     L153
  cmp    $0x2b,%r9b
  je     L411
  cmp    $0x2d,%r9b
  jne    L319
  cmp    $0x2a,%dil
  je     L214
  cmp    $0x2f,%dil
  je     L507
  cmp    $0x2b,%dil
  je     L910
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%dil
  jne    L319
  cmp    $0x2a,%r10b
  je     L14
  cmp    $0x2f,%r10b
  je     L713
  cmp    $0x2b,%r10b
  je     L279
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  jmp    L860
  nop
L617:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %edx,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopl   (%rax)
L926:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  cvtsi2sd %edx,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cmp    $0x2a,%dil
  je     L98
L22:
  cmp    $0x2f,%dil
  je     L1012
L764:
  cmp    $0x2b,%dil
  je     L317
L860:
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L50:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %edx,%xmm1
  addsd  %xmm1,%xmm0
  ret
  nopl   (%rax)
L699:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %edx,%xmm1
  mulsd  %xmm1,%xmm0
  ret
  nopl   (%rax)
L662:
  cmp    $0x2a,%dil
  je     L1081
  cmp    $0x2f,%dil
  je     L31
  cmp    $0x2b,%dil
  je     L980
  cmp    $0x2d,%dil
  jne    L319
  cmp    $0x2a,%r10b
  je     L775
  cmp    $0x2f,%r10b
  je     L354
  cmp    $0x2b,%r10b
  je     L130
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L477:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cmp    $0x2a,%dil
  jne    L22
L98:
  mulsd  %xmm1,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L411:
  cmp    $0x2a,%dil
  je     L874
  cmp    $0x2f,%dil
  je     L575
  cmp    $0x2b,%dil
  je     L561
  cmp    $0x2d,%dil
  jne    L319
  cmp    $0x2a,%r10b
  je     L1005
  cmp    $0x2f,%r10b
  je     L412
  cmp    $0x2b,%r10b
  je     L66
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L1081:
  cmp    $0x2a,%r10b
  je     L77
  cmp    $0x2f,%r10b
  je     L366
  cmp    $0x2b,%r10b
  je     L374
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
L848:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  nopl   0x0(%rax,%rax,1)
L522:
  mulsd  %xmm2,%xmm1
L317:
  addsd  %xmm1,%xmm0
  ret
  nopl   0x0(%rax)
L153:
  cmp    $0x2a,%dil
  je     L277
  cmp    $0x2f,%dil
  je     L1068
  cmp    $0x2b,%dil
  je     L1080
  cmp    $0x2d,%dil
  jne    L319
  cmp    $0x2a,%r10b
  je     L356
  cmp    $0x2f,%r10b
  je     L831
  cmp    $0x2b,%r10b
  je     L791
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L938:
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %edx,%xmm2
  cvtsi2sd %ecx,%xmm1
  cmp    $0x2a,%dil
  je     L522
  cmp    $0x2f,%dil
  je     L501
  addsd  %xmm2,%xmm0
  jmp    L764
L366:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
L1012:
  divsd  %xmm1,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L31:
  cmp    $0x2a,%r10b
  je     L584
  cmp    $0x2f,%r10b
  je     L379
  cmp    $0x2b,%r10b
  je     L776
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  cs nopw 0x0(%rax,%rax,1)
L277:
  cmp    $0x2a,%r10b
  je     L1022
  cmp    $0x2f,%r10b
  je     L1051
  cmp    $0x2b,%r10b
  je     L546
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
L14:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
L388:
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L501:
  divsd  %xmm1,%xmm2
  addsd  %xmm2,%xmm0
  ret
L980:
  cmp    $0x2a,%r10b
  je     L1044
  cmp    $0x2f,%r10b
  je     L120
  cmp    $0x2b,%r10b
  je     L772
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L874:
  cmp    $0x2a,%r10b
  je     L511
  cmp    $0x2f,%r10b
  je     L1088
  cmp    $0x2b,%r10b
  je     L950
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L1068:
  cmp    $0x2a,%r10b
  je     L710
  cmp    $0x2f,%r10b
  je     L238
  cmp    $0x2b,%r10b
  je     L112
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
L77:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  jmp    L98
L1080:
  cmp    $0x2a,%r10b
  je     L523
  cmp    $0x2f,%r10b
  je     L928
  cmp    $0x2b,%r10b
  je     L677
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L575:
  cmp    $0x2a,%r10b
  je     L191
  cmp    $0x2f,%r10b
  je     L268
  cmp    $0x2b,%r10b
  je     L121
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L802:
  divsd  %xmm1,%xmm2
  subsd  %xmm2,%xmm0
  ret
L214:
  cmp    $0x2a,%r10b
  je     L124
  cmp    $0x2f,%r10b
  je     L619
  cmp    $0x2b,%r10b
  je     L170
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
L1022:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  mulsd  %xmm1,%xmm0
  ret
L584:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  mulsd  %xmm1,%xmm0
  ret
L507:
  cmp    $0x2a,%r10b
  je     L869
  cmp    $0x2f,%r10b
  je     L576
  cmp    $0x2b,%r10b
  je     L1016
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %esi,%xmm0
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
  nopl   0x0(%rax)
L561:
  cmp    $0x2a,%r10b
  je     L539
  cmp    $0x2f,%r10b
  je     L951
  cmp    $0x2b,%r10b
  je     L1009
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
L1051:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  divsd  %xmm1,%xmm0
  ret
L374:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L511:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  ret
L1044:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  ret
L379:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  divsd  %xmm1,%xmm0
  ret
L710:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  mulsd  %xmm1,%xmm0
  ret
L910:
  cmp    $0x2a,%r10b
  je     L848
  cmp    $0x2f,%r10b
  je     L885
  cmp    $0x2b,%r10b
  je     L1029
  pxor   %xmm0,%xmm0
  cmp    $0x2d,%r10b
  jne    L319
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  subsd  %xmm1,%xmm0
  ret
L1088:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  ret
L120:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  ret
L238:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  divsd  %xmm1,%xmm0
  ret
L776:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L546:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L191:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  ret
L775:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L124:
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm2,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %r8d,%xmm2
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L523:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  ret
L928:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  ret
L539:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  ret
L354:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L619:
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm2,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %r8d,%xmm2
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L772:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L268:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  ret
L112:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L950:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L869:
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm2,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %r8d,%xmm2
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L356:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L130:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L831:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L121:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  cvtsi2sd %edx,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %esi,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L576:
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm2,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %r8d,%xmm2
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L1005:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L951:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  ret
L677:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L170:
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %esi,%xmm0
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L885:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  ret
L1009:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L791:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L1016:
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %ecx,%xmm2
  cvtsi2sd %esi,%xmm0
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L412:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L1029:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  jmp    L317
L66:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  addsd  %xmm1,%xmm0
  ret
L713:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  cvtsi2sd %r8d,%xmm2
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  ret
L279:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %edx,%xmm1
  cvtsi2sd %esi,%xmm0
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ecx,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r8d,%xmm1
  jmp    L317
```

assistant: ```c
double calculate_answer_precise(int terms, int term1, int term2, int term3, int term4, char operand1, char operand2, char operand3) {
  double answer = 0;
  if (terms == 2) {
    if (operand1 == '+') {
      answer = (double)term1 + (double)term2;
    } else if (operand1 == '-') {
      answer = (double)term1 - (double)term2;
    } else if (operand1 == '*') {
      answer = (double)term1 * (double)term2;
    } else if (operand1 == '/') {
      answer = (double)term1 / (double)term2;
    }
  } else if (terms == 3) {
    if (operand1 == '*') {
      if (operand2 == '*') {
        answer = (double)term1 * (double)term2 * (double)term3;
      } else if (operand2 == '/') {
        answer = (double)term1 * (double)term2 / (double)term3;
      } else if (operand2 == '+') {
        answer = (double)term1 * (double)term2 + (double)term3;
      } else {
        answer = (double)term1 * (double)term2 - (double)term3;
      }
    } else if (operand1 == '/') {
      if (operand2 == '*') {
        answer = (double)term1 / (double)term2 * (double)term3;
      } else if (operand2 == '/') {
        answer = (double)term1 / (double)term2 / (double)term3;
      } else if (operand2 == '+') {
        answer = (double)term1 / (double)term2 + (double)term3;
      } else {
        answer = (double)term1 / (double)term2 - (double)term3;
      }
    } else if (operand1 == '+') {
      if (operand2 == '*') {
        answer = (double)term1 + (double)term2 * (double)term3;
      } else if (operand2 == '/') {
        answer = (double)term1 + (double)term2 / (double)term3;
      } else if (operand2 == '+') {
        answer = (double)term1 + (double)term2 + (double)term3;
      } else {
        answer = (double)term1 + (double)term2 - (double)term3;
      }
    } else if (operand1 == '-') {
      if (operand2 == '*') {
        answer = (double)term1 - (double)term2 * (double)term3;
      } else if (operand2 == '/') {
        answer = (double)term1 - (double)term2 / (double)term3;
      } else if (operand2 == '+') {
        answer = (double)term1 - (double)term2 + (double)term3;
      } else {
        answer = (double)term1 - (double)term2 - (double)term3;
      }
    }
  } else if (terms == 4) {
    if (operand1 == '*') {
      if (operand2 == '*') {
        if (operand3 == '*') {
          answer = (double)term1 * (double)term2 * (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 * (double)term2 * (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 * (double)term2 * (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 * (double)term2 * (double)term3 - (double)term4;
        }
      } else if (operand2 == '/') {
        if (operand3 == '*') {
          answer = (double)term1 * (double)term2 / (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 * (double)term2 / (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 * (double)term2 / (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 * (double)term2 / (double)term3 - (double)term4;
        }
      } else if (operand2 == '+') {
        if (operand3 == '*') {
          answer = (double)term1 * (double)term2 + (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 * (double)term2 + (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 * (double)term2 + (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 * (double)term2 + (double)term3 - (double)term4;
        }
      } else if (operand2 == '-') {
        if (operand3 == '*') {
          answer = (double)term1 * (double)term2 - (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 * (double)term2 - (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 * (double)term2 - (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 * (double)term2 - (double)term3 - (double)term4;
        }
      }
    } else if (operand1 == '/') {
      if (operand2 == '*') {
        if (operand3 == '*') {
          answer = (double)term1 / (double)term2 * (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 / (double)term2 * (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 / (double)term2 * (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 / (double)term2 * (double)term3 - (double)term4;
        }
      } else if (operand2 == '/') {
        if (operand3 == '*') {
          answer = (double)term1 / (double)term2 / (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 / (double)term2 / (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 / (double)term2 / (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 / (double)term2 / (double)term3 - (double)term4;
        }
      } else if (operand2 == '+') {
        if (operand3 == '*') {
          answer = (double)term1 / (double)term2 + (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 / (double)term2 + (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 / (double)term2 + (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 / (double)term2 + (double)term3 - (double)term4;
        }
      } else if (operand2 == '-') {
        if (operand3 == '*') {
          answer = (double)term1 / (double)term2 - (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 / (double)term2 - (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 / (double)term2 - (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 / (double)term2 - (double)term3 - (double)term4;
        }
      }
    } else if (operand1 == '+') {
      if (operand2 == '*') {
        if (operand3 == '*') {
          answer = (double)term1 + (double)term2 * (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 + (double)term2 * (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 + (double)term2 * (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 + (double)term2 * (double)term3 - (double)term4;
        }
      } else if (operand2 == '/') {
        if (operand3 == '*') {
          answer = (double)term1 + (double)term2 / (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 + (double)term2 / (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 + (double)term2 / (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 + (double)term2 / (double)term3 - (double)term4;
        }
      } else if (operand2 == '+') {
        if (operand3 == '*') {
          answer = (double)term1 + (double)term2 + (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 + (double)term2 + (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 + (double)term2 + (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 + (double)term2 + (double)term3 - (double)term4;
        }
      } else if (operand2 == '-') {
        if (operand3 == '*') {
          answer = (double)term1 + (double)term2 - (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 + (double)term2 - (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 + (double)term2 - (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 + (double)term2 - (double)term3 - (double)term4;
        }
      }
    } else if (operand1 == '-') {
      if (operand2 == '*') {
        if (operand3 == '*') {
          answer = (double)term1 - (double)term2 * (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 - (double)term2 * (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 - (double)term2 * (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 - (double)term2 * (double)term3 - (double)term4;
        }
      } else if (operand2 == '/') {
        if (operand3 == '*') {
          answer = (double)term1 - (double)term2 / (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 - (double)term2 / (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 - (double)term2 / (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 - (double)term2 / (double)term3 - (double)term4;
        }
      } else if (operand2 == '+') {
        if (operand3 == '*') {
          answer = (double)term1 - (double)term2 + (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 - (double)term2 + (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 - (double)term2 + (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = term1 - (double)term2 + (double)term3 - (double)term4;
        }
      } else if (operand2 == '-') {
        if (operand3 == '*') {
          answer = (double)term1 - (double)term2 - (double)term3 * (double)term4;
        } else if (operand3 == '/') {
          answer = (double)term1 - (double)term2 - (double)term3 / (double)term4;
        } else if (operand3 == '+') {
          answer = (double)term1 - (double)term2 - (double)term3 + (double)term4;
        } else if (operand3 == '-') {
          answer = (double)term1 - (double)term2 - (double)term3 - (double)term4;
        }
      }
    }
  }
  return answer;
}
```