Use array impl instead of vec

This commit is contained in:
2021-10-27 11:33:54 +02:00
parent 1eea1bfb71
commit 71b795d9ed
5 changed files with 7 additions and 8 deletions

View File

@@ -12,7 +12,7 @@ fn main() {
let k_tom = ks::kernel::Exponential::new(1.0, 1.0);
// Jerry's skill has a constant offset and smooth dynamics.
let k_jerry: Vec<Box<dyn ks::Kernel>> = vec![
let k_jerry: [Box<dyn ks::Kernel>; 2] = [
Box::new(ks::kernel::Constant::new(1.0)),
Box::new(ks::kernel::Matern52::new(0.5, 1.0)),
];
@@ -37,20 +37,20 @@ fn main() {
model.fit();
// We can predict a future outcome...
let (p_win, _p_los) = model.probabilities(&[&"Jerry"], &[&"Tom"], 4.0);
let (p_win, _p_los) = model.probabilities(&["Jerry"], &["Tom"], 4.0);
println!(
"Chances that Jerry beats Tom at t = 4.0: {:.1}%",
100.0 * p_win
);
// ... or simulate what could have happened in the past.
let (p_win, _p_los) = model.probabilities(&[&"Jerry"], &[&"Tom"], 2.0);
let (p_win, _p_los) = model.probabilities(&["Jerry"], &["Tom"], 2.0);
println!(
"Chances that Jerry beats Tom at t = 2.0: {:.1}%",
100.0 * p_win
);
let (p_win, _p_los) = model.probabilities(&[&"Jerry"], &[&"Tom"], -1.0);
let (p_win, _p_los) = model.probabilities(&["Jerry"], &["Tom"], -1.0);
println!(
"Chances that Jerry beats Tom at t = -1.0: {:.1}%",
100.0 * p_win

View File

@@ -57,7 +57,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut model = ks::model::Binary::new(ks::model::binary::Observation::Probit);
for team in teams {
let kernel: Vec<Box<dyn ks::Kernel>> = vec![
let kernel: [Box<dyn ks::Kernel>; 2] = [
Box::new(ks::kernel::Constant::new(0.03)),
Box::new(ks::kernel::Matern32::new(0.138, 1.753 * seconds_in_year)),
];

View File

@@ -1,4 +1,3 @@
use std::cmp::Ordering;
use std::f64::consts::{PI, SQRT_2, TAU};
use crate::math::erfc;

View File

@@ -11,7 +11,7 @@ fn kickscore_basic() {
let k_tom = ks::kernel::Exponential::new(1.0, 1.0);
let k_jerry: Vec<Box<dyn ks::Kernel>> = vec![
let k_jerry: [Box<dyn ks::Kernel>; 2] = [
Box::new(ks::kernel::Constant::new(1.0)),
Box::new(ks::kernel::Matern52::new(0.5, 1.0)),
];

View File

@@ -61,7 +61,7 @@ fn nba_history() {
let mut model = ks::model::Binary::new(ks::model::binary::Observation::Probit);
for team in teams {
let kernel: Vec<Box<dyn ks::Kernel>> = vec![
let kernel: [Box<dyn ks::Kernel>; 2] = [
Box::new(ks::kernel::Constant::new(0.03)),
Box::new(ks::kernel::Matern32::new(0.138, 1.753 * seconds_in_year)),
];