Small refactor

This commit is contained in:
2023-01-12 09:44:53 +01:00
parent f81ffd784b
commit 0598531547

View File

@@ -10,31 +10,25 @@ pub use message::*;
pub use variable::*; pub use variable::*;
pub struct PriorFactor { pub struct PriorFactor {
id: MessageId, variable_msg: MessageId,
variable: VariableId, variable: VariableId,
gaussian: Gaussian, gaussian: Gaussian,
} }
impl PriorFactor { impl PriorFactor {
pub fn new( pub fn new(message_arena: &mut MessageArena, variable: VariableId, gaussian: Gaussian) -> Self {
message_arena: &mut MessageArena, Self {
variable: VariableId, variable_msg: message_arena.create(),
gaussian: Gaussian,
) -> PriorFactor {
let id = message_arena.create();
PriorFactor {
id,
variable, variable,
gaussian, gaussian,
} }
} }
pub fn start(&self, variable_arena: &mut VariableArena, message_arena: &mut MessageArena) { 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]; 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; variable_arena[self.variable] = self.gaussian;
} }
} }
@@ -53,8 +47,8 @@ impl LikelihoodFactor {
mean: VariableId, mean: VariableId,
value: VariableId, value: VariableId,
variance: f64, variance: f64,
) -> LikelihoodFactor { ) -> Self {
LikelihoodFactor { Self {
mean_msg: message_arena.create(), mean_msg: message_arena.create(),
value_msg: message_arena.create(), value_msg: message_arena.create(),
mean, mean,
@@ -112,8 +106,8 @@ impl SumFactor {
sum: VariableId, sum: VariableId,
terms: Vec<VariableId>, terms: Vec<VariableId>,
coeffs: Vec<f64>, coeffs: Vec<f64>,
) -> SumFactor { ) -> Self {
SumFactor { Self {
sum_msg: message_arena.create(), sum_msg: message_arena.create(),
terms_msg: terms terms_msg: terms
.iter() .iter()
@@ -265,8 +259,8 @@ impl TruncateFactor {
variable: VariableId, variable: VariableId,
epsilon: f64, epsilon: f64,
draw: bool, draw: bool,
) -> TruncateFactor { ) -> Self {
TruncateFactor { Self {
variable_msg: message_arena.create(), variable_msg: message_arena.create(),
variable, variable,
epsilon, epsilon,