| 198 |
|
|
| 199 |
|
if (!generated) generate(); |
| 200 |
|
|
| 201 |
< |
assert(t > data_.front().first); |
| 202 |
< |
assert(t < data_.back().first); |
| 201 |
> |
assert(t >= data_.front().first); |
| 202 |
> |
assert(t <= data_.back().first); |
| 203 |
|
|
| 204 |
|
// Find the interval ( x[j], x[j+1] ) that contains or is nearest |
| 205 |
|
// to t. |
| 237 |
|
|
| 238 |
|
if (!generated) generate(); |
| 239 |
|
|
| 240 |
< |
assert(t > data_.front().first); |
| 241 |
< |
assert(t < data_.back().first); |
| 240 |
> |
assert(t >= data_.front().first); |
| 241 |
> |
assert(t <= data_.back().first); |
| 242 |
|
|
| 243 |
|
// Find the interval ( x[j], x[j+1] ) that contains or is nearest |
| 244 |
|
// to t. |
| 276 |
|
|
| 277 |
|
if (!generated) generate(); |
| 278 |
|
|
| 279 |
< |
assert(t > data_.front().first); |
| 280 |
< |
assert(t < data_.back().first); |
| 279 |
> |
assert(t >= data_.front().first); |
| 280 |
> |
assert(t <= data_.back().first); |
| 281 |
|
|
| 282 |
|
// Find the interval ( x[j], x[j+1] ) that contains or is nearest |
| 283 |
|
// to t. |
| 308 |
|
return make_pair(yval, dydx); |
| 309 |
|
} |
| 310 |
|
|
| 311 |
+ |
pair<RealType, RealType> CubicSpline::getLimits(){ |
| 312 |
+ |
if (!generated) generate(); |
| 313 |
+ |
return make_pair( data_.front().first, data_.back().first ); |
| 314 |
+ |
} |
| 315 |
+ |
|
| 316 |
|
void CubicSpline::getValueAndDerivativeAt(const RealType& t, RealType& v, |
| 317 |
|
RealType &dv) { |
| 318 |
|
// Evaluate the spline and first derivative at t using coefficients |
| 322 |
|
|
| 323 |
|
if (!generated) generate(); |
| 324 |
|
|
| 325 |
< |
assert(t > data_.front().first); |
| 326 |
< |
assert(t < data_.back().first); |
| 325 |
> |
assert(t >= data_.front().first); |
| 326 |
> |
assert(t <= data_.back().first); |
| 327 |
|
|
| 328 |
|
// Find the interval ( x[j], x[j+1] ) that contains or is nearest |
| 329 |
|
// to t. |