##### 22.6.2.36 splu

— Loadable Function: [l, u] = splu (a)
— Loadable Function: [l, u, P] = splu (a)
— Loadable Function: [l, u, P, Q] = splu (a)
— Loadable Function: [l, u, P, Q] = splu (..., thres)
— Loadable Function: [l, u, P] = splu (..., Q)

> Compute the LU decomposition of the sparse matrix a, using subroutines from UMFPACK. The result is returned in a permuted form, according to the optional return values P and Q.

> Called with two or three output arguments and a single input argument, splu is a replacement for lu, and therefore the sparsity preserving column permutations Q are not performed. Called with a fourth output argument, the sparsity preserving column transformation Q is returned, such that P`*` a`*` Q`=` l`*` u.

> An additional input argument thres, that defines the pivoting threshold can be given. Alternatively, the desired sparsity preserving column permutations Q can be passed. Note that Q is assumed to be fixed if three are fewer than four output arguments. Otherwise, the updated column permutations are returned as the fourth argument.

> With two output arguments, returns the permuted forms of the upper and lower triangular matrices, such that a`=` l`*` u. With two or three output arguments, if a user-defined Q is given, then u`*` Q`'` is returned. The matrix is not required to be square.

> See also: sparse, spinv, colamd, symamd.