// File: /workspace/github_c_makefile_star2_O1/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 0xa4d7a(%rip), %rdi     # 0x112603
movb $0x1, %al
callq 0x8030
movsd 0xf38(%rbx), %xmm0
leaq 0xa25be(%rip), %rdi     # 0x10fe5d
movb $0x1, %al
callq 0x8030
movsd 0xf40(%rbx), %xmm0
leaq 0xa4d8c(%rip), %rdi     # 0x112641
movb $0x1, %al
callq 0x8030
movsd 0xf58(%rbx), %xmm0
leaq 0xa4da0(%rip), %rdi     # 0x11266b
movb $0x1, %al
callq 0x8030
movsd 0xf40(%rbx), %xmm0
mulsd 0x8443e(%rip), %xmm0    # 0xf1d20
divsd 0xf50(%rbx), %xmm0
leaq 0xa4da2(%rip), %rdi     # 0x112693
movb $0x1, %al
callq 0x8030
cmpw $0x1, 0x32(%rbx)
jne 0x6d933
movsd 0xf60(%rbx), %xmm0
leaq 0xa4daf(%rip), %rdi     # 0x1126bd
movb $0x1, %al
callq 0x8030
movsd 0x86afb(%rip), %xmm0    # 0xf4418
divsd 0xf60(%rbx), %xmm0
leaq 0xa4dbd(%rip), %rdi     # 0x1126e9
movb $0x1, %al
callq 0x8030
movsd 0xf68(%rbx), %xmm0
leaq 0xa4dd7(%rip), %rdi     # 0x112719
movb $0x1, %al
callq 0x8030
movsd 0xf78(%rbx), %xmm0
mulsd 0x843c7(%rip), %xmm0    # 0xf1d20
divsd 0xf88(%rbx), %xmm0
leaq 0xa4de4(%rip), %rdi     # 0x11274c
movb $0x1, %al
callq 0x8030
movsd 0xfa0(%rbx), %xmm0
leaq 0xa4df4(%rip), %rdi     # 0x112772
movb $0x1, %al
callq 0x8030
movsd 0xfa8(%rbx), %xmm0
leaq 0xa24c9(%rip), %r15     # 0x10fe5d
movq %r15, %rdi
movb $0x1, %al
callq 0x8030
movsd 0xfb8(%rbx), %xmm0
leaq 0xa4de6(%rip), %rdi     # 0x112793
movb $0x1, %al
callq 0x8030
movl 0x18(%rbx), %edx
cmpq $0x5, %rdx
ja 0x6da1f
movl $0x20, %r12d
leaq 0xa2e26(%rip), %rax     # 0x1107f0
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl 0x1c(%rbx), %eax
movl $0xfc0, %r12d           # imm = 0xFC0
cmpl $0x1, %eax
je 0x6da86
testl %eax, %eax
jne 0x6da9e
leaq 0xa4e1b(%rip), %rdi     # 0x11280f
movl $0x20, %eax
jmp 0x6da92
leaq 0xa4e34(%rip), %r15     # 0x112839
jmp 0x6da9e
leaq 0xa4daf(%rip), %r15     # 0x1127c0
jmp 0x6da9e
leaq 0xa4e83(%rip), %r15     # 0x1128a0
jmp 0x6da9e
leaq 0xa3d85(%rip), %rsi     # 0x1117ab
leaq 0x800(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30c2c
leaq 0x83b46(%rip), %rsi     # 0xf1585
movq %rsp, %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30c2c
addq $0x1064, %rbx           # imm = 0x1064
leaq 0x835d7(%rip), %rsi     # 0xf1034
leaq 0xa4e7c(%rip), %rdx     # 0x1128e0
movq %rbx, %rdi
movl $0x73e, %ecx            # imm = 0x73E
movq %r15, %r8
xorl %eax, %eax
callq 0x30c2c
movl $0x1, %ebp
jmp 0x6dafb
leaq 0xa4de7(%rip), %r15     # 0x11286b
jmp 0x6da9e
leaq 0xa4d66(%rip), %rdi     # 0x1127f3
movl $0x28, %eax
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 0x6dace
movsd 0xfd8(%rbx), %xmm0
leaq 0xa4e37(%rip), %rdi     # 0x1128fe
movb $0x1, %al
callq 0x8030
xorl %ebp, %ebp
cmpw $0x1, 0x4c6(%r14)
jne 0x6dafb
cmpw $0x2, 0x1060(%rbx)
jl 0x6dafb
movsd 0xfe0(%rbx), %xmm0
leaq 0xa4e53(%rip), %rdi     # 0x112947
movb $0x1, %al
callq 0x8030
movl %ebp, %eax
addq $0x1000, %rsp           # imm = 0x1000
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq