Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- SGEEV giving incorrect results

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

csnatarajan

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-05-2011
05:52 PM

104 Views

SGEEV giving incorrect results

I am using SGEEV to calculate the eigenvalues and right eigenvectors of a block diagonal matrix. For some examples SGEEV seems to be giving the wrong result. I have attached the code along with this post. It is almost exactly the same code as the mkl example for sgeev. I have just changed the matrix and the output routine (since I know that the eigenvectors and values are real). If V_r is the right eigenvector and D = diagonal matrix of eigenvalues for matrix A, it can be verified from the output that A*V_r != V_r*D.

I think I might be abusing the interface or just doing something plain wrong. Could someone please clarify whether the issue is with mkl or with my usage of the routine?

Thanks in advance,

C.S.N

1 Solution

mecej4

Black Belt

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-05-2011
07:59 PM

104 Views

You can adjust for this mismatch in several ways:

1. Enter the matrix in the expected Fortran column-1, column-2, ... order.

2. Call SGEEV('V','N',...) and print VL(:)

3. Use the C-oriented LAPACKE_sgeev routine.

Link Copied

2 Replies

mecej4

Black Belt

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-05-2011
07:59 PM

105 Views

You can adjust for this mismatch in several ways:

1. Enter the matrix in the expected Fortran column-1, column-2, ... order.

2. Call SGEEV('V','N',...) and print VL(:)

3. Use the C-oriented LAPACKE_sgeev routine.

csnatarajan

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-05-2011
11:57 PM

104 Views

Ah, of course! Thanks mecej4, that clarifies the situation!

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.