7 #ifndef _POLY_ESTIMATOR_HH_ 
    8 #define _POLY_ESTIMATOR_HH_ 
   10 #include <Eigen/Dense> 
   19 void pinv(
const Eigen::MatrixXd& matrix_in, Eigen::MatrixXd& pseudo_inv,
 
   20           const double& pinvtoler = 1.0e-6);
 
   38   PolyEstimator(
const unsigned int& order, 
const unsigned int& N,
 
   50   void estimate(std::vector<double>& estimee,
 
   51                 const std::vector<double>& data_element, 
const double& time);
 
   61   virtual void estimate(std::vector<double>& estimee,
 
   62                         const std::vector<double>& data_element) = 0;
 
   73                                  const std::vector<double>& data_element,
 
   74                                  const double& time) = 0;
 
   83                                      const unsigned int order) = 0;
 
  138   std::vector<double> 
t_;
 
  142   std::vector<double> 
x_;
 
virtual void estimateRecursive(std::vector< double > &estimee, const std::vector< double > &data_element, const double &time)=0
 
unsigned int N_
Window length.
 
unsigned int getWindowLength()
 
std::vector< double > time_list_
Time vector corresponding to each element in elem_list_.
 
virtual void getEstimateDerivative(std::vector< double > &estimeeDerivative, const unsigned int order)=0
 
double dt_
Sampling (control) time.
 
bool dt_zero_
Indicate that dt is zero (dt is invalid)
 
Eigen::VectorXd coeff_
Coefficients for the least squares solution.
 
void setWindowLength(const unsigned int &N)
 
unsigned int order_
Order of the polynomial estimator.
 
PolyEstimator(const unsigned int &order, const unsigned int &N, const double &dt)
 
unsigned int pt_
Circular index to each data and time element.
 
virtual void estimate(std::vector< double > &estimee, const std::vector< double > &data_element)=0
 
std::vector< double > t_
Time vector setting the lowest time to zero (for numerical stability).
 
void estimate(std::vector< double > &estimee, const std::vector< double > &data_element, const double &time)
 
virtual double getEsteeme()=0
 
std::vector< std::vector< double > > elem_list_
All the data (N elements of size dim)
 
void pinv(const Eigen::MatrixXd &matrix_in, Eigen::MatrixXd &pseudo_inv, const double &pinvtoler=1.0e-6)