// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../external/heating/injection.c
// Function: injection_indices
int injection_indices(struct thermodynamics* pth){

  /** - Define local variables */
  struct injection* pin = &(pth->in);
  int index_dep,index_inj;

  /* Check energy injection */
  if(pin->DM_annihilation_efficiency!=0){
    pin->has_DM_ann = _TRUE_;
  }
  if(pin->DM_decay_fraction!=0){
    pin->has_DM_dec = _TRUE_;
  }
  if(pin->PBH_evaporation_fraction!=0){
    pin->has_PBH_eva = _TRUE_;
  }
  if(pin->PBH_accretion_fraction!=0){
    pin->has_PBH_acc = _TRUE_;
  }

  /** - Indices for injection table */
  index_inj = 0;
  class_define_index(pin->index_inj_DM_ann  , pin->has_DM_ann  , index_inj, 1);
  class_define_index(pin->index_inj_DM_dec  , pin->has_DM_dec  , index_inj, 1);
  class_define_index(pin->index_inj_PBH_eva , pin->has_PBH_eva , index_inj, 1);
  class_define_index(pin->index_inj_PBH_acc , pin->has_PBH_acc , index_inj, 1);
  class_define_index(pin->index_inj_tot     , _TRUE_           , index_inj, 1);
  pin->inj_size = index_inj;

  /** - Indices for deposition (and chi) table */
  index_dep = 0;
  class_define_index(pin->index_dep_heat , _TRUE_, index_dep, 1);
  class_define_index(pin->index_dep_ionH , _TRUE_, index_dep, 1);
  class_define_index(pin->index_dep_ionHe, _TRUE_, index_dep, 1);
  class_define_index(pin->index_dep_lya  , _TRUE_, index_dep, 1);
  class_define_index(pin->index_dep_lowE , _TRUE_, index_dep, 1);
  pin->dep_size = index_dep;

  return _SUCCESS_;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
addq $0xc0, %rax
movq %rax, -0x10(%rsp)
movq -0x10(%rsp), %rax
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x19d42b
jp 0x19d42b
jmp 0x19d43a
movq -0x10(%rsp), %rax
movl $0x1, 0x55c(%rax)
movq -0x10(%rsp), %rax
movsd 0x50(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x19d451
jp 0x19d451
jmp 0x19d460
movq -0x10(%rsp), %rax
movl $0x1, 0x560(%rax)
movq -0x10(%rsp), %rax
movsd 0x60(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x19d477
jp 0x19d477
jmp 0x19d486
movq -0x10(%rsp), %rax
movl $0x1, 0x564(%rax)
movq -0x10(%rsp), %rax
movsd 0x70(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x19d49d
jp 0x19d49d
jmp 0x19d4ac
movq -0x10(%rsp), %rax
movl $0x1, 0x568(%rax)
movl $0x0, -0x18(%rsp)
movq -0x10(%rsp), %rax
cmpl $0x0, 0x55c(%rax)
je 0x19d4dc
movl -0x18(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x4d8(%rax)
movl -0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rsp)
movq -0x10(%rsp), %rax
cmpl $0x0, 0x560(%rax)
je 0x19d504
movl -0x18(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x4dc(%rax)
movl -0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rsp)
movq -0x10(%rsp), %rax
cmpl $0x0, 0x564(%rax)
je 0x19d52c
movl -0x18(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x4e0(%rax)
movl -0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rsp)
movq -0x10(%rsp), %rax
cmpl $0x0, 0x568(%rax)
je 0x19d554
movl -0x18(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x4e4(%rax)
movl -0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rsp)
movl -0x18(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x4e8(%rax)
movl -0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rsp)
movl -0x18(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x4ec(%rax)
movl $0x0, -0x14(%rsp)
movl -0x14(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x538(%rax)
movl -0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rsp)
movl -0x14(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x53c(%rax)
movl -0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rsp)
movl -0x14(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x540(%rax)
movl -0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rsp)
movl -0x14(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x544(%rax)
movl -0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rsp)
movl -0x14(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x548(%rax)
movl -0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rsp)
movl -0x14(%rsp), %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x54c(%rax)
xorl %eax, %eax
retq
nopl (%rax)