- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Kamil,
IPP has stopped support for ippMX domain in IPP 9.0 version. Have a look at MKL library, please.
regards, Igor.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Kamil,
Try using ?GGEV from MKL. CGGEV supports single complex, and ZGGEV - double complex.
Best regards,
Alexander
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page