1 #ifndef VICON_UNCERTAINTY_HPP
2 #define VICON_UNCERTAINTY_HPP
5 #include <Eigen/Cholesky>
8 #include <boost/circular_buffer.hpp>
11 template <
typename _EigenMatrixType>
16 boost::circular_buffer< _EigenMatrixType >
data;
23 data = boost::circular_buffer< _EigenMatrixType >(this->
dimension);
27 void push(
const _EigenMatrixType& value)
31 data.push_front(value);
43 for(
register unsigned int i=0; i<
data.size(); ++i)
48 return sum/
data.size();
53 _EigenMatrixType mean =
getMean();
54 _EigenMatrixType temp;
59 for(
register unsigned int i=0; i<
data.size(); ++i)
61 temp += (mean -
data[i]) * (mean -
data[i]);
65 return temp/
data.size();
71 Eigen::LLT< _EigenMatrixType > lltOfVar (variance);
73 return variance.matrixL();
83 return data.capacity();
87 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
boost::circular_buffer< _EigenMatrixType > data
ViconUncertainty(size_t dimension=0)
_EigenMatrixType getVariance()
_EigenMatrixType getMean()
_EigenMatrixType getStdDev()
void push(const _EigenMatrixType &value)