Rev 1820 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
/* ========================================================================== *//* === umfpack_qsymbolic ==================================================== *//* ========================================================================== *//* -------------------------------------------------------------------------- *//* UMFPACK Version 4.5, Copyright (c) 2005 by Timothy A. Davis. CISE Dept, *//* Univ. of Florida. All Rights Reserved. See ../Doc/License for License. *//* web: http://www.cise.ufl.edu/research/sparse/umfpack *//* -------------------------------------------------------------------------- */int umfpack_di_qsymbolic(int n_row,int n_col,const int Ap [ ],const int Ai [ ],const double Ax [ ],const int Qinit [ ],void **Symbolic,const double Control [UMFPACK_CONTROL],double Info [UMFPACK_INFO]) ;long umfpack_dl_qsymbolic(long n_row,long n_col,const long Ap [ ],const long Ai [ ],const double Ax [ ],const long Qinit [ ],void **Symbolic,const double Control [UMFPACK_CONTROL],double Info [UMFPACK_INFO]) ;int umfpack_zi_qsymbolic(int n_row,int n_col,const int Ap [ ],const int Ai [ ],const double Ax [ ], const double Az [ ],const int Qinit [ ],void **Symbolic,const double Control [UMFPACK_CONTROL],double Info [UMFPACK_INFO]) ;long umfpack_zl_qsymbolic(long n_row,long n_col,const long Ap [ ],const long Ai [ ],const double Ax [ ], const double Az [ ],const long Qinit [ ],void **Symbolic,const double Control [UMFPACK_CONTROL],double Info [UMFPACK_INFO]) ;/*double int Syntax:#include "umfpack.h"void *Symbolic ;int n_row, n_col, *Ap, *Ai, *Qinit, status ;double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax ;status = umfpack_di_qsymbolic (n_row, n_col, Ap, Ai, Ax, Qinit,&Symbolic, Control, Info) ;double long Syntax:#include "umfpack.h"void *Symbolic ;long n_row, n_col, *Ap, *Ai, *Qinit, status ;double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax ;status = umfpack_dl_qsymbolic (n_row, n_col, Ap, Ai, Ax, Qinit,&Symbolic, Control, Info) ;complex int Syntax:#include "umfpack.h"void *Symbolic ;int n_row, n_col, *Ap, *Ai, *Qinit, status ;double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax, *Az ;status = umfpack_zi_qsymbolic (n_row, n_col, Ap, Ai, Ax, Az, Qinit,&Symbolic, Control, Info) ;complex long Syntax:#include "umfpack.h"void *Symbolic ;long n_row, n_col, *Ap, *Ai, *Qinit, status ;double Control [UMFPACK_CONTROL], Info [UMFPACK_INFO], *Ax, *Az ;status = umfpack_zl_qsymbolic (n_row, n_col, Ap, Ai, Ax, Az, Qinit,&Symbolic, Control, Info) ;packed complex Syntax:Same as above, except Az is NULL.Purpose:Given the nonzero pattern of a sparse matrix A in column-oriented form, anda sparsity preserving column pre-ordering Qinit, umfpack_*_qsymbolicperforms the symbolic factorization of A*Qinit (or A (:,Qinit) in MATLABnotation). This is identical to umfpack_*_symbolic, except that neitherCOLAMD nor AMD are called and the user input column order Qinit is usedinstead. Note that in general, the Qinit passed to umfpack_*_qsymboliccan differ from the final Q found in umfpack_*_numeric. The unsymmetricstrategy will perform a column etree postordering done inumfpack_*_qsymbolic and sparsity-preserving modifications are made withineach frontal matrix during umfpack_*_numeric. The symmetric and 2-by-2strategies will preserve Qinit, unless the matrix is structurally singular.See umfpack_*_symbolic for more information.*** WARNING *** A poor choice of Qinit can easily cause umfpack_*_numericto use a huge amount of memory and do a lot of work. The "default" symbolicanalysis method is umfpack_*_symbolic, not this routine. If you use thisroutine, the performance of UMFPACK is your responsibility; UMFPACK willnot try to second-guess a poor choice of Qinit.Returns:The value of Info [UMFPACK_STATUS]; see umfpack_*_symbolic.Also returns UMFPACK_ERROR_invalid_permuation if Qinit is not a validpermutation vector.Arguments:All arguments are the same as umfpack_*_symbolic, except for the following:Int Qinit [n_col] ; Input argument, not modified.The user's fill-reducing initial column pre-ordering. This must be apermutation of 0..n_col-1. If Qinit [k] = j, then column j is the kthcolumn of the matrix A (:,Qinit) to be factorized. If Qinit is an(Int *) NULL pointer, then COLAMD or AMD are called instead.double Control [UMFPACK_CONTROL] ; Input argument, not modified.If Qinit is not NULL, then only two strategies are recognized:the unsymmetric strategy and the symmetric strategy.If Control [UMFPACK_STRATEGY] is UMFPACK_STRATEGY_SYMMETRIC,then the symmetric strategy is used. Otherwise the unsymmetricstrategy is used.*/