// File: /workspace/github_c_makefile_star2_O3/PoulinV[P]AxiCLASS/build/../source/transfer.c
// Function: transfer_can_be_neglected
int transfer_can_be_neglected(
                              struct precision * ppr,
                              struct perturbations * ppt,
                              struct transfer * ptr,
                              int index_md,
                              int index_ic,
                              int index_tt,
                              double ra_rec,
                              double k,
                              double l,
                              short * neglect) {

  *neglect = _FALSE_;

  if (_scalars_) {

    if ((ppt->has_cl_cmb_temperature == _TRUE_) && (index_tt == ptr->index_tt_t0) && (l < (k-ppr->transfer_neglect_delta_k_S_t0)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_temperature == _TRUE_) && (index_tt == ptr->index_tt_t1) && (l < (k-ppr->transfer_neglect_delta_k_S_t1)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_temperature == _TRUE_) && (index_tt == ptr->index_tt_t2) && (l < (k-ppr->transfer_neglect_delta_k_S_t2)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_polarization == _TRUE_) && (index_tt == ptr->index_tt_e) && (l < (k-ppr->transfer_neglect_delta_k_S_e)*ra_rec)) *neglect = _TRUE_;

  }

  else if (_vectors_) {

    if ((ppt->has_cl_cmb_temperature == _TRUE_) && (index_tt == ptr->index_tt_t1) && (l < (k-ppr->transfer_neglect_delta_k_V_t1)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_temperature == _TRUE_) && (index_tt == ptr->index_tt_t2) && (l < (k-ppr->transfer_neglect_delta_k_V_t2)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_polarization == _TRUE_) && (index_tt == ptr->index_tt_e) && (l < (k-ppr->transfer_neglect_delta_k_V_e)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_polarization == _TRUE_) && (index_tt == ptr->index_tt_b) && (l < (k-ppr->transfer_neglect_delta_k_V_b)*ra_rec)) *neglect = _TRUE_;

  }

  else if (_tensors_) {

    if ((ppt->has_cl_cmb_temperature == _TRUE_) && (index_tt == ptr->index_tt_t2) && (l < (k-ppr->transfer_neglect_delta_k_T_t2)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_polarization == _TRUE_) && (index_tt == ptr->index_tt_e) && (l < (k-ppr->transfer_neglect_delta_k_T_e)*ra_rec)) *neglect = _TRUE_;

    else if ((ppt->has_cl_cmb_polarization == _TRUE_) && (index_tt == ptr->index_tt_b) && (l < (k-ppr->transfer_neglect_delta_k_T_b)*ra_rec)) *neglect = _TRUE_;

  }

  return _SUCCESS_;

}

// Assembly:
movq 0x8(%rsp), %rax
movw $0x0, (%rax)
cmpw $0x1, 0xe(%rsi)
jne 0xac80c
cmpl %ecx, 0x848(%rsi)
jne 0xac80c
cmpw $0x1, 0x28(%rsi)
jne 0xac7e7
cmpl %r9d, 0x8a8(%rdx)
jne 0xac7a1
movapd %xmm1, %xmm3
subsd 0x790(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpl %r9d, 0x8ac(%rdx)
jne 0xac7c4
movapd %xmm1, %xmm3
subsd 0x798(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpl %r9d, 0x8b0(%rdx)
jne 0xac7e7
movapd %xmm1, %xmm3
subsd 0x7a0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpw $0x1, 0x2a(%rsi)
jne 0xac930
cmpl %r9d, 0x8b4(%rdx)
jne 0xac930
subsd 0x7a8(%rdi), %xmm1
jmp 0xac921
cmpw $0x1, 0x10(%rsi)
jne 0xac8b5
cmpl %ecx, 0x850(%rsi)
jne 0xac8b5
cmpw $0x1, 0x28(%rsi)
jne 0xac870
cmpl %r9d, 0x8ac(%rdx)
jne 0xac84d
movapd %xmm1, %xmm3
subsd 0x7b0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpl %r9d, 0x8b0(%rdx)
jne 0xac870
movapd %xmm1, %xmm3
subsd 0x7b8(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpw $0x1, 0x2a(%rsi)
jne 0xac930
cmpl %r9d, 0x8b4(%rdx)
jne 0xac89e
movapd %xmm1, %xmm3
subsd 0x7c0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpl %r9d, 0x8b8(%rdx)
jne 0xac930
subsd 0x7c8(%rdi), %xmm1
jmp 0xac921
cmpw $0x1, 0x12(%rsi)
jne 0xac930
cmpl %ecx, 0x84c(%rsi)
jne 0xac930
cmpw $0x1, 0x28(%rsi)
jne 0xac8ea
cmpl %r9d, 0x8b0(%rdx)
jne 0xac8ea
movapd %xmm1, %xmm3
subsd 0x7d0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpw $0x1, 0x2a(%rsi)
jne 0xac930
cmpl %r9d, 0x8b4(%rdx)
jne 0xac910
movapd %xmm1, %xmm3
subsd 0x7d8(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xac92b
cmpl %r9d, 0x8b8(%rdx)
jne 0xac930
subsd 0x7e0(%rdi), %xmm1
mulsd %xmm0, %xmm1
ucomisd %xmm2, %xmm1
jbe 0xac930
movw $0x1, (%rax)
xorl %eax, %eax
retq