peroxide 0.32.1

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::*;

pub fn main() {
    let t = AD0(0f64);
    let y = AD1(5f64, 1f64);
    let init_state = State::<AD>::new(t, vec![y], vec![AD0(0f64)]);

    let mut ode_solver = ImplicitODE::new(f);

    ode_solver
        .set_method(ImMethod::GL4)
        .set_initial_condition(init_state)
        .set_step_size(1e-3)
        .set_times(10_000);

    let result = ode_solver.integrate();

    let mut df = DataFrame::new(vec![]);
    df.push("t", Series::new(result.col(0)));
    df.push("y", Series::new(result.col(1)));
    df.print();

}

fn f(st: &mut State<AD>, _: &NoEnv) {
    let y = st.value[0];
    let dy = &mut st.deriv;
    dy[0] = -0.3 * y;
}