Re: bug in EIGENQL ? [message #15899] |
Mon, 21 June 1999 00:00 |
Peter Mason
Messages: 145 Registered: June 1996
|
Senior Member |
|
|
gpetty@rain.atms.purdue.edu (Grant W. Petty) wrote:
> I encountered the following strange behavior when using the IDL (v 5.2
> under HP-UX 10.20) routine EIGENQL, which is supposed to compute the
> eigenvectors and eigenvalues of a real, symmetric matrix. The error
> is reproducible on my system and seems to occur the first time EIGENQL
> is called during an IDL session but not thereafter.
<...example code cut...>
Grant, for some reason this particular routine wants its EIGENVECTORS=
keyword passed in as a "non-zero value", otherwise you're not supposed
to get any eigenvectors at all. (Check out EIGENQL's online docs.)
e.g., What you should do is:
evecs=1
evals=EIGENQL(covar_matrix,EIGENVECTORS=evecs)
The first time you run it your eigenvectors variable is undefined
(essentially "zero") while on subsequent runs its a 7*7 matrix
("non-zero", e.g., as far as IDL's KEYWORD_SET() is concerned).
There are two ways of looking at this, and both have a bug:
1] It should work as documented and not return ANY eigenvectors if you
pass in a "zero" parameter with EIGENVECTORS=. (In fact it returns a
matrix with what looks like work-in-progress data.)
2] It should be able to tell that you have used the EIGENVECTORS=
switch, even if the variable you specify there is undefined.
Other built-in (native code) IDL functions seem to be able to achieve 2]
somehow, so this is the way I really think it should work.
Peter Mason
Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.
|
|
|