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

no pivoting for a LU decomposition of a general matrix

Jim_Brownell
Beginner
428 Views
I have an application that requires no pivoting when computing the LU decomposition of a general matrix, the routine that I have worked with to do the LU decomp of a general matrix is pzgetrf, but this does partial (row) pivoting. I tried disabling the routines pzlaswp.f (SCALAPACK routine) and pzswap_.c (PBLAS routine) but this was insufficient. Does anyone know of a routine that handles general matricies and does not pivot (handling symmetric - general matricies would be ideal, but is not absolutely necessary) or of a way to disable the pivoting in pzgetrf ?
Thanks for any help.
Jim
0 Kudos
3 Replies
TimP
Honored Contributor III
428 Views
Do you mean dpotrf or dpptrf ?
0 Kudos
Jim_Brownell
Beginner
428 Views
Quoting - tim18
Do you mean dpotrf or dpptrf ?

dpotrf (dpptrf is a packed version of dpotrf I believe) requires the matrix be hermitian positive definite (at least the comments in pzpotrf which I think is the SCALAPACK version of dpotrf). My matrix is does not meet this requirement, it is a general matrix that care was taken when forming it so that it should be reasonably well conditioned, thus pivoting is not necessary, and since it is symmetric, partial (row) pivoting would destroy the symmetry. The only routine I have seen for LU decomp of a general matrix is pzgetrf, which does row pivoting. From what I can tell pzgetf2 (called by pzgetrf) calls a routine pzamax to find the pivot, what I think I need is a way for pzamax to return with the values that indicate not to pivot.

Thanks for any help
0 Kudos
wugaxp
Beginner
428 Views
This is really a problem. In fact, I found that the "lu" function in Matlab can calculate the LU decomposition without pivoting. Although I think Matlab use the lapack subroutines to perform the calculation, I cannot find the name of the corresponding subroutine.
0 Kudos
Reply