24#include<gsl/gsl_chebyshev.h>
54 try {
count =
new size_t; }
catch( std::bad_alloc& e ){
67 explicit series( gsl_cheb_series* v ){
104#ifdef __GXX_EXPERIMENTAL_CXX0X__
110 std::swap(
count, v.count );
111 v.ccgsl_pointer =
nullptr;
119 series( std::move( v ) ).swap( *
this );
229#ifdef __GXX_EXPERIMENTAL_CXX0X__
242 return gsl_cheb_init(
get(), &
func,
a,
b ); }
250 int init( gsl_function
const*
func,
double const a,
double const b ){
251 return gsl_cheb_init(
get(),
func,
a,
b ); }
263 return gsl_cheb_init( cs.
get(), &
func,
a,
b ); }
273 return gsl_cheb_init( cs.
get(),
func,
a,
b ); }
303 {
return gsl_cheb_eval( cs.
get(), x ); }
315 return gsl_cheb_eval_err( cs.get(), x,
result, abserr ); }
326 return gsl_cheb_eval_err( cs.
get(), x, &
result, &abserr ); }
336 return gsl_cheb_eval_n( cs.
get(),
order, x ); }
349 double*
result,
double* abserr ){
350 return gsl_cheb_eval_n_err( cs.get(),
order, x,
result, abserr ); }
362 double&
result,
double& abserr ){
363 return gsl_cheb_eval_n_err( cs.
get(),
order, x, &
result, &abserr ); }
373 return gsl_cheb_eval_mode( cs.
get(), x, mode ); }
386 double*
result,
double* abserr ){
387 return gsl_cheb_eval_mode_e( cs.get(), x, mode,
result, abserr ); }
399 double&
result,
double& abserr ){
400 return gsl_cheb_eval_mode_e( cs.
get(), x, mode, &
result, &abserr ); }
409 return gsl_cheb_calc_deriv(
deriv.get(), cs.
get() ); }
418 return gsl_cheb_calc_integ( integ.
get(), cs.
get() ); }
Workspace for Chebyshev series.
void swap(series &v)
Swap two series objects.
bool operator>=(series const &v) const
A container needs to define an ordering for sorting.
series(series &&v)
Move constructor.
bool operator==(series const &v) const
Two series are identically equal if their elements are identical.
bool operator<=(series const &v) const
A container needs to define an ordering for sorting.
series(gsl_cheb_series *v)
Could construct from a gsl_cheb_series.
series(series const &v)
The copy constructor.
size_t use_count() const
Find how many series objects share this pointer.
int init(gsl_function const *func, double const a, double const b)
C++ version of gsl_cheb_init().
series(size_t const order)
The default constructor creates a new series with n elements.
int init(function_scl const &func, double const a, double const b)
C++ version of gsl_cheb_init().
size_t * count
The shared reference count.
series & operator=(series &&v)
Move operator.
series & operator=(series const &v)
The assignment operator.
bool operator<(series const &v) const
A container needs to define an ordering for sorting.
series()
The default constructor is only really useful for assigning to.
bool operator!=(series const &v) const
Two series are different if their elements are not identical.
bool operator>(series const &v) const
A container needs to define an ordering for sorting.
gsl_cheb_series * ccgsl_pointer
The shared pointer.
bool empty() const
Find if the series is empty.
bool unique() const
Find if this is the only object sharing the gsl_cheb_series.
gsl_cheb_series * get() const
Get the gsl_cheb_series.
~series()
The destructor only deletes the pointers if count reaches zero.
Class that extends gsl_function so that it can be constructed from arbitrary function objects.
size_t order(series const &cs)
C++ version of gsl_cheb_order().
double eval_mode(series const &cs, double const x, gsl::mode_t mode)
C++ version of gsl_cheb_eval_mode().
size_t size(series const &cs)
C++ version of gsl_cheb_size().
int eval_err(series const &cs, double const x, double &result, double &abserr)
C++ version of gsl_cheb_eval_err().
int eval_n_err(series const &cs, size_t const order, double const x, double &result, double &abserr)
C++ version of gsl_cheb_eval_n_err().
int init(series &cs, function_scl const &func, double const a, double const b)
C++ version of gsl_cheb_init().
int calc_integ(series &integ, series const &cs)
C++ version of gsl_cheb_calc_integ().
double eval(series const &cs, double const x)
C++ version of gsl_cheb_eval().
int calc_deriv(series &deriv, series const &cs)
C++ version of gsl_cheb_calc_deriv().
double eval_n(series const &cs, size_t const order, double const x)
C++ version of gsl_cheb_eval_n().
double * coeffs(series const &cs)
C++ version of gsl_cheb_coeffs().
int eval_mode_e(series const &cs, double const x, gsl_mode_t mode, double &result, double &abserr)
C++ version of gsl_cheb_eval_mode_e().
double deriv(int const m, int const n, double const x)
C++ version of gsl_sf_hermite_deriv().
double func(int const n, double const x)
C++ version of gsl_sf_hermite_func().
double series(int const n, double const x, DATA const &a)
C++ version of gsl_sf_hermite_series().
double b(int order, double qq)
C++ version of gsl_sf_mathieu_b().
double a(int order, double qq)
C++ version of gsl_sf_mathieu_a().
gsl_sf_result result
Typedef for gsl_sf_result.
The gsl package creates an interface to the GNU Scientific Library for C++.
gsl_mode_t mode_t
A typedef for gsl_mode_t.