1 /* ========================================================================== */ 2 /* === umfpack_get_lunz ===================================================== */ 3 /* ========================================================================== */ 4 5 /* -------------------------------------------------------------------------- */ 6 /* Copyright (c) 2005-2012 by Timothy A. Davis, http://www.suitesparse.com. */ 7 /* All Rights Reserved. See ../Doc/License.txt for License. */ 8 /* -------------------------------------------------------------------------- */ 9 10 int umfpack_di_get_lunz 11 ( 12 int *lnz, 13 int *unz, 14 int *n_row, 15 int *n_col, 16 int *nz_udiag, 17 void *Numeric 18 ) ; 19 20 SuiteSparse_long umfpack_dl_get_lunz 21 ( 22 SuiteSparse_long *lnz, 23 SuiteSparse_long *unz, 24 SuiteSparse_long *n_row, 25 SuiteSparse_long *n_col, 26 SuiteSparse_long *nz_udiag, 27 void *Numeric 28 ) ; 29 30 int umfpack_zi_get_lunz 31 ( 32 int *lnz, 33 int *unz, 34 int *n_row, 35 int *n_col, 36 int *nz_udiag, 37 void *Numeric 38 ) ; 39 40 SuiteSparse_long umfpack_zl_get_lunz 41 ( 42 SuiteSparse_long *lnz, 43 SuiteSparse_long *unz, 44 SuiteSparse_long *n_row, 45 SuiteSparse_long *n_col, 46 SuiteSparse_long *nz_udiag, 47 void *Numeric 48 ) ; 49 50 /* 51 double int Syntax: 52 53 #include "umfpack.h" 54 void *Numeric ; 55 int status, lnz, unz, n_row, n_col, nz_udiag ; 56 status = umfpack_di_get_lunz (&lnz, &unz, &n_row, &n_col, &nz_udiag, 57 Numeric) ; 58 59 double SuiteSparse_long Syntax: 60 61 #include "umfpack.h" 62 void *Numeric ; 63 SuiteSparse_long status, lnz, unz, n_row, n_col, nz_udiag ; 64 status = umfpack_dl_get_lunz (&lnz, &unz, &n_row, &n_col, &nz_udiag, 65 Numeric) ; 66 67 complex int Syntax: 68 69 #include "umfpack.h" 70 void *Numeric ; 71 int status, lnz, unz, n_row, n_col, nz_udiag ; 72 status = umfpack_zi_get_lunz (&lnz, &unz, &n_row, &n_col, &nz_udiag, 73 Numeric) ; 74 75 complex SuiteSparse_long Syntax: 76 77 #include "umfpack.h" 78 void *Numeric ; 79 SuiteSparse_long status, lnz, unz, n_row, n_col, nz_udiag ; 80 status = umfpack_zl_get_lunz (&lnz, &unz, &n_row, &n_col, &nz_udiag, 81 Numeric) ; 82 83 Purpose: 84 85 Determines the size and number of nonzeros in the LU factors held by the 86 Numeric object. These are also the sizes of the output arrays required 87 by umfpack_*_get_numeric. 88 89 The matrix L is n_row -by- min(n_row,n_col), with lnz nonzeros, including 90 the entries on the unit diagonal of L. 91 92 The matrix U is min(n_row,n_col) -by- n_col, with unz nonzeros, including 93 nonzeros on the diagonal of U. 94 95 Returns: 96 97 UMFPACK_OK if successful. 98 UMFPACK_ERROR_invalid_Numeric_object if Numeric is not a valid object. 99 UMFPACK_ERROR_argument_missing if any other argument is (Int *) NULL. 100 101 Arguments: 102 103 Int *lnz ; Output argument. 104 105 The number of nonzeros in L, including the diagonal (which is all 106 one's). This value is the required size of the Lj and Lx arrays as 107 computed by umfpack_*_get_numeric. The value of lnz is identical to 108 Info [UMFPACK_LNZ], if that value was returned by umfpack_*_numeric. 109 110 Int *unz ; Output argument. 111 112 The number of nonzeros in U, including the diagonal. This value is the 113 required size of the Ui and Ux arrays as computed by 114 umfpack_*_get_numeric. The value of unz is identical to 115 Info [UMFPACK_UNZ], if that value was returned by umfpack_*_numeric. 116 117 Int *n_row ; Output argument. 118 Int *n_col ; Output argument. 119 120 The order of the L and U matrices. L is n_row -by- min(n_row,n_col) 121 and U is min(n_row,n_col) -by- n_col. 122 123 Int *nz_udiag ; Output argument. 124 125 The number of numerically nonzero values on the diagonal of U. The 126 matrix is singular if nz_diag < min(n_row,n_col). A divide-by-zero 127 will occur if nz_diag < n_row == n_col when solving a sparse system 128 involving the matrix U in umfpack_*_*solve. The value of nz_udiag is 129 identical to Info [UMFPACK_UDIAG_NZ] if that value was returned by 130 umfpack_*_numeric. 131 132 void *Numeric ; Input argument, not modified. 133 134 Numeric must point to a valid Numeric object, computed by 135 umfpack_*_numeric. 136 */ 137