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

```asm
<dcs_bremsstrahlung_SSR>:
  endbr64
  pxor   %xmm5,%xmm5
  comisd %xmm0,%xmm5
  jae    L116
  push   %rbx
  add    $0xffffffffffffff80,%rsp
  comisd %xmm1,%xmm5
  movsd  %xmm1,(%rsp)
  jae    L147
  comisd %xmm2,%xmm5
  movsd  %xmm2,0x8(%rsp)
  jae    L147
  comisd %xmm3,%xmm5
  movsd  %xmm3,0x10(%rsp)
  jae    L147
  comisd %xmm4,%xmm5
  movsd  %xmm4,0x18(%rsp)
  jae    L147
  movsd  D460(%rip),%xmm1
  movsd  %xmm0,0x20(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm2
  pxor   %xmm5,%xmm5
  movsd  D454(%rip),%xmm8
  movsd  D291(%rip),%xmm1
  movsd  0x10(%rsp),%xmm3
  mulsd  %xmm0,%xmm8
  movsd  0x18(%rsp),%xmm4
  subsd  %xmm8,%xmm1
  mulsd  %xmm2,%xmm1
  addsd  %xmm3,%xmm1
  comisd %xmm1,%xmm4
  jae    L147
  addsd  %xmm2,%xmm3
  mov    $0x1,%eax
  movsd  D644(%rip),%xmm1
  movsd  D291(%rip),%xmm6
  movsd  %xmm4,0x38(%rsp)
  divsd  %xmm0,%xmm6
  mulsd  %xmm1,%xmm2
  movapd %xmm3,%xmm7
  movapd %xmm4,%xmm3
  mulsd  %xmm1,%xmm7
  mulsd  %xmm1,%xmm3
  movsd  %xmm2,0x8(%rsp)
  movsd  %xmm7,0x30(%rsp)
  divsd  %xmm7,%xmm3
  movsd  %xmm6,0x10(%rsp)
  movsd  0x20(%rsp),%xmm6
  movapd %xmm6,%xmm0
  movsd  %xmm6,0x18(%rsp)
  movsd  %xmm3,0x28(%rsp)
  call   <radiation_logarithm@plt>
  pxor   %xmm6,%xmm6
  movsd  0x28(%rsp),%xmm3
  movsd  0x38(%rsp),%xmm4
  cvtsi2sd %eax,%xmm6
  movsd  (%rsp),%xmm7
  movq   %xmm6,%rbx
  movsd  0x18(%rsp),%xmm6
  ucomisd D291(%rip),%xmm6
  jp     L192
  movsd  D4(%rip),%xmm2
  movsd  %xmm2,0x18(%rsp)
  jne    L192
L167:
  movsd  D26(%rip),%xmm1
  movapd %xmm7,%xmm0
  movsd  %xmm3,(%rsp)
  movsd  %xmm4,0x28(%rsp)
  movsd  %xmm6,0x20(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm10
  pxor   %xmm5,%xmm5
  movsd  D46(%rip),%xmm1
  mulsd  D182(%rip),%xmm0
  movsd  (%rsp),%xmm3
  movsd  0x20(%rsp),%xmm6
  movsd  0x28(%rsp),%xmm4
  divsd  %xmm0,%xmm1
  divsd  %xmm1,%xmm10
  movsd  D202(%rip),%xmm1
  mulsd  %xmm10,%xmm1
  mulsd  %xmm10,%xmm1
  addsd  D291(%rip),%xmm1
  ucomisd %xmm1,%xmm5
  ja     L70
  sqrtsd %xmm1,%xmm1
L24:
  movsd  D291(%rip),%xmm0
  movapd %xmm1,%xmm2
  subsd  D291(%rip),%xmm2
  movsd  %xmm1,0x68(%rsp)
  movsd  %xmm4,0x78(%rsp)
  addsd  %xmm1,%xmm0
  movsd  %xmm6,0x70(%rsp)
  movsd  %xmm3,0x38(%rsp)
  movsd  %xmm10,(%rsp)
  divsd  %xmm2,%xmm0
  call   <log@plt>
  movsd  (%rsp),%xmm10
  movsd  %xmm0,0x60(%rsp)
  movapd %xmm10,%xmm0
  call   <log@plt>
  movsd  (%rsp),%xmm10
  movsd  %xmm0,0x20(%rsp)
  movapd %xmm10,%xmm0
  movsd  %xmm10,0x58(%rsp)
  call   <log@plt>
  movsd  0x8(%rsp),%xmm6
  movsd  0x30(%rsp),%xmm7
  movsd  0x38(%rsp),%xmm3
  movsd  %xmm0,0x28(%rsp)
  movsd  D291(%rip),%xmm8
  movapd %xmm6,%xmm2
  addsd  %xmm7,%xmm7
  movapd %xmm6,%xmm9
  divsd  D569(%rip),%xmm9
  mulsd  %xmm6,%xmm2
  subsd  %xmm3,%xmm8
  movsd  %xmm3,0x50(%rsp)
  movsd  %xmm9,0x40(%rsp)
  movapd %xmm7,%xmm0
  mulsd  %xmm8,%xmm0
  movsd  %xmm8,0x48(%rsp)
  mulsd  %xmm3,%xmm2
  movapd %xmm2,%xmm4
  movq   %rbx,%xmm2
  divsd  %xmm0,%xmm4
  mulsd  0x10(%rsp),%xmm2
  movapd %xmm2,%xmm7
  movapd %xmm2,%xmm5
  movsd  %xmm2,0x38(%rsp)
  mulsd  D413(%rip),%xmm7
  mulsd  %xmm9,%xmm5
  movapd %xmm5,%xmm0
  mulsd  %xmm4,%xmm7
  movsd  %xmm4,(%rsp)
  divsd  D569(%rip),%xmm7
  addsd  D291(%rip),%xmm7
  divsd  %xmm7,%xmm0
  call   <log@plt>
  movsd  0x38(%rsp),%xmm2
  movsd  D92(%rip),%xmm5
  movsd  0x40(%rsp),%xmm9
  movsd  %xmm0,0x30(%rsp)
  mulsd  %xmm2,%xmm5
  mulsd  D538(%rip),%xmm2
  mulsd  (%rsp),%xmm2
  divsd  D569(%rip),%xmm2
  addsd  D291(%rip),%xmm2
  movapd %xmm5,%xmm0
  mulsd  %xmm9,%xmm0
  divsd  %xmm2,%xmm0
  call   <log@plt>
  movsd  0x70(%rsp),%xmm6
  movsd  (%rsp),%xmm4
  movsd  D291(%rip),%xmm5
  movsd  D291(%rip),%xmm2
  movapd %xmm0,%xmm13
  movsd  0x68(%rsp),%xmm1
  movsd  0x60(%rsp),%xmm11
  movsd  %xmm6,0x40(%rsp)
  divsd  %xmm6,%xmm5
  movsd  0x30(%rsp),%xmm7
  movsd  0x58(%rsp),%xmm10
  movapd %xmm1,%xmm12
  movsd  0x8(%rsp),%xmm6
  mulsd  %xmm1,%xmm12
  subsd  %xmm5,%xmm2
  movsd  %xmm5,0x38(%rsp)
  movsd  D614(%rip),%xmm5
  mulsd  %xmm1,%xmm5
  movapd %xmm5,%xmm0
  movsd  D373(%rip),%xmm5
  mulsd  %xmm11,%xmm0
  addsd  0x20(%rsp),%xmm0
  mulsd  %xmm1,%xmm5
  mulsd  %xmm12,%xmm1
  mulsd  %xmm2,%xmm0
  subsd  %xmm0,%xmm7
  movapd %xmm5,%xmm0
  subsd  %xmm1,%xmm0
  movapd %xmm10,%xmm1
  mulsd  D328(%rip),%xmm0
  addsd  %xmm10,%xmm1
  movsd  %xmm7,0x30(%rsp)
  mulsd  %xmm10,%xmm1
  mulsd  %xmm11,%xmm0
  addsd  0x28(%rsp),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  subsd  %xmm0,%xmm13
  movapd %xmm6,%xmm0
  divsd  %xmm4,%xmm0
  mulsd  %xmm4,%xmm6
  movsd  %xmm13,0x20(%rsp)
  movapd %xmm6,%xmm1
  divsd  D28(%rip),%xmm1
  addsd  D20(%rip),%xmm1
  divsd  %xmm1,%xmm0
  call   <log@plt>
  movsd  0x18(%rsp),%xmm1
  mulsd  (%rsp),%xmm1
  movsd  0x10(%rsp),%xmm6
  movsd  %xmm0,0x28(%rsp)
  movsd  D569(%rip),%xmm0
  mulsd  %xmm6,%xmm1
  mulsd  %xmm6,%xmm1
  mulsd  D20(%rip),%xmm1
  divsd  %xmm1,%xmm0
  addsd  D291(%rip),%xmm0
  call   <log@plt>
  movsd  0x50(%rsp),%xmm3
  movsd  0x48(%rsp),%xmm8
  pxor   %xmm5,%xmm5
  movsd  D642(%rip),%xmm10
  movsd  0x28(%rsp),%xmm2
  movapd %xmm3,%xmm11
  comisd %xmm3,%xmm5
  movsd  0x30(%rsp),%xmm7
  movsd  0x38(%rsp),%xmm9
  mulsd  %xmm3,%xmm11
  subsd  %xmm0,%xmm2
  movapd %xmm5,%xmm0
  movsd  0x40(%rsp),%xmm6
  mulsd  %xmm8,%xmm10
  movsd  0x78(%rsp),%xmm4
  addsd  %xmm11,%xmm10
  mulsd  %xmm2,%xmm10
  ja     L76
  comisd D291(%rip),%xmm3
  ja     L76
  movsd  D156(%rip),%xmm0
  comisd %xmm3,%xmm0
  jbe    L172
  movsd  D210(%rip),%xmm1
  movsd  D306(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm0
  subsd  D101(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  nopl   0x0(%rax)
L76:
  addsd  %xmm3,%xmm3
  movsd  D295(%rip),%xmm2
  mulsd  %xmm10,%xmm9
  mulsd  D546(%rip),%xmm8
  mulsd  0x20(%rsp),%xmm8
  subsd  %xmm3,%xmm2
  movapd %xmm2,%xmm1
  addsd  %xmm11,%xmm1
  mulsd  %xmm7,%xmm1
  mulsd  D199(%rip),%xmm7
  subsd  %xmm8,%xmm1
  mulsd  %xmm0,%xmm7
  addsd  %xmm9,%xmm1
  addsd  %xmm7,%xmm1
  comisd %xmm1,%xmm5
  jae    L147
  movsd  D545(%rip),%xmm2
  movsd  D569(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  addsd  %xmm0,%xmm0
  mulsd  D103(%rip),%xmm0
  divsd  %xmm4,%xmm2
  mulsd  %xmm6,%xmm0
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  D486(%rip),%xmm0
  jmp    L99
  nopw   0x0(%rax,%rax,1)
L147:
  movapd %xmm5,%xmm0
L99:
  sub    $0xffffffffffffff80,%rsp
  pop    %rbx
  ret
  nopw   0x0(%rax,%rax,1)
L116:
  movapd %xmm5,%xmm0
  ret
  nopl   (%rax)
L192:
  movsd  D461(%rip),%xmm2
  movsd  %xmm2,0x18(%rsp)
  jmp    L167
  nopl   0x0(%rax,%rax,1)
L172:
  comisd %xmm0,%xmm3
  jb     L32
  movsd  D6(%rip),%xmm0
  comisd %xmm3,%xmm0
  jbe    L32
  movsd  D150(%rip),%xmm1
  movsd  D131(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm0
  addsd  D225(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  movsd  D17(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  jmp    L76
L32:
  comisd D653(%rip),%xmm3
  movsd  %xmm4,0x58(%rsp)
  movapd %xmm3,%xmm1
  movsd  %xmm6,0x50(%rsp)
  movsd  %xmm10,0x48(%rsp)
  movsd  %xmm7,0x40(%rsp)
  movsd  %xmm11,0x38(%rsp)
  movsd  %xmm9,0x30(%rsp)
  jb     L228
  movsd  D435(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L54
L228:
  movsd  D191(%rip),%xmm0
  mulsd  D321(%rip),%xmm1
  movsd  %xmm8,0x28(%rsp)
  addsd  D482(%rip),%xmm1
  movsd  %xmm3,0x10(%rsp)
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  addsd  %xmm0,%xmm1
  movapd %xmm8,%xmm0
  movsd  %xmm1,(%rsp)
  call   <log@plt>
  movsd  0x10(%rsp),%xmm3
  movsd  %xmm0,0x18(%rsp)
  movapd %xmm3,%xmm0
  call   <log@plt>
  movsd  0x10(%rsp),%xmm3
  pxor   %xmm5,%xmm5
  movsd  0x18(%rsp),%xmm1
  movapd %xmm0,%xmm2
  movsd  D55(%rip),%xmm0
  movsd  0x58(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm6
  movsd  0x48(%rsp),%xmm10
  mulsd  %xmm3,%xmm0
  movsd  0x40(%rsp),%xmm7
  movsd  0x38(%rsp),%xmm11
  movsd  0x30(%rsp),%xmm9
  movsd  0x28(%rsp),%xmm8
  mulsd  %xmm2,%xmm0
  movsd  D318(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm2,%xmm0
  movsd  D576(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  addsd  (%rsp),%xmm0
  jmp    L76
L54:
  movsd  D464(%rip),%xmm0
  mulsd  D387(%rip),%xmm1
  movsd  %xmm8,0x28(%rsp)
  subsd  D12(%rip),%xmm1
  movsd  %xmm3,0x10(%rsp)
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  addsd  %xmm0,%xmm1
  movapd %xmm8,%xmm0
  movsd  %xmm1,(%rsp)
  call   <log@plt>
  movsd  0x10(%rsp),%xmm3
  movsd  %xmm0,0x18(%rsp)
  movapd %xmm3,%xmm0
  call   <log@plt>
  movsd  0x10(%rsp),%xmm3
  pxor   %xmm5,%xmm5
  movsd  0x18(%rsp),%xmm1
  movapd %xmm0,%xmm2
  movsd  D534(%rip),%xmm0
  movsd  0x28(%rsp),%xmm8
  movsd  0x30(%rsp),%xmm9
  movsd  0x38(%rsp),%xmm11
  mulsd  %xmm3,%xmm0
  movsd  0x40(%rsp),%xmm7
  movsd  0x48(%rsp),%xmm10
  movsd  0x50(%rsp),%xmm6
  movsd  0x58(%rsp),%xmm4
  mulsd  %xmm2,%xmm0
  movsd  D593(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm2,%xmm0
  movsd  D346(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  addsd  (%rsp),%xmm0
  jmp    L76
L70:
  movapd %xmm1,%xmm0
  movsd  %xmm4,0x38(%rsp)
  movsd  %xmm6,0x28(%rsp)
  movsd  %xmm10,0x20(%rsp)
  movsd  %xmm3,(%rsp)
  call   <sqrt@plt>
  movsd  0x38(%rsp),%xmm4
  movsd  0x28(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm10
  movsd  (%rsp),%xmm3
  movapd %xmm0,%xmm1
  jmp    L24
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D460
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D454
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D291
type: f64[2]
name: extract_symbolic_data
arguments: data_label: D644
type: f32[2]
name: extract_symbolic_data
arguments: data_label: D4
type: f64
name: extract_symbolic_data
arguments: data_label: D26
type: f64
name: extract_symbolic_data
arguments: data_label: D46
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D182
type: f64
name: extract_symbolic_data
arguments: data_label: D202
type: f64
name: extract_symbolic_data
arguments: data_label: D569
type: f64
name: extract_symbolic_data
arguments: data_label: D413
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D92
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D538
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D614
type: f64
name: extract_symbolic_data
arguments: data_label: D373
type: f64
name: extract_symbolic_data
arguments: data_label: D328
type: f64
name: extract_symbolic_data
arguments: data_label: D28
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D20
type: f64
name: extract_symbolic_data
arguments: data_label: D642
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D156
type: f64
name: extract_symbolic_data
arguments: data_label: D210
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D306
type: f64
name: extract_symbolic_data
arguments: data_label: D101
type: f64
name: extract_symbolic_data
arguments: data_label: D295
type: f64
name: extract_symbolic_data
arguments: data_label: D546
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D199
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D545
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D103
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D486
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D461
type: f64
name: extract_symbolic_data
arguments: data_label: D6
type: f64
name: extract_symbolic_data
arguments: data_label: D150
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D131
type: f64
name: extract_symbolic_data
arguments: data_label: D225
type: f64
name: extract_symbolic_data
arguments: data_label: D17
type: f64
name: extract_symbolic_data
arguments: data_label: D653
type: f64[2]
name: extract_symbolic_data
arguments: data_label: D435
type: f64
name: extract_symbolic_data
arguments: data_label: D191
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D321
type: f64
name: extract_symbolic_data
arguments: data_label: D482
type: f64
name: extract_symbolic_data
arguments: data_label: D55
type: f64
name: extract_symbolic_data
arguments: data_label: D318
type: f64
name: extract_symbolic_data
arguments: data_label: D576
type: f64
name: extract_symbolic_data
arguments: data_label: D464
type: f64
name: extract_symbolic_data
arguments: data_label: D387
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D12
type: f64
name: extract_symbolic_data
arguments: data_label: D534
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D593
type: f64
name: extract_symbolic_data
arguments: data_label: D346
type: f64

tool: {"D460": [0x55,0x55,0x55,0x55,0x55,0x55,0xd5,0x3f]}

tool: {"D454": [0xf4,0x84,0x96,0x2a,0xdf,0xc8,0xf3,0x3f]}

tool: {"D291": [1.0,1000.0]}

tool: {"D644": [0.0,4.4765625]}

tool: D4: 446

tool: D26: 0.27

tool: {"D46": [0xcd,0x3b,0x71,0x0b,0x59,0xf3,0x71,0x40]}

tool: D182: 1.54

tool: D202: 4

tool: D569: 0.5109989461

tool: {"D413": [0x9c,0x06,0x1e,0x8e,0x29,0x61,0xfa,0x3f]}

tool: {"D92": [0xb1,0x23,0xa2,0xd7,0x60,0x16,0xeb,0x3f]}

tool: {"D538": [0x13,0x2d,0xba,0xb1,0x6d,0x54,0xf6,0x3f]}

tool: D614: 0.5

tool: D373: 3

tool: D328: 0.25

tool: {"D28": [0xd7,0x56,0x50,0x56,0x30,0xb6,0xd0,0x3f]}

tool: D20: 1.648721270700128

tool: {"D642": [0x55,0x55,0x55,0x55,0x55,0x55,0xf5,0x3f]}

tool: D156: 0.02

tool: {"D210": [0x68,0x91,0xed,0x7c,0x3f,0xdc,0x8e,0xc0]}

tool: D306: 148.84

tool: D101: 0.00349

tool: D295: 2

tool: {"D546": [0x55,0x55,0x55,0x55,0x55,0x55,0xe5,0x3f]}

tool: {"D199": [0x9d,0xd2,0x1e,0x2a,0xd4,0xe3,0x5d,0x3f]}

tool: {"D545": [0x9d,0xd2,0x1e,0x2a,0xd4,0xe3,0x7d,0x3f]}

tool: {"D103": [0x58,0x21,0x44,0x99,0x59,0xd4,0x53,0x3d]}

tool: {"D486": [0x2d,0x43,0x1c,0xeb,0xe2,0x36,0x1a,0x3f]}

tool: D461: 1429

tool: D6: 0.1

tool: {"D150": [0xd9,0xce,0xf7,0x53,0xe3,0x4a,0x82,0xc0]}

tool: D131: 132.573

tool: D225: 0.1642

tool: D17: 1407.77

tool: {"D653": [0.01,0.9]}

tool: D435: 0.9

tool: {"D191": [0x33,0x33,0x33,0x33,0xb3,0x29,0xa5,0xc0]}

tool: D321: 581.823

tool: D482: 2134.19

tool: D55: 4767.05

tool: D318: 1.52918

tool: D576: 0.361933

tool: D464: 57.698

tool: {"D387": [0x4e,0xd1,0x91,0x5c,0xfe,0x03,0x33,0xc0]}

tool: D12: 2.8922

tool: {"D534": [0x2f,0xdd,0x24,0x06,0x81,0xb5,0x4f,0xc0]}

tool: D593: 14.1166

tool: D346: 1.84206

assistant: ```c
double dcs_bremsstrahlung_SSR(double Z, double A, double m, double K, double q) {
  if ((Z <= 0) || (A <= 0) || (m <= 0) || (K <= 0) || (q <= 0))
    return 0.;
  const double z13 = pow(Z, 1. / 3.);
  if (q >= K + m * (1. - 0.75 * 1.648721270700128 * z13))
    return 0.;
  const double a[3] = {-0.00349, 148.84, -987.531};
  const double b[4] = {0.1642, 132.573, -585.361, 1407.77};
  const double c[6] = {-2.8922, -19.0156, 57.698, -63.418, 14.1166, 1.84206};
  const double d[6] = {2134.19, 581.823, -2708.85, 4767.05, 1.52918, 0.361933};
  const double energy = (K + m) * 1E+03;
  const double v = q * 1E+03 / energy;
  m *= 1E+03;
  const double Z13 = 1. / z13;
  const double rad_log = radiation_logarithm(Z);
  const double rad_log_inel = (Z == 1.) ? 446. : 1429.;
  const double Dn = 1.54 * pow(A, 0.27);
  const double mu_qc = m / (105.6583745 * exp(1.) / Dn);
  const double rho = sqrt(1. + 4. * mu_qc * mu_qc);
  const double log_rho = log((rho + 1.) / (rho - 1.));
  const double delta1 = log(mu_qc) + 0.5 * rho * log_rho;
  const double delta2 = log(mu_qc) + 0.25 * (3. * rho - rho * rho * rho) * log_rho + 2. * mu_qc * mu_qc;
  const double delta = m * m * v / (2. * energy * (1. - v));
  double phi1 = log(rad_log * Z13 * (m / 0.5109989461) / (1. + rad_log * Z13 * exp(0.5) * delta / 0.5109989461));
  double phi2 = log(rad_log * Z13 * exp(-1. / 6.) * (m / 0.5109989461) / (1. + rad_log * Z13 * exp(1. / 3.) * delta / 0.5109989461));
  phi1 -= delta1 * (1. - 1. / Z);
  phi2 -= delta2 * (1. - 1. / Z);
  const double s_atomic_1 = log(m / delta / (m * delta / (0.5109989461 * 0.5109989461) + 1.648721270700128));
  const double s_atomic_2 = log(1. + 0.5109989461 / (delta * rad_log_inel * Z13 * Z13 * 1.648721270700128));
  const double s_atomic = (4. / 3. * (1. - v) + v * v) * (s_atomic_1 - s_atomic_2);
  double s_rad;
  if (v < .0 || v > 1.) {
    s_rad = 0.;
  } else if (v < 0.02) {
    s_rad = a[0] + a[1] * v + a[2] * v * v;
  } else if (v >= 0.02 && v < 0.1) {
    s_rad = b[0] + b[1] * v + b[2] * v * v + b[3] * v * v * v;
  } else if (v >= 0.01 && v < 0.9) {
    s_rad = c[0] + c[1] * v + c[2] * v * v;
    const double tmp = log(1. - v);
    s_rad += c[3] * v * log(v) + c[4] * tmp + c[5] * tmp * tmp;
  } else {
    s_rad = d[0] + d[1] * v + d[2] * v * v;
    const double tmp = log(1. - v);
    s_rad += d[3] * v * log(v) + d[4] * tmp + d[5] * tmp * tmp;
  }
  const double result = ((2. - 2. * v + v * v) * phi1 - 2. / 3. * (1. - v) * phi2) + 1. / Z * s_atomic + 0.25 * 7.2973525693E-03 * phi1 * s_rad;
  if (result <= 0.)
    return 0.;
  const double aux = 2 * (0.5109989461 / m) * 2.8179403227E-13 * Z;
  return aux * aux * (7.2973525693E-03 / q) * result * 1E-04;
}
```