LAPACKE_dsyev (eigenvalues and eigenvectors of a real symmetric matrix)

16 views
Skip to first unread message

Francisco Francisco

unread,
Aug 20, 2021, 1:54:56 PM8/20/21
to OpenBLAS-users
I see strange behavior of function LAPACKE_dsyev in ubuntu 20.04  (different from what it had in previous versions). I am using the following example program from Intel:


With the options that appear there, the program should provide all the eigenvectors:

 Eigenvectors (stored columnwise)
  -0.30  -0.61   0.40  -0.37   0.49
  -0.51  -0.29  -0.41  -0.36  -0.61
  -0.08  -0.38  -0.66   0.50   0.40
   0.00  -0.45   0.46   0.62  -0.46
  -0.80   0.45   0.17   0.31   0.16

Hovewer. it only gives correct values in the lower matrix of the eigenvectors

 Eigenvectors (stored columnwise)
  -0.30    BAD    BAD    BAD    BAD
  -0.51  -0.29    BAD    BAD    BAD
  -0.08  -0.38  -0.66    BAD    BAD
   0.00  -0.45   0.46   0.62    BAD
  -0.80   0.45   0.17   0.31   0.16

It seems strange that the function only gives you part of the components of an eigenvector (half vector is useless). In the previous versions of the function it gave you all the components.

$ gcc intel_example.c -lm -lopenblas -llapacke

$ dpkg -l | grep openblas
ii  libopenblas-serial-dev:amd64                  0.3.8+ds-1ubuntu0.20.04.1             amd64        Optimized BLAS (linear algebra) library (dev, serial)
ii  libopenblas0-serial:amd64                     0.3.8+ds-1ubuntu0.20.04.1             amd64        Optimized BLAS (linear algebra) library (shared lib, serial)

martin-frbg

unread,
Aug 27, 2021, 4:18:15 AM8/27/21
to OpenBLAS-users
0.3.8 is quite old, this may have been a problem in either OpenBLAS itself or the then-new LAPACK 3.9.0 that was integrated at that time.
(Does it actually print "BAD" ? I assume this is something like NaN, or did you just replace the wrong results with BAD for clarity )
Reply all
Reply to author
Forward
0 new messages