freude 0.7.0

An ODE library for ndarray providing some simple, fixed-step integrators
Documentation
use freude::RungeKutta4;
use freude::Stepper;
use tuple::T3;

fn main() {
    let dt = 0.1;
    let time = 1000.0;

    let sigma = 10.0;
    let beta = 8.0 / 3.0;
    let rho = 28.0;

    let mut f: &dyn Fn(T3<_, _, _>) -> T3<_, _, _> = &move |T3(x, y, z): T3<f64, f64, f64>| {
        T3(sigma * (y - x), x * (rho - z) - y, x * y - beta * z)
    };

    let mut state = T3(0.5, 1.0, 1.5);
    let mut rk4 = RungeKutta4::new(&state, dt);
    let (_, steps) = rk4.integrate_time(&mut f, &mut state, time);
    println!("Integrated Lorenz systems for {} steps", steps);
    println!("Final state: {:?}", state);
}