CosmoBolognaLib
Free Software C++/Python libraries for cosmological calculations
cbl::wrapper::cuba::CUBAwrapper Class Reference

The class CUBAwrapper. More...

#include "Headers/CUBAwrapper.h"

Collaboration diagram for cbl::wrapper::cuba::CUBAwrapper:

Public Member Functions

 CUBAwrapper ()=default
 default constructor
 
 CUBAwrapper (FunctionDoubleVectorPtrVectorRef func, const std::shared_ptr< void > function_parameters, std::vector< double > &parameters, const int ndim)
 default constructor More...
 
 CUBAwrapper (FunctionDoubleVector func, const int ndim)
 default constructor More...
 
 ~CUBAwrapper ()=default
 default destructor
 
void set_integrand (FunctionDoubleVectorPtrVectorRef func, const std::shared_ptr< void > function_parameters, std::vector< double > &parameters, const int ndim)
 set the integrand More...
 
void set_integrand (FunctionDoubleVector func, const int ndim)
 set the integrand More...
 
void set_limits (std::vector< std::vector< double >> integration_limits)
 set integration limits More...
 
STR_CUBA_inputsinputs ()
 return reference to integration parameters More...
 
double IntegrateVegas (std::vector< std::vector< double >> integration_limits, const bool parallelize=true)
 integrate using the Vegas routine More...
 
double IntegrateSuave (std::vector< std::vector< double >> integration_limits, const bool parallelize=true)
 integrate using the Suave routine More...
 
double IntegrateDivonne (std::vector< std::vector< double >> integration_limits, const bool parallelize=true)
 integrate using the Divonne routine More...
 
double IntegrateCuhre (std::vector< std::vector< double >> integration_limits, const bool parallelize=true)
 integrate using the Cuhre routine More...
 

Protected Attributes

FunctionDoubleVector m_integrand
 integrand
 
int m_ndim
 integral dimension
 
STR_CUBA_inputs m_inputs
 CUBA integration inputs.
 

Detailed Description

The class CUBAwrapper.

This class is used to handle objects of type CUBAwrapper . It can be used to estimate multidimensional integrals using montecarlo methods implemented in the CUBA library. See http://www.feynarts.de/cuba/ for complete documentation

Examples
integration_cuba.cpp.

Definition at line 187 of file CUBAwrapper.h.

Constructor & Destructor Documentation

◆ CUBAwrapper() [1/2]

cbl::wrapper::cuba::CUBAwrapper::CUBAwrapper ( FunctionDoubleVectorPtrVectorRef  func,
const std::shared_ptr< void >  function_parameters,
std::vector< double > &  parameters,
const int  ndim 
)

default constructor

Parameters
functhe integrand
function_parameterssuppoer function parameters
parametersparameters
ndimthe integral dimension

Definition at line 65 of file CUBAwrapper.cpp.

◆ CUBAwrapper() [2/2]

cbl::wrapper::cuba::CUBAwrapper::CUBAwrapper ( FunctionDoubleVector  func,
const int  ndim 
)

default constructor

Parameters
functhe integrand
ndimthe integral dimension

Definition at line 74 of file CUBAwrapper.cpp.

Member Function Documentation

◆ inputs()

STR_CUBA_inputs& cbl::wrapper::cuba::CUBAwrapper::inputs ( )
inline

return reference to integration parameters

Returns
reference to integration parameters

Definition at line 260 of file CUBAwrapper.h.

◆ IntegrateCuhre()

double cbl::wrapper::cuba::CUBAwrapper::IntegrateCuhre ( std::vector< std::vector< double >>  integration_limits,
const bool  parallelize = true 
)

integrate using the Cuhre routine

Parameters
integration_limitsvector containing integration limits
parallelizeparallelize the integration
Returns
the integral
Examples
integration_cuba.cpp.

Definition at line 201 of file CUBAwrapper.cpp.

◆ IntegrateDivonne()

double cbl::wrapper::cuba::CUBAwrapper::IntegrateDivonne ( std::vector< std::vector< double >>  integration_limits,
const bool  parallelize = true 
)

integrate using the Divonne routine

Parameters
integration_limitsvector containing integration limits
parallelizeparallelize the integration
Returns
the integral
Examples
integration_cuba.cpp.

Definition at line 167 of file CUBAwrapper.cpp.

◆ IntegrateSuave()

double cbl::wrapper::cuba::CUBAwrapper::IntegrateSuave ( std::vector< std::vector< double >>  integration_limits,
const bool  parallelize = true 
)

integrate using the Suave routine

Parameters
integration_limitsvector containing integration limits
parallelizeparallelize the integration
Returns
the integral
Examples
integration_cuba.cpp.

Definition at line 135 of file CUBAwrapper.cpp.

◆ IntegrateVegas()

double cbl::wrapper::cuba::CUBAwrapper::IntegrateVegas ( std::vector< std::vector< double >>  integration_limits,
const bool  parallelize = true 
)

integrate using the Vegas routine

Parameters
integration_limitsvector containing integration limits
parallelizeparallelize the integration
Returns
the integral
Examples
integration_cuba.cpp.

Definition at line 103 of file CUBAwrapper.cpp.

◆ set_integrand() [1/2]

void cbl::wrapper::cuba::CUBAwrapper::set_integrand ( FunctionDoubleVector  func,
const int  ndim 
)

set the integrand

Parameters
functhe integrand
ndimthe integral dimension

Definition at line 93 of file CUBAwrapper.cpp.

◆ set_integrand() [2/2]

void cbl::wrapper::cuba::CUBAwrapper::set_integrand ( FunctionDoubleVectorPtrVectorRef  func,
const std::shared_ptr< void >  function_parameters,
std::vector< double > &  parameters,
const int  ndim 
)

set the integrand

Parameters
functhe integrand
function_parameterssuppoer function parameters
parametersparameters
ndimthe integral dimension

Definition at line 83 of file CUBAwrapper.cpp.

◆ set_limits()

void cbl::wrapper::cuba::CUBAwrapper::set_limits ( std::vector< std::vector< double >>  integration_limits)
inline

set integration limits

Parameters
integration_limitsvector containing integration limits

Definition at line 252 of file CUBAwrapper.h.


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