umfpack_numeric.h

Go to the documentation of this file.
00001 /* ========================================================================== */
00002 /* === umfpack_numeric ====================================================== */
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_numeric
00013 (
00014     const int Ap [ ],
00015     const int Ai [ ],
00016     const double Ax [ ],
00017     void *Symbolic,
00018     void **Numeric,
00019     const double Control [UMFPACK_CONTROL],
00020     double Info [UMFPACK_INFO]
00021 ) ;
00022 
00023 long umfpack_dl_numeric
00024 (
00025     const long Ap [ ],
00026     const long Ai [ ],
00027     const double Ax [ ],
00028     void *Symbolic,
00029     void **Numeric,
00030     const double Control [UMFPACK_CONTROL],
00031     double Info [UMFPACK_INFO]
00032 ) ;
00033 
00034 int umfpack_zi_numeric
00035 (
00036     const int Ap [ ],
00037     const int Ai [ ],
00038     const double Ax [ ], const double Az [ ],
00039     void *Symbolic,
00040     void **Numeric,
00041     const double Control [UMFPACK_CONTROL],
00042     double Info [UMFPACK_INFO]
00043 ) ;
00044 
00045 long umfpack_zl_numeric
00046 (
00047     const long Ap [ ],
00048     const long Ai [ ],
00049     const double Ax [ ], const double Az [ ],
00050     void *Symbolic,
00051     void **Numeric,
00052     const double Control [UMFPACK_CONTROL],
00053     double Info [UMFPACK_INFO]
00054 ) ;
00055 
00056 /*
00057 double int Syntax:
00058 
00059     #include "umfpack.h"
00060     void *Symbolic, *Numeric ;
00061     int *Ap, *Ai, status ;
00062     double *Ax, Control [UMFPACK_CONTROL], Info [UMFPACK_INFO] ;
00063     status = umfpack_di_numeric (Ap, Ai, Ax, Symbolic, &Numeric, Control, Info);
00064 
00065 double long Syntax:
00066 
00067     #include "umfpack.h"
00068     void *Symbolic, *Numeric ;
00069     long *Ap, *Ai, status ;
00070     double *Ax, Control [UMFPACK_CONTROL], Info [UMFPACK_INFO] ;
00071     status = umfpack_dl_numeric (Ap, Ai, Ax, Symbolic, &Numeric, Control, Info);
00072 
00073 complex int Syntax:
00074 
00075     #include "umfpack.h"
00076     void *Symbolic, *Numeric ;
00077     int *Ap, *Ai, status ;
00078     double *Ax, *Az, Control [UMFPACK_CONTROL], Info [UMFPACK_INFO] ;
00079     status = umfpack_zi_numeric (Ap, Ai, Ax, Az, Symbolic, &Numeric,
00080         Control, Info) ;
00081 
00082 complex long Syntax:
00083 
00084     #include "umfpack.h"
00085     void *Symbolic, *Numeric ;
00086     long *Ap, *Ai, status ;
00087     double *Ax, *Az, Control [UMFPACK_CONTROL], Info [UMFPACK_INFO] ;
00088     status = umfpack_zl_numeric (Ap, Ai, Ax, Symbolic, &Numeric,
00089         Control, Info) ;
00090 
00091 Purpose:
00092 
00093     Given a sparse matrix A in column-oriented form, and a symbolic analysis
00094     computed by umfpack_*_*symbolic, the umfpack_*_numeric routine performs the
00095     numerical factorization, PAQ=LU, PRAQ=LU, or P(R\A)Q=LU, where P and Q are
00096     permutation matrices (represented as permutation vectors), R is the row
00097     scaling, L is unit-lower triangular, and U is upper triangular.  This is
00098     required before the system Ax=b (or other related linear systems) can be
00099     solved.  umfpack_*_numeric can be called multiple times for each call to
00100     umfpack_*_*symbolic, to factorize a sequence of matrices with identical
00101     nonzero pattern.  Simply compute the Symbolic object once, with
00102     umfpack_*_*symbolic, and reuse it for subsequent matrices.  This routine
00103     safely detects if the pattern changes, and sets an appropriate error code.
00104 
00105 Returns:
00106 
00107     The status code is returned.  See Info [UMFPACK_STATUS], below.
00108 
00109 Arguments:
00110 
00111     Int Ap [n_col+1] ;  Input argument, not modified.
00112 
00113         This must be identical to the Ap array passed to umfpack_*_*symbolic.
00114         The value of n_col is what was passed to umfpack_*_*symbolic (this is
00115         held in the Symbolic object).
00116 
00117     Int Ai [nz] ;       Input argument, not modified, of size nz = Ap [n_col].
00118 
00119         This must be identical to the Ai array passed to umfpack_*_*symbolic.
00120 
00121     double Ax [nz] ;    Input argument, not modified, of size nz = Ap [n_col].
00122 
00123         The numerical values of the sparse matrix A.  The nonzero pattern (row
00124         indices) for column j is stored in Ai [(Ap [j]) ... (Ap [j+1]-1)], and
00125         the corresponding numerical values are stored in
00126         Ax [(Ap [j]) ... (Ap [j+1]-1)].
00127 
00128     double Az [nz] ;    Input argument, not modified, for complex versions.
00129 
00130         For the complex versions, this holds the imaginary part of A.  The
00131         imaginary part of column j is held in Az [(Ap [j]) ... (Ap [j+1]-1)].
00132 
00133         Future complex version:  if Ax is present and Az is NULL, then both real
00134         and imaginary parts will be contained in Ax[0..2*nz-1], with Ax[2*k]
00135         and Ax[2*k+1] being the real and imaginary part of the kth entry.
00136 
00137     void *Symbolic ;    Input argument, not modified.
00138 
00139         The Symbolic object, which holds the symbolic factorization computed by
00140         umfpack_*_*symbolic.  The Symbolic object is not modified by
00141         umfpack_*_numeric.
00142 
00143     void **Numeric ;    Output argument.
00144 
00145         **Numeric is the address of a (void *) pointer variable in the user's
00146         calling routine (see Syntax, above).  On input, the contents of this
00147         variable are not defined.  On output, this variable holds a (void *)
00148         pointer to the Numeric object (if successful), or (void *) NULL if
00149         a failure occurred.
00150 
00151     double Control [UMFPACK_CONTROL] ;   Input argument, not modified.
00152 
00153         If a (double *) NULL pointer is passed, then the default control
00154         settings are used.  Otherwise, the settings are determined from the
00155         Control array.  See umfpack_*_defaults on how to fill the Control
00156         array with the default settings.  If Control contains NaN's, the
00157         defaults are used.  The following Control parameters are used:
00158 
00159         Control [UMFPACK_PIVOT_TOLERANCE]:  relative pivot tolerance for
00160             threshold partial pivoting with row interchanges.  In any given
00161             column, an entry is numerically acceptable if its absolute value is
00162             greater than or equal to Control [UMFPACK_PIVOT_TOLERANCE] times
00163             the largest absolute value in the column.  A value of 1.0 gives true
00164             partial pivoting.  If less than or equal to zero, then any nonzero
00165             entry is numerically acceptable as a pivot (this is changed from
00166             Version 4.0).  Default: 0.1.
00167 
00168             Smaller values tend to lead to sparser LU factors, but the solution
00169             to the linear system can become inaccurate.  Larger values can lead
00170             to a more accurate solution (but not always), and usually an
00171             increase in the total work.
00172 
00173             For complex matrices, a cheap approximate of the absolute value
00174             is used for the threshold partial pivoting test (|a_real| + |a_imag|
00175             instead of the more expensive-to-compute exact absolute value
00176             sqrt (a_real^2 + a_imag^2)).
00177 
00178         Control [UMFPACK_SYM_PIVOT_TOLERANCE]:  This parameter is new to V4.1.
00179             If diagonal pivoting is attempted (the symmetric or symmetric-2by2
00180             strategies are used) then this parameter is used to control when the
00181             diagonal entry is selected in a given pivot column.  The absolute
00182             value of the entry must be >= Control [UMFPACK_SYM_PIVOT_TOLERANCE]
00183             times the largest absolute value in the column.  A value of zero
00184             will ensure that no off-diagonal pivoting is performed, except that
00185             zero diagonal entries are not selected if there are any off-diagonal
00186             nonzero entries.
00187 
00188             If an off-diagonal pivot is selected, an attempt is made to restore
00189             symmetry later on.  Suppose A (i,j) is selected, where i != j.
00190             If column i has not yet been selected as a pivot column, then
00191             the entry A (j,i) is redefined as a "diagonal" entry, except that
00192             the tighter tolerance (Control [UMFPACK_PIVOT_TOLERANCE]) is
00193             applied.  This strategy has an effect similar to 2-by-2 pivoting
00194             for symmetric indefinite matrices.  If a 2-by-2 block pivot with
00195             nonzero structure
00196 
00197                        i j
00198                     i: 0 x
00199                     j: x 0
00200 
00201             is selected in a symmetric indefinite factorization method, the
00202             2-by-2 block is inverted and a rank-2 update is applied.  In
00203             UMFPACK, this 2-by-2 block would be reordered as
00204 
00205                        j i
00206                     i: x 0
00207                     j: 0 x
00208 
00209             In both cases, the symmetry of the Schur complement is preserved.
00210 
00211         Control [UMFPACK_SCALE]:  This parameter is new to V4.1.  Version 4.0
00212             did not scale the matrix.  Note that the user's input matrix is
00213             never modified, only an internal copy is scaled.
00214 
00215             There are three valid settings for this parameter.  If any other
00216             value is provided, the default is used.
00217 
00218             UMFPACK_SCALE_NONE:  no scaling is performed.
00219 
00220             UMFPACK_SCALE_SUM:  each row of the input matrix A is divided by
00221                 the sum of the absolute values of the entries in that row.
00222                 The scaled matrix has an infinity norm of 1.
00223 
00224             UMFPACK_SCALE_MAX:  each row of the input matrix A is divided by
00225                 the maximum the absolute values of the entries in that row.
00226                 In the scaled matrix the largest entry in each row has
00227                 a magnitude exactly equal to 1.
00228 
00229             Note that for complex matrices, a cheap approximate absolute value
00230             is used, |a_real| + |a_imag|, instead of the exact absolute value
00231             sqrt ((a_real)^2 + (a_imag)^2).
00232 
00233             Scaling is very important for the "symmetric" strategy when
00234             diagonal pivoting is attempted.  It also improves the performance
00235             of the "unsymmetric" strategy.
00236 
00237             Default: UMFPACK_SCALE_SUM.
00238 
00239         Control [UMFPACK_ALLOC_INIT]:  This parameter has changed in V4.1.
00240 
00241             When umfpack_*_numeric starts, it allocates memory for the Numeric
00242             object.  Part of this is of fixed size (approximately n double's +
00243             12*n integers).  The remainder is of variable size, which grows to
00244             hold the LU factors and the frontal matrices created during
00245             factorization.  A estimate of the upper bound is computed by
00246             umfpack_*_*symbolic, and returned by umfpack_*_*symbolic in
00247             Info [UMFPACK_VARIABLE_PEAK_ESTIMATE] (in Units).
00248 
00249             If Control [UMFPACK_ALLOC_INIT] is >= 0, umfpack_*_numeric initially
00250             allocates space for the variable-sized part equal to this estimate
00251             times Control [UMFPACK_ALLOC_INIT].  Typically, for matrices for
00252             which the "unsymmetric" strategy applies, umfpack_*_numeric needs
00253             only about half the estimated memory space, so a setting of 0.5 or
00254             0.6 often provides enough memory for umfpack_*_numeric to factorize
00255             the matrix with no subsequent increases in the size of this block.
00256 
00257             If the matrix is ordered via AMD, then this non-negative parameter
00258             is ignored.  The initial allocation ratio computed automatically,
00259             as 1.2 * (nz + Info [UMFPACK_SYMMETRIC_LUNZ]) /
00260             (Info [UMFPACK_LNZ_ESTIMATE] + Info [UMFPACK_UNZ_ESTIMATE] -
00261             min (n_row, n_col)).
00262 
00263             If Control [UMFPACK_ALLOC_INIT] is negative, then umfpack_*_numeric
00264             allocates a space with initial size (in Units) equal to
00265             (-Control [UMFPACK_ALLOC_INIT]).
00266 
00267             Regardless of the value of this parameter, a space equal to or
00268             greater than the the bare minimum amount of memory needed to start
00269             the factorization is always initially allocated.  The bare initial
00270             memory required is returned by umfpack_*_*symbolic in
00271             Info [UMFPACK_VARIABLE_INIT_ESTIMATE] (an exact value, not an
00272             estimate).
00273 
00274             If the variable-size part of the Numeric object is found to be too
00275             small sometime after numerical factorization has started, the memory
00276             is increased in size by a factor of 1.2.   If this fails, the
00277             request is reduced by a factor of 0.95 until it succeeds, or until
00278             it determines that no increase in size is possible.  Garbage
00279             collection then occurs.
00280 
00281             The strategy of attempting to "malloc" a working space, and
00282             re-trying with a smaller space, may not work under MATLAB, since
00283             mxMalloc aborts the mexFunction if it fails.  The built-in umfpack
00284             routine (version 4.0) in MATLAB 6.5 uses utMalloc instead, which
00285             avoids this problem.  As a mexFunction, utMalloc is used unless
00286             -DNUTIL is defined at compile time.  The utMalloc routine, and
00287             utFree and utRealloc, are not documented.  If the mexFunction
00288             doesn't work, then compile it with -DNUTIL instead.
00289 
00290             If you are using the umfpack mexFunction, decrease the magnitude of
00291             Control [UMFPACK_ALLOC_INIT] if you run out of memory in MATLAB.
00292 
00293             Default initial allocation size: 0.7.  Thus, with the default
00294             control settings and the "unsymmetric" strategy, the upper-bound is
00295             reached after two reallocations (0.7 * 1.2 * 1.2 = 1.008).
00296 
00297             Changing this parameter has little effect on fill-in or operation
00298             count.  It has a small impact on run-time (the extra time required
00299             to do the garbage collection and memory reallocation).
00300 
00301         Control [UMFPACK_FRONT_ALLOC_INIT]:  This parameter is new to V4.1.
00302 
00303             When UMFPACK starts the factorization of each "chain" of frontal
00304             matrices, it allocates a working array to hold the frontal matrices
00305             as they are factorized.  The symbolic factorization computes the
00306             size of the largest possible frontal matrix that could occur during
00307             the factorization of each chain.
00308 
00309             If Control [UMFPACK_FRONT_ALLOC_INIT] is >= 0, the following
00310             strategy is used.  If the AMD ordering was used, this non-negative
00311             parameter is ignored.  A front of size (d+2)*(d+2) is allocated,
00312             where d = Info [UMFPACK_SYMMETRIC_DMAX].  Otherwise, a front of
00313             size Control [UMFPACK_FRONT_ALLOC_INIT] times the largest front
00314             possible for this chain is allocated.
00315 
00316             If Control [UMFPACK_FRONT_ALLOC_INIT] is negative, then a front of
00317             size (-Control [UMFPACK_FRONT_ALLOC_INIT]) is allocated (where the
00318             size is in terms of the number of numerical entries).  This is done
00319             regardless of the ordering method or ordering strategy used.
00320 
00321             Default: 0.5.
00322 
00323         Control [UMFPACK_DROPTOL]:  This parameter is new to V4.2.
00324 
00325             Entries in L and U with absolute value less than or equal to the
00326             drop tolerance are removed from the data structures (unless leaving
00327             them there reduces memory usage by reducing the space required
00328             for the nonzero pattern of L and U).
00329 
00330             Default: 0.0.
00331 
00332     double Info [UMFPACK_INFO] ;        Output argument.
00333 
00334         Contains statistics about the numeric factorization.  If a
00335         (double *) NULL pointer is passed, then no statistics are returned in
00336         Info (this is not an error condition).  The following statistics are
00337         computed in umfpack_*_numeric:
00338 
00339         Info [UMFPACK_STATUS]: status code.  This is also the return value,
00340             whether or not Info is present.
00341 
00342             UMFPACK_OK
00343 
00344                 Numeric factorization was successful.  umfpack_*_numeric
00345                 computed a valid numeric factorization.
00346 
00347             UMFPACK_WARNING_singular_matrix
00348 
00349                 Numeric factorization was successful, but the matrix is
00350                 singular.  umfpack_*_numeric computed a valid numeric
00351                 factorization, but you will get a divide by zero in
00352                 umfpack_*_*solve.  For the other cases below, no Numeric object
00353                 is created (*Numeric is (void *) NULL).
00354 
00355             UMFPACK_ERROR_out_of_memory
00356 
00357                 Insufficient memory to complete the numeric factorization.
00358 
00359             UMFPACK_ERROR_argument_missing
00360 
00361                 One or more required arguments are missing.
00362 
00363             UMFPACK_ERROR_invalid_Symbolic_object
00364 
00365                 Symbolic object provided as input is invalid.
00366 
00367             UMFPACK_ERROR_different_pattern
00368 
00369                 The pattern (Ap and/or Ai) has changed since the call to
00370                 umfpack_*_*symbolic which produced the Symbolic object.
00371 
00372         Info [UMFPACK_NROW]:  the value of n_row stored in the Symbolic object.
00373 
00374         Info [UMFPACK_NCOL]:  the value of n_col stored in the Symbolic object.
00375 
00376         Info [UMFPACK_NZ]:  the number of entries in the input matrix.
00377             This value is obtained from the Symbolic object.
00378 
00379         Info [UMFPACK_SIZE_OF_UNIT]:  the number of bytes in a Unit, for memory
00380             usage statistics below.
00381 
00382         Info [UMFPACK_VARIABLE_INIT]: the initial size (in Units) of the
00383             variable-sized part of the Numeric object.  If this differs from
00384             Info [UMFPACK_VARIABLE_INIT_ESTIMATE], then the pattern (Ap and/or
00385             Ai) has changed since the last call to umfpack_*_*symbolic, which is
00386             an error condition.
00387 
00388         Info [UMFPACK_VARIABLE_PEAK]: the peak size (in Units) of the
00389             variable-sized part of the Numeric object.  This size is the amount
00390             of space actually used inside the block of memory, not the space
00391             allocated via UMF_malloc.  You can reduce UMFPACK's memory
00392             requirements by setting Control [UMFPACK_ALLOC_INIT] to the ratio
00393             Info [UMFPACK_VARIABLE_PEAK] / Info[UMFPACK_VARIABLE_PEAK_ESTIMATE].
00394             This will ensure that no memory reallocations occur (you may want to
00395             add 0.001 to make sure that integer roundoff does not lead to a
00396             memory size that is 1 Unit too small; otherwise, garbage collection
00397             and reallocation will occur).
00398 
00399         Info [UMFPACK_VARIABLE_FINAL]: the final size (in Units) of the
00400             variable-sized part of the Numeric object.  It holds just the
00401             sparse LU factors.
00402 
00403         Info [UMFPACK_NUMERIC_SIZE]:  the actual final size (in Units) of the
00404             entire Numeric object, including the final size of the variable
00405             part of the object.  Info [UMFPACK_NUMERIC_SIZE_ESTIMATE],
00406             an estimate, was computed by umfpack_*_*symbolic.  The estimate is
00407             normally an upper bound on the actual final size, but this is not
00408             guaranteed.
00409 
00410         Info [UMFPACK_PEAK_MEMORY]:  the actual peak memory usage (in Units) of
00411             both umfpack_*_*symbolic and umfpack_*_numeric.  An estimate,
00412             Info [UMFPACK_PEAK_MEMORY_ESTIMATE], was computed by
00413             umfpack_*_*symbolic.  The estimate is normally an upper bound on the
00414             actual peak usage, but this is not guaranteed.  With testing on
00415             hundreds of matrix arising in real applications, I have never
00416             observed a matrix where this estimate or the Numeric size estimate
00417             was less than the actual result, but this is theoretically possible.
00418             Please send me one if you find such a matrix.
00419 
00420         Info [UMFPACK_FLOPS]:  the actual count of the (useful) floating-point
00421             operations performed.  An estimate, Info [UMFPACK_FLOPS_ESTIMATE],
00422             was computed by umfpack_*_*symbolic.  The estimate is guaranteed to
00423             be an upper bound on this flop count.  The flop count excludes
00424             "useless" flops on zero values, flops performed during the pivot
00425             search (for tentative updates and assembly of candidate columns),
00426             and flops performed to add frontal matrices together.
00427 
00428             For the real version, only (+ - * /) are counted.  For the complex
00429             version, the following counts are used:
00430 
00431                 operation       flops
00432                 c = 1/b         6
00433                 c = a*b         6
00434                 c -= a*b        8
00435 
00436         Info [UMFPACK_LNZ]: the actual nonzero entries in final factor L,
00437             including the diagonal.  This excludes any zero entries in L,
00438             although some of these are stored in the Numeric object.  The
00439             Info [UMFPACK_LU_ENTRIES] statistic does account for all
00440             explicitly stored zeros, however.  Info [UMFPACK_LNZ_ESTIMATE],
00441             an estimate, was computed by umfpack_*_*symbolic.  The estimate is
00442             guaranteed to be an upper bound on Info [UMFPACK_LNZ].
00443 
00444         Info [UMFPACK_UNZ]: the actual nonzero entries in final factor U,
00445             including the diagonal.  This excludes any zero entries in U,
00446             although some of these are stored in the Numeric object.  The
00447             Info [UMFPACK_LU_ENTRIES] statistic does account for all
00448             explicitly stored zeros, however.  Info [UMFPACK_UNZ_ESTIMATE],
00449             an estimate, was computed by umfpack_*_*symbolic.  The estimate is
00450             guaranteed to be an upper bound on Info [UMFPACK_UNZ].
00451 
00452         Info [UMFPACK_NUMERIC_DEFRAG]:  The number of garbage collections
00453             performed during umfpack_*_numeric, to compact the contents of the
00454             variable-sized workspace used by umfpack_*_numeric.  No estimate was
00455             computed by umfpack_*_*symbolic.  In the current version of UMFPACK,
00456             garbage collection is performed and then the memory is reallocated,
00457             so this statistic is the same as Info [UMFPACK_NUMERIC_REALLOC],
00458             below.  It may differ in future releases.
00459 
00460         Info [UMFPACK_NUMERIC_REALLOC]:  The number of times that the Numeric
00461             object was increased in size from its initial size.  A rough upper
00462             bound on the peak size of the Numeric object was computed by
00463             umfpack_*_*symbolic, so reallocations should be rare.  However, if
00464             umfpack_*_numeric is unable to allocate that much storage, it
00465             reduces its request until either the allocation succeeds, or until
00466             it gets too small to do anything with.  If the memory that it
00467             finally got was small, but usable, then the reallocation count
00468             could be high.  No estimate of this count was computed by
00469             umfpack_*_*symbolic.
00470 
00471         Info [UMFPACK_NUMERIC_COSTLY_REALLOC]:  The number of times that the
00472             system realloc library routine (or mxRealloc for the mexFunction)
00473             had to move the workspace.  Realloc can sometimes increase the size
00474             of a block of memory without moving it, which is much faster.  This
00475             statistic will always be <= Info [UMFPACK_NUMERIC_REALLOC].  If your
00476             memory space is fragmented, then the number of "costly" realloc's
00477             will be equal to Info [UMFPACK_NUMERIC_REALLOC].
00478 
00479         Info [UMFPACK_COMPRESSED_PATTERN]:  The number of integers used to
00480             represent the pattern of L and U.
00481 
00482         Info [UMFPACK_LU_ENTRIES]:  The total number of numerical values that
00483             are stored for the LU factors.  Some of the values may be explicitly
00484             zero in order to save space (allowing for a smaller compressed
00485             pattern).
00486 
00487         Info [UMFPACK_NUMERIC_TIME]:  The CPU time taken, in seconds.
00488 
00489         Info [UMFPACK_RCOND]:  A rough estimate of the condition number, equal
00490             to min (abs (diag (U))) / max (abs (diag (U))), or zero if the
00491             diagonal of U is all zero.
00492 
00493         Info [UMFPACK_UDIAG_NZ]:  The number of numerically nonzero values on
00494             the diagonal of U.
00495 
00496         Info [UMFPACK_UMIN]:  the smallest absolute value on the diagonal of U.
00497 
00498         Info [UMFPACK_UMAX]:  the smallest absolute value on the diagonal of U.
00499 
00500         Info [UMFPACK_MAX_FRONT_SIZE]: the size of the
00501             largest frontal matrix (number of entries).
00502 
00503         ------------------------------------------------------------------------
00504         The following statistics were added to Version 4.1:
00505         ------------------------------------------------------------------------
00506 
00507         Info [UMFPACK_NUMERIC_WALLTIME]:  The wallclock time taken, in seconds.
00508 
00509         Info [UMFPACK_MAX_FRONT_NROWS]: the max number of
00510             rows in any frontal matrix.
00511 
00512         Info [UMFPACK_MAX_FRONT_NCOLS]: the max number of
00513             columns in any frontal matrix.
00514 
00515         Info [UMFPACK_WAS_SCALED]:  the scaling used, either UMFPACK_SCALE_NONE,
00516             UMFPACK_SCALE_SUM, or UMFPACK_SCALE_MAX.
00517 
00518         Info [UMFPACK_RSMIN]: if scaling is performed, the smallest scale factor
00519             for any row (either the smallest sum of absolute entries, or the
00520             smallest maximum of absolute entries).
00521 
00522         Info [UMFPACK_RSMAX]: if scaling is performed, the largest scale factor
00523             for any row (either the largest sum of absolute entries, or the
00524             largest maximum of absolute entries).
00525 
00526         Info [UMFPACK_ALLOC_INIT_USED]:  the initial allocation parameter used.
00527 
00528         Info [UMFPACK_FORCED_UPDATES]:  the number of BLAS-3 updates to the
00529             frontal matrices that were required because the frontal matrix
00530             grew larger than its current working array.
00531 
00532         Info [UMFPACK_NOFF_DIAG]: number of off-diagonal pivots selected, if the
00533             symmetric or 2-by-2 strategies are used.
00534 
00535         ------------------------------------------------------------------------
00536         The following statistics were added to Version 4.2:
00537         ------------------------------------------------------------------------
00538 
00539         Info [UMFPACK_NZDROPPED]: the number of entries smaller in absolute
00540             value than Control [UMFPACK_DROPTOL] that were dropped from L and U.
00541             Note that entries on the diagonal of U are never dropped.
00542 
00543         Info [UMFPACK_ALL_LNZ]: the number of entries in L, including the
00544             diagonal, if no small entries are dropped.
00545 
00546         Info [UMFPACK_ALL_UNZ]: the number of entries in U, including the
00547             diagonal, if no small entries are dropped.
00548 
00549         Only the above listed Info [...] entries are accessed.  The remaining
00550         entries of Info are not accessed or modified by umfpack_*_numeric.
00551         Future versions might modify different parts of Info.
00552 */

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