/* this is the header file for integration routines */ #ifndef int_h #define int_h #include #include double int_trapzd(double (*func)(double x), double a, double b); double int_simp(double (*func)(double x), double a, double b); double trapzd(double (*func)(double x), double a, double b, int n); void gauss_leg(double x1, double x2, double *x, double *w, int n); double int_gauss(double (*func)(double), double a, double b, int n ); double int_gauss2(double (*func2)(double), double a, double b, int n ); double int_gauss3(double (*func3)(double), double a, double b, int n ); double int_gauss4(double (*func4)(double), double a, double b, int n ); double int_gauss_infinit(double (*func)(double), double c, int n ); void gauss_leg_infinit(double *q, double *W, double c, int n); double int1d(double (*func)(double x), double x1, double x2, int n); double int2d(double (*func)(double x, double y), double x1, double x2, double y1, double y2, int n); double int3d(double (*func)(double x, double y, double z), double x1, double x2, double y1, double y2, double z1, double z2, int n); double W1 ( double x, double a, double b ); double W2 ( double x, double a, double b ); double W3 ( double x, double a, double b ); void MOMENTS1(int nmax, double a, double b,double x1, double x2, double *ct); void MOMENTS2(int nmax, double a, double b,double x1, double x2, double *ct1, double *ct2); void MOMENTS3(int nmax, double a, double b, double c, double x1, double x2, double *ct3); void MOMENTS3bis(int nmax, double a, double b, double c, double x1, double x2, double *ct3); void MOMENTS4(int nmax, double a, double b, double c, double x1, double x2, double *ct3, double *ct4); double fact(int n); double producttermes(int m, int n); void gl_f3(int m_max, double a, double b, double c, int nb_tranche, double *xmin, double *xmax, double *anu3_se2); void gl_f4(int m_max, double a, double b, double c, int nb_tranche, double *xmin, double *xmax, double *anu4_se2); void int_cmn(int nmax, double a, double b, double x1, double x2, int *mmax, double **cmn); void int_dmn(double a, double b, double c, double x1, double x2, int *mmax, double **dmn); void int_cmn_anal(double a, double b, int *mmax, double **cmn); void int_dmn_anal(double a, double b, double c, int *mmax, double **dmn); void int_cmn_cp(double a, double b, dcomplex **res, int m_max, int n_max, double epsilon); void int_dmn_cp(double a, double b, double c, dcomplex **res, int m_max, double epsilon); void int_cmn_cp_anal(double xmin, double xmax, double a, double b, dcomplex **res, int m_max, int n_max, double epsilon); void int_dmn_cp_anal(double xmin, double xmax, double a, double b, double c, dcomplex **res, int m_max, int n_max, double epsilon); #endif