srenevey / ode-solvers

Numerical methods to solve ordinary differential equations in Rust.
BSD 3-Clause "New" or "Revised" License
64 stars 26 forks source link

Adds support for DVector #7

Closed dstaatz closed 3 years ago

dstaatz commented 3 years ago

By using OVector, we can generically define impl's for Dop853, Dopri5, and Rk4 for both DVector and SVector types.

Before

impl<T, F, const N: usize> Dop853<SVector<T, N>, F>
where
    f64: From<T>,
    T: Copy + SubsetOf<f64> + Scalar + ClosedAdd + ClosedMul + ClosedSub + Zero,
    F: System<SVector<T, N>>,
{
    // ...
}

After

impl<T, D: Dim, F> Dop853<OVector<T, D>, F>
where
    f64: From<T>,
    T: Copy + SubsetOf<f64> + Scalar + ClosedAdd + ClosedMul + ClosedSub + Zero,
    F: System<OVector<T, D>>,
    DefaultAllocator: Allocator<T, D>,
{
    // ...
}

This pull request also bumps nalgebra version to 0.29.0