I trying to solve LU-factrization with pivoting:
$$PA=LU$$
By using the subroutine sgeft2 from Lapack. It's a Fortran 90 library for numerical linear algebra.
I have found the $L$ and $U$ matrix, but not found the $P$ matrix, and it's because of the IPIV argument.
IPIV is INTEGER array, dimension (min(M,N))
The pivot indices; for 1 <= i <= min(M,N), row i of the
matrix was interchanged with row IPIV(i).
I interprent this text as I should have a identity matrix $P \in \Re^{nxn}$. Then I should move the rows of $P$ depening on what the vector $IPIV$ says. Is this correct? I have tried different ways to model some MATLAB code, but not succeed to find the $P$ matrix.
Example. If I got the matrix $A$
0.300000 0.815502 0.632273 0.217150
0.041052 0.756497 0.383632 0.963453
0.840969 0.653643 0.988885 0.256717
0.464724 0.148658 0.405135 0.055045
0.306172 0.033121 0.250060 0.465494
Then I get the $U$ matrix
0.840969 0.653643 0.988885 0.256717
0.000000 0.724589 0.335359 0.950921
0.000000 0.000000 -0.042955 0.192122
0.000000 0.000000 0.000000 -0.593969
And $L$ matrix
1.000000 0.000000 0.000000 0.000000
0.048815 1.000000 0.000000 0.000000
0.552605 -0.293337 1.000000 0.000000
0.356731 0.803665 -0.232571 1.000000
0.364071 -0.282713 0.352770 -0.964855
I should also get the $P$ matrix
0 0 1 0 0
0 1 0 0 0
0 0 0 1 0
1 0 0 0 0
0 0 0 0 1
But instead, due to $IPIV$
3 2 4 4 4
I got my $P$ matrix
0.000000 0.000000 0.000000 0.000000 0.000000
0.000000 1.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 1.000000 1.000000 1.000000
0.000000 0.000000 0.000000 0.000000 0.000000
I must have interprented this text above wrong?