Go to the documentation of this file.
33 #ifndef EXOTICA_AICO_SOLVER_INCREMENTAL_GAUSSIAN_H_
34 #define EXOTICA_AICO_SOLVER_INCREMENTAL_GAUSSIAN_H_
36 #include <Eigen/Dense>
46 Eigen::VectorXd
T = Eigen::VectorXd(0);
47 Eigen::VectorXd
dX = Eigen::VectorXd(0);
48 Eigen::MatrixXd
S = Eigen::MatrixXd(0, 0);
77 void add(
const Eigen::Ref<const Eigen::VectorXd>& x)
88 double f = 1. /
W / (
W - 1.);
90 for (
int r = 0; r <
D; ++r)
92 for (
int c = 0; c <
D; ++c)
94 S(r, c) += f *
dX(r) *
dX(c);
104 void add(
double& W_,
const Eigen::Ref<const Eigen::VectorXd>& T_,
105 const Eigen::Ref<const Eigen::VectorXd>& S_)
114 dX = T_ / W_ -
T /
W;
116 double f =
W * W_ / (
W + W_);
117 for (
int r = 0; r <
D; ++r)
119 for (
int c = 0; c <
D; ++c)
121 S(r, c) += S_(r, c) + f *
dX(r) *
dX(c);
128 inline void addw(
double w,
const Eigen::Ref<const Eigen::VectorXd>& x)
140 double f =
W * w / (
W + w);
141 for (
int r = 0; r <
D; ++r)
143 for (
int c = 0; c <
D; ++c)
145 S(r, c) += f *
dX(r) *
dX(c);
157 void cov(Eigen::MatrixXd& sig)
161 void covp(Eigen::MatrixXd& sig)
168 #endif // EXOTICA_AICO_SOLVER_INCREMENTAL_GAUSSIAN_H_
SinglePassMeanCovariance()=default
void add(SinglePassMeanCovariance &M)
Definition: incremental_gaussian.h:99
double W
Definition: incremental_gaussian.h:45
void add(double &W_, const Eigen::Ref< const Eigen::VectorXd > &T_, const Eigen::Ref< const Eigen::VectorXd > &S_)
Definition: incremental_gaussian.h:104
void clear()
Definition: incremental_gaussian.h:69
Eigen::VectorXd T
Definition: incremental_gaussian.h:46
Definition: cartpole_dynamics_solver.h:38
void covp(Eigen::MatrixXd &sig)
Definition: incremental_gaussian.h:161
void cov(Eigen::MatrixXd &sig)
Definition: incremental_gaussian.h:157
void mean(Eigen::VectorXd &mu)
Definition: incremental_gaussian.h:153
void resize(int D_)
Definition: incremental_gaussian.h:58
int D
Definition: incremental_gaussian.h:44
void addw(double w, const Eigen::Ref< const Eigen::VectorXd > &x)
Definition: incremental_gaussian.h:128
Eigen::VectorXd dX
Definition: incremental_gaussian.h:47
Definition: incremental_gaussian.h:41
Eigen::MatrixXd S
Definition: incremental_gaussian.h:48
SinglePassMeanCovariance(int D_)
Definition: incremental_gaussian.h:53
void add(const Eigen::Ref< const Eigen::VectorXd > &x)
Definition: incremental_gaussian.h:77