1 #ifndef DEF_COMMON_LEGENDREINTERPOLATION 2 #define DEF_COMMON_LEGENDREINTERPOLATION 9 std::vector<double> m_dates;
12 std::vector<std::vector<double>> m_polynomials;
13 std::vector<std::vector<double>> m_polynomials_derivatives;
24 chebyshev (
int degree)
26 double den = 1.0/double(degree);
27 std::vector<double> ret;
28 for (
int i=0;i<=degree;i++) {
29 ret.push_back(
double(i)*den);
35 check_computed (
int s, std::vector<double> dates)
52 std::vector<std::vector<double>>
53 polynomials (
int s, std::vector<double> dates)
55 check_computed(s, dates);
59 std::vector<std::vector<double>>
60 polynomials_derivatives (
int s, std::vector<double> dates)
62 check_computed(s, dates);
63 return m_polynomials_derivatives;
83 std::vector<double> tmp;
84 std::vector<double> coeffs = chebyshev(m_degree);
88 m_polynomials.clear();
89 for (i=0; i<m_dates.size(); i++) {
92 for (j=0; j<=m_degree; j++) {
94 for (k=0; k<=m_degree; k++) {
96 prod *= (t-coeffs[k])/(coeffs[j]-coeffs[k]);
100 m_polynomials.push_back(tmp);
121 std::vector<double> tmp;
122 std::vector<double> coeffs = chebyshev(m_degree);
127 m_polynomials_derivatives.clear();
128 for (i=0; i<m_dates.size(); i++) {
131 for (j=0; j<=m_degree; j++) {
133 for (k=0; k<=m_degree; k++) {
136 for (l=0; l<=m_degree; l++) {
137 if ((l!=k) && (l!=j))
138 prod *= (t-coeffs[l])/(coeffs[j]-coeffs[l]);
140 prod = prod/(coeffs[j]-coeffs[k]);
144 tmp.push_back(somme);
146 m_polynomials_derivatives.push_back(tmp);
151 template <
typename T_Q>
156 pos_interp (
int s, std::vector<double> dates, std::vector<T_Q> configs)
158 check_computed(s, dates);
161 std::vector<T_Q> ret;
164 for (j=0; j<this->m_dates.size(); j++) {
166 for (i=0;i<=this->m_degree;i++) {
167 tmp += m_polynomials[j][i]*configs[i];
176 vel_interp (
int s, std::vector<double> dates, std::vector<T_Q> configs,
double h)
178 check_computed(s, dates);
181 std::vector<T_Q> ret;
184 for (j=0; j<this->m_dates.size(); j++) {
186 for (i=0;i<=this->m_degree;i++) {
187 tmp += m_polynomials_derivatives[j][i]*configs[i];
189 ret.push_back(tmp/h);
void compute_polynomials_derivatives()
Definition: LagrangeInterpolation.hpp:114
void compute_polynomials()
Definition: LagrangeInterpolation.hpp:77
Definition: LagrangeInterpolation.hpp:6
Definition: LagrangeInterpolation.hpp:152