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

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

utab
Beginner
248 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
248 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
248 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
248 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