Inline a lot of functions
This commit is contained in:
@@ -9,34 +9,42 @@ pub struct Gaussian {
|
||||
}
|
||||
|
||||
impl Gaussian {
|
||||
#[inline]
|
||||
pub const fn new(mu: f64, sigma: f64) -> Self {
|
||||
Gaussian { mu, sigma }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn mu(&self) -> f64 {
|
||||
self.mu
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn sigma(&self) -> f64 {
|
||||
self.sigma
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn tau(&self) -> f64 {
|
||||
self.mu * self.pi()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn pi(&self) -> f64 {
|
||||
self.sigma.powi(-2)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn forget(&self, gamma: f64, t: f64) -> Self {
|
||||
Self::new(self.mu, (self.sigma().powi(2) + t * gamma.powi(2)).sqrt())
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn delta(&self, m: Gaussian) -> (f64, f64) {
|
||||
((self.mu() - m.mu()).abs(), (self.sigma() - m.sigma()).abs())
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn exclude(&self, m: Gaussian) -> Self {
|
||||
Self::new(
|
||||
self.mu() - m.mu(),
|
||||
@@ -46,6 +54,7 @@ impl Gaussian {
|
||||
}
|
||||
|
||||
impl Default for Gaussian {
|
||||
#[inline]
|
||||
fn default() -> Self {
|
||||
Gaussian {
|
||||
mu: MU,
|
||||
@@ -57,6 +66,7 @@ impl Default for Gaussian {
|
||||
impl ops::Add<Gaussian> for Gaussian {
|
||||
type Output = Gaussian;
|
||||
|
||||
#[inline]
|
||||
fn add(self, rhs: Gaussian) -> Self::Output {
|
||||
Gaussian {
|
||||
mu: self.mu + rhs.mu,
|
||||
@@ -68,6 +78,7 @@ impl ops::Add<Gaussian> for Gaussian {
|
||||
impl ops::Sub<Gaussian> for Gaussian {
|
||||
type Output = Gaussian;
|
||||
|
||||
#[inline]
|
||||
fn sub(self, rhs: Gaussian) -> Self::Output {
|
||||
Gaussian {
|
||||
mu: self.mu - rhs.mu,
|
||||
@@ -79,6 +90,7 @@ impl ops::Sub<Gaussian> for Gaussian {
|
||||
impl ops::Mul<Gaussian> for Gaussian {
|
||||
type Output = Gaussian;
|
||||
|
||||
#[inline]
|
||||
fn mul(self, rhs: Gaussian) -> Self::Output {
|
||||
let (mu, sigma) = utils::mu_sigma(self.tau() + rhs.tau(), self.pi() + rhs.pi());
|
||||
|
||||
@@ -89,6 +101,7 @@ impl ops::Mul<Gaussian> for Gaussian {
|
||||
impl ops::Div<Gaussian> for Gaussian {
|
||||
type Output = Gaussian;
|
||||
|
||||
#[inline]
|
||||
fn div(self, rhs: Gaussian) -> Self::Output {
|
||||
let (mu, sigma) = utils::mu_sigma(self.tau() - rhs.tau(), self.pi() - rhs.pi());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user