Use array impl instead of vec
This commit is contained in:
@@ -12,7 +12,7 @@ fn main() {
|
|||||||
let k_tom = ks::kernel::Exponential::new(1.0, 1.0);
|
let k_tom = ks::kernel::Exponential::new(1.0, 1.0);
|
||||||
|
|
||||||
// Jerry's skill has a constant offset and smooth dynamics.
|
// 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::Constant::new(1.0)),
|
||||||
Box::new(ks::kernel::Matern52::new(0.5, 1.0)),
|
Box::new(ks::kernel::Matern52::new(0.5, 1.0)),
|
||||||
];
|
];
|
||||||
@@ -37,20 +37,20 @@ fn main() {
|
|||||||
model.fit();
|
model.fit();
|
||||||
|
|
||||||
// We can predict a future outcome...
|
// 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!(
|
println!(
|
||||||
"Chances that Jerry beats Tom at t = 4.0: {:.1}%",
|
"Chances that Jerry beats Tom at t = 4.0: {:.1}%",
|
||||||
100.0 * p_win
|
100.0 * p_win
|
||||||
);
|
);
|
||||||
|
|
||||||
// ... or simulate what could have happened in the past.
|
// ... 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!(
|
println!(
|
||||||
"Chances that Jerry beats Tom at t = 2.0: {:.1}%",
|
"Chances that Jerry beats Tom at t = 2.0: {:.1}%",
|
||||||
100.0 * p_win
|
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!(
|
println!(
|
||||||
"Chances that Jerry beats Tom at t = -1.0: {:.1}%",
|
"Chances that Jerry beats Tom at t = -1.0: {:.1}%",
|
||||||
100.0 * p_win
|
100.0 * p_win
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
let mut model = ks::model::Binary::new(ks::model::binary::Observation::Probit);
|
let mut model = ks::model::Binary::new(ks::model::binary::Observation::Probit);
|
||||||
|
|
||||||
for team in teams {
|
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::Constant::new(0.03)),
|
||||||
Box::new(ks::kernel::Matern32::new(0.138, 1.753 * seconds_in_year)),
|
Box::new(ks::kernel::Matern32::new(0.138, 1.753 * seconds_in_year)),
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
use std::cmp::Ordering;
|
|
||||||
use std::f64::consts::{PI, SQRT_2, TAU};
|
use std::f64::consts::{PI, SQRT_2, TAU};
|
||||||
|
|
||||||
use crate::math::erfc;
|
use crate::math::erfc;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ fn kickscore_basic() {
|
|||||||
|
|
||||||
let k_tom = ks::kernel::Exponential::new(1.0, 1.0);
|
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::Constant::new(1.0)),
|
||||||
Box::new(ks::kernel::Matern52::new(0.5, 1.0)),
|
Box::new(ks::kernel::Matern52::new(0.5, 1.0)),
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ fn nba_history() {
|
|||||||
let mut model = ks::model::Binary::new(ks::model::binary::Observation::Probit);
|
let mut model = ks::model::Binary::new(ks::model::binary::Observation::Probit);
|
||||||
|
|
||||||
for team in teams {
|
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::Constant::new(0.03)),
|
||||||
Box::new(ks::kernel::Matern32::new(0.138, 1.753 * seconds_in_year)),
|
Box::new(ks::kernel::Matern32::new(0.138, 1.753 * seconds_in_year)),
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user