Struct TimeCheckpoint
pub struct TimeCheckpoint { /* private fields */ }Description
Accepted smooth prefix and the controller state needed to continue it exactly.
The current profile is explicit Tsitouras45 with an I-controller: the next step and endpoint derivative are continuation-critical. Past native midpoint stencils and requested samples are retained, not reconstructed from outputs. A canonical Run must additionally bind its Model/Plan and committed resets. This is neither a completed solution nor a provider-independent restart.
Implementations§
§impl TimeCheckpoint
impl TimeCheckpoint
pub fn initial(
problem: &TimeProblem<'_>,
plan: &TimePlan,
backend: TimeBackendIdentity,
registration: Option<RootRegistrationId>,
next_step: f64,
derivative: Vec<f64>,
) -> Result<TimeCheckpoint, Diagnostic>
pub fn initial( problem: &TimeProblem<'_>, plan: &TimePlan, backend: TimeBackendIdentity, registration: Option<RootRegistrationId>, next_step: f64, derivative: Vec<f64>, ) -> Result<TimeCheckpoint, Diagnostic>
Retain the initialized native method before its first trial.
next_step is the provider’s initialized step, which may differ from the
requested guess. derivative is its retained endpoint derivative.
§Errors
Rejects unsupported methods/policies or invalid controller data.
pub fn with_history(
self,
history: AcceptedTimeHistory,
samples: Vec<f64>,
next_step: f64,
derivative: Vec<f64>,
) -> Result<TimeCheckpoint, Diagnostic>
pub fn with_history( self, history: AcceptedTimeHistory, samples: Vec<f64>, next_step: f64, derivative: Vec<f64>, ) -> Result<TimeCheckpoint, Diagnostic>
Retain the complete smooth prefix at a later accepted native boundary.
Samples are exactly the requested times at or before that boundary, in time-major order. A root/reset boundary belongs to the canonical event owner and starts a new smooth segment after its reset is committed.
§Errors
Rejects missing samples, discontinuities, a foreign origin, or invalid controller data. A completed horizon must be accepted as a solution.
pub fn validate_for(
&self,
problem: &TimeProblem<'_>,
plan: &TimePlan,
backend: TimeBackendIdentity,
registration: Option<RootRegistrationId>,
) -> Result<(), Diagnostic>
pub fn validate_for( &self, problem: &TimeProblem<'_>, plan: &TimePlan, backend: TimeBackendIdentity, registration: Option<RootRegistrationId>, ) -> Result<(), Diagnostic>
Reject a changed numerical request or provider before constructing a solver.
§Errors
Rejects changed controls, outputs, initial state, method, provider, or roots.
pub const fn plan(&self) -> &TimePlan
pub const fn plan(&self) -> &TimePlan
Exact integration and output policy of the original smooth segment.
pub const fn report(&self) -> TimeExecutionReport
pub const fn report(&self) -> TimeExecutionReport
Exact provider and admitted numerical profile.
pub const fn registration(&self) -> Option<RootRegistrationId>
pub const fn registration(&self) -> Option<RootRegistrationId>
Root registration, absent for a root-free segment.
pub fn initial_state(&self) -> &[f64]
pub fn initial_state(&self) -> &[f64]
Original smooth-segment state, before all retained accepted steps.
pub fn time(&self) -> f64
pub fn time(&self) -> f64
Last accepted model time, or the initialized segment origin.
pub fn state(&self) -> &[f64]
pub fn state(&self) -> &[f64]
Last accepted coordinates; cancelled trial coordinates never belong here.
pub const fn next_step(&self) -> f64
pub const fn next_step(&self) -> f64
Next native step, including the retained controller decision.
pub fn derivative(&self) -> &[f64]
pub fn derivative(&self) -> &[f64]
Retained derivative at the accepted endpoint, used by the method’s next trial.
pub const fn history(&self) -> Option<&AcceptedTimeHistory>
pub const fn history(&self) -> Option<&AcceptedTimeHistory>
Complete smooth accepted history, absent before the first accepted step.
Trait Implementations§
§impl Clone for TimeCheckpoint
impl Clone for TimeCheckpoint
§impl Debug for TimeCheckpoint
impl Debug for TimeCheckpoint
§impl PartialEq for TimeCheckpoint
impl PartialEq for TimeCheckpoint
§fn eq(&self, other: &TimeCheckpoint) -> bool
fn eq(&self, other: &TimeCheckpoint) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for TimeCheckpoint
Auto Trait Implementations§
impl Freeze for TimeCheckpoint
impl RefUnwindSafe for TimeCheckpoint
impl Send for TimeCheckpoint
impl Sync for TimeCheckpoint
impl Unpin for TimeCheckpoint
impl UnsafeUnpin for TimeCheckpoint
impl UnwindSafe for TimeCheckpoint
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.