// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/thermodynamics.c
// Function: thermodynamics_checks
int thermodynamics_checks(
                          struct precision * ppr,
                          struct background* pba,
                          struct thermodynamics * pth
                          ) {

  /** Summary: */

  /** - check BBN Y_He fracion */
  class_test((pth->YHe < _YHE_SMALL_)||(pth->YHe > _YHE_BIG_),
             pth->error_message,
             "Y_He=%g out of bounds (%g<Y_He<%g)",pth->YHe,_YHE_SMALL_,_YHE_BIG_);

  /** - tests in order to prevent divisions by zero */
  class_test(pth->YHe == 1.,
             pth->error_message,
             "stop to avoid division by zero");

  /** - test initial condition for recombination */
  class_test(ppr->thermo_z_initial < ppr->recfast_z_He_3,
             pth->error_message,
             "increase z_initial in order to start before HeliumIII recombination");

  return _SUCCESS_;
}

// Assembly:
subq $0x3028, %rsp           # imm = 0x3028
movq %rdi, 0x3018(%rsp)
movq %rsi, 0x3010(%rsp)
movq %rdx, 0x3008(%rsp)
movq 0x3008(%rsp), %rax
movsd 0x120a91(%rip), %xmm0   # 0x1d4fd0
ucomisd (%rax), %xmm0
ja 0xb4563
movq 0x3008(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x11e72f(%rip), %xmm1   # 0x1d2c88
ucomisd %xmm1, %xmm0
jbe 0xb45fb
leaq 0x2800(%rsp), %rdi
movq 0x3008(%rsp), %rax
movsd (%rax), %xmm0
leaq 0x13de22(%rip), %rsi    # 0x1f23a0
movsd 0x120a4a(%rip), %xmm1   # 0x1d4fd0
movsd 0x11e6fa(%rip), %xmm2   # 0x1d2c88
movb $0x3, %al
callq 0x5b9c0
leaq 0x2000(%rsp), %rdi
leaq 0x2800(%rsp), %rcx
leaq 0x11dad6(%rip), %rsi    # 0x1d2082
leaq 0x13de10(%rip), %rdx    # 0x1f23c3
movb $0x0, %al
callq 0x5b9c0
movq 0x3008(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x2000(%rsp), %r8
leaq 0x11da5c(%rip), %rsi    # 0x1d2034
leaq 0x13de15(%rip), %rdx    # 0x1f23f4
movl $0x2ef, %ecx            # imm = 0x2EF
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3024(%rsp)
jmp 0xb4733
movq 0x3008(%rsp), %rax
movsd (%rax), %xmm0
movsd 0x11dc39(%rip), %xmm1   # 0x1d2248
ucomisd %xmm1, %xmm0
jne 0xb4693
jp 0xb4693
leaq 0x1800(%rsp), %rdi
leaq 0x11f6fe(%rip), %rsi    # 0x1d3d24
movb $0x0, %al
callq 0x5b9c0
leaq 0x1000(%rsp), %rdi
leaq 0x1800(%rsp), %rcx
leaq 0x11da3e(%rip), %rsi    # 0x1d2082
leaq 0x13ddbf(%rip), %rdx    # 0x1f240a
movb $0x0, %al
callq 0x5b9c0
movq 0x3008(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
leaq 0x1000(%rsp), %r8
leaq 0x11d9c4(%rip), %rsi    # 0x1d2034
leaq 0x13dd7d(%rip), %rdx    # 0x1f23f4
movl $0x2f4, %ecx            # imm = 0x2F4
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3024(%rsp)
jmp 0xb4733
movq 0x3018(%rsp), %rax
movsd 0x190(%rax), %xmm1
movq 0x3018(%rsp), %rax
movsd 0x278(%rax), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xb4728
leaq 0x800(%rsp), %rdi
leaq 0x13dd51(%rip), %rsi    # 0x1f2419
movb $0x0, %al
callq 0x5b9c0
movq %rsp, %rdi
leaq 0x800(%rsp), %rcx
leaq 0x11d9a1(%rip), %rsi    # 0x1d2082
leaq 0x13dd75(%rip), %rdx    # 0x1f245d
movb $0x0, %al
callq 0x5b9c0
movq 0x3008(%rsp), %rdi
addq $0x1064, %rdi           # imm = 0x1064
movq %rsp, %r8
leaq 0x11d92c(%rip), %rsi    # 0x1d2034
leaq 0x13dce5(%rip), %rdx    # 0x1f23f4
movl $0x2f9, %ecx            # imm = 0x2F9
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x3024(%rsp)
jmp 0xb4733
movl $0x0, 0x3024(%rsp)
movl 0x3024(%rsp), %eax
addq $0x3028, %rsp           # imm = 0x3028
retq
nopw %cs:(%rax,%rax)