chebyshev 0.0.1

Chebyshev polynomials
Documentation
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);
    }
}