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

```asm
<dcs_bremsstrahlung_SSR>:
  endbr64
  pxor   %xmm5,%xmm5
  comisd %xmm0,%xmm5
  jae    L55
  push   %rbx
  add    $0xffffffffffffff80,%rsp
  comisd %xmm1,%xmm5
  movsd  %xmm1,(%rsp)
  jae    L146
  comisd %xmm2,%xmm5
  movsd  %xmm2,0x8(%rsp)
  jae    L146
  comisd %xmm3,%xmm5
  movsd  %xmm3,0x10(%rsp)
  jae    L146
  comisd %xmm4,%xmm5
  movsd  %xmm4,0x18(%rsp)
  jae    L146
  movsd  D176(%rip),%xmm1
  movsd  %xmm0,0x20(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm2
  pxor   %xmm5,%xmm5
  movsd  D63(%rip),%xmm8
  movsd  D412(%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    L146
  addsd  %xmm2,%xmm3
  mov    $0x1,%eax
  movsd  D440(%rip),%xmm1
  movsd  D412(%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 D412(%rip),%xmm6
  jp     L114
  movsd  D351(%rip),%xmm2
  movsd  %xmm2,0x18(%rsp)
  jne    L114
L164:
  movsd  D109(%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  D160(%rip),%xmm1
  mulsd  D169(%rip),%xmm0
  movsd  (%rsp),%xmm3
  movsd  0x20(%rsp),%xmm6
  movsd  0x28(%rsp),%xmm4
  divsd  %xmm0,%xmm1
  divsd  %xmm1,%xmm10
  movsd  D366(%rip),%xmm1
  mulsd  %xmm10,%xmm1
  mulsd  %xmm10,%xmm1
  addsd  D412(%rip),%xmm1
  ucomisd %xmm1,%xmm5
  ja     L54
  sqrtsd %xmm1,%xmm1
L117:
  movsd  D412(%rip),%xmm0
  movapd %xmm1,%xmm2
  subsd  D412(%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  D412(%rip),%xmm8
  movapd %xmm6,%xmm2
  addsd  %xmm7,%xmm7
  movapd %xmm6,%xmm9
  divsd  D518(%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  D127(%rip),%xmm7
  mulsd  %xmm9,%xmm5
  movapd %xmm5,%xmm0
  mulsd  %xmm4,%xmm7
  movsd  %xmm4,(%rsp)
  divsd  D518(%rip),%xmm7
  addsd  D412(%rip),%xmm7
  divsd  %xmm7,%xmm0
  call   <log@plt>
  movsd  0x38(%rsp),%xmm2
  movsd  D482(%rip),%xmm5
  movsd  0x40(%rsp),%xmm9
  movsd  %xmm0,0x30(%rsp)
  mulsd  %xmm2,%xmm5
  mulsd  D602(%rip),%xmm2
  mulsd  (%rsp),%xmm2
  divsd  D518(%rip),%xmm2
  addsd  D412(%rip),%xmm2
  movapd %xmm5,%xmm0
  mulsd  %xmm9,%xmm0
  divsd  %xmm2,%xmm0
  call   <log@plt>
  movsd  0x70(%rsp),%xmm6
  movsd  (%rsp),%xmm4
  movsd  D412(%rip),%xmm5
  movsd  D412(%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  D606(%rip),%xmm5
  mulsd  %xmm1,%xmm5
  movapd %xmm5,%xmm0
  movsd  D338(%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  D263(%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  D633(%rip),%xmm1
  addsd  D328(%rip),%xmm1
  divsd  %xmm1,%xmm0
  call   <log@plt>
  movsd  0x18(%rsp),%xmm1
  mulsd  (%rsp),%xmm1
  movsd  0x10(%rsp),%xmm6
  movsd  %xmm0,0x28(%rsp)
  movsd  D518(%rip),%xmm0
  mulsd  %xmm6,%xmm1
  mulsd  %xmm6,%xmm1
  mulsd  D328(%rip),%xmm1
  divsd  %xmm1,%xmm0
  addsd  D412(%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     L144
  comisd D412(%rip),%xmm3
  ja     L144
  movsd  D331(%rip),%xmm0
  comisd %xmm3,%xmm0
  jbe    L151
  movsd  D418(%rip),%xmm1
  movsd  D124(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm0
  subsd  D369(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  nopl   0x0(%rax)
L144:
  addsd  %xmm3,%xmm3
  movsd  D117(%rip),%xmm2
  mulsd  %xmm10,%xmm9
  mulsd  D76(%rip),%xmm8
  mulsd  0x20(%rsp),%xmm8
  subsd  %xmm3,%xmm2
  movapd %xmm2,%xmm1
  addsd  %xmm11,%xmm1
  mulsd  %xmm7,%xmm1
  mulsd  D445(%rip),%xmm7
  subsd  %xmm8,%xmm1
  mulsd  %xmm0,%xmm7
  addsd  %xmm9,%xmm1
  addsd  %xmm7,%xmm1
  comisd %xmm1,%xmm5
  jae    L146
  movsd  D599(%rip),%xmm2
  movsd  D518(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  addsd  %xmm0,%xmm0
  mulsd  D192(%rip),%xmm0
  divsd  %xmm4,%xmm2
  mulsd  %xmm6,%xmm0
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  D411(%rip),%xmm0
  jmp    L158
  nopw   0x0(%rax,%rax,1)
L146:
  movapd %xmm5,%xmm0
L158:
  sub    $0xffffffffffffff80,%rsp
  pop    %rbx
  ret
  nopw   0x0(%rax,%rax,1)
L55:
  movapd %xmm5,%xmm0
  ret
  nopl   (%rax)
L114:
  movsd  D289(%rip),%xmm2
  movsd  %xmm2,0x18(%rsp)
  jmp    L164
  nopl   0x0(%rax,%rax,1)
L151:
  comisd %xmm0,%xmm3
  jb     L167
  movsd  D611(%rip),%xmm0
  comisd %xmm3,%xmm0
  jbe    L167
  movsd  D196(%rip),%xmm1
  movsd  D610(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm0
  addsd  D212(%rip),%xmm0
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  movsd  D144(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  jmp    L144
L167:
  comisd D55(%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     L28
  movsd  D233(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L148
L28:
  movsd  D113(%rip),%xmm0
  mulsd  D46(%rip),%xmm1
  movsd  %xmm8,0x28(%rsp)
  addsd  D120(%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  D92(%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  D515(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm2,%xmm0
  movsd  D478(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  addsd  (%rsp),%xmm0
  jmp    L144
L148:
  movsd  D564(%rip),%xmm0
  mulsd  D425(%rip),%xmm1
  movsd  %xmm8,0x28(%rsp)
  subsd  D521(%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  D597(%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  D448(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm2,%xmm0
  movsd  D529(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  addsd  (%rsp),%xmm0
  jmp    L144
L54:
  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    L117
```

