ccgsl 2.7.2
C++wrappersforGnuScientificLibrary
gsl::odeiv2::driver Class Reference

ODE driver. More...

#include <odeiv2.hpp>

Collaboration diagram for gsl::odeiv2::driver:
Collaboration graph

Public Member Functions

 driver ()
 The default constructor is only really useful for assigning to. More...
 
 driver (gsl_odeiv2_driver *v)
 Could construct from a gsl_odeiv2_driver. More...
 
 driver (driver const &v)
 The copy constructor. More...
 
driveroperator= (driver const &v)
 The assignment operator. More...
 
 ~driver ()
 The destructor only deletes the pointers if count reaches zero. More...
 
 driver (driver &&v)
 Move constructor. More...
 
driveroperator= (driver &&v)
 Move operator. More...
 
bool operator== (driver const &v) const
 Two driver are identically equal if their elements are identical. More...
 
bool operator!= (driver const &v) const
 Two driver are different if their elements are not identical. More...
 
bool operator< (driver const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator> (driver const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator<= (driver const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator>= (driver const &v) const
 A container needs to define an ordering for sorting. More...
 
bool empty () const
 Find if the driver is empty. More...
 
void swap (driver &v)
 Swap two driver objects. More...
 
gsl_odeiv2_driver * get () const
 Get the gsl_odeiv2_driver. More...
 
bool unique () const
 Find if this is the only object sharing the gsl_odeiv2_driver. More...
 
size_t use_count () const
 Find how many driver objects share this pointer. More...
 
 operator bool () const
 Allow conversion to bool. More...
 
int set_hmin (double const hmin)
 C++ version of gsl_odeiv2_driver_set_hmin(). More...
 
int set_hmax (double const hmax)
 C++ version of gsl_odeiv2_driver_set_hmax(). More...
 
int set_nmax (unsigned long int const nmax)
 C++ version of gsl_odeiv2_driver_set_nmax(). More...
 
template<typename Y >
int apply (double &t, double const t1, Y &y)
 C++ version of gsl_odeiv2_driver_apply(). More...
 
template<typename Y >
int apply_fixed_step (double &t, double const h, unsigned long int const n, Y &y)
 C++ version of gsl_odeiv2_driver_apply_fixed_step(). More...
 
int reset ()
 C++ version of gsl_odeiv2_driver_reset(). More...
 

Static Public Member Functions

static driver y_new (system const *sys, step::type const *T, double const hstart, double const epsabs, double const epsrel)
 C++ version of gsl_odeiv2_driver_alloc_y_new(). More...
 
static driver yp_new (system const *sys, step::type const *T, double const hstart, double const epsabs, double const epsrel)
 C++ version of gsl_odeiv2_driver_alloc_yp_new(). More...
 
template<typename SCALE_ABS >
static driver scaled_new (system const &sys, step::type const *T, double const hstart, double const epsabs, double const epsrel, double const a_y, double const a_dydt, SCALE_ABS const &scale_abs)
 C++ version of gsl_odeiv2_driver_alloc_scaled_new(). More...
 
static driver standard_new (system const &sys, step::type const *T, double const hstart, double const epsabs, double const epsrel, double const a_y, double const a_dydt)
 C++ version of gsl_odeiv2_driver_alloc_standard_new(). More...
 

Private Attributes

gsl_odeiv2_driver * ccgsl_pointer
 The shared pointer. More...
 
size_t * count
 The shared reference count. More...
 

Detailed Description

ODE driver.

Definition at line 1051 of file odeiv2.hpp.

Constructor & Destructor Documentation

◆ driver() [1/4]

gsl::odeiv2::driver::driver ( )
inline

The default constructor is only really useful for assigning to.

Definition at line 1056 of file odeiv2.hpp.

References ccgsl_pointer, and count.

Referenced by operator=(), scaled_new(), standard_new(), y_new(), and yp_new().

◆ driver() [2/4]

gsl::odeiv2::driver::driver ( gsl_odeiv2_driver *  v)
inlineexplicit

Could construct from a gsl_odeiv2_driver.

This is not usually a good idea. In this case we should not use gsl_odeiv2_driver_free() to deallocate the memory.

Parameters
vThe driver

Definition at line 1068 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ driver() [3/4]

gsl::odeiv2::driver::driver ( driver const &  v)
inline

The copy constructor.

This creates a new reference to the workspace.

Parameters
vThe driver to copy.

Definition at line 1079 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ ~driver()

gsl::odeiv2::driver::~driver ( )
inline

The destructor only deletes the pointers if count reaches zero.

Definition at line 1098 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ driver() [4/4]

gsl::odeiv2::driver::driver ( driver &&  v)
inline

Move constructor.

Parameters
vThe driver to move.

Definition at line 1110 of file odeiv2.hpp.

References count.

Member Function Documentation

◆ apply()

template<typename Y >
int gsl::odeiv2::driver::apply ( double &  t,
double const  t1,
Y &  y 
)
inline

C++ version of gsl_odeiv2_driver_apply().

This version allows y to be gsl::vector (or object for which data() returns an array of doubles)

Parameters
tInitial value of time t
t1Maximum value of time t
yInitial value of y
Returns
Error code on failure

Definition at line 1369 of file odeiv2.hpp.

References get().

◆ apply_fixed_step()

template<typename Y >
int gsl::odeiv2::driver::apply_fixed_step ( double &  t,
double const  h,
unsigned long int const  n,
Y &  y 
)
inline

C++ version of gsl_odeiv2_driver_apply_fixed_step().

This version allows y to be gsl::vector (or object for which data() returns an array of doubles)

Parameters
tInitial value of time t
hFixed step size
nNumber of steps
yInitial value of y
Returns
Error code on faiure

Definition at line 1395 of file odeiv2.hpp.

References get(), and gsl::rstat::n().

◆ empty()

bool gsl::odeiv2::driver::empty ( ) const
inline

Find if the driver is empty.

Returns
true if has size zero; otherwise false

Definition at line 1187 of file odeiv2.hpp.

References ccgsl_pointer.

◆ get()

gsl_odeiv2_driver * gsl::odeiv2::driver::get ( ) const
inline

Get the gsl_odeiv2_driver.

Returns
the gsl_odeiv2_driver

Definition at line 1213 of file odeiv2.hpp.

References ccgsl_pointer.

Referenced by apply(), apply_fixed_step(), reset(), gsl::odeiv2::step::set_driver(), gsl::odeiv2::control::set_driver(), gsl::odeiv2::evolve::set_driver(), set_hmax(), set_hmin(), and set_nmax().

◆ operator bool()

gsl::odeiv2::driver::operator bool ( ) const
inlineexplicit

Allow conversion to bool.

Returns
true or false according as this contains a pointer to a gsl_odeiv2_driver.

Definition at line 1233 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator!=()

bool gsl::odeiv2::driver::operator!= ( driver const &  v) const
inline

Two driver are different if their elements are not identical.

Parameters
vThe driver to be compared with this
Returns
false or true according as this and v have identical elements or not

Definition at line 1140 of file odeiv2.hpp.

References operator==().

◆ operator<()

bool gsl::odeiv2::driver::operator< ( driver const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a driver is nonnegative.

Parameters
vThe driver to be compared with this
Returns
false or true according as this is less than v lexicographically

Definition at line 1152 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator<=()

bool gsl::odeiv2::driver::operator<= ( driver const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a driver is nonnegative.

Parameters
vThe driver to be compared with this
Returns
false or true according as this is less than or equal to v lexicographically

Definition at line 1172 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator=() [1/2]

driver & gsl::odeiv2::driver::operator= ( driver &&  v)
inline

Move operator.

Parameters
vThe driver to move.
Returns
A reference to this.

Definition at line 1119 of file odeiv2.hpp.

References driver().

◆ operator=() [2/2]

driver & gsl::odeiv2::driver::operator= ( driver const &  v)
inline

The assignment operator.

This copies elementwise.

Parameters
vThe driver to copy

Definition at line 1086 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ operator==()

bool gsl::odeiv2::driver::operator== ( driver const &  v) const
inline

Two driver are identically equal if their elements are identical.

Parameters
vThe driver to be compared with this
Returns
true or false according as this and v have identical elements or not

Definition at line 1132 of file odeiv2.hpp.

References ccgsl_pointer.

Referenced by operator!=().

◆ operator>()

bool gsl::odeiv2::driver::operator> ( driver const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a driver is nonnegative.

Parameters
vThe driver to be compared with this
Returns
false or true according as this is greater than v lexicographically

Definition at line 1162 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator>=()

bool gsl::odeiv2::driver::operator>= ( driver const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a driver is nonnegative.

Parameters
vThe driver to be compared with this
Returns
false or true according as this is no less than v lexicographically

Definition at line 1182 of file odeiv2.hpp.

References ccgsl_pointer.

◆ reset()

int gsl::odeiv2::driver::reset ( )
inline

C++ version of gsl_odeiv2_driver_reset().

Returns
Error code on failure

Definition at line 1402 of file odeiv2.hpp.

References get().

◆ scaled_new()

template<typename SCALE_ABS >
static driver gsl::odeiv2::driver::scaled_new ( system const &  sys,
step::type const *  T,
double const  hstart,
double const  epsabs,
double const  epsrel,
double const  a_y,
double const  a_dydt,
SCALE_ABS const &  scale_abs 
)
inlinestatic

C++ version of gsl_odeiv2_driver_alloc_scaled_new().

This version allows scale_abs to be gsl::vector (or object for which data() returns an array of dpoubles)

Parameters
sysThe system
TThe step t
hstartThe initial value of h
epsabsThe absolute error
epsrelThe relative error
a_yScaling factor for y
a_dydtScaling factor for dydt
scale_absAn array of scales for absolute error
Returns
A driver

Definition at line 1301 of file odeiv2.hpp.

References driver().

◆ set_hmax()

int gsl::odeiv2::driver::set_hmax ( double const  hmax)
inline

C++ version of gsl_odeiv2_driver_set_hmax().

Parameters
hmaxMaximum allowed step size
Returns
Error code on failure

Definition at line 1338 of file odeiv2.hpp.

References get().

◆ set_hmin()

int gsl::odeiv2::driver::set_hmin ( double const  hmin)
inline

C++ version of gsl_odeiv2_driver_set_hmin().

Parameters
hminMinimum allowed step size
Returns
Error code on failure

Definition at line 1331 of file odeiv2.hpp.

References get().

◆ set_nmax()

int gsl::odeiv2::driver::set_nmax ( unsigned long int const  nmax)
inline

C++ version of gsl_odeiv2_driver_set_nmax().

Parameters
nmaxMaximum number of steps
Returns
Error code on failure

Definition at line 1345 of file odeiv2.hpp.

References get().

◆ standard_new()

static driver gsl::odeiv2::driver::standard_new ( system const &  sys,
step::type const *  T,
double const  hstart,
double const  epsabs,
double const  epsrel,
double const  a_y,
double const  a_dydt 
)
inlinestatic

C++ version of gsl_odeiv2_driver_alloc_standard_new().

Parameters
sysThe system
TThe step t
hstartThe initial value of h
epsabsThe absolute error
epsrelThe relative error
a_yScaling factor for y
a_dydtScaling factor for dydt
Returns
A driver

Definition at line 1320 of file odeiv2.hpp.

References driver().

◆ swap()

void gsl::odeiv2::driver::swap ( driver v)
inline

Swap two driver objects.

This works even if the driver have different sizes because it swaps pointers.

Parameters
vThe driver to swap with this.

Definition at line 1194 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ unique()

bool gsl::odeiv2::driver::unique ( ) const
inline

Find if this is the only object sharing the gsl_odeiv2_driver.

Returns
true or falses according as this is the only driver object sharing the gsl_odeiv2_driver.

Definition at line 1219 of file odeiv2.hpp.

References count.

◆ use_count()

size_t gsl::odeiv2::driver::use_count ( ) const
inline

Find how many driver objects share this pointer.

Returns
the number of driver objects that share this pointer.

Definition at line 1224 of file odeiv2.hpp.

References count.

◆ y_new()

static driver gsl::odeiv2::driver::y_new ( system const *  sys,
step::type const *  T,
double const  hstart,
double const  epsabs,
double const  epsrel 
)
inlinestatic

C++ version of gsl_odeiv2_driver_alloc_y_new().

Parameters
sysThe system
TThe step type
hstartThe initial value of h
epsabsThe absolute error
epsrelThe relative error
Returns
A driver

Definition at line 1246 of file odeiv2.hpp.

References driver().

◆ yp_new()

static driver gsl::odeiv2::driver::yp_new ( system const *  sys,
step::type const *  T,
double const  hstart,
double const  epsabs,
double const  epsrel 
)
inlinestatic

C++ version of gsl_odeiv2_driver_alloc_yp_new().

Parameters
sysThe system
TThe step t
hstartThe initial value of h
epsabsThe absolute error
epsrelThe relative error
Returns
A driver

Definition at line 1260 of file odeiv2.hpp.

References driver().

Member Data Documentation

◆ ccgsl_pointer

gsl_odeiv2_driver* gsl::odeiv2::driver::ccgsl_pointer
private

The shared pointer.

Definition at line 1202 of file odeiv2.hpp.

Referenced by driver(), empty(), get(), operator bool(), operator<(), operator<=(), operator=(), operator==(), operator>(), operator>=(), swap(), and ~driver().

◆ count

size_t* gsl::odeiv2::driver::count
private

The shared reference count.

Definition at line 1206 of file odeiv2.hpp.

Referenced by driver(), operator=(), swap(), unique(), use_count(), and ~driver().


The documentation for this class was generated from the following file: