48 lines
845 B
Rust
48 lines
845 B
Rust
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<f64> {
|
|
Array1::ones(ts.len()) * self.var
|
|
}
|
|
|
|
fn order(&self) -> usize {
|
|
1
|
|
}
|
|
|
|
fn state_mean(&self, _t: f64) -> Array1<f64> {
|
|
Array1::zeros(1)
|
|
}
|
|
|
|
fn state_cov(&self, _t: f64) -> Array2<f64> {
|
|
array![[1.0]] * self.var
|
|
}
|
|
|
|
fn measurement_vector(&self) -> Array1<f64> {
|
|
array![1.0]
|
|
}
|
|
|
|
fn feedback(&self) -> Array2<f64> {
|
|
array![[0.0]]
|
|
}
|
|
|
|
fn transition(&self, _t0: f64, _t1: f64) -> Array2<f64> {
|
|
array![[1.0]]
|
|
}
|
|
|
|
fn noise_cov(&self, _t0: f64, _t1: f64) -> Array2<f64> {
|
|
array![[0.0]]
|
|
}
|
|
}
|