6 #include <gsl/gsl_integration.h>
15 typedef void (*tIntegrationErrorHandler)(
const char*,
const char*, int, int);
17 static void integrationErrorHandler(
const char * x,
const char * y,
int a,
int b);
23 typedef double (*tIntegralKernel)(
double eps,
int nOmega,
double omega, std::complex<double> fomega,
void * parameters);
29 void setBounds(
int n, ...);
30 void setIntegralKernels(tIntegralKernel real, tIntegralKernel imag) { m_kernelReal = real; m_kernelImag = imag; }
31 void setAccuracy(
double abs,
double rel) { m_accuracy.absolute = abs; m_accuracy.relative = rel; }
32 void setParameterFunction(
const CFunction& pf) { m_parameterFunction = &pf; }
33 void setIntegrationParameters(
void * parameters) { m_integrationParameters = parameters; }
34 void setIntegrals(
bool real,
bool imag) { m_real = real; m_imag = imag; }
36 void operator()(CFunction& result);
39 static double integrationHelper_real(
double eps,
void * integral);
40 static double integrationHelper_imag(
double eps,
void * integral);
47 tIntegralKernel m_kernelReal;
48 tIntegralKernel m_kernelImag;
49 const CFunction* m_parameterFunction;
50 gsl_function m_gslIntegrationFunctionReal;
51 gsl_function m_gslIntegrationFunctionImag;
53 gsl_integration_workspace* m_integrationWorkspace;
55 void * m_integrationParameters;
Discretized complex valued function for real arguments.
Definition: integral.h:13
The MPI singleton is responsible for data exchange between compute nodes via OpenMPI.
Definition: openmpi.h:35
Definition: integral.h:18