1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use super::ImplicitODE;
use crate::algebra::linear::{Vector};
use crate::algebra::abstr::Real;

///
pub trait ImplicitFixedStepSizeMethod<T>
    where T: Real
{
    fn do_step<F>(self: &Self, prob: &F, t_n: &T, x_n: &Vector<T>, h: &T) -> Vector<T>
        where F: ImplicitODE<T>;

    fn order(self: &Self) -> u8;
}

//pub trait ExplicitAdaptiveMethod<T>
//{
//    ///
//    fn do_step<F>(self: &Self, prob: &F, t_n: &T, x_n: &Vector<T>, h: &T) -> (Vector<T>, Vector<T>)
//        where F: ExplicitODE<T>;
//
//    fn order(self: &Self) -> (u8, u8);
//}