Class interp_akima (o2scl)

O2scl : Class List

template<class vec_t, class vec2_t = vec_t, class fp_t = double>
class interp_akima : public o2scl::interp_base<vec_t, vec_t, double>

Akima spline interpolation (GSL)

See also the Interpolation section of the O2scl User’s guide.

This class uses natural boundary conditions, where the second derivative vanishes at each end point. Extrapolation effectively assumes that the second derivative is linear outside of the endpoints. Use interp_akima_peri for perodic boundary conditions.

Subclassed by o2scl::interp_akima_peri< vec_t, vec2_t, fp_t >

Storage for Akima spline interpolation

ubvector b
ubvector c
ubvector d
ubvector um
inline void akima_calc(const vec_t &x_array, size_t size, ubvector &umx)

For initializing the interpolation.

inline interp_akima()

Create a base interpolation object with or without periodic boundary conditions.

inline virtual ~interp_akima()
inline virtual void set(size_t size, const vec_t &xa, const vec2_t &ya)

Initialize interpolation routine.

inline virtual fp_t eval(fp_t x0) const

Give the value of the function \( y(x=x_0) \) .

inline virtual fp_t deriv(fp_t x0) const

Give the value of the derivative \( y^{\prime}(x=x_0) \) .

inline virtual fp_t deriv2(fp_t x0) const

Give the value of the second derivative \( y^{\prime \prime}(x=x_0) \) .

inline virtual fp_t integ(fp_t aa, fp_t bb) const

Give the value of the integral \( \int_a^{b}y(x)~dx \) .

inline virtual const char *type() const

Return the type, "interp_akima".

interp_akima(const interp_akima<vec_t, vec2_t, fp_t>&)
interp_akima<vec_t, vec2_t, fp_t> &operator=(const interp_akima<vec_t, vec2_t, fp_t>&)

Public Types

typedef boost::numeric::ublas::vector<fp_t> ubvector
typedef boost::numeric::ublas::vector_slice<ubvector> ubvector_slice
typedef boost::numeric::ublas::vector_range<ubvector> ubvector_range
typedef boost::numeric::ublas::slice slice
typedef boost::numeric::ublas::range range