pub struct StreamingFactorGraph { /* private fields */ }Expand description
Memory-efficient factor graph for very large models.
Uses streaming computation and doesn’t hold all factors in memory.
Implementations§
Source§impl StreamingFactorGraph
impl StreamingFactorGraph
Sourcepub fn with_pool(pool: Arc<FactorPool>) -> Self
pub fn with_pool(pool: Arc<FactorPool>) -> Self
Create with a custom memory pool.
Sourcepub fn add_variable(&mut self, name: String, domain: String, cardinality: usize)
pub fn add_variable(&mut self, name: String, domain: String, cardinality: usize)
Add a variable.
Sourcepub fn add_factor<F>(&mut self, generator: F)
pub fn add_factor<F>(&mut self, generator: F)
Add a factor generator.
Sourcepub fn stream_factors(&self) -> impl Iterator<Item = Result<Factor>> + '_
pub fn stream_factors(&self) -> impl Iterator<Item = Result<Factor>> + '_
Stream factors one at a time for memory-efficient processing.
Sourcepub fn streaming_product(&self) -> Result<Factor>
pub fn streaming_product(&self) -> Result<Factor>
Compute the product of all factors using streaming.
Memory efficient but may be slower than batch computation.
Sourcepub fn num_variables(&self) -> usize
pub fn num_variables(&self) -> usize
Number of variables.
Sourcepub fn num_factors(&self) -> usize
pub fn num_factors(&self) -> usize
Number of factors.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StreamingFactorGraph
impl !RefUnwindSafe for StreamingFactorGraph
impl Send for StreamingFactorGraph
impl Sync for StreamingFactorGraph
impl Unpin for StreamingFactorGraph
impl !UnwindSafe for StreamingFactorGraph
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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.