|
@@ -7,8 +7,7 @@ namespace math {
|
|
|
|
|
|
QuarticPolynomial::QuarticPolynomial(const double x0, const double dx0, const double ddx0,
|
|
QuarticPolynomial::QuarticPolynomial(const double x0, const double dx0, const double ddx0,
|
|
const double dx1, const double ddx1,
|
|
const double dx1, const double ddx1,
|
|
- const double t
|
|
|
|
- )
|
|
|
|
|
|
+ const double t)
|
|
{
|
|
{
|
|
t_ = t;
|
|
t_ = t;
|
|
start_condition_[0] = x0;
|
|
start_condition_[0] = x0;
|
|
@@ -19,21 +18,15 @@ QuarticPolynomial::QuarticPolynomial(const double x0, const double dx0, const do
|
|
computeCoefficients(x0, dx0, ddx0, dx1, ddx1, t);
|
|
computeCoefficients(x0, dx0, ddx0, dx1, ddx1, t);
|
|
}
|
|
}
|
|
|
|
|
|
-QuarticPolynomial::QuarticPolynomial(
|
|
|
|
- const std::array<double, 3> &start,
|
|
|
|
- const std::array<double, 2> &end,
|
|
|
|
- const double t)
|
|
|
|
- : QuarticPolynomial::QuarticPolynomial(
|
|
|
|
- start[0], start[1], start[2],
|
|
|
|
- end[0], end[1], t) {}
|
|
|
|
|
|
+QuarticPolynomial::QuarticPolynomial(const std::array<double, 3> &start,
|
|
|
|
+ const std::array<double, 2> &end,
|
|
|
|
+ const double t)
|
|
|
|
+ : QuarticPolynomial::QuarticPolynomial(start[0], start[1], start[2],
|
|
|
|
+ end[0], end[1], t) {}
|
|
|
|
|
|
-void QuarticPolynomial::computeCoefficients(const double x0,
|
|
|
|
- const double dx0,
|
|
|
|
- const double ddx0,
|
|
|
|
- const double dx1,
|
|
|
|
- const double ddx1,
|
|
|
|
- const double t
|
|
|
|
- )
|
|
|
|
|
|
+void QuarticPolynomial::computeCoefficients(const double x0, const double dx0, const double ddx0,
|
|
|
|
+ const double dx1, const double ddx1,
|
|
|
|
+ const double t)
|
|
{
|
|
{
|
|
coef_[0] = x0;
|
|
coef_[0] = x0;
|
|
coef_[1] = dx0;
|
|
coef_[1] = dx0;
|
|
@@ -53,11 +46,9 @@ double QuarticPolynomial::evaluate(const std::uint32_t order, const double p) co
|
|
switch (order)
|
|
switch (order)
|
|
{
|
|
{
|
|
case 0:
|
|
case 0:
|
|
- return (((coef_[4] * p + coef_[3]) * p + coef_[2]) * p + coef_[1]) * p +
|
|
|
|
- coef_[0];
|
|
|
|
|
|
+ return (((coef_[4] * p + coef_[3]) * p + coef_[2]) * p + coef_[1]) * p + coef_[0];
|
|
case 1:
|
|
case 1:
|
|
- return ((4.0 * coef_[4] * p + 3.0 * coef_[3]) * p + 2.0 * coef_[2]) * p +
|
|
|
|
- coef_[1];
|
|
|
|
|
|
+ return ((4.0 * coef_[4] * p + 3.0 * coef_[3]) * p + 2.0 * coef_[2]) * p + coef_[1];
|
|
case 2:
|
|
case 2:
|
|
return (12.0 * coef_[4] * p + 6.0 * coef_[3]) * p + 2.0 * coef_[2];
|
|
return (12.0 * coef_[4] * p + 6.0 * coef_[3]) * p + 2.0 * coef_[2];
|
|
case 3:
|
|
case 3:
|
|
@@ -69,7 +60,7 @@ double QuarticPolynomial::evaluate(const std::uint32_t order, const double p) co
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-double QuarticPolynomial::coef(const std::int32_t order) const
|
|
|
|
|
|
+double QuarticPolynomial::coef(const size_t order) const
|
|
{
|
|
{
|
|
return coef_[order];
|
|
return coef_[order];
|
|
}
|
|
}
|
|
@@ -81,7 +72,7 @@ const std::array<double, 5> &QuarticPolynomial::coef() const
|
|
|
|
|
|
std::string QuarticPolynomial::toString() const
|
|
std::string QuarticPolynomial::toString() const
|
|
{
|
|
{
|
|
- return absl::StrCat("QuarticPolynomial(", absl::StrJoin(coef_, ", "), t_, ")\n");
|
|
|
|
|
|
+ return absl::StrCat("QuarticPolynomial(", absl::StrJoin(coef_, ", "), ")");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|