use crate::{ N_INF, factor::{Factor, VarId, VarStore}, gaussian::Gaussian, }; #[derive(Debug)] pub(crate) struct TruncFactor { pub(crate) diff: VarId, pub(crate) margin: f64, pub(crate) tie: bool, pub(crate) msg: Gaussian, pub(crate) evidence_cached: Option, } impl TruncFactor { pub(crate) fn new(diff: VarId, margin: f64, tie: bool) -> Self { Self { diff, margin, tie, msg: N_INF, evidence_cached: None, } } } impl Factor for TruncFactor { fn propagate(&mut self, _vars: &mut VarStore) -> (f64, f64) { unimplemented!("TruncFactor stub — implemented in Task 6") } }