diff --git a/src/factor_graph.rs b/src/factor_graph.rs index 150a995..d1d45c7 100644 --- a/src/factor_graph.rs +++ b/src/factor_graph.rs @@ -10,31 +10,25 @@ pub use message::*; pub use variable::*; pub struct PriorFactor { - id: MessageId, + variable_msg: MessageId, variable: VariableId, gaussian: Gaussian, } impl PriorFactor { - pub fn new( - message_arena: &mut MessageArena, - variable: VariableId, - gaussian: Gaussian, - ) -> PriorFactor { - let id = message_arena.create(); - - PriorFactor { - id, + pub fn new(message_arena: &mut MessageArena, variable: VariableId, gaussian: Gaussian) -> Self { + Self { + variable_msg: message_arena.create(), variable, gaussian, } } pub fn start(&self, variable_arena: &mut VariableArena, message_arena: &mut MessageArena) { - let old = message_arena[self.id]; + let old = message_arena[self.variable_msg]; let value = variable_arena[self.variable]; - message_arena[self.id] = self.gaussian * old / value; + message_arena[self.variable_msg] = self.gaussian * old / value; variable_arena[self.variable] = self.gaussian; } } @@ -53,8 +47,8 @@ impl LikelihoodFactor { mean: VariableId, value: VariableId, variance: f64, - ) -> LikelihoodFactor { - LikelihoodFactor { + ) -> Self { + Self { mean_msg: message_arena.create(), value_msg: message_arena.create(), mean, @@ -112,8 +106,8 @@ impl SumFactor { sum: VariableId, terms: Vec, coeffs: Vec, - ) -> SumFactor { - SumFactor { + ) -> Self { + Self { sum_msg: message_arena.create(), terms_msg: terms .iter() @@ -265,8 +259,8 @@ impl TruncateFactor { variable: VariableId, epsilon: f64, draw: bool, - ) -> TruncateFactor { - TruncateFactor { + ) -> Self { + Self { variable_msg: message_arena.create(), variable, epsilon,