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