149 const std::vector<Point<N, T>> &input_points,
bool cubic_spline) {
150 if (input_parameters.empty() || input_parameters.size() != input_points.size())
154 std::vector<T> parameters;
155 std::vector<Point<N, T>> points;
156 for (std::size_t i=0; i<input_parameters.size(); ++i) {
157 const T para = input_parameters[i];
158 if (i == 0 || para > parameters.back()) {
159 parameters.push_back(para);
160 points.push_back(input_points[i]);
163 const auto diff = input_points.size() - points.size();
164 LOG_IF(diff > 0, WARNING) << diff <<
" data points discarded because the input has to be monotonously increasing";
166 dim_ = points[0].dimension();
167 largest_t_ = parameters.back();
170 std::vector< std::vector<T> > coords(dim_, std::vector<T>(points.size()));
173 for (std::size_t i = 0; i < points.size(); ++i) {
174 const auto &p = points[i];
177 for (std::size_t j = 0; j<dim_; ++j)
182 interpolators_.resize(dim_);
183 for (std::size_t i=0; i<dim_; ++i) {
185 interpolators_[i].set_boundary(
193 interpolators_[i].set_data(parameters, coords[i]);
200 if (points.size() < 2)
204 std::vector<T> parameters(points.size(), T(0));
207 for (std::size_t i = 1; i < points.size(); ++i) {
208 const auto &p = points[i];
T distance(const Vec< N, T > &v1, const Vec< N, T > &v2)
Computes the distance between two vectors/points.
Definition vec.h:295