247 if (points.size() > 0)
249 if (x > points[index])
250 return std::max<number>(0.0,
251 1.0 - (x - points[index]) *
252 one_over_lengths[index]);
253 else if (x < points[index])
254 return std::max<number>(0.0,
255 0.0 + (x - points[index - 1]) *
256 one_over_lengths[index - 1]);
266 const number step = 1. / n_intervals;
269 if (spans_two_intervals ==
true)
271 const number offset = step * interval;
274 else if (x > offset + step + step)
276 else if (x < offset + step)
279 y = offset + step + step - x;
283 const number offset = step * interval;
284 if (x < offset || x > offset + step)
290 return polynomial.value(y);
293 return polynomial.value(x);