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
Thanks for any help.
Jim
链接已复制
3 回复数
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
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.
