Files
trueskill-tt/src/player.rs

36 lines
716 B
Rust

use crate::{gaussian::Gaussian, BETA, GAMMA, N_INF};
#[derive(Clone, Copy, Debug)]
pub struct Player {
pub(crate) prior: Gaussian,
pub(crate) beta: f64,
pub(crate) gamma: f64,
pub(crate) draw: Gaussian,
}
impl Player {
pub fn new(prior: Gaussian, beta: f64, gamma: f64) -> Self {
Self {
prior,
beta,
gamma,
draw: N_INF,
}
}
pub(crate) fn performance(&self) -> Gaussian {
self.prior.forget(self.beta, 1)
}
}
impl Default for Player {
fn default() -> Self {
Self {
prior: Gaussian::default(),
beta: BETA,
gamma: GAMMA,
draw: N_INF,
}
}
}