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);