00001 /* ========================================================================== */ 00002 /* === umfpack_report_matrix ================================================ */ 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_report_matrix 00013 ( 00014 int n_row, 00015 int n_col, 00016 const int Ap [ ], 00017 const int Ai [ ], 00018 const double Ax [ ], 00019 int col_form, 00020 const double Control [UMFPACK_CONTROL] 00021 ) ; 00022 00023 long umfpack_dl_report_matrix 00024 ( 00025 long n_row, 00026 long n_col, 00027 const long Ap [ ], 00028 const long Ai [ ], 00029 const double Ax [ ], 00030 long col_form, 00031 const double Control [UMFPACK_CONTROL] 00032 ) ; 00033 00034 int umfpack_zi_report_matrix 00035 ( 00036 int n_row, 00037 int n_col, 00038 const int Ap [ ], 00039 const int Ai [ ], 00040 const double Ax [ ], const double Az [ ], 00041 int col_form, 00042 const double Control [UMFPACK_CONTROL] 00043 ) ; 00044 00045 long umfpack_zl_report_matrix 00046 ( 00047 long n_row, 00048 long n_col, 00049 const long Ap [ ], 00050 const long Ai [ ], 00051 const double Ax [ ], const double Az [ ], 00052 long col_form, 00053 const double Control [UMFPACK_CONTROL] 00054 ) ; 00055 00056 /* 00057 double int Syntax: 00058 00059 #include "umfpack.h" 00060 int n_row, n_col, *Ap, *Ai, status ; 00061 double *Ax, Control [UMFPACK_CONTROL] ; 00062 status = umfpack_di_report_matrix (n_row, n_col, Ap, Ai, Ax, 1, Control) ; 00063 or: 00064 status = umfpack_di_report_matrix (n_row, n_col, Ap, Ai, Ax, 0, Control) ; 00065 00066 double long Syntax: 00067 00068 #include "umfpack.h" 00069 long n_row, n_col, *Ap, *Ai, status ; 00070 double *Ax, Control [UMFPACK_CONTROL] ; 00071 status = umfpack_dl_report_matrix (n_row, n_col, Ap, Ai, Ax, 1, Control) ; 00072 or: 00073 status = umfpack_dl_report_matrix (n_row, n_col, Ap, Ai, Ax, 0, Control) ; 00074 00075 complex int Syntax: 00076 00077 #include "umfpack.h" 00078 int n_row, n_col, *Ap, *Ai, status ; 00079 double *Ax, *Az, Control [UMFPACK_CONTROL] ; 00080 status = umfpack_zi_report_matrix (n_row, n_col, Ap, Ai, Ax, Az, 1, 00081 Control) ; 00082 or: 00083 status = umfpack_zi_report_matrix (n_row, n_col, Ap, Ai, Ax, Az, 0, 00084 Control) ; 00085 00086 complex long Syntax: 00087 00088 #include "umfpack.h" 00089 long n_row, n_col, *Ap, *Ai, status ; 00090 double *Ax, Control [UMFPACK_CONTROL] ; 00091 status = umfpack_zl_report_matrix (n_row, n_col, Ap, Ai, Ax, Az, 1, 00092 Control) ; 00093 or: 00094 status = umfpack_zl_report_matrix (n_row, n_col, Ap, Ai, Ax, Az, 0, 00095 Control) ; 00096 00097 Purpose: 00098 00099 Verifies and prints a row or column-oriented sparse matrix. 00100 00101 Returns: 00102 00103 UMFPACK_OK if Control [UMFPACK_PRL] <= 2 (the input is not checked). 00104 00105 Otherwise (where n is n_col for the column form and n_row for row 00106 and let ni be n_row for the column form and n_col for row): 00107 00108 UMFPACK_OK if the matrix is valid. 00109 00110 UMFPACK_ERROR_n_nonpositive if n_row <= 0 or n_col <= 0. 00111 UMFPACK_ERROR_argument_missing if Ap and/or Ai are missing. 00112 UMFPACK_ERROR_invalid_matrix if Ap [n] < 0, if Ap [0] is not zero, 00113 if Ap [j+1] < Ap [j] for any j in the range 0 to n-1, 00114 if any row index in Ai is not in the range 0 to ni-1, or 00115 if the row indices in any column are not in 00116 ascending order, or contain duplicates. 00117 UMFPACK_ERROR_out_of_memory if out of memory. 00118 00119 Arguments: 00120 00121 Int n_row ; Input argument, not modified. 00122 Int n_col ; Input argument, not modified. 00123 00124 A is an n_row-by-n_row matrix. Restriction: n_row > 0 and n_col > 0. 00125 00126 Int Ap [n+1] ; Input argument, not modified. 00127 00128 n is n_row for a row-form matrix, and n_col for a column-form matrix. 00129 00130 Ap is an integer array of size n+1. If col_form is true (nonzero), 00131 then on input, it holds the "pointers" for the column form of the 00132 sparse matrix A. The row indices of column j of the matrix A are held 00133 in Ai [(Ap [j]) ... (Ap [j+1]-1)]. Otherwise, Ap holds the 00134 row pointers, and the column indices of row j of the matrix are held 00135 in Ai [(Ap [j]) ... (Ap [j+1]-1)]. 00136 00137 The first entry, Ap [0], must be zero, and Ap [j] <= Ap [j+1] must hold 00138 for all j in the range 0 to n-1. The value nz = Ap [n] is thus the 00139 total number of entries in the pattern of the matrix A. 00140 00141 Int Ai [nz] ; Input argument, not modified, of size nz = Ap [n]. 00142 00143 If col_form is true (nonzero), then the nonzero pattern (row indices) 00144 for column j is stored in Ai [(Ap [j]) ... (Ap [j+1]-1)]. Row indices 00145 must be in the range 0 to n_row-1 (the matrix is 0-based). 00146 00147 Otherwise, the nonzero pattern (column indices) for row j is stored in 00148 Ai [(Ap [j]) ... (Ap [j+1]-1)]. Column indices must be in the range 0 00149 to n_col-1 (the matrix is 0-based). 00150 00151 double Ax [nz] ; Input argument, not modified, of size nz = Ap [n]. 00152 00153 The numerical values of the sparse matrix A. 00154 00155 If col_form is true (nonzero), then the nonzero pattern (row indices) 00156 for column j is stored in Ai [(Ap [j]) ... (Ap [j+1]-1)], and the 00157 corresponding (real) numerical values are stored in 00158 Ax [(Ap [j]) ... (Ap [j+1]-1)]. The imaginary parts are stored in 00159 Az [(Ap [j]) ... (Ap [j+1]-1)], for the complex versions. 00160 00161 Otherwise, the nonzero pattern (column indices) for row j 00162 is stored in Ai [(Ap [j]) ... (Ap [j+1]-1)], and the corresponding 00163 (real) numerical values are stored in Ax [(Ap [j]) ... (Ap [j+1]-1)]. 00164 The imaginary parts are stored in Az [(Ap [j]) ... (Ap [j+1]-1)], 00165 for the complex versions. 00166 00167 No numerical values are printed if Ax or Az are (double *) NULL. 00168 00169 double Az [nz] ; Input argument, not modified, for complex versions. 00170 00171 The imaginary values of the sparse matrix A. See the description 00172 of Ax, above. No numerical values are printed if Az is NULL. 00173 00174 Future complex version: if Ax is present and Az is NULL, then both real 00175 and imaginary parts will be contained in Ax[0..2*nz-1], with Ax[2*k] 00176 and Ax[2*k+1] being the real and imaginary part of the kth entry. 00177 00178 Int col_form ; Input argument, not modified. 00179 00180 The matrix is in row-oriented form if form is col_form is false (0). 00181 Otherwise, the matrix is in column-oriented form. 00182 00183 double Control [UMFPACK_CONTROL] ; Input argument, not modified. 00184 00185 If a (double *) NULL pointer is passed, then the default control 00186 settings are used. Otherwise, the settings are determined from the 00187 Control array. See umfpack_*_defaults on how to fill the Control 00188 array with the default settings. If Control contains NaN's, the 00189 defaults are used. The following Control parameters are used: 00190 00191 Control [UMFPACK_PRL]: printing level. 00192 00193 2 or less: no output. returns silently without checking anything. 00194 3: fully check input, and print a short summary of its status 00195 4: as 3, but print first few entries of the input 00196 5: as 3, but print all of the input 00197 Default: 1 00198 */