nag_superlu_column_permutation (f11mdc) computes a column permutation suitable for
factorization (by
nag_superlu_lu_factorize (f11mec)) of a real sparse matrix in compressed column (Harwell–Boeing) format and applies it to the matrix. This function must be called prior to
nag_superlu_lu_factorize (f11mec).
Given a sparse matrix in compressed column (Harwell–Boeing) format
and a choice of column permutation schemes, the function computes those data structures that will be needed by the
factorization function
nag_superlu_lu_factorize (f11mec) and associated functions
nag_superlu_diagnostic_lu (f11mmc),
nag_superlu_solve_lu (f11mfc) and
nag_superlu_refine_lu (f11mhc). The column permutation choices are:
- original order (that is, no permutation);
- user-supplied permutation;
- a permutation, computed by the function, designed to minimize fill-in during the factorization.
The algorithm for this computed permutation is based on the approximate minimum degree column ordering algorithm COLAMD. The computed permutation is not sensitive to the magnitude of the nonzero values of .
Amestoy P R, Davis T A and Duff I S (1996) An approximate minimum degree ordering algorithm SIAM J. Matrix Anal. Appl. 17 886–905
Gilbert J R and Larimore S I (2004) A column approximate minimum degree ordering algorithm ACM Trans. Math. Software 30,3 353–376
Gilbert J R, Larimore S I and Ng E G (2004) Algorithm 836: COLAMD, an approximate minimum degree ordering algorithm ACM Trans. Math. Software 30, 3 377–380
Not applicable. This computation does not use floating-point numbers.
nag_superlu_column_permutation (f11mdc) is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
Please consult the
X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this function. Please also consult the
Users' Note for your implementation for any additional implementation-specific information.
We recommend calling this function with
before calling
nag_superlu_lu_factorize (f11mec). The COLAMD algorithm computes a sparsity-preserving permutation
solely from the pattern of
such that the
factorization
remains as sparse as possible, regardless of the subsequent choice of
. The algorithm takes advantage of the existence of super-columns (columns with the same sparsity pattern) to reduce running time.
This example computes a sparsity preserving column permutation for the
factorization of the matrix
, where