umfpack_qsymbolic.h

Go to the documentation of this file.
00001 /* ========================================================================== */
00002 /* === umfpack_qsymbolic ==================================================== */
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_qsymbolic
00013 (
00014     int n_row,
00015     int n_col,
00016     const int Ap [ ],
00017     const int Ai [ ],
00018     const double Ax [ ],
00019     const int Qinit [ ],
00020     void **Symbolic,
00021     const double Control [UMFPACK_CONTROL],
00022     double Info [UMFPACK_INFO]
00023 ) ;
00024 
00025 long umfpack_dl_qsymbolic
00026 (
00027     long n_row,
00028     long n_col,
00029     const long Ap [ ],
00030     const long Ai [ ],
00031     const double Ax [ ],
00032     const long Qinit [ ],
00033     void **Symbolic,
00034     const double Control [UMFPACK_CONTROL],
00035     double Info [UMFPACK_INFO]
00036 ) ;
00037 
00038 int umfpack_zi_qsymbolic
00039 (
00040     int n_row,
00041     int n_col,
00042     const int Ap [ ],
00043     const int Ai [ ],
00044     const double Ax [ ], const double Az [ ],
00045     const int Qinit [ ],
00046     void **Symbolic,
00047     const double Control [UMFPACK_CONTROL],
00048     double Info [UMFPACK_INFO]
00049 ) ;
00050 
00051 long umfpack_zl_qsymbolic
00052 (
00053     long n_row,
00054     long n_col,
00055     const long Ap [ ],
00056     const long Ai [ ],
00057     const double Ax [ ], const double Az [ ],
00058     const long Qinit [ ],
00059     void **Symbolic,
00060     const double Control [UMFPACK_CONTROL],
00061     double Info [UMFPACK_INFO]
00062 ) ;
00063 
00064 /*
00065 double int Syntax:
00066 
00067     #include "umfpack.h"
00068     void *Symbolic ;
00069     int n_row, n_col, *Ap, *Ai, *Qinit, status ;
00070     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax ;
00071     status = umfpack_di_qsymbolic (n_row, n_col, Ap, Ai, Ax, Qinit,
00072         &Symbolic, Control, Info) ;
00073 
00074 double long Syntax:
00075 
00076     #include "umfpack.h"
00077     void *Symbolic ;
00078     long n_row, n_col, *Ap, *Ai, *Qinit, status ;
00079     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax ;
00080     status = umfpack_dl_qsymbolic (n_row, n_col, Ap, Ai, Ax, Qinit,
00081         &Symbolic, Control, Info) ;
00082 
00083 complex int Syntax:
00084 
00085     #include "umfpack.h"
00086     void *Symbolic ;
00087     int n_row, n_col, *Ap, *Ai, *Qinit, status ;
00088     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax, *Az ;
00089     status = umfpack_zi_qsymbolic (n_row, n_col, Ap, Ai, Ax, Az, Qinit,
00090         &Symbolic, Control, Info) ;
00091 
00092 complex long Syntax:
00093 
00094     #include "umfpack.h"
00095     void *Symbolic ;
00096     long n_row, n_col, *Ap, *Ai, *Qinit, status ;
00097     double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax, *Az ;
00098     status = umfpack_zl_qsymbolic (n_row, n_col, Ap, Ai, Ax, Az, Qinit,
00099         &Symbolic, Control, Info) ;
00100 
00101 Purpose:
00102 
00103     Given the nonzero pattern of a sparse matrix A in column-oriented form, and
00104     a sparsity preserving column pre-ordering Qinit, umfpack_*_qsymbolic
00105     performs the symbolic factorization of A*Qinit (or A (:,Qinit) in MATLAB
00106     notation).  This is identical to umfpack_*_symbolic, except that neither
00107     COLAMD nor AMD are called and the user input column order Qinit is used
00108     instead.  Note that in general, the Qinit passed to umfpack_*_qsymbolic
00109     can differ from the final Q found in umfpack_*_numeric.  The unsymmetric
00110     strategy will perform a column etree postordering done in
00111     umfpack_*_qsymbolic and sparsity-preserving modifications are made within
00112     each frontal matrix during umfpack_*_numeric.  The symmetric and 2-by-2
00113     strategies will preserve Qinit, unless the matrix is structurally singular.
00114 
00115     See umfpack_*_symbolic for more information.
00116 
00117     *** WARNING ***  A poor choice of Qinit can easily cause umfpack_*_numeric
00118     to use a huge amount of memory and do a lot of work.  The "default" symbolic
00119     analysis method is umfpack_*_symbolic, not this routine.  If you use this
00120     routine, the performance of UMFPACK is your responsibility;  UMFPACK will
00121     not try to second-guess a poor choice of Qinit.
00122 
00123 Returns:
00124 
00125     The value of Info [UMFPACK_STATUS]; see umfpack_*_symbolic.
00126     Also returns UMFPACK_ERROR_invalid_permuation if Qinit is not a valid
00127     permutation vector.
00128 
00129 Arguments:
00130 
00131     All arguments are the same as umfpack_*_symbolic, except for the following:
00132 
00133     Int Qinit [n_col] ;         Input argument, not modified.
00134 
00135         The user's fill-reducing initial column pre-ordering.  This must be a
00136         permutation of 0..n_col-1.  If Qinit [k] = j, then column j is the kth
00137         column of the matrix A (:,Qinit) to be factorized.  If Qinit is an
00138         (Int *) NULL pointer, then COLAMD or AMD are called instead.
00139 
00140 */

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