use crate::math::{Scalar, Tensor, TensorVec};
use std::fmt::Debug;
pub mod explicit;
pub mod implicit;
pub trait OdeIntegrator<Y, U>
where
Self: Debug,
Y: Tensor,
U: TensorVec<Item = Y>,
{
}
pub trait FixedStep {
fn dt(&self) -> Scalar;
}
pub trait VariableStep {
fn abs_tol(&self) -> Scalar;
fn rel_tol(&self) -> Scalar;
fn dt_beta(&self) -> Scalar;
fn dt_expn(&self) -> Scalar;
fn dt_cut(&self) -> Scalar;
fn dt_min(&self) -> Scalar;
}