Given a matrix a[1..n][1..n], this routine replaces it by the LU
decomposition of a rowwise permutation of itself. a and n are input. a is
output,l arrand as in equation (2.3.14) above; indx[1..n] is an output
vector that records the row permutation effected by the partial pivoting;
d (return value) is output +/- 1 depending on whether the number of row
interchanges was even or odd respectively.