# How to solve the larger order eigenproblem

• Apr 20th 2013, 02:43 AM
sandf
How to solve the larger order eigenproblem
I want to solve a generalized symmetric eigenproblem A(N,N)x(N,N) = v(N)B(N,N)x(N,N), N > 500
I try a call in Lapack (see http://www.netlib.org/lapack/double/dsygvd.f)
DSYGVD(1,'V','U',N,A,N,B,N,V,WORK,1+6*N+2*N**2,IWO RK,3+5*N,INFO)
define: WORK(1+6*N+2*N**2), IWORK(3+5*N)
when N<100, I can solve the equation successfully.
When N>200, 300, or more, the program will fail with stack overflow.
I try the linux system with large memory (>8GB), and still fail
I guess that 1+6*N+2*N**2 is too large.

How can I solve this problem?

Best regards.
sandf
• Apr 20th 2013, 07:07 PM
chiro
Re: How to solve the larger order eigenproblem
Hey sandf.

If you are getting a stack overflow then it means a lot of your data is being stored on the stack instead of the heap.

In order to use the heap you would either have to create a virtual stack on the heap or just use the heap instead.

This requires doing some re-coding of the LAPACK procedure so if you really want to do this, you need to get the source code and make the changes which will probably take you a little while.
• Apr 20th 2013, 07:25 PM
sandf
Re: How to solve the larger order eigenproblem
Dear chiro,