Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
anonymous_namespace{core_power.cpp}::Integr_obj_qawf Class Reference

QAWF adaptive integration for Fourier integrals. More...

Inheritance diagram for anonymous_namespace{core_power.cpp}::Integr_obj_qawf:
Collaboration diagram for anonymous_namespace{core_power.cpp}::Integr_obj_qawf:

Public Member Functions

 Integr_obj_qawf (double(*f)(double, void *), const double a, const double epsabs, size_t limit, size_t n)
 
 ~Integr_obj_qawf ()
 
double operator() (double r, void *params)
 
- Public Member Functions inherited from anonymous_namespace{core_power.cpp}::Integr_obj_qawo
 Integr_obj_qawo (double(*f)(double, void *), const double a, const double b, const double epsabs, const double epsrel, size_t limit, size_t n)
 
 ~Integr_obj_qawo ()
 
double operator() (double r, void *params)
 
- Public Member Functions inherited from anonymous_namespace{core_power.cpp}::Integr_obj
 Integr_obj (double(*f)(double, void *), const double a, const double b, const double epsabs, const double epsrel, const size_t limit)
 
 ~Integr_obj ()
 
void set_a (double a_new)
 
void set_b (double b_new)
 

Protected Attributes

gsl_integration_workspace * wc
 
- Protected Attributes inherited from anonymous_namespace{core_power.cpp}::Integr_obj_qawo
gsl_integration_qawo_table * wf
 
- Protected Attributes inherited from anonymous_namespace{core_power.cpp}::Integr_obj
double result
 
double error
 
double a
 
double b
 
double L
 
double epsabs
 
double epsrel
 
size_t limit
 
gsl_function F
 
gsl_integration_workspace * w
 
int gsl_errno
 

Detailed Description

QAWF adaptive integration for Fourier integrals.

Definition at line 181 of file core_power.cpp.

Constructor & Destructor Documentation

anonymous_namespace{core_power.cpp}::Integr_obj_qawf::Integr_obj_qawf ( double(*)(double, void *)  f,
const double  a,
const double  epsabs,
size_t  limit,
size_t  n 
)
inline

Definition at line 185 of file core_power.cpp.

186  :
187  Integr_obj_qawo(f, a, 0, epsabs, 0, limit, n)
188  {
189  wc = gsl_integration_workspace_alloc (limit);
190  }
Integr_obj_qawo(double(*f)(double, void *), const double a, const double b, const double epsabs, const double epsrel, size_t limit, size_t n)
Definition: core_power.cpp:152
anonymous_namespace{core_power.cpp}::Integr_obj_qawf::~Integr_obj_qawf ( )
inline

Definition at line 192 of file core_power.cpp.

193  {
194  gsl_integration_workspace_free (wc);
195  }

Member Function Documentation

double anonymous_namespace{core_power.cpp}::Integr_obj_qawf::operator() ( double  r,
void *  params 
)
inline

Definition at line 197 of file core_power.cpp.

References halomod_bm::params, and w.

198  {
199  gsl_integration_qawo_table_set(wf, r, L, GSL_INTEG_SINE);
200  F.params = params;
201  gsl_errno = gsl_integration_qawf(&F, a, epsabs, limit, w, wc, wf, &result, &error);
202  if (gsl_errno) throw std::runtime_error("GSL integration error: " + std::string(gsl_strerror(gsl_errno)));
203  else return result;
204  }
dictionary params
Definition: halomod_bm.py:27

Member Data Documentation

gsl_integration_workspace* anonymous_namespace{core_power.cpp}::Integr_obj_qawf::wc
protected

Definition at line 206 of file core_power.cpp.


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