peroxide 0.33.3

Rust comprehensive scientific computation library contains linear algebra, numerical analysis, statistics and machine learning tools with farmiliar syntax
Documentation
extern crate peroxide;
use peroxide::fuga::*;

fn main() {
    let a = AD1(2f64, 1f64);
    a.print();
    let a2 = a.to_order(2);

    let b = AD2(4f64, 4f64, 2f64);
    b.print();

    (a + b).print();
    (a - b).print();
    (a * b).print();
    (a / b).print();
    (a2 / b).print();

    a.exp().print();
    a.ln().print();
    b.exp().print();
    b.ln().print();
    a.powi(2).print();
    b.sqrt().print();
    b.cos().print();
    b.sin().print();
    b.cosh().print();
    b.sinh().print();

    f(a, b).print();

    (b + 1f64).print();
    (b - 1f64).print();
    (b * 2f64).print();
    (b / 2f64).print();
    assert_eq!(1f64 + b, b + 1f64);
    assert_eq!(-(1f64 - b), b - 1f64);
    assert_eq!(2f64 * b, b * 2f64);
    assert_eq!(1f64 / (2f64 / b), b / 2f64);
}

fn f(a: AD, b: AD) -> AD {
    a + b
}