Files
trueskill-tt/src/variable.rs
2022-06-10 15:22:27 +02:00

39 lines
941 B
Rust

use crate::{Gaussian, N_INF};
#[derive(Debug)]
pub struct TeamVariable {
pub prior: Gaussian,
pub likelihood_lose: Gaussian,
pub likelihood_win: Gaussian,
pub likelihood_draw: Gaussian,
}
impl TeamVariable {
pub fn p(&self) -> Gaussian {
self.prior * self.likelihood_lose * self.likelihood_win * self.likelihood_draw
}
pub fn posterior_win(&self) -> Gaussian {
self.prior * self.likelihood_lose * self.likelihood_draw
}
pub fn posterior_lose(&self) -> Gaussian {
self.prior * self.likelihood_win * self.likelihood_draw
}
pub fn likelihood(&self) -> Gaussian {
self.likelihood_win * self.likelihood_lose * self.likelihood_draw
}
}
impl Default for TeamVariable {
fn default() -> Self {
Self {
prior: N_INF,
likelihood_lose: N_INF,
likelihood_win: N_INF,
likelihood_draw: N_INF,
}
}
}