Open ErikDeSmedt opened 4 years ago
The FiniteDimVectorField should be implemented for the f32 and f64 type.
FiniteDimVectorField
f32
f64
A motivating example is the representation of an Initial Value Problem.
extern crate alga; use alga::general::RealField; use alga::linear::FiniteDimVectorSpace; pub struct IVPProblem<'a, T, S> where T : RealField, S : FiniteDimVectorSpace<Field = T> { initial_state : S, tspan: (T,T), func : &'a dyn Fn(&T, &S) -> S, }
If we would now want to implement the exponential equation given by dy/dt=dy you could try to implement it as
dy/dt=dy
fn main() { let ivp_problem = IVPProblem { initial_state : 1.0, tspan : (0.0, 1.0), func : &(|_, &y| y) }; /// More code here }
This would not compile because our initial_state is an f64-type and the trait FiniteDimVectorSpace<Field = f64> is not implemented.
FiniteDimVectorSpace<Field = f64>
The
FiniteDimVectorField
should be implemented for thef32
andf64
type.A motivating example is the representation of an Initial Value Problem.
If we would now want to implement the exponential equation given by
dy/dt=dy
you could try to implement it asThis would not compile because our initial_state is an
f64
-type and the traitFiniteDimVectorSpace<Field = f64>
is not implemented.