I need to calculate all the eigenvalues of a large (double) complex matrix. I have a program to do this using LAPACK with a call to zgehrd, followed by a call to zlahqr. The problem is, when I try to emulate the program in SacLAPACK using pzgehrd and pzlahqr, the eigenvalues returned do not match.
I've tried by-passing pzgehrd (by reading in the output of zgehrd instead) and so I know that the problem is isolated to pzlahqr. I've looked at the "current notes / restrictions" section of pzlahqr and tried to satisfy all those conditions, but still no joy.
Does anyone know of any other unrecorded problems with pzlahqr, or something I might be doing wrong?
I've now tried with the following options as well (still using gcc and ifort v9.1)
F77 = mpif77
CC = mpicc
NOOPT = -fltconsistency -fp-port
F77FLAGS = $(NOOPT)
DRVOPTS = $(F77FLAGS)
CCFLAGS = -O2
F77LOADER = $(F77)
CCLOADER = $(CC)
still with no joy. The spectrum is almost correct, but there are some worrying problems. The case I'm investigating has the property that if a is an eigenvalue then so are a*, -a and -a*. Among the eigenvalues returned by pzlahqr, if a is an eigenvalue then so is -a*, but not necessarily -a or a*.
Iana wrote:Hi, thanks for the suggestions,
OK, I've tried running with nb=n and nb>n, both return exactly the same results (but still not quite the correct spectrum), also these differ the results with nb < n (which again are still not quite correct).
does this help?
Iana wrote:Thanks for looking into this. If you want me to test anything, just let me know.
Iana wrote:Hi ake,
Thanks so much! The patches worked perfectly.
All eigenvalues now agree with those calculated using the scalar routines. I've checked with nb=n and nb<n, and all cases agree. I hope you commit those changes as soon as possible.
Thank you for all your help,
Users browsing this forum: Exabot [Bot] and 3 guests