// File: /workspace/github_c_makefile_star2_O1/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 0xaf877
cmpl %ecx, 0x848(%rsi)
jne 0xaf877
movzwl 0x28(%rsi), %ecx
cmpw $0x1, %cx
jne 0xaf852
cmpl %r9d, 0x8a8(%rdx)
jne 0xaf800
movapd %xmm1, %xmm3
subsd 0x790(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
cmpw $0x1, %cx
jne 0xaf852
cmpl %r9d, 0x8ac(%rdx)
jne 0xaf829
movapd %xmm1, %xmm3
subsd 0x798(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
cmpw $0x1, %cx
jne 0xaf852
cmpl %r9d, 0x8b0(%rdx)
jne 0xaf852
movapd %xmm1, %xmm3
subsd 0x7a0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
cmpw $0x1, 0x2a(%rsi)
jne 0xaf9ba
cmpl %r9d, 0x8b4(%rdx)
jne 0xaf9ba
subsd 0x7a8(%rdi), %xmm1
jmp 0xaf9ab
cmpw $0x1, 0x10(%rsi)
jne 0xaf936
cmpl %ecx, 0x850(%rsi)
jne 0xaf936
movzwl 0x28(%rsi), %ecx
cmpw $0x1, %cx
jne 0xaf8e4
cmpl %r9d, 0x8ac(%rdx)
jne 0xaf8bb
movapd %xmm1, %xmm3
subsd 0x7b0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
cmpw $0x1, %cx
jne 0xaf8e4
cmpl %r9d, 0x8b0(%rdx)
jne 0xaf8e4
movapd %xmm1, %xmm3
subsd 0x7b8(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
movzwl 0x2a(%rsi), %ecx
cmpw $0x1, %cx
jne 0xaf9ba
cmpl %r9d, 0x8b4(%rdx)
jne 0xaf915
movapd %xmm1, %xmm3
subsd 0x7c0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
cmpw $0x1, %cx
jne 0xaf9ba
cmpl %r9d, 0x8b8(%rdx)
jne 0xaf9ba
subsd 0x7c8(%rdi), %xmm1
jmp 0xaf9ab
cmpw $0x1, 0x12(%rsi)
jne 0xaf9ba
cmpl %ecx, 0x84c(%rsi)
jne 0xaf9ba
cmpw $0x1, 0x28(%rsi)
jne 0xaf96b
cmpl %r9d, 0x8b0(%rdx)
jne 0xaf96b
movapd %xmm1, %xmm3
subsd 0x7d0(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
movzwl 0x2a(%rsi), %ecx
cmpw $0x1, %cx
jne 0xaf9ba
cmpl %r9d, 0x8b4(%rdx)
jne 0xaf994
movapd %xmm1, %xmm3
subsd 0x7d8(%rdi), %xmm3
mulsd %xmm0, %xmm3
ucomisd %xmm2, %xmm3
ja 0xaf9b5
cmpw $0x1, %cx
jne 0xaf9ba
cmpl %r9d, 0x8b8(%rdx)
jne 0xaf9ba
subsd 0x7e0(%rdi), %xmm1
mulsd %xmm0, %xmm1
ucomisd %xmm2, %xmm1
jbe 0xaf9ba
movw $0x1, (%rax)
xorl %eax, %eax
retq