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

ODE inintial value evolve. More...

#include <odeiv2.hpp>

Collaboration diagram for gsl::odeiv2::evolve:
Collaboration graph

Public Member Functions

 evolve ()
 The default constructor is only really useful for assigning to. More...
 
 evolve (size_t const dim)
 The default constructor creates a new evolve with n elements. More...
 
 evolve (gsl_odeiv2_evolve *v)
 Could construct from a gsl_odeiv2_evolve. More...
 
 evolve (evolve const &v)
 The copy constructor. More...
 
evolveoperator= (evolve const &v)
 The assignment operator. More...
 
 ~evolve ()
 The destructor only deletes the pointers if count reaches zero. More...
 
 evolve (evolve &&v)
 Move constructor. More...
 
evolveoperator= (evolve &&v)
 Move operator. More...
 
bool operator== (evolve const &v) const
 Two evolve are identically equal if their elements are identical. More...
 
bool operator!= (evolve const &v) const
 Two evolve are different if their elements are not identical. More...
 
bool operator< (evolve const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator> (evolve const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator<= (evolve const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator>= (evolve const &v) const
 A container needs to define an ordering for sorting. More...
 
bool empty () const
 Find if the evolve is empty. More...
 
void swap (evolve &v)
 Swap two evolve objects. More...
 
gsl_odeiv2_evolve * get () const
 Get the gsl_odeiv2_evolve. More...
 
bool unique () const
 Find if this is the only object sharing the gsl_odeiv2_evolve. More...
 
size_t use_count () const
 Find how many evolve objects share this pointer. More...
 
 operator bool () const
 Allow conversion to bool. More...
 
template<typename Y >
int apply (control &con, step &step, system const &dydt, double &t, double t1, double &h, Y &y)
 C++ version of gsl_odeiv2_evolve_apply(). More...
 
template<typename Y >
int apply_fixed_step (control &con, step &step, system const &dydt, double &t, double const h0, Y &y)
 C++ version of gsl_odeiv2_evolve_apply_fixed_step(). More...
 
int reset ()
 C++ version of gsl_odeiv2_evolve_reset(). More...
 
int set_driver (driver const &d)
 C++ version of gsl_odeiv2_evolve_set_driver(). More...
 

Private Attributes

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

Detailed Description

ODE inintial value evolve.

Definition at line 763 of file odeiv2.hpp.

Constructor & Destructor Documentation

◆ evolve() [1/5]

gsl::odeiv2::evolve::evolve ( )
inline

The default constructor is only really useful for assigning to.

Definition at line 768 of file odeiv2.hpp.

References ccgsl_pointer, and count.

Referenced by operator=().

◆ evolve() [2/5]

gsl::odeiv2::evolve::evolve ( size_t const  dim)
inlineexplicit

The default constructor creates a new evolve with n elements.

Parameters
dimThe dimension

Definition at line 778 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ evolve() [3/5]

gsl::odeiv2::evolve::evolve ( gsl_odeiv2_evolve *  v)
inlineexplicit

Could construct from a gsl_odeiv2_evolve.

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

Parameters
vThe evolve

Definition at line 794 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ evolve() [4/5]

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

The copy constructor.

This creates a new reference to the workspace.

Parameters
vThe evolve to copy.

Definition at line 805 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ ~evolve()

gsl::odeiv2::evolve::~evolve ( )
inline

The destructor only deletes the pointers if count reaches zero.

Definition at line 824 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ evolve() [5/5]

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

Move constructor.

Parameters
vThe evolve to move.

Definition at line 836 of file odeiv2.hpp.

References count.

Member Function Documentation

◆ apply()

template<typename Y >
int gsl::odeiv2::evolve::apply ( control con,
step step,
system const &  dydt,
double &  t,
double  t1,
double &  h,
Y &  y 
)
inline

C++ version of gsl_odeiv2_evolve_apply().

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

Parameters
conThe control object
stepThe step
dydtThe system
tThe initial time
t1The maximum time
hThe initial step size (also returns next suggested step size)
yThe initial position
Returns
Error code on failure

Definition at line 994 of file odeiv2.hpp.

References gsl::odeiv2::step::get(), gsl::odeiv2::control::get(), and get().

◆ apply_fixed_step()

template<typename Y >
int gsl::odeiv2::evolve::apply_fixed_step ( control con,
step step,
system const &  dydt,
double &  t,
double const  h0,
Y &  y 
)
inline

C++ version of gsl_odeiv2_evolve_apply_fixed_step().

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

Parameters
conThe control object
stepThe step
dydtThe system
tThe initial time
h0The initial step size
yThe initial position
Returns
Error code on failure

Definition at line 1028 of file odeiv2.hpp.

References gsl::odeiv2::step::get(), gsl::odeiv2::control::get(), and get().

◆ empty()

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

Find if the evolve is empty.

Returns
true if has size zero; otherwise false

Definition at line 913 of file odeiv2.hpp.

References ccgsl_pointer.

◆ get()

gsl_odeiv2_evolve * gsl::odeiv2::evolve::get ( ) const
inline

Get the gsl_odeiv2_evolve.

Returns
the gsl_odeiv2_evolve

Definition at line 939 of file odeiv2.hpp.

References ccgsl_pointer.

Referenced by apply(), apply_fixed_step(), reset(), and set_driver().

◆ operator bool()

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

Allow conversion to bool.

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

Definition at line 959 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator!=()

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

Two evolve are different if their elements are not identical.

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

Definition at line 866 of file odeiv2.hpp.

References operator==().

◆ operator<()

bool gsl::odeiv2::evolve::operator< ( evolve 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 evolve is nonnegative.

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

Definition at line 878 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator<=()

bool gsl::odeiv2::evolve::operator<= ( evolve 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 evolve is nonnegative.

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

Definition at line 898 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator=() [1/2]

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

Move operator.

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

Definition at line 845 of file odeiv2.hpp.

References evolve().

◆ operator=() [2/2]

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

The assignment operator.

This copies elementwise.

Parameters
vThe evolve to copy

Definition at line 812 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ operator==()

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

Two evolve are identically equal if their elements are identical.

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

Definition at line 858 of file odeiv2.hpp.

References ccgsl_pointer.

Referenced by operator!=().

◆ operator>()

bool gsl::odeiv2::evolve::operator> ( evolve 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 evolve is nonnegative.

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

Definition at line 888 of file odeiv2.hpp.

References ccgsl_pointer.

◆ operator>=()

bool gsl::odeiv2::evolve::operator>= ( evolve 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 evolve is nonnegative.

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

Definition at line 908 of file odeiv2.hpp.

References ccgsl_pointer.

◆ reset()

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

C++ version of gsl_odeiv2_evolve_reset().

Returns
Error code on failure

Definition at line 1037 of file odeiv2.hpp.

References get().

◆ set_driver()

int gsl::odeiv2::evolve::set_driver ( driver const &  d)
inline

C++ version of gsl_odeiv2_evolve_set_driver().

Parameters
dThe driver
Returns
Error code on failure

Definition at line 1410 of file odeiv2.hpp.

References get(), and gsl::odeiv2::driver::get().

◆ swap()

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

Swap two evolve objects.

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

Parameters
vThe evolve to swap with this.

Definition at line 920 of file odeiv2.hpp.

References ccgsl_pointer, and count.

◆ unique()

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

Find if this is the only object sharing the gsl_odeiv2_evolve.

Returns
true or falses according as this is the only evolve object sharing the gsl_odeiv2_evolve.

Definition at line 945 of file odeiv2.hpp.

References count.

◆ use_count()

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

Find how many evolve objects share this pointer.

Returns
the number of evolve objects that share this pointer.

Definition at line 950 of file odeiv2.hpp.

References count.

Member Data Documentation

◆ ccgsl_pointer

gsl_odeiv2_evolve* gsl::odeiv2::evolve::ccgsl_pointer
private

The shared pointer.

Definition at line 928 of file odeiv2.hpp.

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

◆ count

size_t* gsl::odeiv2::evolve::count
private

The shared reference count.

Definition at line 932 of file odeiv2.hpp.

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


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