Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

dsygv not working as expected


I have a fortran program which use dsygv routine to get Eigen values for a generalized Eigen value problem. the problem is related to structural dynamics. I have the structure modeled in 3rd party software (sacs) and have all the results. I prepared the 2 matrices A and B in fortran and used dsygv to get the Eigen values - I am getting the first two Eigen values as negative and there after the eig(3) is matching eig(1) of software, eig(4) of fortran is matching eig(2) of software, eig(5)of fortran match eig(3) of software and so on. the matrices were generated inside fortran as result of calculations. I took them out in excel, fed them to Mathcad and the Eigen values generated in Mathcad  match very well with software output - so why is there a discrepancy in fortran o/p. please see the attachment showing comparison. results.txt is fortran o/p

0 Kudos
1 Reply
Black Belt

Unless the documentation of a routine such as DSYGV states that a vector result follows a certain ordering convention, you should not expect any specific order, and it is up to you, after the DSYGV call has been completed, to sort the returned eigenvalues in whatever order you want. 

I looked at the image that you attached, which contains numbers strewn all over the place. I have to admit that it conveyed no useful information to me.

The MKL forum is probably a better home for this thread.