Port from julia version instead

This commit is contained in:
2022-06-18 22:27:38 +02:00
parent 36c3366990
commit dc10504b80
13 changed files with 1141 additions and 1213 deletions

View File

@@ -1,44 +1,35 @@
use crate::{Gaussian, BETA, GAMMA, N_INF};
#[derive(Copy, Clone, Debug, Default, PartialEq, PartialOrd, Eq, Ord, Hash)]
pub struct PlayerIndex(usize);
impl PlayerIndex {
pub fn new(index: usize) -> Self {
Self(index)
}
}
use crate::{gaussian::Gaussian, BETA, GAMMA, N_INF};
#[derive(Clone, Copy, Debug)]
pub struct Player {
pub prior: Gaussian,
pub beta: f64,
pub gamma: f64,
pub draw: Gaussian,
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, draw: Gaussian) -> Self {
Player {
pub fn new(prior: Gaussian, beta: f64, gamma: f64) -> Self {
Self {
prior,
beta,
gamma,
draw,
draw: N_INF,
}
}
}
impl Player {
pub fn performance(&self) -> Gaussian {
Gaussian::new(
self.prior.mu(),
(self.prior.sigma().powi(2) + self.beta.powi(2)).sqrt(),
)
pub(crate) fn performance(&self) -> Gaussian {
self.prior.forget(self.beta, 1)
}
}
impl Default for Player {
fn default() -> Self {
Player::new(Gaussian::default(), BETA, GAMMA, N_INF)
Self {
prior: Gaussian::default(),
beta: BETA,
gamma: GAMMA,
draw: N_INF,
}
}
}