gramods
Loading...
Searching...
No Matches
PolyFit.hh
1
5#ifndef GRAMODS_MISC_POLYFIT
6#define GRAMODS_MISC_POLYFIT
7
8#include <gmMisc/config.hh>
9
10#ifdef gramods_ENABLE_Eigen3
11
12#include <Eigen/Eigen>
13#include <memory>
14
15BEGIN_NAMESPACE_GMMISC
16
21class PolyFit {
22
23public:
26 typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> polco;
27
38 PolyFit(size_t idim, size_t odim, size_t ord);
39
43 PolyFit(const std::vector<std::vector<double>> &invals,
44 const std::vector<std::vector<double>> &outvals,
45 size_t ord);
46
47 ~PolyFit();
48
59 void addSample(const std::vector<double> &inval,
60 const std::vector<double> &outval);
61
72 polco estimateCoefficients() const;
73
84 std::vector<double> getValue(const std::vector<double> &inval) const;
85
108 Eigen::MatrixXd getJacobian(const std::vector<double> &in_values) const;
109
114 double getSingle(double inval) const;
115
123 double getDerivative(double inval) const;
124
128 void clear();
129
130private:
131
132 struct Impl;
133 std::unique_ptr<Impl> _impl;
134
135};
136
137END_NAMESPACE_GMMISC
138
139#endif
140#endif
This is a polygonal fitter for any number of in- and output dimensions allowing for inter- and extrap...
Definition PolyFit.hh:21
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > polco
Matrix holding the polynomial coefficients, one row for each output dimension.
Definition PolyFit.hh:26
Definition PolyFit.cpp:16