dwt 0.5.2

The package provides an algorithm to compute the discrete wavelet transform.
Documentation
#![feature(test)]

extern crate dwt;
extern crate test;

use dwt::{Operation, Transform, wavelet};
use test::{Bencher, black_box};

#[bench] fn forward_haar_0004(bencher: &mut Bencher) { forward_haar(   4, bencher); }
#[bench] fn forward_haar_0016(bencher: &mut Bencher) { forward_haar(  16, bencher); }
#[bench] fn forward_haar_0064(bencher: &mut Bencher) { forward_haar(  64, bencher); }
#[bench] fn forward_haar_0256(bencher: &mut Bencher) { forward_haar( 256, bencher); }
#[bench] fn forward_haar_1024(bencher: &mut Bencher) { forward_haar(1024, bencher); }
#[bench] fn forward_haar_4096(bencher: &mut Bencher) { forward_haar(4096, bencher); }

fn forward_haar(size: usize, bencher: &mut Bencher) {
    let mut data = vec![42.0; size];
    let operation = Operation::Forward;
    let wavelet = wavelet::Haar::new();
    let level = (size as f64).log2() as usize;
    bencher.iter(|| black_box(data.transform(operation, &wavelet, level)));
}