ruFFT-host 0.1.46

ruFFT CPU real transforms, twiddle tables and SIMD butterflies.
Documentation
use ruda_core::tensor::{DType, host::HostTensor};

pub fn rfft(
    signal: HostTensor,
    dim: usize,
    n: Option<usize>,
) -> (HostTensor, HostTensor) {
    match signal.dtype() {
        DType::F32 => crate::rfft_f32(signal, dim, n),
        DType::F64 => crate::rfft_f64(signal, dim, n),
        DType::F16 => crate::rfft_f16(signal, dim, n),
        DType::BF16 => crate::rfft_bf16(signal, dim, n),
        dtype => panic!("rfft: unsupported dtype {:?}", dtype),
    }
}

pub fn irfft(
    spectrum_re: HostTensor,
    spectrum_im: HostTensor,
    dim: usize,
    n: Option<usize>,
) -> HostTensor {
    match spectrum_re.dtype() {
        DType::F32 => crate::irfft_f32(spectrum_re, spectrum_im, dim, n),
        DType::F64 => crate::irfft_f64(spectrum_re, spectrum_im, dim, n),
        DType::F16 => crate::irfft_f16(spectrum_re, spectrum_im, dim, n),
        DType::BF16 => crate::irfft_bf16(spectrum_re, spectrum_im, dim, n),
        dtype => panic!("irfft: unsupported dtype {:?}", dtype),
    }
}