[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## [Help-gsl] Segfault in gsl_integration_qag

**From**: |
Thomas Markovich |

**Subject**: |
[Help-gsl] Segfault in gsl_integration_qag |

**Date**: |
Sun, 24 May 2009 09:00:59 -0500 |

Hi,

`I have been racking my brain over this segmentation fault for a few
``days now and tracked it down to gsl_integration_qag. The strange thing
``is that the segmentation fault only happens after n and m = 37. I did
``try increasing the size of my work space but that didn't seem to do
``much of anything at all. Any suggestions? I'm sure the error is
``something thats obvious to someone more experienced with the gsl.
`
I have included the code below:
int N = 50; //Starting size
double sum = 0.0;
int j = 0;
int sizeN = 2*N+1; //Size
mat HN(sizeN,sizeN); //Defines the hamiltonian matrix

` gsl_integration_workspace * w = gsl_integration_workspace_alloc
``(100000);
` double result1,result2, error;
gsl_function F1;
struct my_f_params alpha = {2,2};
F1.function = &f1;
F1.params = α
for(int n = 0; n <= sizeN; n++)
for(int m = 0; m <= sizeN; m++)
{
alpha.a = n;
alpha.b = m;

` gsl_integration_qag (&F1, 0, 6, 0, 1e-4, 1000, GSL_INTEG_GAUSS61,w,
``&result1, &error);
`` gsl_integration_qag (&F1, -6, 0, 0, 1e-4, 1000,
``GSL_INTEG_GAUSS61,w, &result2, &error);
` cout << m << " " << n << endl;
HN(n,m) = result1 + result2;
}
with f1 being
double f1 (double x, void * p) { //Deriviative part of the integral
struct my_f_params * params = (struct my_f_params *)p;
int n = (params->a);
int m = (params->b);

` double f = exp(-(x*x))*hermitecalculate(m,x)*( (-1.0)*((4*n*n -
``4*n)*hermitecalculate(n-2,x) - 4*n*hermitecalculate(n-1,x)*x -
``hermitecalculate(n,x) + hermitecalculate(n,x)*x*x));
`` f += exp(-x*x)*hermitecalculate(n,x)*hermitecalculate(m,x)*(pow(x,
``6.0) + 4*pow(x,4) + x*x - 2);
`` return f/
``(sqrt
``(gsl_sf_fact
``(n)*sqrt(pi)*pow(2.0,n))*sqrt(gsl_sf_fact(m)*sqrt(pi)*pow(2.0,m)));
`}
and my_f_params defined as
struct my_f_params {int a; int b;};

**[Help-gsl] Segfault in gsl_integration_qag**,
*Thomas Markovich* **<=**