tenso_rs/utils/math/
sinc.rs

1use num_traits::{one, Float, FloatConst};
2
3// By Definition of Normalized Sinc Function:
4// sinc(x) = sin(pi * x) / (pi * x) for x != 0
5// sinc(0) = 1
6pub(crate) fn sinc<T: Float + FloatConst>(x: T) -> T {
7    if x.is_zero() {
8        one::<T>()
9    } else {
10        let inner: T = <T as FloatConst>::PI() * x;
11        inner.sin() / inner
12    }
13}