HP MLIB User's Guide Vol. 2 7th Ed.

Chapter 11 Introduction to Distributed SuperLU 773
Solve systems of linear equations pdgssvx/ pzgssvx, pdgssvx_ABglobal/pzgssvx_ABglobal
options->RowPerm, to specify how to permute the rows of A (typically to
control numerical stability).
options->ColPerm, to specify how to permute the columns of A (typically
to control fill-in and enhance parallelsim during factorization).
options->ReplaceTinyPivot, to specify how to deal with tiny pivots
encountered during factorization (to control numerical stability).
The outputs returned include:
ScalePermstruct, modified to describe how the input matrix A was
equilibrated and permuted:
ScalePermstruct->R, array of row scale factors.
ScalePermstruct->C, array of column scale factors.
ScalePermstruct->perm_r, row permutation vector.
ScalePermstruct->perm_c, column permutation vector.
A, the input matrix A overwritten by the scaled and permuted matrix
Pc*Pr*diag(R)*A*diag(C) where
Pr and Pc are row and columns permutation matrices determined by
ScalePermstruct->perm_r and ScalePermstruct-->perm_c respectively,
and
diag(R) and diag(C) are diagonal scaling matrices determined by
ScalePermstruct->DiagScale, ScalePermstruct->R and
ScalePermstruct->C.
LUstruct, which contains the L and U factorization of A1 where:
A1 = Pc*Pr*diag(R)*A*diag(C)*Pc^t = L*U
NOTE A1 = Aout*Pc^T, where Aout is the matrix stored in A on output.
3. The second value of options->Fact assumes that a matrix with the same
sparsity pattern as A has already been factored.
options->Fact = SamePattern: A is factored, assuming that it has the
same nonzero pattern as a previously factored matrix. In this case the
algorithm saves time by reusing the previously computed column
permutation vector stored in ScalePermstruct->perm_c and the
elimination tree of A stored in LUstruct->etree.
In this case the user must still specify the following options as before:
options->Equil
options->RowPerm
options->ReplaceTinyPivot