IPIV in LU decomposition in order to recover A

Post here if you have a question about LAPACK or ScaLAPACK algorithm or data format

IPIV in LU decomposition in order to recover A

Hello all:

I can see in the documentation of DGETRF that the function performs the factorization A=P*L*U (http://www.netlib.org/lapack/explore-ht ... 93e60.html).

I'm working with the matrix
Code: Select all
3 17  10
2  4  -2
6 18 -12

which comes for an example of Matrix Computations, Golub and Van Loan, 4th edition. DGETRF outputs IPIV=[3 3 3], but if I apply this IPIV via DLASWP with K1=1, K2=3, and INCX=1 the correct factorization is P*A=L*U, and I need to apply DLASWP with INCX=-1 in order to obtain A=P*L*U.

So DLASWP with IPIV=[3 3 3], K1=1, K2=3, and INCX=1 makes the permutation matrix
Code: Select all
0   0   1
1   0   0
0   1   0

so that P*A=L*U, but DLASWP with IPIV=[3 3 3], K1=1, K2=3, and INCX=-1 creates
Code: Select all
0   1   0
0   0   1
1   0   0

so that A=P*L*U

Also, DGETRS applies as previous step DLASWP with INCX=1 in order to solve Ax=B, i.e. uses P*B, which corresponds to P*A=L*U. So, it is possible that the DGETRF documentation be wrong or have I misunderstood the function?

Thanks
jgpallero

Posts: 27
Joined: Thu Jul 29, 2010 2:29 pm