29 #ifndef HPP_CORE_TIME_PARAMETERIZATION_POLYNOMIAL_HH
30 #define HPP_CORE_TIME_PARAMETERIZATION_POLYNOMIAL_HH
32 #include <hpp/constraints/differentiable-function.hh>
40 namespace timeParameterization {
44 for (
size_type i = 0; i < a.size(); ++i) {
45 assert(a[i] < std::numeric_limits<value_type>::infinity());
46 assert(a[i] > -std::numeric_limits<value_type>::infinity());
84 return max(fabs(Jac(low)), fabs(Jac(up)));
88 const value_type M = max(fabs(Jac(low)), fabs(Jac(up)));
89 if (low < x_m && x_m < up)
90 return max(M, fabs(a[1] - a[2] / 3 * a[3]));
95 throw std::logic_error(
"not implemented");
103 for (
size_type i = 1; i < a.size(); ++i) {
114 if (order >= a.size())
return 0;
116 if (a.size() > MaxOrder)
117 throw std::invalid_argument(
118 "Cannot compute the derivative of order greater than 10.");
119 typedef path::binomials<MaxOrder> Binomials_t;
120 const Binomials_t::Factorials_t& factors = Binomials_t::factorials();
124 for (
size_type i = order; i < a.size(); ++i) {
125 res +=
value_type(factors[i] / factors[i - order]) * a[i] * tn;
Definition: time-parameterization.hh:37
Definition: polynomial.hh:41
TimeParameterizationPtr_t copy() const
Definition: polynomial.hh:52
const vector_t & parameters() const
Definition: polynomial.hh:50
value_type value(const value_type &t) const
Computes .
Definition: polynomial.hh:57
value_type derivative(const value_type &t, const size_type &order) const
Computes .
Definition: polynomial.hh:60
value_type derivativeBound(const value_type &low, const value_type &up) const
Definition: polynomial.hh:75
Polynomial(const vector_t ¶m)
Definition: polynomial.hh:43
#define HPP_CORE_DLLAPI
Definition: config.hh:88
shared_ptr< TimeParameterization > TimeParameterizationPtr_t
Definition: fwd.hh:189
pinocchio::value_type value_type
Definition: fwd.hh:174
pinocchio::vector_t vector_t
Definition: fwd.hh:220
pinocchio::size_type size_type
Definition: fwd.hh:173
Definition: bi-rrt-planner.hh:35