00001 /* ========================================================================== */ 00002 /* === umfpack_get_lunz ===================================================== */ 00003 /* ========================================================================== */ 00004 00005 /* -------------------------------------------------------------------------- */ 00006 /* UMFPACK Version 4.3 (Jan. 16, 2004), Copyright (c) 2004 by Timothy A. */ 00007 /* Davis. All Rights Reserved. See ../README for License. */ 00008 /* email: davis@cise.ufl.edu CISE Department, Univ. of Florida. */ 00009 /* web: http://www.cise.ufl.edu/research/sparse/umfpack */ 00010 /* -------------------------------------------------------------------------- */ 00011 00012 int umfpack_di_get_lunz 00013 ( 00014 int *lnz, 00015 int *unz, 00016 int *n_row, 00017 int *n_col, 00018 int *nz_udiag, 00019 void *Numeric 00020 ) ; 00021 00022 long umfpack_dl_get_lunz 00023 ( 00024 long *lnz, 00025 long *unz, 00026 long *n_row, 00027 long *n_col, 00028 long *nz_udiag, 00029 void *Numeric 00030 ) ; 00031 00032 int umfpack_zi_get_lunz 00033 ( 00034 int *lnz, 00035 int *unz, 00036 int *n_row, 00037 int *n_col, 00038 int *nz_udiag, 00039 void *Numeric 00040 ) ; 00041 00042 long umfpack_zl_get_lunz 00043 ( 00044 long *lnz, 00045 long *unz, 00046 long *n_row, 00047 long *n_col, 00048 long *nz_udiag, 00049 void *Numeric 00050 ) ; 00051 00052 /* 00053 double int Syntax: 00054 00055 #include "umfpack.h" 00056 void *Numeric ; 00057 int status, lnz, unz, n_row, n_col ; 00058 status = umfpack_di_get_lunz (&lnz, &unz, &n_row, &n_col, Numeric) ; 00059 00060 double long Syntax: 00061 00062 #include "umfpack.h" 00063 void *Numeric ; 00064 long status, lnz, unz, n_row, n_col ; 00065 status = umfpack_dl_get_lunz (&lnz, &unz, &n_row, &n_col, Numeric) ; 00066 00067 complex int Syntax: 00068 00069 #include "umfpack.h" 00070 void *Numeric ; 00071 int status, lnz, unz, n_row, n_col ; 00072 status = umfpack_zi_get_lunz (&lnz, &unz, &n_row, &n_col, Numeric) ; 00073 00074 complex long Syntax: 00075 00076 #include "umfpack.h" 00077 void *Numeric ; 00078 long status, lnz, unz, n_row, n_col ; 00079 status = umfpack_zl_get_lunz (&lnz, &unz, &n_row, &n_col, Numeric) ; 00080 00081 Purpose: 00082 00083 Determines the size and number of nonzeros in the LU factors held by the 00084 Numeric object. These are also the sizes of the output arrays required 00085 by umfpack_*_get_numeric. 00086 00087 The matrix L is n_row -by- min(n_row,n_col), with lnz nonzeros, including 00088 the entries on the unit diagonal of L. 00089 00090 The matrix U is min(n_row,n_col) -by- n_col, with unz nonzeros, including 00091 nonzeros on the diagonal of U. 00092 00093 Returns: 00094 00095 UMFPACK_OK if successful. 00096 UMFPACK_ERROR_invalid_Numeric_object if Numeric is not a valid object. 00097 UMFPACK_ERROR_argument_missing if any other argument is (Int *) NULL. 00098 00099 Arguments: 00100 00101 Int *lnz ; Output argument. 00102 00103 The number of nonzeros in L, including the diagonal (which is all 00104 one's). This value is the required size of the Lj and Lx arrays as 00105 computed by umfpack_*_get_numeric. The value of lnz is identical to 00106 Info [UMFPACK_LNZ], if that value was returned by umfpack_*_numeric. 00107 00108 Int *unz ; Output argument. 00109 00110 The number of nonzeros in U, including the diagonal. This value is the 00111 required size of the Ui and Ux arrays as computed by 00112 umfpack_*_get_numeric. The value of unz is identical to 00113 Info [UMFPACK_UNZ], if that value was returned by umfpack_*_numeric. 00114 00115 Int *n_row ; Output argument. 00116 Int *n_col ; Output argument. 00117 00118 The order of the L and U matrices. L is n_row -by- min(n_row,n_col) 00119 and U is min(n_row,n_col) -by- n_col. 00120 00121 Int *nz_udiag ; Output argument. 00122 00123 The number of numerically nonzero values on the diagonal of U. The 00124 matrix is singular if nz_diag < min(n_row,n_col). A divide-by-zero 00125 will occur if nz_diag < n_row == n_col when solving a sparse system 00126 involving the matrix U in umfpack_*_*solve. The value of nz_udiag is 00127 identical to Info [UMFPACK_UDIAG_NZ] if that value was returned by 00128 umfpack_*_numeric. 00129 00130 void *Numeric ; Input argument, not modified. 00131 00132 Numeric must point to a valid Numeric object, computed by 00133 umfpack_*_numeric. 00134 */