Turn on suggestions

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® Integrated Performance Primitives
- EigenValuesVectors - two matrices/complex values

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

Kamil_K_

Beginner

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

05-12-2015
06:51 PM

53 Views

EigenValuesVectors - two matrices/complex values

Hello,

I really need to implement into C++ code calculation of EigenValues and EigenVectors using same algorithm as Matlab function:

[V,D] = eig(A,B) produces a diagonal matrix D of generalized

eigenvalues and a full matrix V whose columns are the corresponding

eigenvectors so that A*V = B*V*D.

First of all, when I check at available constructors at Intel IPP documentation: https://software.intel.com/en-us/node/505270 I can't find any constructor that makes usage of complex numbers (I am interested in Ipp64fc).

Furthermore all constructors take only one matrix as an argument. Do you have any idea how can I get similar effect to Matlab eig(A,B) with usage of Intel IPP?

I am using Intel IPP 7.1.

Link Copied

4 Replies

Jonghak_K_Intel

Employee

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

05-12-2015
09:14 PM

53 Views

Hi Kamil,

Please refer this function and the example here https://software.intel.com/en-us/node/505271 for the imaginary part.

I'm afraid that IPP doesn't have an implementation to perform [V,D] = eig(A,B) when A*V = B*V*D.

Thank you

Igor_A_Intel

Employee

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

05-13-2015
04:47 AM

53 Views

Hi Kamil,

IPP has stopped support for ippMX domain in IPP 9.0 version. Have a look at MKL library, please.

regards, Igor.

Kamil_K_

Beginner

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

05-13-2015
07:32 PM

53 Views

Thanks for answers. As you said I've resigned from using IPP in this matter and tried to switch to MKL. But still I can't find what I am looking for.

I have a Composer XE2013. And try to find eigen solver that will allow me to calculate generalized eigenvalues/eigenvectors and move eig(A,B) from Matlab to C++. I've tried to check all those algorithms from lapack95 lib but it seems all of them are using only one matrix.

All of those solves:

A*v(j) = lambda(j)*v(j)

Somewhere on mathworks I found this thread:

So it seems like someone succeeded in implementing partially what I need (but I want to use it for 4x4 matrices, not so large ones). But person in this topic wrote that he/she used "dsygv" algorithm but I can't find anything like that on the web.

Is there any option in MKL to do it for complex numbers?

[V,D] = eig(A,B) produces a diagonal matrix D of generalized

eigenvalues and a full matrix V whose columns are the corresponding

eigenvectors so that A*V = B*V*D.

Alexander_K_Intel3

Employee

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

05-14-2015
02:03 AM

53 Views

Hi Kamil,

Try using ?GGEV from MKL. CGGEV supports single complex, and ZGGEV - double complex.

Best regards,

Alexander

Topic Options

- 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.