pub fn nddct1<R, S, T, D>(
    input: &ArrayBase<R, D>,
    output: &mut ArrayBase<S, D>,
    handler: &mut DctHandler<T>,
    axis: usize
) where
    T: FftNum + FloatConst,
    R: Data<Elem = T>,
    S: Data<Elem = T> + DataMut,
    D: Dimension
Expand description

Real-to-real Discrete Cosine Transform of type 1 DCT-I (serial).

Example

use ndarray::Array2;
use ndrustfft::{DctHandler, nddct1};

let (nx, ny) = (6, 4);
let mut data = Array2::<f64>::zeros((nx, ny));
let mut vhat = Array2::<f64>::zeros((nx, ny));
for (i, v) in data.iter_mut().enumerate() {
    *v = i as f64;
}
let mut handler: DctHandler<f64> = DctHandler::new(ny);
nddct1(&data, &mut vhat, &mut handler, 1);