umfpack_symbolic.h

Go to the documentation of this file.
00001 /* ========================================================================== */
00002 /* === umfpack_symbolic ===================================================== */
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_symbolic
00013 (
00014     int n_row,
00015     int n_col,
00016     const int Ap [ ],
00017     const int Ai [ ],
00018     const double Ax [ ],
00019     void **Symbolic,
00020     const double Control [UMFPACK_CONTROL],
00021     double Info [UMFPACK_INFO]
00022 ) ;
00023 
00024 long umfpack_dl_symbolic
00025 (
00026     long n_row,
00027     long n_col,
00028     const long Ap [ ],
00029     const long Ai [ ],
00030     const double Ax [ ],
00031     void **Symbolic,
00032     const double Control [UMFPACK_CONTROL],
00033     double Info [UMFPACK_INFO]
00034 ) ;
00035 
00036 int umfpack_zi_symbolic
00037 (
00038     int n_row,
00039     int n_col,
00040     const int Ap [ ],
00041     const int Ai [ ],
00042     const double Ax [ ], const double Az [ ],
00043     void **Symbolic,
00044     const double Control [UMFPACK_CONTROL],
00045     double Info [UMFPACK_INFO]
00046 ) ;
00047 
00048 long umfpack_zl_symbolic
00049 (
00050     long n_row,
00051     long n_col,
00052     const long Ap [ ],
00053     const long Ai [ ],
00054     const double Ax [ ], const double Az [ ],
00055     void **Symbolic,
00056     const double Control [UMFPACK_CONTROL],
00057     double Info [UMFPACK_INFO]
00058 ) ;
00059 
00060 /*
00061 double int Syntax:
00062 
00063     #include "umfpack.h"
00064     void *Symbolic ;
00065     int n_row, n_col, *Ap, *Ai, status ;
00066     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax ;
00067     status = umfpack_di_symbolic (n_row, n_col, Ap, Ai, Ax,
00068         &Symbolic, Control, Info) ;
00069 
00070 double long Syntax:
00071 
00072     #include "umfpack.h"
00073     void *Symbolic ;
00074     long n_row, n_col, *Ap, *Ai, status ;
00075     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax ;
00076     status = umfpack_dl_symbolic (n_row, n_col, Ap, Ai, Ax,
00077         &Symbolic, Control, Info) ;
00078 
00079 complex int Syntax:
00080 
00081     #include "umfpack.h"
00082     void *Symbolic ;
00083     int n_row, n_col, *Ap, *Ai, status ;
00084     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax, *Az ;
00085     status = umfpack_zi_symbolic (n_row, n_col, Ap, Ai, Ax, Az,
00086         &Symbolic, Control, Info) ;
00087 
00088 complex long Syntax:
00089 
00090     #include "umfpack.h"
00091     void *Symbolic ;
00092     long n_row, n_col, *Ap, *Ai, status ;
00093     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax, *Az ;
00094     status = umfpack_zl_symbolic (n_row, n_col, Ap, Ai, Ax, Az,
00095         &Symbolic, Control, Info) ;
00096 
00097 Purpose:
00098 
00099     Given nonzero pattern of a sparse matrix A in column-oriented form,
00100     umfpack_*_symbolic performs a column pre-ordering to reduce fill-in
00101     (using COLAMD or AMD) and a symbolic factorization.  This is required
00102     before the matrix can be numerically factorized with umfpack_*_numeric.
00103     If you wish to bypass the COLAMD or AMD pre-ordering and provide your own
00104     ordering, use umfpack_*_qsymbolic instead.
00105 
00106     Since umfpack_*_symbolic and umfpack_*_qsymbolic are very similar, options
00107     for both routines are discussed below.
00108 
00109     For the following discussion, let S be the submatrix of A obtained after
00110     eliminating all pivots of zero Markowitz cost.  S has dimension
00111     (n_row-n1-nempty_row) -by- (n_col-n1-nempty_col), where
00112     n1 = Info [UMFPACK_COL_SINGLETONS] + Info [UMFPACK_ROW_SINGLETONS],
00113     nempty_row = Info [UMFPACK_NEMPTY_ROW] and
00114     nempty_col = Info [UMFPACK_NEMPTY_COL].
00115 
00116 Returns:
00117 
00118     The status code is returned.  See Info [UMFPACK_STATUS], below.
00119 
00120 Arguments:
00121 
00122     Int n_row ;         Input argument, not modified.
00123     Int n_col ;         Input argument, not modified.
00124 
00125         A is an n_row-by-n_col matrix.  Restriction: n_row > 0 and n_col > 0.
00126 
00127     Int Ap [n_col+1] ;  Input argument, not modified.
00128 
00129         Ap is an integer array of size n_col+1.  On input, it holds the
00130         "pointers" for the column form of the sparse matrix A.  Column j of
00131         the matrix A is held in Ai [(Ap [j]) ... (Ap [j+1]-1)].  The first
00132         entry, Ap [0], must be zero, and Ap [j] <= Ap [j+1] must hold for all
00133         j in the range 0 to n_col-1.  The value nz = Ap [n_col] is thus the
00134         total number of entries in the pattern of the matrix A.  nz must be
00135         greater than or equal to zero.
00136 
00137     Int Ai [nz] ;       Input argument, not modified, of size nz = Ap [n_col].
00138 
00139         The nonzero pattern (row indices) for column j is stored in
00140         Ai [(Ap [j]) ... (Ap [j+1]-1)].  The row indices in a given column j
00141         must be in ascending order, and no duplicate row indices may be present.
00142         Row indices must be in the range 0 to n_row-1 (the matrix is 0-based).
00143         See umfpack_*_triplet_to_col for how to sort the columns of a matrix
00144         and sum up the duplicate entries.  See umfpack_*_report_matrix for how
00145         to print the matrix A.
00146 
00147     double Ax [nz] ;    Optional input argument, not modified.
00148 
00149         The numerical values of the sparse matrix A.  The nonzero pattern (row
00150         indices) for column j is stored in Ai [(Ap [j]) ... (Ap [j+1]-1)], and
00151         the corresponding numerical values are stored in
00152         Ax [(Ap [j]) ... (Ap [j+1]-1)].  Used only by the 2-by-2 strategy to
00153         determine whether entries are "large" or "small".  You do not have to
00154         pass the same numerical values to umfpack_*_numeric.  If Ax is not
00155         present (a (double *) NULL pointer), then any entry in A is assumed to
00156         be "large".
00157 
00158     double Az [nz] ;    Optional input argument, not modified, for complex
00159                         versions.
00160 
00161         For the complex versions, this holds the imaginary part of A.  The
00162         imaginary part of column j is held in Az [(Ap [j]) ... (Ap [j+1]-1)].
00163 
00164         Future complex version:  if Ax is present and Az is NULL, then both real
00165         and imaginary parts will be contained in Ax[0..2*nz-1], with Ax[2*k]
00166         and Ax[2*k+1] being the real and imaginary part of the kth entry.
00167 
00168         Used by the 2-by-2 strategy only.  See the description of Ax, above.
00169 
00170     void **Symbolic ;   Output argument.
00171 
00172         **Symbolic is the address of a (void *) pointer variable in the user's
00173         calling routine (see Syntax, above).  On input, the contents of this
00174         variable are not defined.  On output, this variable holds a (void *)
00175         pointer to the Symbolic object (if successful), or (void *) NULL if
00176         a failure occurred.
00177 
00178     double Control [UMFPACK_CONTROL] ;  Input argument, not modified.
00179 
00180         If a (double *) NULL pointer is passed, then the default control
00181         settings are used (the defaults are suitable for all matrices,
00182         ranging from those with highly unsymmetric nonzero pattern, to
00183         symmetric matrices).  Otherwise, the settings are determined from the
00184         Control array.  See umfpack_*_defaults on how to fill the Control
00185         array with the default settings.  If Control contains NaN's, the
00186         defaults are used.  The following Control parameters are used:
00187 
00188         Control [UMFPACK_STRATEGY]:  This is the most important control
00189             parameter.  It determines what kind of ordering and pivoting
00190             strategy that UMFPACK should use.  It is new to Version 4.1
00191             There are 4 options:
00192 
00193             UMFPACK_STRATEGY_AUTO:  This is the default.  The input matrix is
00194                 analyzed to determine how symmetric the nonzero pattern is, and
00195                 how many entries there are on the diagonal.  It then selects one
00196                 of the following strategies.  Refer to the User Guide for a
00197                 description of how the strategy is automatically selected.
00198 
00199             UMFPACK_STRATEGY_UNSYMMETRIC:  Use the unsymmetric strategy.  COLAMD
00200                 is used to order the columns of A, followed by a postorder of
00201                 the column elimination tree.  No attempt is made to perform
00202                 diagonal pivoting.  The column ordering is refined during
00203                 factorization.  This strategy was the only one provided with
00204                 UMFPACK V4.0.
00205 
00206                 In the numerical factorization, the
00207                 Control [UMFPACK_SYM_PIVOT_TOLERANCE] parameter is ignored.  A
00208                 pivot is selected if its magnitude is >=
00209                 Control [UMFPACK_PIVOT_TOLERANCE] (default 0.1) times the
00210                 largest entry in its column.
00211 
00212             UMFPACK_STRATEGY_SYMMETRIC:  Use the symmetric strategy (new to
00213                 Version 4.1).  In this method, the approximate minimum degree
00214                 ordering (AMD) is applied to A+A', followed by a postorder of
00215                 the elimination tree of A+A'.  UMFPACK attempts to perform
00216                 diagonal pivoting during numerical factorization.  No refinement
00217                 of the column pre-ordering is performed during factorization.
00218 
00219                 In the numerical factorization, a nonzero entry on the diagonal
00220                 is selected as the pivot if its magnitude is >= Control
00221                 [UMFPACK_SYM_PIVOT_TOLERANCE] (default 0.001) times the largest
00222                 entry in its column.  If this is not acceptable, then an
00223                 off-diagonal pivot is selected with magnitude >= Control
00224                 [UMFPACK_PIVOT_TOLERANCE] (default 0.1) times the largest entry
00225                 in its column.
00226 
00227             UMFPACK_STRATEGY_2BY2:  a row permutation P2 is found that places
00228                 large entries on the diagonal.  The matrix P2*A is then
00229                 factorized using the symmetric strategy, described above.
00230                 Refer to the User Guide for more information.
00231 
00232         Control [UMFPACK_DENSE_COL]:
00233             If COLAMD is used, columns with more than
00234             max (16, Control [UMFPACK_DENSE_COL] * 16 * sqrt (n_row)) entries
00235             are placed placed last in the column pre-ordering.  Default: 0.2.
00236 
00237         Control [UMFPACK_DENSE_ROW]:
00238             Rows with more than max (16, Control [UMFPACK_DENSE_ROW] * 16 *
00239             sqrt (n_col)) entries are treated differently in the COLAMD
00240             pre-ordering, and in the internal data structures during the
00241             subsequent numeric factorization.  Default: 0.2.
00242 
00243         Control [UMFPACK_AMD_DENSE]:  rows/columns in A+A' with more than
00244             max (16, Control [UMFPACK_AMD_DENSE] * sqrt (n)) entries
00245             (where n = n_row = n_col) are ignored in the AMD pre-ordering.
00246             Default: 10.
00247 
00248         Control [UMFPACK_BLOCK_SIZE]:  the block size to use for Level-3 BLAS
00249             in the subsequent numerical factorization (umfpack_*_numeric).
00250             A value less than 1 is treated as 1.  Default: 32.  Modifying this
00251             parameter affects when updates are applied to the working frontal
00252             matrix, and can indirectly affect fill-in and operation count.
00253             As long as the block size is large enough (8 or so), this parameter
00254             has a modest effect on performance. 
00255 
00256         Control [UMFPACK_2BY2_TOLERANCE]:  a diagonal entry S (k,k) is
00257             considered "small" if it is < tol * max (abs (S (:,k))), where S a
00258             submatrix of the scaled input matrix, with pivots of zero Markowitz
00259             cost removed.
00260 
00261         Control [UMFPACK_SCALE]:  This parameter is new to V4.1.  See
00262             umfpack_numeric.h for a description.  Only affects the 2-by-2
00263             strategy.  Default: UMFPACK_SCALE_SUM.
00264 
00265         Control [UMFPACK_FIXQ]:  If > 0, then the pre-ordering Q is not modified
00266             during numeric factorization.  If < 0, then Q may be modified.  If
00267             zero, then this is controlled automatically (the unsymmetric
00268             strategy modifies Q, the others do not).  Default: 0.
00269 
00270         Control [UMFPACK_AGGRESSIVE]:  If nonzero, aggressive absorption is used
00271             in COLAMD and AMD.  Default: 1.
00272 
00273     double Info [UMFPACK_INFO] ;        Output argument, not defined on input.
00274 
00275         Contains statistics about the symbolic analysis.  If a (double *) NULL
00276         pointer is passed, then no statistics are returned in Info (this is not
00277         an error condition).  The entire Info array is cleared (all entries set
00278         to -1) and then the following statistics are computed:
00279 
00280         Info [UMFPACK_STATUS]: status code.  This is also the return value,
00281             whether or not Info is present.
00282 
00283             UMFPACK_OK
00284 
00285                 Each column of the input matrix contained row indices
00286                 in increasing order, with no duplicates.  Only in this case
00287                 does umfpack_*_symbolic compute a valid symbolic factorization.
00288                 For the other cases below, no Symbolic object is created
00289                 (*Symbolic is (void *) NULL).
00290 
00291             UMFPACK_ERROR_n_nonpositive
00292 
00293                 n is less than or equal to zero.
00294 
00295             UMFPACK_ERROR_invalid_matrix
00296 
00297                 Number of entries in the matrix is negative, Ap [0] is nonzero,
00298                 a column has a negative number of entries, a row index is out of
00299                 bounds, or the columns of input matrix were jumbled (unsorted
00300                 columns or duplicate entries).
00301 
00302             UMFPACK_ERROR_out_of_memory
00303 
00304                 Insufficient memory to perform the symbolic analysis.  If the
00305                 analysis requires more than 2GB of memory and you are using
00306                 the 32-bit ("int") version of UMFPACK, then you are guaranteed
00307                 to run out of memory.  Try using the 64-bit version of UMFPACK.
00308 
00309             UMFPACK_ERROR_argument_missing
00310 
00311                 One or more required arguments is missing.
00312 
00313             UMFPACK_ERROR_internal_error
00314 
00315                 Something very serious went wrong.  This is a bug.
00316                 Please contact the author (davis@cise.ufl.edu).
00317 
00318             Note that the UMFPACK_ERROR_problem_too_large error code is no
00319             longer returned (it was in Version 4.0).
00320 
00321         Info [UMFPACK_NROW]:  the value of the input argument n_row.
00322 
00323         Info [UMFPACK_NCOL]:  the value of the input argument n_col.
00324 
00325         Info [UMFPACK_NZ]:  the number of entries in the input matrix
00326             (Ap [n_col]).
00327 
00328         Info [UMFPACK_SIZE_OF_UNIT]:  the number of bytes in a Unit,
00329             for memory usage statistics below.
00330 
00331         Info [UMFPACK_SIZE_OF_INT]:  the number of bytes in an int.
00332 
00333         Info [UMFPACK_SIZE_OF_LONG]:  the number of bytes in a long.
00334 
00335         Info [UMFPACK_SIZE_OF_POINTER]:  the number of bytes in a void *
00336             pointer.
00337 
00338         Info [UMFPACK_SIZE_OF_ENTRY]:  the number of bytes in a numerical entry.
00339 
00340         Info [UMFPACK_NDENSE_ROW]:  number of "dense" rows in A.  These rows are
00341             ignored when the column pre-ordering is computed in COLAMD.  They
00342             are also treated differently during numeric factorization.  If > 0,
00343             then the matrix had to be re-analyzed by UMF_analyze, which does
00344             not ignore these rows.
00345 
00346         Info [UMFPACK_NEMPTY_ROW]:  number of "empty" rows in A, as determined
00347             These are rows that either have no entries, or whose entries are
00348             all in pivot columns of zero-Markowitz-cost pivots.
00349 
00350         Info [UMFPACK_NDENSE_COL]:  number of "dense" columns in A.  COLAMD
00351             orders these columns are ordered last in the factorization, but
00352             before "empty" columns.
00353 
00354         Info [UMFPACK_NEMPTY_COL]:  number of "empty" columns in A.  These are
00355             columns that either have no entries, or whose entries are all in
00356             pivot rows of zero-Markowitz-cost pivots.  These columns are
00357             ordered last in the factorization, to the right of "dense" columns.
00358 
00359         Info [UMFPACK_SYMBOLIC_DEFRAG]:  number of garbage collections
00360             performed during ordering and symbolic pre-analysis.
00361 
00362         Info [UMFPACK_SYMBOLIC_PEAK_MEMORY]:  the amount of memory (in Units)
00363             required for umfpack_*_symbolic to complete.  This count includes
00364             the size of the Symbolic object itself, which is also reported in
00365             Info [UMFPACK_SYMBOLIC_SIZE].
00366 
00367         Info [UMFPACK_SYMBOLIC_SIZE]: the final size of the Symbolic object (in
00368             Units).  This is fairly small, roughly 2*n to 13*n integers,
00369             depending on the matrix.
00370 
00371         Info [UMFPACK_VARIABLE_INIT_ESTIMATE]: the Numeric object contains two
00372             parts.  The first is fixed in size (O (n_row+n_col)).  The
00373             second part holds the sparse LU factors and the contribution blocks
00374             from factorized frontal matrices.  This part changes in size during
00375             factorization.  Info [UMFPACK_VARIABLE_INIT_ESTIMATE] is the exact
00376             size (in Units) required for this second variable-sized part in
00377             order for the numerical factorization to start.
00378 
00379         Info [UMFPACK_VARIABLE_PEAK_ESTIMATE]: the estimated peak size (in
00380             Units) of the variable-sized part of the Numeric object.  This is
00381             usually an upper bound, but that is not guaranteed. 
00382 
00383         Info [UMFPACK_VARIABLE_FINAL_ESTIMATE]: the estimated final size (in
00384             Units) of the variable-sized part of the Numeric object.  This is
00385             usually an upper bound, but that is not guaranteed.  It holds just
00386             the sparse LU factors.
00387 
00388         Info [UMFPACK_NUMERIC_SIZE_ESTIMATE]:  an estimate of the final size (in
00389             Units) of the entire Numeric object (both fixed-size and variable-
00390             sized parts), which holds the LU factorization (including the L, U,
00391             P and Q matrices).
00392 
00393         Info [UMFPACK_PEAK_MEMORY_ESTIMATE]:  an estimate of the total amount of
00394             memory (in Units) required by umfpack_*_symbolic and
00395             umfpack_*_numeric to perform both the symbolic and numeric
00396             factorization.  This is the larger of the amount of memory needed
00397             in umfpack_*_numeric itself, and the amount of memory needed in
00398             umfpack_*_symbolic (Info [UMFPACK_SYMBOLIC_PEAK_MEMORY]).  The
00399             count includes the size of both the Symbolic and Numeric objects
00400             themselves.  It can be a very loose upper bound, particularly when
00401             the symmetric or 2-by-2 strategies are used.
00402 
00403         Info [UMFPACK_FLOPS_ESTIMATE]:  an estimate of the total floating-point
00404             operations required to factorize the matrix.  This is a "true"
00405             theoretical estimate of the number of flops that would be performed
00406             by a flop-parsimonious sparse LU algorithm.  It assumes that no
00407             extra flops are performed except for what is strictly required to
00408             compute the LU factorization.  It ignores, for example, the flops
00409             performed by umfpack_di_numeric to add contribution blocks of
00410             frontal matrices together.  If L and U are the upper bound on the
00411             pattern of the factors, then this flop count estimate can be
00412             represented in MATLAB (for real matrices, not complex) as:
00413 
00414                 Lnz = full (sum (spones (L))) - 1 ;     % nz in each col of L
00415                 Unz = full (sum (spones (U')))' - 1 ;   % nz in each row of U
00416                 flops = 2*Lnz*Unz + sum (Lnz) ;
00417 
00418             The actual "true flop" count found by umfpack_*_numeric will be
00419             less than this estimate.
00420 
00421             For the real version, only (+ - * /) are counted.  For the complex
00422             version, the following counts are used:
00423 
00424                 operation       flops
00425                 c = 1/b         6
00426                 c = a*b         6
00427                 c -= a*b        8
00428 
00429         Info [UMFPACK_LNZ_ESTIMATE]:  an estimate of the number of nonzeros in
00430             L, including the diagonal.  Since L is unit-diagonal, the diagonal
00431             of L is not stored.  This estimate is a strict upper bound on the
00432             actual nonzeros in L to be computed by umfpack_*_numeric.
00433 
00434         Info [UMFPACK_UNZ_ESTIMATE]:  an estimate of the number of nonzeros in
00435             U, including the diagonal.  This estimate is a strict upper bound on
00436             the actual nonzeros in U to be computed by umfpack_*_numeric.
00437 
00438         Info [UMFPACK_MAX_FRONT_SIZE_ESTIMATE]: estimate of the size of the
00439             largest frontal matrix (# of entries), for arbitrary partial
00440             pivoting during numerical factorization.
00441 
00442         Info [UMFPACK_SYMBOLIC_TIME]:  The CPU time taken, in seconds.
00443 
00444         ------------------------------------------------------------------------
00445         The rest of the statistics are new to Version 4.1:
00446         ------------------------------------------------------------------------
00447 
00448         Info [UMFPACK_SYMBOLIC_WALLTIME]:  The wallclock time taken, in seconds.
00449 
00450         Info [UMFPACK_STRATEGY_USED]: The ordering strategy used:
00451             UMFPACK_STRATEGY_SYMMETRIC, UMFPACK_STRATEGY_UNSYMMETRIC, or
00452             UMFPACK_STRATEGY_2BY2.
00453 
00454         Info [UMFPACK_ORDERING_USED]:  The ordering method used:
00455             UMFPACK_ORDERING_COLAMD or UMFPACK_ORDERING_AMD.  It can be
00456             UMFPACK_ORDERING_GIVEN for umfpack_*_qsymbolic.
00457 
00458         Info [UMFPACK_QFIXED]: 1 if the column pre-ordering will be refined
00459             during numerical factorization, 0 if not.
00460 
00461         Info [UMFPACK_DIAG_PREFERED]: 1 if diagonal pivoting will be attempted,
00462             0 if not.
00463 
00464         Info [UMFPACK_COL_SINGLETONS]:  the matrix A is analyzed by first
00465             eliminating all pivots with zero Markowitz cost.  This count is the
00466             number of these pivots with exactly one nonzero in their pivot
00467             column.
00468 
00469         Info [UMFPACK_ROW_SINGLETONS]:  the number of zero-Markowitz-cost
00470             pivots with exactly one nonzero in their pivot row.
00471 
00472         Info [UMFPACK_PATTERN_SYMMETRY]: the symmetry of the pattern of S.
00473 
00474         Info [UMFPACK_NZ_A_PLUS_AT]: the number of off-diagonal entries in S+S'.
00475 
00476         Info [UMFPACK_NZDIAG]:  the number of entries on the diagonal of S.
00477 
00478         Info [UMFPACK_N2]:  if S is square, and nempty_row = nempty_col, this
00479             is equal to n_row - n1 - nempty_row.
00480 
00481         Info [UMFPACK_S_SYMMETRIC]: 1 if S is square and its diagonal has been
00482             preserved, 0 otherwise.
00483 
00484 
00485         Info [UMFPACK_MAX_FRONT_NROWS_ESTIMATE]: estimate of the max number of
00486             rows in any frontal matrix, for arbitrary partial pivoting.
00487 
00488         Info [UMFPACK_MAX_FRONT_NCOLS_ESTIMATE]: estimate of the max number of
00489             columns in any frontal matrix, for arbitrary partial pivoting.
00490 
00491         ------------------------------------------------------------------------
00492         The next four statistics are computed only if AMD is used:
00493         ------------------------------------------------------------------------
00494 
00495         Info [UMFPACK_SYMMETRIC_LUNZ]: The number of nonzeros in L and U,
00496             assuming no pivoting during numerical factorization, and assuming a
00497             zero-free diagonal of U.  Excludes the entries on the diagonal of
00498             L.  If the matrix has a purely symmetric nonzero pattern, this is
00499             often a lower bound on the nonzeros in the actual L and U computed
00500             in the numerical factorization, for matrices that fit the criteria
00501             for the "symmetric" strategy.
00502 
00503         Info [UMFPACK_SYMMETRIC_FLOPS]: The floating-point operation count in
00504             the numerical factorization phase, assuming no pivoting.  If the
00505             pattern of the matrix is symmetric, this is normally a lower bound
00506             on the floating-point operation count in the actual numerical
00507             factorization, for matrices that fit the criteria for the symmetric
00508             or 2-by-2 strategies
00509 
00510         Info [UMFPACK_SYMMETRIC_NDENSE]: The number of "dense" rows/columns of
00511             S+S' that were ignored during the AMD ordering.  These are placed
00512             last in the output order.  If > 0, then the
00513             Info [UMFPACK_SYMMETRIC_*] statistics, above are rough upper bounds.
00514 
00515         Info [UMFPACK_SYMMETRIC_DMAX]: The maximum number of nonzeros in any
00516             column of L, if no pivoting is performed during numerical
00517             factorization.  Excludes the part of the LU factorization for
00518             pivots with zero Markowitz cost.
00519 
00520         ------------------------------------------------------------------------
00521         The following statistics are computed only if the 2-by-2 strategy is
00522         used or attempted:
00523         ------------------------------------------------------------------------
00524 
00525         Info [UMFPACK_2BY2_NWEAK]: the number of small diagonal entries in S.
00526 
00527         Info [UMFPACK_2BY2_UNMATCHED]: the number of small diagonal entries
00528             in P2*S.
00529 
00530         Info [UMFPACK_2BY2_PATTERN_SYMMETRY]: the symmetry of P2*S.
00531 
00532         Info [UMFPACK_2BY2_NZ_PA_PLUS_AT]:  the number of off-diagonal entries
00533             in (P2*S)+(P2*S)'.
00534 
00535         Info [UMFPACK_2BY2_NZDIAG]:  the number of nonzero entries on the
00536             diagonal of P2*S.
00537 
00538 
00539         At the start of umfpack_*_symbolic, all of Info is set of -1, and then
00540         after that only the above listed Info [...] entries are accessed.
00541         Future versions might modify different parts of Info.
00542 */

Generated on Sun May 27 11:59:43 2007 for FEMFLUID by  doxygen 1.4.6