Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.

Which routine should be used for A*(R^{-1})?

utab
Beginner
786 Views

Dear all,

For a transformation operation, I needed to compute A*(R^{-1}) where A is a rectangular matrix. A has m rows, which is much larger than the column size, n. In general, the column size is between 2 and 10 and R is an upper triangular square matrix of size n.

A is meant to be a block of iteration vectors in my code. However, I have to do the inversion from right, an operation that is possible in MATLAB like 'A/R', is there way to achieve this directly or should I use the inverse of R which is less likely I suppose?

Could you please direct me on this matter?

Best regards,

Umut

0 Kudos
3 Replies
mecej4
Honored Contributor III
786 Views

You can see if taking the transpose will fix up things for you, since (A x B)^T = B^T x A^T, which lets you have control over the order in which the matrices appear in the expression.

0 Kudos
utab
Beginner
786 Views

mecej4 wrote:

You can see if taking the transpose will fix up things for you, since (A x B)^T = B^T x A^T, which lets you have control over the order in which the matrices appear in the expression.

well that might be but that is not  exactly what I am looking for...

most probably, what I want to do should be be efficiently accomplished by inverting the upper triangular matrix R first and them multiply that from the right. Since R is a small matrix doing something like

R^{-1} I = inverse_of_R

then

A*inverse_of_R

I am suspecting whether if i will experience some accuracy issues or not in this case with the R^{-1}I linear system solutions...

0 Kudos
SergeyKostrov
Valued Contributor II
786 Views
>>...I am suspecting whether if i will experience some accuracy issues... You could have accuracy problems if you do all processing with a single-precision ( 24-bits precision ) floating-point type. A processing using double-precision ( 53-bits precision ) or extended double-precision ( 64-bits precision ) floating-point types is preferable. All problems with accuracy are related to limitations of IEEE 754 standard.
0 Kudos
Reply