ccgsl 2.7.2
C++wrappersforGnuScientificLibrary
gsl::multiroot::function Class Reference

Class that extends gsl_multiroot_function so that it can be constructed from arbitrary function objects. More...

#include <multiroot_function.hpp>

Inheritance diagram for gsl::multiroot::function:
Inheritance graph
Collaboration diagram for gsl::multiroot::function:
Collaboration graph

Classes

struct  Concept
 This is an empty abstract base class. More...
 

Public Member Functions

 function ()
 The default constructor is only really useful for assigning to. More...
 
 function (gsl_multiroot_function &v)
 Could construct from a gsl_multiroot_function. More...
 
template<typename T >
 function (T &t)
 Construct from an object that implements gsl::multiroot::function::Concept. More...
 
 function (int(*const f)(gsl::vector const &, gsl::vector &), size_t n)
 Construct from a function with no parameters (but with n function values and arguments). More...
 
 function (function const &v)
 The copy constructor. More...
 
functionoperator= (function const &v)
 The assignment operator. More...
 
 function (function &&v)
 Move constructor. More...
 
functionoperator= (function &&v)
 Move operator. More...
 
 ~function ()
 The destructor unshares any shared resource. More...
 

Public Attributes

base_F * func
 This gives something for params to point to. More...
 
size_t * count
 The shared reference count: used for copying this. More...
 

Friends

template<typename T >
void function_constructor (function &, T &)
 

Detailed Description

Class that extends gsl_multiroot_function so that it can be constructed from arbitrary function objects.

Since gsl::multiroot::function is a subclass of gsl_multiroot_function, a pointer to an object of this class can be used whenever a pointer to a gsl_multiroot_function object is required. Thus, pointers to objects of this class can be used directly with the GNU Scientific Library.

A multiroot::function with argument a vector of length n should compute and return n function values. In C++ it is straightforward to set up a class with a member function that implements multiroot::function::Concept to get a suitable function object. The multiroot::function can then be constructed from a function object of this class.

Definition at line 53 of file multiroot_function.hpp.

Constructor & Destructor Documentation

◆ function() [1/6]

gsl::multiroot::function::function ( )
inline

The default constructor is only really useful for assigning to.

Definition at line 256 of file multiroot_function.hpp.

References count, func, and gsl::rstat::n().

◆ function() [2/6]

gsl::multiroot::function::function ( gsl_multiroot_function &  v)
inlineexplicit

Could construct from a gsl_multiroot_function.

This constructor is not actually visible, but gsl::multiroot::function<T>() will construct the object correctly.

Parameters
vThe gsl_multiroot_function.

Definition at line 271 of file multiroot_function.hpp.

References count, func, and gsl::rstat::n().

◆ function() [3/6]

template<typename T >
gsl::multiroot::function::function ( T &  t)
inline

Construct from an object that implements gsl::multiroot::function::Concept.

Parameters
tAn object that implements gsl::multiroot::function::Concept.

Definition at line 287 of file multiroot_function.hpp.

◆ function() [4/6]

gsl::multiroot::function::function ( int(*)(gsl::vector const &, gsl::vector &)  f,
size_t  n 
)
inline

Construct from a function with no parameters (but with n function values and arguments).

Parameters
fThe function to construct from.
nThe number of functions and number of arguments of each.

Definition at line 293 of file multiroot_function.hpp.

References count, func, and gsl::rstat::n().

◆ function() [5/6]

gsl::multiroot::function::function ( function const &  v)
inline

The copy constructor.

This shares f. This constructor is not actually visible, but gsl::multiroot::function::multiroot::function<T>() will construct the object correctly.

Parameters
vThe function to copy.

Definition at line 312 of file multiroot_function.hpp.

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

◆ function() [6/6]

gsl::multiroot::function::function ( function &&  v)
inline

Move constructor.

Parameters
vThe function to move.

Definition at line 343 of file multiroot_function.hpp.

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

◆ ~function()

gsl::multiroot::function::~function ( )
inline

The destructor unshares any shared resource.

Definition at line 367 of file multiroot_function.hpp.

References count, and func.

Member Function Documentation

◆ operator=() [1/2]

function & gsl::multiroot::function::operator= ( function &&  v)
inline

Move operator.

Parameters
vThe function to move.
Returns
A reference to f in this.

Definition at line 355 of file multiroot_function.hpp.

References count, func, and gsl::rstat::n().

◆ operator=() [2/2]

function & gsl::multiroot::function::operator= ( function const &  v)
inline

The assignment operator.

This makes a shared copy.

Parameters
vThe function to copy

Definition at line 323 of file multiroot_function.hpp.

References count, func, and gsl::rstat::n().

Friends And Related Function Documentation

◆ function_constructor

template<typename T >
void function_constructor ( function ,
T &   
)
friend

Member Data Documentation

◆ count

size_t* gsl::multiroot::function::count

The shared reference count: used for copying this.

Definition at line 251 of file multiroot_function.hpp.

Referenced by function(), operator=(), and ~function().

◆ func

base_F* gsl::multiroot::function::func

This gives something for params to point to.

Definition at line 247 of file multiroot_function.hpp.

Referenced by function(), operator=(), and ~function().


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