pub fn T0(x: f64) -> f64 {
return 1.0;
}
pub fn T1(x: f64) -> f64 {
return x;
}
pub fn T2(x: f64) -> f64 {
let T_2 = (2.0 * x.powf(2.0)) - 1.0;
return T_2;
}
pub fn T3(x: f64) -> f64 {
let T_3 = (4.0 * x.powf(3.0)) - x;
return T_3;
}
pub fn T4(x: f64) -> f64 {
let T_4 = (8.0 * x.powf(4.0)) - (8.0 * x.powf(2.0)) + 1.0;
return T_4;
}
pub fn T5(x: f64) -> f64 {
let T_5 = (16.0 * x.powf(5.0)) - (20.0 * x.powf(3.0)) + (5.0 * x);
return T_5;
}
pub fn T6(x: f64) -> f64 {
let T_6 = (32.0 * x.powf(6.0)) - (48.0 * x.powf(4.0)) + (18.0 * x.powf(2.0)) - 1.0;
return T_6;
}
pub fn T7(x: f64) -> f64 {
let T_7 =
(64.0 * x.powf(7.0)) - (112.0 * x.powf(5.0)) + (56.0 * x.powf(3.0)) - (7.0 * x);
return T_7;
}
pub fn T8(x: f64) -> f64 {
let T_8 = (128.0 * x.powf(8.0)) - (256.0 * x.powf(6.0)) + (160.0 * x.powf(4.0))
- (32.0 * x.powf(2.0))
+ 1.0;
return T_8;
}
pub fn T9(x: f64) -> f64 {
let T_9 = (256.0 * x.powf(9.0)) - (576.0 * x.powf(7.0)) + (432.0 * x.powf(5.0))
- (120.0 * x.powf(3.0))
+ (9.0 * x);
return T_9;
}
pub fn T10(x: f64) -> f64 {
let T_10 = (512.0 * x.powf(10.0)) - (1280.0 * x.powf(9.0)) + (1120.0 * x.powf(6.0))
- (400.0 * x.powf(4.0))
+ (50.0 * x.powf(2.0))
- 1.0;
return T_10;
}
pub fn T11(x: f64) -> f64 {
let T_11 = (1024.0 * x.powf(11.0)) - (2816.0 * x.powf(9.0)) + (2816.0 * x.powf(7.0))
- (1232.0 * x.powf(5.0))
+ (220.0 * x.powf(3.0))
- (11.0 * x);
return T_11;
}
pub fn T(n: u32, x: f64) -> f64 {
if n == 0 {
return T0(x);
} else if n == 1 {
return T1(x);
} else {
return (2.0 * x * (T(n - 1, x))) - T(n - 2, x);
}
}