// File: /workspace/github_c_makefile_star2_O3/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 0xa4732(%rip), %rdi     # 0x10f653
movb $0x1, %al
callq 0x8030
movsd 0xf38(%rbx), %xmm0
leaq 0xa1f46(%rip), %rdi     # 0x10ce7d
movb $0x1, %al
callq 0x8030
movsd 0xf40(%rbx), %xmm0
leaq 0xa4744(%rip), %rdi     # 0x10f691
movb $0x1, %al
callq 0x8030
movsd 0xf58(%rbx), %xmm0
leaq 0xa4758(%rip), %rdi     # 0x10f6bb
movb $0x1, %al
callq 0x8030
movsd 0xf40(%rbx), %xmm0
mulsd 0x83da6(%rip), %xmm0    # 0xeed20
divsd 0xf50(%rbx), %xmm0
leaq 0xa475a(%rip), %rdi     # 0x10f6e3
movb $0x1, %al
callq 0x8030
cmpw $0x1, 0x32(%rbx)
jne 0x6afcb
movsd 0xf60(%rbx), %xmm0
leaq 0xa4767(%rip), %rdi     # 0x10f70d
movb $0x1, %al
callq 0x8030
movsd 0x86473(%rip), %xmm0    # 0xf1428
divsd 0xf60(%rbx), %xmm0
leaq 0xa4775(%rip), %rdi     # 0x10f739
movb $0x1, %al
callq 0x8030
movsd 0xf68(%rbx), %xmm0
leaq 0xa478f(%rip), %rdi     # 0x10f769
movb $0x1, %al
callq 0x8030
movsd 0xf78(%rbx), %xmm0
mulsd 0x83d2f(%rip), %xmm0    # 0xeed20
divsd 0xf88(%rbx), %xmm0
leaq 0xa479c(%rip), %rdi     # 0x10f79c
movb $0x1, %al
callq 0x8030
movsd 0xfa0(%rbx), %xmm0
leaq 0xa47ac(%rip), %rdi     # 0x10f7c2
movb $0x1, %al
callq 0x8030
movsd 0xfa8(%rbx), %xmm0
leaq 0xa1e51(%rip), %r15     # 0x10ce7d
movq %r15, %rdi
movb $0x1, %al
callq 0x8030
movsd 0xfb8(%rbx), %xmm0
leaq 0xa479e(%rip), %rdi     # 0x10f7e3
movb $0x1, %al
callq 0x8030
movl 0x18(%rbx), %edx
cmpq $0x5, %rdx
ja 0x6b0b7
movl $0x20, %r12d
leaq 0xa27de(%rip), %rax     # 0x10d840
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl 0x1c(%rbx), %eax
movl $0xfc0, %r12d           # imm = 0xFC0
cmpl $0x1, %eax
je 0x6b11e
testl %eax, %eax
jne 0x6b136
leaq 0xa47d3(%rip), %rdi     # 0x10f85f
movl $0x20, %eax
jmp 0x6b12a
leaq 0xa47ec(%rip), %r15     # 0x10f889
jmp 0x6b136
leaq 0xa4767(%rip), %r15     # 0x10f810
jmp 0x6b136
leaq 0xa483b(%rip), %r15     # 0x10f8f0
jmp 0x6b136
leaq 0xa373d(%rip), %rsi     # 0x10e7fb
leaq 0x800(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x30af0
leaq 0x834ae(%rip), %rsi     # 0xee585
movq %rsp, %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x30af0
addq $0x1064, %rbx           # imm = 0x1064
leaq 0x82f3f(%rip), %rsi     # 0xee034
leaq 0xa4834(%rip), %rdx     # 0x10f930
movq %rbx, %rdi
movl $0x73e, %ecx            # imm = 0x73E
movq %r15, %r8
xorl %eax, %eax
callq 0x30af0
movl $0x1, %ebp
jmp 0x6b193
leaq 0xa479f(%rip), %r15     # 0x10f8bb
jmp 0x6b136
leaq 0xa471e(%rip), %rdi     # 0x10f843
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 0x6b166
movsd 0xfd8(%rbx), %xmm0
leaq 0xa47ef(%rip), %rdi     # 0x10f94e
movb $0x1, %al
callq 0x8030
xorl %ebp, %ebp
cmpw $0x1, 0x4c6(%r14)
jne 0x6b193
cmpw $0x2, 0x1060(%rbx)
jl 0x6b193
movsd 0xfe0(%rbx), %xmm0
leaq 0xa480b(%rip), %rdi     # 0x10f997
movb $0x1, %al
callq 0x8030
movl %ebp, %eax
addq $0x1000, %rsp           # imm = 0x1000
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq