Small refactor
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user