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

37
src/agent.rs Normal file
View File

@@ -0,0 +1,37 @@
use crate::{gaussian::Gaussian, player::Player, N_INF};
pub(crate) struct Agent {
pub(crate) player: Player,
pub(crate) message: Gaussian,
pub(crate) last_time: u64,
}
impl Agent {
pub(crate) fn receive(&self, elapsed: u64) -> Gaussian {
if self.message != N_INF {
self.message.forget(self.player.gamma, elapsed)
} else {
self.player.prior
}
}
}
impl Default for Agent {
fn default() -> Self {
Self {
player: Player::default(),
message: N_INF,
last_time: u64::MIN,
}
}
}
pub(crate) fn clean<'a, A: Iterator<Item = &'a mut Agent>>(agents: A, last_time: bool) {
for a in agents {
a.message = N_INF;
if last_time {
a.last_time = 0;
}
}
}