tool_calls: name: retrieve_data
arguments: data_label: D176
data_type: byte[8]
name: retrieve_data
arguments: data_label: D63
data_type: byte[8]
name: retrieve_data
arguments: data_label: D412
data_type: f64[2]
name: retrieve_data
arguments: data_label: D440
data_type: f32[2]
name: retrieve_data
arguments: data_label: D351
data_type: f64
name: retrieve_data
arguments: data_label: D109
data_type: f64
name: retrieve_data
arguments: data_label: D160
data_type: byte[8]
name: retrieve_data
arguments: data_label: D169
data_type: f64
name: retrieve_data
arguments: data_label: D366
data_type: f64
name: retrieve_data
arguments: data_label: D518
data_type: f64
name: retrieve_data
arguments: data_label: D127
data_type: byte[8]
name: retrieve_data
arguments: data_label: D482
data_type: byte[8]
name: retrieve_data
arguments: data_label: D602
data_type: byte[8]
name: retrieve_data
arguments: data_label: D606
data_type: f64
name: retrieve_data
arguments: data_label: D338
data_type: f64
name: retrieve_data
arguments: data_label: D263
data_type: f64
name: retrieve_data
arguments: data_label: D633
data_type: byte[8]
name: retrieve_data
arguments: data_label: D328
data_type: f64
name: retrieve_data
arguments: data_label: D642
data_type: byte[8]
name: retrieve_data
arguments: data_label: D331
data_type: f64
name: retrieve_data
arguments: data_label: D418
data_type: byte[8]
name: retrieve_data
arguments: data_label: D124
data_type: f64
name: retrieve_data
arguments: data_label: D369
data_type: f64
name: retrieve_data
arguments: data_label: D117
data_type: f64
name: retrieve_data
arguments: data_label: D76
data_type: byte[8]
name: retrieve_data
arguments: data_label: D445
data_type: byte[8]
name: retrieve_data
arguments: data_label: D599
data_type: byte[8]
name: retrieve_data
arguments: data_label: D192
data_type: byte[8]
name: retrieve_data
arguments: data_label: D411
data_type: byte[8]
name: retrieve_data
arguments: data_label: D289
data_type: f64
name: retrieve_data
arguments: data_label: D611
data_type: f64
name: retrieve_data
arguments: data_label: D196
data_type: byte[8]
name: retrieve_data
arguments: data_label: D610
data_type: f64
name: retrieve_data
arguments: data_label: D212
data_type: f64
name: retrieve_data
arguments: data_label: D144
data_type: f64
name: retrieve_data
arguments: data_label: D55
data_type: f64[2]
name: retrieve_data
arguments: data_label: D233
data_type: f64
name: retrieve_data
arguments: data_label: D113
data_type: byte[8]
name: retrieve_data
arguments: data_label: D46
data_type: f64
name: retrieve_data
arguments: data_label: D120
data_type: f64
name: retrieve_data
arguments: data_label: D92
data_type: f64
name: retrieve_data
arguments: data_label: D515
data_type: f64
name: retrieve_data
arguments: data_label: D478
data_type: f64
name: retrieve_data
arguments: data_label: D564
data_type: f64
name: retrieve_data
arguments: data_label: D425
data_type: byte[8]
name: retrieve_data
arguments: data_label: D521
data_type: f64
name: retrieve_data
arguments: data_label: D597
data_type: byte[8]
name: retrieve_data
arguments: data_label: D448
data_type: f64
name: retrieve_data
arguments: data_label: D529
data_type: f64

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

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

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

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

tool: D351: 446

tool: D109: 0.27

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

tool: D169: 1.54

tool: D366: 4

tool: D518: 0.5109989461

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

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

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

tool: D606: 0.5

tool: D338: 3

tool: D263: 0.25

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

tool: D328: 1.648721270700128

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

tool: D331: 0.02

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

tool: D124: 148.84

tool: D369: 0.00349

tool: D117: 2

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

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

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

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

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

tool: D289: 1429

tool: D611: 0.1

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

tool: D610: 132.573

tool: D212: 0.1642

tool: D144: 1407.77

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

tool: D233: 0.9

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

tool: D46: 581.823

tool: D120: 2134.19

tool: D92: 4767.05

tool: D515: 1.52918

tool: D478: 0.361933

tool: D564: 57.698

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

tool: D521: 2.8922

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

tool: D448: 14.1166

tool: D529: 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;
}
```