#![allow(clippy::too_many_arguments)]
use num_complex::Complex;
use crate::algo::unk1::zunk1;
use crate::algo::unk2::zunk2;
use crate::machine::BesselFloat;
use crate::types::Scaling;
#[inline]
pub(crate) fn zbunk<T: BesselFloat>(
z: Complex<T>,
fnu: T,
kode: Scaling,
mr: i32,
y: &mut [Complex<T>],
tol: T,
elim: T,
alim: T,
) -> i32 {
let ax = z.re.abs() * T::from_f64(1.7321);
let ay = z.im.abs();
if ay > ax {
zunk2(z, fnu, kode, mr, y, tol, elim, alim)
} else {
zunk1(z, fnu, kode, mr, y, tol, elim, alim)
}
}