Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

## invese of complex matrix in C++

Beginner
602 Views

Hi all

I need to invert a square, non-singular,non symmetric, complex datamatrix of size (128x128) in C++ as fast as possible. I am using intel core 2 quad(2.4GHz) PC and MS Visual studio 2005 and XP OS.I have downloaded evaluation versions of intel MKL and intel IPP libraries but i could not find a way to use them for my above mentioned problem.

Kindly help me to solve my problem. I have written my own code in c++ for matrix inversion but it does not meet my processing speed requirement.

Best Regards

ASIM MASUD

5 Replies
Moderator
602 Views

MKL: you can use zgetri routine for that. Note - before calling this routine, call zgetrf to factorize input matrix.

Just FYI : IPP Computes matrix inverse only for float point data with single and double precision ( for example ippmInvert_m_32f() ).

Beginner
602 Views

MKL: you can use zgetri routine for that. Note - before calling this routine, call zgetrf to factorize input matrix.

Just FYI : IPP Computes matrix inverse only for float point data with single and double precision ( for example ippmInvert_m_32f() ).

Thanks for your help Gennady. Kindly tell me can i use "zgetri" and "zgetrf" in MS VC++ ?Apart of MKL and IPP, Is there any other intel math library which can help me to implement complex matrix inversion more fastly?

Best Regards

ASIM MASUD

Black Belt
602 Views

Perhaps you should take a step or 2 back and think about whether you need matrix inversion. Do you have a usage in mind?

Beginner
602 Views
Quoting - tim18

Perhaps you should take a step or 2 back and think about whether you need matrix inversion. Do you have a usage in mind?

Hi

I want to implement MVDR beamformer in frequency domain in C++ andfor this i need to invert a complex matrix (CSDM)many times (i.e. for each frequency bin)and each time a different matrix is to be inverted. Actual problem is theprocessing time which i needed to reduce.In this type of beamformermatrix inversion takes most of the time.

Black Belt
602 Views
Quoting - asim_masud

Hi

I want to implement MVDR beamformer in frequency domain in C++ andfor this i need to invert a complex matrix (CSDM)many times (i.e. for each frequency bin)and each time a different matrix is to be inverted. Actual problem is theprocessing time which i needed to reduce.In this type of beamformermatrix inversion takes most of the time.

There appears to be plenty of literature on this subject. While, conceptually, matrix inverse may be involved, I would guess that a true matrix inverse isn't practical, unless you can find a reference showing details to the contrary. As you should know, if it is question of solving simultaneous linear equations, solving by LU matrix factorization is more efficient than inversion, but the literature should show you whether this is a suitable approach.