1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use num::{Float, FloatConst};
pub struct Wavelet<T> {
pub length: usize,
pub offset: usize,
pub dec_lo: Vec<T>,
pub dec_hi: Vec<T>,
pub rec_lo: Vec<T>,
pub rec_hi: Vec<T>,
}
pub struct Haar;
impl Haar {
pub fn new<T>() -> Wavelet<T> where T: Float + FloatConst {
let value = T::FRAC_1_SQRT_2();
Wavelet {
length: 2,
offset: 0,
dec_lo: vec![value, value],
dec_hi: vec![value, -value],
rec_lo: vec![value, value],
rec_hi: vec![value, -value],
}
}
}