| 284 | } |
| 285 | |
| 286 | double CubicSplineCurve::eval(double a) const noexcept { |
| 287 | const std::size_t i = locate(a); |
| 288 | const double h = a_[i + 1] - a_[i]; |
| 289 | const double t = (a - a_[i]) / h; |
| 290 | return segment_eval(t, h, b_[i], b_[i + 1], M_[i], M_[i + 1]); |
| 291 | } |
| 292 | |
| 293 | double CubicSplineCurve::eval_da(double a) const noexcept { |
| 294 | const std::size_t i = locate(a); |
no test coverage detected