Remove dependency.

This commit is contained in:
2020-09-08 15:56:46 +02:00
parent 071cbbdc82
commit 73f0c8ea32
2 changed files with 27 additions and 7 deletions

View File

@@ -1,4 +1,6 @@
use derivative::Derivative;
use std::fmt;
// use derivative::Derivative;
use ndarray::prelude::*;
use ndarray::stack;
@@ -6,11 +8,8 @@ use crate::kernel::Kernel;
use super::Fitter;
#[derive(Derivative)]
#[derivative(Debug)]
pub struct RecursiveFitter {
ts_new: Vec<f64>,
#[derivative(Debug = "ignore")]
kernel: Box<dyn Kernel>,
ts: Vec<f64>,
ms: ArrayD<f64>, // TODO Replace with a vec
@@ -58,6 +57,30 @@ impl RecursiveFitter {
}
}
impl fmt::Debug for RecursiveFitter {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("RecursiveFitter")
.field("ts_new", &self.ts_new)
.field("ts", &self.ts)
.field("ms", &self.ms)
.field("vs", &self.vs)
.field("ns", &self.ns)
.field("xs", &self.xs)
.field("is_fitted", &self.is_fitted)
.field("h", &self.h)
.field("i", &self.i)
.field("a", &self.a)
.field("q", &self.q)
.field("m_p", &self.m_p)
.field("p_p", &self.p_p)
.field("m_f", &self.m_f)
.field("p_f", &self.p_f)
.field("m_s", &self.m_s)
.field("p_s", &self.p_s)
.finish()
}
}
impl Fitter for RecursiveFitter {
fn add_sample(&mut self, t: f64) -> usize {
let idx = self.ts.len() + self.ts_new.len();
@@ -146,8 +169,6 @@ impl Fitter for RecursiveFitter {
let k = self.p_p[i].dot(&self.h)
/ (1.0 + self.xs[i] * self.h.dot(&self.p_p[i]).dot(&self.h));
// let k = Array1::from(k);
self.m_f[i] =
&self.m_p[i] + &(&k * (self.ns[i] - self.xs[i] * self.h.dot(&self.m_p[i])));