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

1use crate::math::{
2    Scalar, Tensor, TensorVec, Vector,
3    integrate::{Explicit, IntegrationError},
4};
5
6/// Explicit ordinary differential equation solvers with internal variables.
7pub trait ExplicitInternalVariables<Y, Z, U, V>
8where
9    Self: Explicit<Y, U>,
10    Y: Tensor,
11    Z: Tensor,
12    U: TensorVec<Item = Y>,
13    V: TensorVec<Item = Z>,
14{
15    #[doc = include_str!("doc.md")]
16    fn integrate_and_evaluate(
17        &self,
18        function: impl FnMut(Scalar, &Y, &Z) -> Result<Y, String>,
19        evaluate: impl FnMut(Scalar, &Y, &Z) -> Result<Z, String>,
20        time: &[Scalar],
21        initial_condition: Y,
22        initial_evaluation: Z,
23    ) -> Result<(Vector, U, U, V), IntegrationError>;
24}