use ndarray::prelude::*; use super::Kernel; pub struct Constant { var: f64, } impl Constant { pub fn new(var: f64) -> Self { Constant { var } } } impl Kernel for Constant { fn k_diag(&self, ts: &[f64]) -> Array1 { Array1::ones(ts.len()) * self.var } fn order(&self) -> usize { 1 } fn state_mean(&self, _t: f64) -> Array1 { Array1::zeros(1) } fn state_cov(&self, _t: f64) -> Array2 { array![[1.0]] * self.var } fn measurement_vector(&self) -> Array1 { array![1.0] } fn feedback(&self) -> Array2 { array![[0.0]] } fn transition(&self, _t0: f64, _t1: f64) -> Array2 { array![[1.0]] } fn noise_cov(&self, _t0: f64, _t1: f64) -> Array2 { array![[0.0]] } }