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

  /** Summary: */

  /** Define local variables */
  double tau_reio;

  printf(" -> recombination (maximum of visibility function) at z = %f\n",pth->z_rec);
  printf("    corresponding to conformal time = %f Mpc\n",pth->tau_rec);
  printf("    with comoving sound horizon = %f Mpc\n",pth->rs_rec);
  printf("    angular diameter distance = %f Mpc\n",pth->da_rec);
  printf("    sound horizon angle 100*theta_s = %f\n",100.*pth->rs_rec/pth->ra_rec);
  if (pth->compute_damping_scale == _TRUE_) {
    printf("    comoving photon damping scale = %f Mpc\n",pth->rd_rec);
    printf("    comoving damping wavenumber k_d = %f 1/Mpc\n",2.*_PI_/pth->rd_rec);
  }
  printf("    Thomson optical depth crosses one at z_* = %f\n",pth->z_star);
  printf("    giving an angle 100*theta_* = %f\n",100.*pth->rs_star/pth->ra_star);
  printf(" -> baryon drag stops at z = %f\n",pth->z_d);
  printf("    corresponding to conformal time = %f Mpc\n",pth->tau_d);
  printf("    with comoving sound horizon rs = %f Mpc\n",pth->rs_d);

  switch (pth->reio_parametrization) {

  case reio_none:
    /* the information returned by this line could be interesting when
       using reio_none + exotic energy ionjection, since there could
       still be a global minimum of x_e(z) */
    printf(" -> no reionization requested, optical depth = %f\n",pth->tau_reio);
    break;

  case reio_camb:
  case reio_half_tanh:
    switch (pth->reio_z_or_tau) {
    case reio_tau:
      printf(" -> reionization at z = %f\n",pth->z_reio);
      break;
    case reio_z:
      printf(" -> reionization with optical depth = %f\n",pth->tau_reio);
      break;
    }
    printf("    corresponding to conformal time = %f Mpc\n",pth->conf_time_reio);
    break;

  case reio_bins_tanh:
    printf(" -> binned reionization gives optical depth = %f\n",pth->tau_reio);
    break;

  case reio_many_tanh:
    printf(" -> many-step reionization gives optical depth = %f\n",pth->tau_reio);
    break;

  case reio_inter:
    printf(" -> interpolated reionization history gives optical depth = %f\n",pth->tau_reio);
    break;

  default:
    class_stop(pth->error_message,
               "value of reio_parametrization=%d unclear",pth->reio_parametrization);
    break;
  }

  if (pth->thermodynamics_verbose > 1)
    printf(" -> free-streaming approximation can be turned on as soon as tau=%g Mpc\n",pth->tau_free_streaming);
  if ((pba->has_idr == _TRUE_)&&(pth->thermodynamics_verbose > 1))
    printf(" -> dark free-streaming approximation can be turned on as soon as tau=%g Mpc\n",pth->tau_idr_free_streaming);

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x1000, %rsp           # imm = 0x1000
movq %rsi, %rbx
movq %rdi, %r14
movsd 0xf30(%rsi), %xmm0
leaq 0x9f9b1(%rip), %rdi     # 0x1064f3
movb $0x1, %al
callq 0x8030
movsd 0xf38(%rbx), %xmm0
leaq 0x9d1e5(%rip), %rdi     # 0x103d3d
movb $0x1, %al
callq 0x8030
movsd 0xf40(%rbx), %xmm0
leaq 0x9f9c3(%rip), %rdi     # 0x106531
movb $0x1, %al
callq 0x8030
movsd 0xf58(%rbx), %xmm0
leaq 0x9f9d7(%rip), %rdi     # 0x10655b
movb $0x1, %al
callq 0x8030
movsd 0xf40(%rbx), %xmm0
mulsd 0x7f165(%rip), %xmm0    # 0xe5d00
divsd 0xf50(%rbx), %xmm0
leaq 0x9f9d9(%rip), %rdi     # 0x106583
movb $0x1, %al
callq 0x8030
cmpw $0x1, 0x32(%rbx)
jne 0x66bec
movsd 0xf60(%rbx), %xmm0
leaq 0x9f9e6(%rip), %rdi     # 0x1065ad
movb $0x1, %al
callq 0x8030
movsd 0x81812(%rip), %xmm0    # 0xe83e8
divsd 0xf60(%rbx), %xmm0
leaq 0x9f9f4(%rip), %rdi     # 0x1065d9
movb $0x1, %al
callq 0x8030
movsd 0xf68(%rbx), %xmm0
leaq 0x9fa0e(%rip), %rdi     # 0x106609
movb $0x1, %al
callq 0x8030
movsd 0xf78(%rbx), %xmm0
mulsd 0x7f0ee(%rip), %xmm0    # 0xe5d00
divsd 0xf88(%rbx), %xmm0
leaq 0x9fa1b(%rip), %rdi     # 0x10663c
movb $0x1, %al
callq 0x8030
movsd 0xfa0(%rbx), %xmm0
leaq 0x9fa2b(%rip), %rdi     # 0x106662
movb $0x1, %al
callq 0x8030
movsd 0xfa8(%rbx), %xmm0
leaq 0x9d0f0(%rip), %r15     # 0x103d3d
movq %r15, %rdi
movb $0x1, %al
callq 0x8030
movsd 0xfb8(%rbx), %xmm0
leaq 0x9fa1d(%rip), %rdi     # 0x106683
movb $0x1, %al
callq 0x8030
movl 0x18(%rbx), %edx
cmpq $0x5, %rdx
ja 0x66cd3
pushq $0x20
popq %r12
leaq 0x9da5f(%rip), %rax     # 0x1046e0
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl 0x1c(%rbx), %eax
movl $0xfc0, %r12d           # imm = 0xFC0
cmpl $0x1, %eax
je 0x66d38
testl %eax, %eax
jne 0x66d4e
leaq 0x9fa54(%rip), %rdi     # 0x1066ff
pushq $0x20
jmp 0x66d41
leaq 0x9fa70(%rip), %r15     # 0x106729
jmp 0x66d4e
leaq 0x9f9eb(%rip), %r15     # 0x1066b0
jmp 0x66d4e
leaq 0x9fabf(%rip), %r15     # 0x106790
jmp 0x66d4e
leaq 0x9e9c1(%rip), %rsi     # 0x10569b
leaq 0x800(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x7e892(%rip), %rsi     # 0xe5585
movq %rsp, %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
addq $0x1064, %rbx           # imm = 0x1064
leaq 0x7e323(%rip), %rsi     # 0xe5034
leaq 0x9fab8(%rip), %rdx     # 0x1067d0
movq %rbx, %rdi
movl $0x73e, %ecx            # imm = 0x73E
movq %r15, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rbp
jmp 0x66dab
leaq 0x9fa25(%rip), %r15     # 0x10675b
jmp 0x66d4e
leaq 0x9f9a4(%rip), %rdi     # 0x1066e3
pushq $0x28
popq %rax
movsd (%rbx,%rax), %xmm0
movb $0x1, %al
callq 0x8030
movsd (%rbx,%r12), %xmm0
movq %r15, %rdi
movb $0x1, %al
callq 0x8030
cmpw $0x2, 0x1060(%rbx)
jl 0x66d7e
movsd 0xfd8(%rbx), %xmm0
leaq 0x9fa77(%rip), %rdi     # 0x1067ee
movb $0x1, %al
callq 0x8030
xorl %ebp, %ebp
cmpw $0x1, 0x4c6(%r14)
jne 0x66dab
cmpw $0x2, 0x1060(%rbx)
jl 0x66dab
movsd 0xfe0(%rbx), %xmm0
leaq 0x9fa93(%rip), %rdi     # 0x106837
movb $0x1, %al
callq 0x8030
movl %ebp, %eax
addq $0x1000, %rsp           # imm = 0x1000
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq