pub trait FreeInterpolant<Y, U, V, T = Time>where
Self: VariableStepExplicit<Y, U, V, T>,
Y: Differentiable<T> + Div<Quantity<T>, Output = Derivative<Y, T>> + Tensor,
Derivative<Y, T>: Mul<Quantity<T>, Output = Y>,
for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,
for<'a> &'a Derivative<Y, T>: Mul<Scalar, Output = Derivative<Y, T>> + Mul<Quantity<T>, Output = Y>,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Derivative<Y, T>>,{
// Provided method
fn interpolate_free(
time: &Times<T>,
tp: &Times<T>,
yp: &U,
dydtp: &V,
) -> (U, V) { ... }
}Expand description
Free (dense-output) interpolant for explicit ordinary differential equation integrators.
Uses cubic Hermite interpolation over the accepted-step values and derivatives already computed during integration, so it requires no additional evaluations of the right-hand side function.
Provided Methods§
Sourcefn interpolate_free(time: &Times<T>, tp: &Times<T>, yp: &U, dydtp: &V) -> (U, V)
fn interpolate_free(time: &Times<T>, tp: &Times<T>, yp: &U, dydtp: &V) -> (U, V)
The state, via HermiteSegment built pointwise over Flat<Y> — the
state is a flat vector space, so this is the same cubic Hermite as
before, just built once instead of duplicated here.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".