pub struct Summand {
pub ops: Vec<SummandOp>,
pub root_slot: usize,
pub local_reach: Vec<usize>,
pub prelude_reach: Vec<usize>,
pub local_vars: Vec<usize>,
pub prelude_vars: Vec<usize>,
pub all_vars: Vec<usize>,
}Fields§
§ops: Vec<SummandOp>§root_slot: usizeLocal slot holding the summand’s final value.
local_reach: Vec<usize>Local slots reachable from root_slot, ascending (topo).
prelude_reach: Vec<usize>Prelude slots reachable from the summand’s Shared refs, ascending (topo in prelude’s operand DAG).
local_vars: Vec<usize>Variables touched by Var ops inside local_reach.
prelude_vars: Vec<usize>Variables touched by Var ops inside prelude_reach.
all_vars: Vec<usize>local_vars ∪ prelude_vars, sorted. Hessian j-loop set.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Summand
impl RefUnwindSafe for Summand
impl Send for Summand
impl Sync for Summand
impl Unpin for Summand
impl UnsafeUnpin for Summand
impl UnwindSafe for Summand
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
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