umfpack.h

Go to the documentation of this file.
00001 /* ========================================================================== */
00002 /* === umfpack.h ============================================================ */
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 /*
00013     This is the umfpack.h include file, and should be included in all user code
00014     that uses UMFPACK.  Do not include any of the umf_* header files in user
00015     code.  All routines in UMFPACK starting with "umfpack_" are user-callable.
00016     All other routines are prefixed "umf_XY_", (where X is d or z, and Y is
00017     i or l) and are not user-callable.
00018 */
00019 
00020 #ifndef UMFPACK_H
00021 #define UMFPACK_H
00022 
00023 /* -------------------------------------------------------------------------- */
00024 /* size of Info and Control arrays */
00025 /* -------------------------------------------------------------------------- */
00026 
00027 #define UMFPACK_INFO 90         /* these might be larger in future versions */
00028 #define UMFPACK_CONTROL 20
00029 
00030 /* -------------------------------------------------------------------------- */
00031 /* User-callable routines */
00032 /* -------------------------------------------------------------------------- */
00033 
00034 /* Primary routines: */
00035 #include "umfpack_symbolic.h"
00036 #include "umfpack_numeric.h"
00037 #include "umfpack_solve.h"
00038 #include "umfpack_free_symbolic.h"
00039 #include "umfpack_free_numeric.h"
00040 
00041 /* Alternative routines: */
00042 #include "umfpack_defaults.h"
00043 #include "umfpack_qsymbolic.h"
00044 #include "umfpack_wsolve.h"
00045 
00046 /* Matrix manipulation routines: */
00047 #include "umfpack_triplet_to_col.h"
00048 #include "umfpack_col_to_triplet.h"
00049 #include "umfpack_transpose.h"
00050 #include "umfpack_scale.h"
00051 
00052 /* Getting the contents of the Symbolic and Numeric opaque objects: */
00053 #include "umfpack_get_lunz.h"
00054 #include "umfpack_get_numeric.h"
00055 #include "umfpack_get_symbolic.h"
00056 #include "umfpack_save_numeric.h"
00057 #include "umfpack_load_numeric.h"
00058 #include "umfpack_save_symbolic.h"
00059 #include "umfpack_load_symbolic.h"
00060 
00061 /* Reporting routines (the above 14 routines print nothing): */
00062 #include "umfpack_report_status.h"
00063 #include "umfpack_report_info.h"
00064 #include "umfpack_report_control.h"
00065 #include "umfpack_report_matrix.h"
00066 #include "umfpack_report_triplet.h"
00067 #include "umfpack_report_vector.h"
00068 #include "umfpack_report_symbolic.h"
00069 #include "umfpack_report_numeric.h"
00070 #include "umfpack_report_perm.h"
00071 
00072 /* Utility routines: */
00073 #include "umfpack_timer.h"
00074 #include "umfpack_tictoc.h"
00075 
00076 /* -------------------------------------------------------------------------- */
00077 /* Version, copyright, and license */
00078 /* -------------------------------------------------------------------------- */
00079 
00080 #define UMFPACK_VERSION "UMFPACK V4.3 (Jan. 16, 2004)"
00081 
00082 #define UMFPACK_COPYRIGHT \
00083 "UMFPACK:  Copyright (c) 2004 by Timothy A. Davis.  All Rights Reserved.\n"
00084 
00085 #define UMFPACK_LICENSE_PART1 \
00086 "\nUMFPACK License:\n" \
00087 "\n" \
00088 "   Your use or distribution of UMFPACK or any modified version of\n" \
00089 "   UMFPACK implies that you agree to this License.\n" \
00090 "\n" \
00091 "   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY\n" \
00092 "   EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.\n"
00093 #define UMFPACK_LICENSE_PART2 \
00094 "\n" \
00095 "   Permission is hereby granted to use or copy this program, provided\n" \
00096 "   that the Copyright, this License, and the Availability of the original\n" \
00097 "   version is retained on all copies.  User documentation of any code that\n" \
00098 "   uses UMFPACK or any modified version of UMFPACK code must cite the\n" \
00099 "   Copyright, this License, the Availability note, and \"Used by permission.\"\n"
00100 #define UMFPACK_LICENSE_PART3 \
00101 "   Permission to modify the code and to distribute modified code is granted,\n" \
00102 "   provided the Copyright, this License, and the Availability note are\n" \
00103 "   retained, and a notice that the code was modified is included.  This\n" \
00104 "   software was developed with support from the National Science Foundation,\n" \
00105 "   and is provided to you free of charge.\n" \
00106 "\n" \
00107 "Availability: http://www.cise.ufl.edu/research/sparse/umfpack\n" \
00108 "\n"
00109 
00110 /* -------------------------------------------------------------------------- */
00111 /* contents of Info */
00112 /* -------------------------------------------------------------------------- */
00113 
00114 /* Note that umfpack_report.m must coincide with these definitions. */
00115 
00116 /* returned by all routines that use Info: */
00117 #define UMFPACK_STATUS 0        /* UMFPACK_OK, or other result */
00118 #define UMFPACK_NROW 1          /* n_row input value */
00119 #define UMFPACK_NCOL 16         /* n_col input value */
00120 #define UMFPACK_NZ 2            /* # of entries in A */
00121 
00122 /* computed in UMFPACK_*symbolic and UMFPACK_numeric: */
00123 #define UMFPACK_SIZE_OF_UNIT 3          /* sizeof (Unit) */
00124 
00125 /* computed in UMFPACK_*symbolic: */
00126 #define UMFPACK_SIZE_OF_INT 4           /* sizeof (int) */
00127 #define UMFPACK_SIZE_OF_LONG 5          /* sizeof (long) */
00128 #define UMFPACK_SIZE_OF_POINTER 6       /* sizeof (void *) */
00129 #define UMFPACK_SIZE_OF_ENTRY 7         /* sizeof (Entry), real or complex */
00130 #define UMFPACK_NDENSE_ROW 8            /* number of dense rows */
00131 #define UMFPACK_NEMPTY_ROW 9            /* number of empty rows */
00132 #define UMFPACK_NDENSE_COL 10           /* number of dense rows */
00133 #define UMFPACK_NEMPTY_COL 11           /* number of empty rows */
00134 #define UMFPACK_SYMBOLIC_DEFRAG 12      /* # of memory compactions */
00135 #define UMFPACK_SYMBOLIC_PEAK_MEMORY 13 /* memory used by symbolic analysis */
00136 #define UMFPACK_SYMBOLIC_SIZE 14        /* size of Symbolic object, in Units */
00137 #define UMFPACK_SYMBOLIC_TIME 15        /* time (sec.) for symbolic analysis */
00138 #define UMFPACK_SYMBOLIC_WALLTIME 17    /* wall clock time for sym. analysis */
00139 #define UMFPACK_STRATEGY_USED 18        /* strategy used: sym, unsym, 2by2 */
00140 #define UMFPACK_ORDERING_USED 19        /* ordering used: colamd, amd, given */
00141 #define UMFPACK_QFIXED 31               /* whether Q is fixed or refined */
00142 #define UMFPACK_DIAG_PREFERRED 32       /* whether diagonal pivoting attempted*/
00143 #define UMFPACK_PATTERN_SYMMETRY 33     /* symmetry of pattern of S */
00144 #define UMFPACK_NZ_A_PLUS_AT 34         /* nnz (S+S'), excl. diagonal */
00145 #define UMFPACK_NZDIAG 35               /* nnz (diag (S)) */
00146 
00147 /* AMD statistics, computed in UMFPACK_*symbolic: */
00148 #define UMFPACK_SYMMETRIC_LUNZ 36       /* nz in L+U, if AMD ordering used */
00149 #define UMFPACK_SYMMETRIC_FLOPS 37      /* flops for LU, if AMD ordering used */
00150 #define UMFPACK_SYMMETRIC_NDENSE 38     /* # of "dense" rows/cols in S+S' */
00151 #define UMFPACK_SYMMETRIC_DMAX 39       /* max nz in cols of L, for AMD */
00152 
00153 /* statistics for 2-by-2 strategy */
00154 #define UMFPACK_2BY2_NWEAK 51               /* number of weak diagonal entries*/
00155 #define UMFPACK_2BY2_UNMATCHED 52           /* # of weak diagonals not matched*/
00156 #define UMFPACK_2BY2_PATTERN_SYMMETRY 53    /* symmetry of pattern of P*S */
00157 #define UMFPACK_2BY2_NZ_PA_PLUS_PAT 54      /* nz in PS+(PS)' */
00158 #define UMFPACK_2BY2_NZDIAG 55              /* nz on diagonal of PS+(PS)' */
00159 
00160 /* statistcs for singleton pruning */
00161 #define UMFPACK_COL_SINGLETONS 56
00162 #define UMFPACK_ROW_SINGLETONS 57
00163 #define UMFPACK_N2 58
00164 #define UMFPACK_S_SYMMETRIC 59
00165 
00166 /* estimates computed in UMFPACK_*symbolic: */
00167 #define UMFPACK_NUMERIC_SIZE_ESTIMATE 20    /* final size of Numeric->Memory */
00168 #define UMFPACK_PEAK_MEMORY_ESTIMATE 21     /* for symbolic & numeric */
00169 #define UMFPACK_FLOPS_ESTIMATE 22           /* flop count */
00170 #define UMFPACK_LNZ_ESTIMATE 23             /* nz in L, incl. diagonal */
00171 #define UMFPACK_UNZ_ESTIMATE 24             /* nz in U, incl. diagonal */
00172 #define UMFPACK_VARIABLE_INIT_ESTIMATE 25   /* initial size of Numeric->Memory*/
00173 #define UMFPACK_VARIABLE_PEAK_ESTIMATE 26   /* peak size of Numeric->Memory */
00174 #define UMFPACK_VARIABLE_FINAL_ESTIMATE 27  /* final size of Numeric->Memory */
00175 #define UMFPACK_MAX_FRONT_SIZE_ESTIMATE 28  /* max frontal matrix size */
00176 #define UMFPACK_MAX_FRONT_NROWS_ESTIMATE 29 /* max # rows in any front */
00177 #define UMFPACK_MAX_FRONT_NCOLS_ESTIMATE 30 /* max # columns in any front */
00178 
00179 /* exact values, (estimates shown above) computed in UMFPACK_numeric: */
00180 #define UMFPACK_NUMERIC_SIZE 40             /* final size of Numeric->Memory */
00181 #define UMFPACK_PEAK_MEMORY 41              /* for symbolic & numeric */
00182 #define UMFPACK_FLOPS 42                    /* flop count */
00183 #define UMFPACK_LNZ 43                      /* nz in L, incl. diagonal */
00184 #define UMFPACK_UNZ 44                      /* nz in U, incl. diagonal */
00185 #define UMFPACK_VARIABLE_INIT 45            /* initial size of Numeric->Memory*/
00186 #define UMFPACK_VARIABLE_PEAK 46            /* peak size of Numeric->Memory */
00187 #define UMFPACK_VARIABLE_FINAL 47           /* final size of Numeric->Memory */
00188 #define UMFPACK_MAX_FRONT_SIZE 48           /* max frontal matrix size */
00189 #define UMFPACK_MAX_FRONT_NROWS 49          /* max # rows in any front */
00190 #define UMFPACK_MAX_FRONT_NCOLS 50          /* max # columns in any front */
00191 
00192 /* computed in UMFPACK_numeric: */
00193 #define UMFPACK_NUMERIC_DEFRAG 60           /* # of garbage collections */
00194 #define UMFPACK_NUMERIC_REALLOC 61          /* # of memory reallocations */
00195 #define UMFPACK_NUMERIC_COSTLY_REALLOC 62   /* # of costlly memory realloc's */
00196 #define UMFPACK_COMPRESSED_PATTERN 63       /* # of integers in LU pattern */
00197 #define UMFPACK_LU_ENTRIES 64               /* # of reals in LU factors */
00198 #define UMFPACK_NUMERIC_TIME 65             /* numeric factorization time */
00199 #define UMFPACK_UDIAG_NZ 66                 /* nz on diagonal of U */
00200 #define UMFPACK_RCOND 67                    /* est. reciprocal condition # */
00201 #define UMFPACK_WAS_SCALED 68               /* none, max row, or sum row */
00202 #define UMFPACK_RSMIN 69                    /* min (max row) or min (sum row) */
00203 #define UMFPACK_RSMAX 70                    /* max (max row) or max (sum row) */
00204 #define UMFPACK_UMIN 71                     /* min abs diagonal entry of U */
00205 #define UMFPACK_UMAX 72                     /* max abs diagonal entry of U */
00206 #define UMFPACK_ALLOC_INIT_USED 73          /* alloc_init parameter used */
00207 #define UMFPACK_FORCED_UPDATES 74           /* # of forced updates */
00208 #define UMFPACK_NUMERIC_WALLTIME 75         /* numeric wall clock time */
00209 #define UMFPACK_NOFF_DIAG 76                /* number of off-diagonal pivots */
00210 
00211 #define UMFPACK_ALL_LNZ 77                  /* nz in L, if no dropped entries */
00212 #define UMFPACK_ALL_UNZ 78                  /* nz in U, if no dropped entries */
00213 #define UMFPACK_NZDROPPED 79                /* # of dropped small entries */
00214 
00215 /* computed in UMFPACK_solve: */
00216 #define UMFPACK_IR_TAKEN 80         /* # of iterative refinement steps taken */
00217 #define UMFPACK_IR_ATTEMPTED 81     /* # of iter. refinement steps attempted */
00218 #define UMFPACK_OMEGA1 82           /* omega1, sparse backward error estimate */
00219 #define UMFPACK_OMEGA2 83           /* omega2, sparse backward error estimate */
00220 #define UMFPACK_SOLVE_FLOPS 84      /* flop count for solve */
00221 #define UMFPACK_SOLVE_TIME 85       /* solve time (seconds) */
00222 #define UMFPACK_SOLVE_WALLTIME 86   /* solve time (wall clock, seconds) */
00223 
00224 /* Info [87, 88, 89] unused */
00225 
00226 /* Unused parts of Info may be used in future versions of UMFPACK. */
00227 
00228 /* -------------------------------------------------------------------------- */
00229 
00230 /* Info [UMFPACK_ORDERING_USED] is one of the following: */
00231 #define UMFPACK_ORDERING_COLAMD 0       /* COLAMD(A) */
00232 #define UMFPACK_ORDERING_AMD 1          /* AMD(A+A') */
00233 #define UMFPACK_ORDERING_GIVEN 2        /* Q is provided on input */
00234 
00235 /* -------------------------------------------------------------------------- */
00236 /* contents of Control */
00237 /* -------------------------------------------------------------------------- */
00238 
00239 /* used in all UMFPACK_report_* routines: */
00240 #define UMFPACK_PRL 0                   /* print level */
00241 
00242 /* used in UMFPACK_*symbolic only: */
00243 #define UMFPACK_DENSE_ROW 1             /* dense row parameter */
00244 #define UMFPACK_DENSE_COL 2             /* dense col parameter */
00245 #define UMFPACK_BLOCK_SIZE 4            /* BLAS-3 block size */
00246 #define UMFPACK_STRATEGY 5              /* auto, symmetric, unsym., or 2by2 */
00247 #define UMFPACK_2BY2_TOLERANCE 12       /* 2-by-2 pivot tolerance */
00248 #define UMFPACK_FIXQ 13                 /* -1: no fixQ, 0: default, 1: fixQ */
00249 #define UMFPACK_AMD_DENSE 14            /* for AMD ordering */
00250 #define UMFPACK_AGGRESSIVE 19           /* whether or not to use aggressive
00251                                          * absorption in AMD and COLAMD */
00252 
00253 /* used in UMFPACK_numeric only: */
00254 #define UMFPACK_PIVOT_TOLERANCE 3       /* threshold partial pivoting setting */
00255 #define UMFPACK_ALLOC_INIT 6            /* initial allocation ratio */
00256 #define UMFPACK_SYM_PIVOT_TOLERANCE 15  /* threshold, only for diag. entries */
00257 #define UMFPACK_SCALE 16                /* what row scaling to do */
00258 #define UMFPACK_FRONT_ALLOC_INIT 17     /* frontal matrix allocation ratio */
00259 #define UMFPACK_DROPTOL 18              /* drop tolerance for entries in L,U */
00260 
00261 /* used in UMFPACK_*solve only: */
00262 #define UMFPACK_IRSTEP 7                /* max # of iterative refinements */
00263 
00264 /* compile-time settings - Control [8..11] cannot be changed at run time: */
00265 #define UMFPACK_COMPILED_WITH_BLAS 8        /* uses the BLAS */
00266 #define UMFPACK_COMPILED_FOR_MATLAB 9       /* 1 if MATLAB mexFunction, etc. */
00267 #define UMFPACK_COMPILED_WITH_GETRUSAGE 10  /* uses getrusage timer, or not */
00268 #define UMFPACK_COMPILED_IN_DEBUG_MODE 11   /* debugging enabled (very slow!) */
00269 
00270 #if 0
00271 /* No longer unused.  These parameters are now used for the new symmetric and
00272  * 2-by-2 ordering strategies.  See 5, 12, 13, and 14, above. */
00273 #define UMFPACK_RELAXED_AMALGAMATION 5      /* unused (was in v4.0) */
00274 #define UMFPACK_PIVOT_OPTION 12             /* unused (was in v3.2) */
00275 #define UMFPACK_RELAXED2_AMALGAMATION 13    /* unused (was in v4.0) */
00276 #define UMFPACK_RELAXED3_AMALGAMATION 14    /* unused (was in v4.0) */
00277 #endif
00278 
00279 /* -------------------------------------------------------------------------- */
00280 
00281 /* Control [UMFPACK_STRATEGY] is one of the following: */
00282 #define UMFPACK_STRATEGY_AUTO 0         /* use sym. or unsym. strategy */
00283 #define UMFPACK_STRATEGY_UNSYMMETRIC 1  /* COLAMD(A), coletree postorder,
00284                                            not prefer diag*/
00285 #define UMFPACK_STRATEGY_2BY2 2         /* AMD(PA+PA'), no coletree postorder,
00286                                            prefer diag(PA) where P is pseudo
00287                                            max transversal */
00288 #define UMFPACK_STRATEGY_SYMMETRIC 3    /* AMD(A+A'), no coletree postorder,
00289                                            prefer diagonal */
00290 
00291 /* Control [UMFPACK_SCALE] is one of the following: */
00292 #define UMFPACK_SCALE_NONE 0    /* no scaling */
00293 #define UMFPACK_SCALE_SUM 1     /* default: divide each row by sum (abs (row))*/
00294 #define UMFPACK_SCALE_MAX 2     /* divide each row by max (abs (row)) */
00295 
00296 /* -------------------------------------------------------------------------- */
00297 /* default values of Control: */
00298 /* -------------------------------------------------------------------------- */
00299 
00300 /* Note that the default block sized changed for Version 3.1 and following.
00301  * In Version 4.1, the relaxed amalgamation parameters were removed.  These are
00302  * now fixed internally (see umf_local_search.c), and cannot be changed.
00303  * COLAMD aggressive absorption did not exist in v4.0.  In v4.1, it is in
00304  * use by default (but can be turned off).  Aggressive absorption is used by
00305  * default in AMD, also.
00306  *
00307  * Drop tolerance was added in V4.2.
00308  */
00309 
00310 #define UMFPACK_DEFAULT_PRL 1
00311 #define UMFPACK_DEFAULT_DENSE_ROW 0.2
00312 #define UMFPACK_DEFAULT_DENSE_COL 0.2
00313 #define UMFPACK_DEFAULT_PIVOT_TOLERANCE 0.1
00314 #define UMFPACK_DEFAULT_2BY2_TOLERANCE 0.01
00315 #define UMFPACK_DEFAULT_SYM_PIVOT_TOLERANCE 0.001
00316 #define UMFPACK_DEFAULT_BLOCK_SIZE 32
00317 #define UMFPACK_DEFAULT_ALLOC_INIT 0.7
00318 #define UMFPACK_DEFAULT_FRONT_ALLOC_INIT 0.5
00319 #define UMFPACK_DEFAULT_IRSTEP 2
00320 #define UMFPACK_DEFAULT_SCALE UMFPACK_SCALE_SUM
00321 #define UMFPACK_DEFAULT_STRATEGY UMFPACK_STRATEGY_AUTO
00322 #define UMFPACK_DEFAULT_AMD_DENSE AMD_DEFAULT_DENSE
00323 #define UMFPACK_DEFAULT_FIXQ 0
00324 #define UMFPACK_DEFAULT_AGGRESSIVE 1
00325 #define UMFPACK_DEFAULT_DROPTOL 0
00326 
00327 #if 0
00328 /* no longer unused: for unsymmetric strategy (were used in v4.0) */
00329 #define UMFPACK_DEFAULT_RELAXED_AMALGAMATION 0.25       /* unused */
00330 #define UMFPACK_DEFAULT_RELAXED2_AMALGAMATION 0.1       /* unused */
00331 #define UMFPACK_DEFAULT_RELAXED3_AMALGAMATION 0.125     /* unused */
00332 #endif
00333 
00334 /* default values of Control may change in future versions of UMFPACK. */
00335 
00336 /* -------------------------------------------------------------------------- */
00337 /* status codes */
00338 /* -------------------------------------------------------------------------- */
00339 
00340 #define UMFPACK_OK (0)
00341 
00342 /* status > 0 means a warning, but the method was successful anyway. */
00343 /* A Symbolic or Numeric object was still created. */
00344 #define UMFPACK_WARNING_singular_matrix (1)
00345 
00346 /* status < 0 means an error, and the method was not successful. */
00347 /* No Symbolic of Numeric object was created. */
00348 #define UMFPACK_ERROR_out_of_memory (-1)
00349 #define UMFPACK_ERROR_invalid_Numeric_object (-3)
00350 #define UMFPACK_ERROR_invalid_Symbolic_object (-4)
00351 #define UMFPACK_ERROR_argument_missing (-5)
00352 #define UMFPACK_ERROR_n_nonpositive (-6)
00353 #define UMFPACK_ERROR_invalid_matrix (-8)   /* replaces errors -[7:10,12,14] */
00354 #define UMFPACK_ERROR_different_pattern (-11)
00355 #define UMFPACK_ERROR_invalid_system (-13)
00356 #define UMFPACK_ERROR_invalid_permutation (-15)
00357 #define UMFPACK_ERROR_internal_error (-911)
00358 #define UMFPACK_ERROR_file_IO (-17)
00359 
00360 /* The following error codes are no longer used.  They are left in for
00361  * historical reasons.  They appeared in Version 4.0.  Most of them are combined
00362  * into the single UMFPACK_ERROR_invalid_matrix error code (-8).  The last one,
00363  * UMFPACK_ERROR_problem_too_large, has been removed.  This error can no longer
00364  * occur. */
00365 #define UMFPACK_ERROR_nz_negative (-7)                  /* unused */
00366 #define UMFPACK_ERROR_jumbled_matrix (-8)               /* unused */
00367 #define UMFPACK_ERROR_Ap0_nonzero (-9)                  /* unused */
00368 #define UMFPACK_ERROR_row_index_out_of_bounds (-10)     /* unused */
00369 #define UMFPACK_ERROR_col_length_negative (-12)         /* unused */
00370 #define UMFPACK_ERROR_invalid_triplet (-14)             /* unused */
00371 #define UMFPACK_ERROR_problem_too_large (-16)           /* unused */
00372 
00373 /* -------------------------------------------------------------------------- */
00374 /* solve codes */
00375 /* -------------------------------------------------------------------------- */
00376 
00377 /* Solve the system ( )x=b, where ( ) is defined below.  "t" refers to the */
00378 /* linear algebraic transpose (complex conjugate if A is complex), or the (') */
00379 /* operator in MATLAB.  "at" refers to the array transpose, or the (.') */
00380 /* operator in MATLAB. */
00381 
00382 #define UMFPACK_A       (0)     /* Ax=b    */
00383 #define UMFPACK_At      (1)     /* A'x=b   */
00384 #define UMFPACK_Aat     (2)     /* A.'x=b  */
00385 
00386 #define UMFPACK_Pt_L    (3)     /* P'Lx=b  */
00387 #define UMFPACK_L       (4)     /* Lx=b    */
00388 #define UMFPACK_Lt_P    (5)     /* L'Px=b  */
00389 #define UMFPACK_Lat_P   (6)     /* L.'Px=b */
00390 #define UMFPACK_Lt      (7)     /* L'x=b   */
00391 #define UMFPACK_Lat     (8)     /* L.'x=b  */
00392 
00393 #define UMFPACK_U_Qt    (9)     /* UQ'x=b  */
00394 #define UMFPACK_U       (10)    /* Ux=b    */
00395 #define UMFPACK_Q_Ut    (11)    /* QU'x=b  */
00396 #define UMFPACK_Q_Uat   (12)    /* QU.'x=b */
00397 #define UMFPACK_Ut      (13)    /* U'x=b   */
00398 #define UMFPACK_Uat     (14)    /* U.'x=b  */
00399 
00400 /* -------------------------------------------------------------------------- */
00401 
00402 /* Integer constants are used for status and solve codes instead of enum */
00403 /* to make it easier for a Fortran code to call UMFPACK. */
00404 
00405 #endif /* UMFPACK_H */

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