Revert back.
This commit is contained in:
@@ -1,29 +1,33 @@
|
||||
use std::ops;
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
pub struct Gaussian {
|
||||
pub pi: f64,
|
||||
pub tau: f64,
|
||||
pi: f64,
|
||||
tau: f64,
|
||||
}
|
||||
|
||||
impl Gaussian {
|
||||
pub fn new() -> Gaussian {
|
||||
Gaussian::with_pi_tau(0.0, 0.0)
|
||||
}
|
||||
|
||||
pub fn with_pi_tau(pi: f64, tau: f64) -> Gaussian {
|
||||
pub fn from_pi_tau(pi: f64, tau: f64) -> Gaussian {
|
||||
Gaussian { pi, tau }
|
||||
}
|
||||
|
||||
pub fn with_mu_sigma(mu: f64, sigma: f64) -> Gaussian {
|
||||
let pi = 1.0 / sigma.powi(2);
|
||||
pub fn from_mu_sigma(mu: f64, sigma: f64) -> Gaussian {
|
||||
let pi = 1.0 / (sigma * sigma);
|
||||
|
||||
Gaussian::with_pi_tau(pi, pi * mu)
|
||||
Self::from_pi_tau(pi, pi * mu)
|
||||
}
|
||||
|
||||
pub fn pi(&self) -> f64 {
|
||||
self.pi
|
||||
}
|
||||
|
||||
pub fn tau(&self) -> f64 {
|
||||
self.tau
|
||||
}
|
||||
|
||||
pub fn mu(&self) -> f64 {
|
||||
if self.pi == 0.0 {
|
||||
0.0
|
||||
return 0.0;
|
||||
} else {
|
||||
self.tau / self.pi
|
||||
}
|
||||
@@ -38,7 +42,7 @@ impl ops::Mul<Gaussian> for Gaussian {
|
||||
type Output = Gaussian;
|
||||
|
||||
fn mul(self, rhs: Gaussian) -> Gaussian {
|
||||
Gaussian::with_pi_tau(self.pi + rhs.pi, self.tau + rhs.tau)
|
||||
Gaussian::from_pi_tau(self.pi + rhs.pi, self.tau + rhs.tau)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +50,6 @@ impl ops::Div<Gaussian> for Gaussian {
|
||||
type Output = Gaussian;
|
||||
|
||||
fn div(self, rhs: Gaussian) -> Gaussian {
|
||||
Gaussian::with_pi_tau(self.pi - rhs.pi, self.tau - rhs.tau)
|
||||
Gaussian::from_pi_tau(self.pi - rhs.pi, self.tau - rhs.tau)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user