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

