Struct Interpreter
pub struct Interpreter { /* private fields */ }Description
The reference interpreter.
Construction is trivial on purpose: the interpreter has no configuration that could make “the meaning of a program” ambiguous.
Implementations§
§impl Interpreter
impl Interpreter
pub fn initialize(
&self,
program: &KernelProgram,
initial_time: f64,
config: ReferenceConfig,
) -> Result<InitialState, Vec<Diagnostic>>
pub fn initialize( &self, program: &KernelProgram, initial_time: f64, config: ReferenceConfig, ) -> Result<InitialState, Vec<Diagnostic>>
Solve regular and fresh initial equations jointly at the explicit initial time. Numeric unknowns retain complete real/complex values and finite component shapes. Complex continuous initialization currently requires a regular constant-mass linear ODE. Exact discrete values require acyclic direct initial assignments from Parameters or other initialized discrete values; they never enter Newton. Periodic ticks and event resets are not executed. Restart callers must consume accepted State/history instead of invoking this operation.
§Errors
Rejects unsupported value profiles or typed assignment dependencies, non-square initialization in real coordinates, singular numerical Jacobians, and inconsistent or nonconvergent systems.
§impl Interpreter
impl Interpreter
pub fn execution_session(
&self,
program: &KernelProgram,
config: ReferenceConfig,
inputs: impl IntoIterator<Item = (RawId, RawId, Vec<ValueLiteral>)>,
) -> Result<ExecutionSession, Vec<Diagnostic>>
pub fn execution_session( &self, program: &KernelProgram, config: ReferenceConfig, inputs: impl IntoIterator<Item = (RawId, RawId, Vec<ValueLiteral>)>, ) -> Result<ExecutionSession, Vec<Diagnostic>>
Initialize before tick zero using complete, exact-clock input tables. Values are indexed from each clock’s first tick, including a delayed phase. Missing, duplicate, foreign, mistyped, or incompletely covered inputs reject.
pub fn resume_execution(
&self,
program: &KernelProgram,
checkpoint: &ExecutionSession,
) -> Result<ExecutionSession, Vec<Diagnostic>>
pub fn resume_execution( &self, program: &KernelProgram, checkpoint: &ExecutionSession, ) -> Result<ExecutionSession, Vec<Diagnostic>>
Resume exactly the accepted checkpoint without running initial equations. A different program, including a different value revision, rejects.
§impl Interpreter
impl Interpreter
pub fn analyze_equations(
&self,
program: &KernelProgram,
) -> Result<EquationAnalysis, Diagnostic>
pub fn analyze_equations( &self, program: &KernelProgram, ) -> Result<EquationAnalysis, Diagnostic>
Analyze the admitted scalar continuous profile without solving or requiring balance. Candidate derivative matching is informational; numerical regularity is separate.
§Errors
Rejects unsupported reference profiles or malformed connection/activation plans.
§impl Interpreter
impl Interpreter
pub fn run(
&self,
program: &KernelProgram,
config: ReferenceConfig,
) -> Result<Trajectory, Vec<Diagnostic>>
pub fn run( &self, program: &KernelProgram, config: ReferenceConfig, ) -> Result<Trajectory, Vec<Diagnostic>>
Evaluate a validated model with deterministic reference numerics.
Periodic activations at the same exact rational instant are solved as
one simultaneous system. At an activation instant, State reads and Pre
use accepted memory while Next commits atomically. Clocked Variables
are current-tick algebraic unknowns and have no value between ticks.
Causal inputs resolve their exact directed source; continuous retention
requires an explicit Hold of initialized State memory.
§Errors
Returns structured diagnostics for missing initial/input values, unsupported semantic combinations, non-square systems, non-finite expressions, exact-clock overflow, or failed nonlinear solves.
pub fn run_controlled(
&self,
program: &KernelProgram,
config: ReferenceConfig,
observer: &mut impl ExecutionObserver,
) -> Result<ExecutionOutcome, Vec<Diagnostic>>
pub fn run_controlled( &self, program: &KernelProgram, config: ReferenceConfig, observer: &mut impl ExecutionObserver, ) -> Result<ExecutionOutcome, Vec<Diagnostic>>
Evaluate a validated model with cancellation observed only at accepted semantic-execution boundaries.
A cancelled outcome contains no partial trajectory. Its progress value identifies the last atomically accepted boundary for control-plane evidence and restart decisions.
§Errors
Returns the same structured diagnostics as Self::run.
§impl Interpreter
impl Interpreter
Trait Implementations§
§impl Debug for Interpreter
impl Debug for Interpreter
§impl Default for Interpreter
impl Default for Interpreter
§fn default() -> Interpreter
fn default() -> Interpreter
Auto Trait Implementations§
impl Freeze for Interpreter
impl RefUnwindSafe for Interpreter
impl Send for Interpreter
impl Sync for Interpreter
impl Unpin for Interpreter
impl UnsafeUnpin for Interpreter
impl UnwindSafe for Interpreter
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
§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.