stock-trek 0.2.1

Stock Trek time-series analysis
Documentation
#[cfg(feature = "python")]
use {num_complex::Complex, pyo3::pyfunction};

#[cfg(feature = "python")]
#[pyfunction]
pub fn discrete_fourier_transform(time_series_values: Vec<f64>) -> Vec<(f64, f64)> {
    crate::statistics::frequency::discrete_fourier_transform(&time_series_values)
        .iter()
        .map(|c| (c.re, c.im))
        .collect()
}

#[cfg(feature = "python")]
#[pyfunction]
pub fn inverse_discrete_fourier_transform(frequency_domain_values: Vec<(f64, f64)>) -> Vec<f64> {
    let complex_values: Vec<Complex<f64>> = frequency_domain_values
        .iter()
        .map(|(re, im)| Complex::new(*re, *im))
        .collect();
    crate::statistics::frequency::inverse_discrete_fourier_transform(&complex_values)
}

#[cfg(feature = "python")]
#[pyfunction]
pub fn periodogram(time_series_values: Vec<f64>, sampling_frequency: f64) -> Vec<f64> {
    crate::statistics::frequency::periodogram(&time_series_values, sampling_frequency)
}

#[cfg(feature = "python")]
#[pyfunction]
pub fn spectral_density(time_series_values: Vec<f64>) -> Vec<f64> {
    crate::statistics::frequency::spectral_density(&time_series_values)
}