12 #ifndef ECL_GEOMETRY_SPLINE_FUNCTION_HPP_ 13 #define ECL_GEOMETRY_SPLINE_FUNCTION_HPP_ 19 #include <ecl/config/macros.hpp> 20 #include <ecl/containers/array.hpp> 21 #include <ecl/exceptions/standard_exception.hpp> 41 virtual ~GenericSplineFunction() {};
47 virtual double operator()(
const double &x)
const = 0;
53 virtual double derivative(
const double &x)
const = 0;
59 virtual double dderivative(
const double &x)
const = 0;
68 const Array<double,2>& domain() {
return time_domain; }
71 Array<double,2> time_domain;
87 template <
typename Function>
88 class ECL_PUBLIC SplineFunction :
public GenericSplineFunction {
99 SplineFunction (
const double& time_begin,
const double& time_end,
const Function& f) : function(f) {
100 time_domain << time_begin, time_end;
102 virtual ~SplineFunction() {};
123 return function.derivative(x);
134 return function.dderivative(x);
#define LOC
Stringify the line of code you are at.
#define ecl_assert_throw(expression, exception)
Debug mode throw with a logical condition check.
TFSIMD_FORCE_INLINE const tfScalar & x() const
#define ecl_assert_throw_decl(exception)
Assure throw exception declaration.