conspire/math/integrate/ode/explicit/
mod.rs

1#[cfg(test)]
2mod test;
3
4use crate::math::{
5    Scalar, Tensor, TensorVec, Vector,
6    integrate::{IntegrationError, OdeSolver},
7};
8
9pub mod fixed_step;
10pub mod variable_step;
11
12/// Explicit ordinary differential equation solvers.
13pub trait Explicit<Y, U>
14where
15    Self: OdeSolver<Y, U>,
16    Y: Tensor,
17    U: TensorVec<Item = Y>,
18{
19    const SLOPES: usize;
20    #[doc = include_str!("doc.md")]
21    fn integrate(
22        &self,
23        function: impl FnMut(Scalar, &Y) -> Result<Y, String>,
24        time: &[Scalar],
25        initial_condition: Y,
26    ) -> Result<(Vector, U, U), IntegrationError>;
27}