# umf_luinfo

get information on LU factors

## Calling Sequence

    [OK, nrow, ncol, lnz, unz, udiag_nz, it] = umf_luinfo(LU_ptr)

## Arguments

LU_ptr

  a pointer to umf lu factors (L,U,p,q, R)

OK

  a scalar boolean

nrow, ncol, lnz, unz, udiag_nz, it

  scalars (integers)

## Description

This function may be used to know basic information about LU factors created with umf_lufact :

first `OK` is %t if `LU_ptr` is a valid pointer to an umfpack LU numeric handle (and %f else)

if `OK` is %t then:

nrow, ncol

  are the matrix size (L is `nrow x n` and U is `n x ncol` where `n = min(nrow,ncol)`

lnz, unz

  are the number of non zeros elements in L and in U;

udiag_nz

  are the number of non zeros elements on the diagonal of U; if the matrix is square (`nrow = ncol = n)` then it is not inversible if udiag_nz < n (more precisely it appears to be numericaly not inversible through the LU factorization).

it

  0 if the factors are real and 1 if they are complex.

if OK is %f then all the others outputs are set to the empty matrix [].

## Examples

    // this is the test matrix from UMFPACK
    A = sparse( [ 2  3  0  0  0;
                  3  0  4  0  6;
                  0 -1 -3  2  0;
                  0  0  1  0  0;
                  0  4  2  0  1] );
    Lup = umf_lufact(A);
    [OK, nrow, ncol, lnz, unz, udiag_nz, it] = umf_luinfo(Lup)  // OK must be %t, nrow=ncol = 5,
    [L,U,p,q,R] = umf_luget(Lup);
    nnz(L)  // must be equal to lnz
    nnz(U)  // must be equal to unz
    umf_ludel(Lup) // clear memory

## See Also

- umfpack
- umf_lufact
- umf_lusolve
- umf_ludel
- umf_luget