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 (*tIntegralABKernel)(
double eps,
int nOmega,
double omega, std::complex<double> fomegaA, std::complex<double> fomegaB,
void * parameters);
29 void setBounds(
int n, ...);
30 void setIntegralKernels(tIntegralABKernel real, tIntegralABKernel imag) { m_kernelReal = real; m_kernelImag = imag; }
31 void setAccuracy(
double abs,
double rel) { m_accuracy.absolute = abs; m_accuracy.relative = rel; }
32 void setParameterFunctions(
const CFunction& pfA,
const CFunction& pfB) { m_parameterFunctionA = &pfA; m_parameterFunctionB = &pfB; }
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 tIntegralABKernel m_kernelReal;
48 tIntegralABKernel m_kernelImag;
49 const CFunction* m_parameterFunctionA;
50 const CFunction* m_parameterFunctionB;
51 gsl_function m_gslIntegrationFunctionReal;
52 gsl_function m_gslIntegrationFunctionImag;
54 gsl_integration_workspace* m_integrationWorkspace;
56 void * m_integrationParameters;
Definition: integralAB.h:18
Definition: integralAB.h:13
Discretized complex valued function for real arguments.
The MPI singleton is responsible for data exchange between compute nodes via OpenMPI.
Definition: openmpi.h:35