1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>SuperLU: SRC/colamd.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>SRC/colamd.h</h1><a href="colamd_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
<a name="l00055"></a>00055 <span class="preprocessor">#ifndef COLAMD_H</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_H</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span>
<a name="l00058"></a>00058 <span class="comment">/* ========================================================================== */</span>
<a name="l00059"></a>00059 <span class="comment">/* === Include files ======================================================== */</span>
<a name="l00060"></a>00060 <span class="comment">/* ========================================================================== */</span>
<a name="l00061"></a>00061
<a name="l00062"></a>00062 <span class="preprocessor">#include <stdlib.h></span>
<a name="l00063"></a>00063
<a name="l00064"></a>00064 <span class="comment">/* ========================================================================== */</span>
<a name="l00065"></a>00065 <span class="comment">/* === Knob and statistics definitions ====================================== */</span>
<a name="l00066"></a>00066 <span class="comment">/* ========================================================================== */</span>
<a name="l00067"></a>00067
<a name="l00068"></a>00068 <span class="comment">/* size of the knobs [ ] array. Only knobs [0..1] are currently used. */</span>
<a name="l00069"></a><a class="code" href="colamd_8h.html#e92bb10d09f7cd004f07d1baddf90548">00069</a> <span class="preprocessor">#define COLAMD_KNOBS 20</span>
<a name="l00070"></a>00070 <span class="preprocessor"></span>
<a name="l00071"></a>00071 <span class="comment">/* number of output statistics. Only stats [0..6] are currently used. */</span>
<a name="l00072"></a><a class="code" href="colamd_8h.html#411703fc0a994b83ec0e00df1abfc0f7">00072</a> <span class="preprocessor">#define COLAMD_STATS 20</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span>
<a name="l00074"></a>00074 <span class="comment">/* knobs [0] and stats [0]: dense row knob and output statistic. */</span>
<a name="l00075"></a><a class="code" href="colamd_8h.html#45a417439d08823fa620ca00d834dd61">00075</a> <span class="preprocessor">#define COLAMD_DENSE_ROW 0</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span>
<a name="l00077"></a>00077 <span class="comment">/* knobs [1] and stats [1]: dense column knob and output statistic. */</span>
<a name="l00078"></a><a class="code" href="colamd_8h.html#f92de54efdec91d7ab64e7bec07eb12c">00078</a> <span class="preprocessor">#define COLAMD_DENSE_COL 1</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00080"></a>00080 <span class="comment">/* stats [2]: memory defragmentation count output statistic */</span>
<a name="l00081"></a><a class="code" href="colamd_8h.html#babfabfa19364ec563aa9c15bcc9714e">00081</a> <span class="preprocessor">#define COLAMD_DEFRAG_COUNT 2</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span>
<a name="l00083"></a>00083 <span class="comment">/* stats [3]: colamd status: zero OK, > 0 warning or notice, < 0 error */</span>
<a name="l00084"></a><a class="code" href="colamd_8h.html#6a4201ce55dfa3a6375b90097e8c747e">00084</a> <span class="preprocessor">#define COLAMD_STATUS 3</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span>
<a name="l00086"></a>00086 <span class="comment">/* stats [4..6]: error info, or info on jumbled columns */</span>
<a name="l00087"></a><a class="code" href="colamd_8h.html#569d56a773011e0b4e465b3f5830e80b">00087</a> <span class="preprocessor">#define COLAMD_INFO1 4</span>
<a name="l00088"></a><a class="code" href="colamd_8h.html#2161fd78bbd688f943250d1d7583284b">00088</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_INFO2 5</span>
<a name="l00089"></a><a class="code" href="colamd_8h.html#15d83814c573d742764ff83e9d1d67fc">00089</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_INFO3 6</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span>
<a name="l00091"></a>00091 <span class="comment">/* error codes returned in stats [3]: */</span>
<a name="l00092"></a><a class="code" href="colamd_8h.html#a754fd30d924c5c8d2d402fa0a482d72">00092</a> <span class="preprocessor">#define COLAMD_OK (0)</span>
<a name="l00093"></a><a class="code" href="colamd_8h.html#c0d7f3882e6e9e39527aa2195dd23789">00093</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_OK_BUT_JUMBLED (1)</span>
<a name="l00094"></a><a class="code" href="colamd_8h.html#2347fb9e509c8bf9b97a50f96dea281c">00094</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_A_not_present (-1)</span>
<a name="l00095"></a><a class="code" href="colamd_8h.html#51d3f9714a4cb80c0f54dea5d0c5f95f">00095</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_p_not_present (-2)</span>
<a name="l00096"></a><a class="code" href="colamd_8h.html#8e848cfde5cdf42fcb316695305f8002">00096</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_nrow_negative (-3)</span>
<a name="l00097"></a><a class="code" href="colamd_8h.html#2feedddbe535286cbea9eca9fca91f45">00097</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_ncol_negative (-4)</span>
<a name="l00098"></a><a class="code" href="colamd_8h.html#7147ea7a9d673f17ef856e9914f90c81">00098</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_nnz_negative (-5)</span>
<a name="l00099"></a><a class="code" href="colamd_8h.html#58b5d911cc825b4334ade136bad3afd3">00099</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_p0_nonzero (-6)</span>
<a name="l00100"></a><a class="code" href="colamd_8h.html#323108d44db4186fad5a2066139f70b7">00100</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_A_too_small (-7)</span>
<a name="l00101"></a><a class="code" href="colamd_8h.html#3b6df4a489ed0c7de8ad12251cdac5d6">00101</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_col_length_negative (-8)</span>
<a name="l00102"></a><a class="code" href="colamd_8h.html#0559e0ff07deab1841e7aaee8cde51e6">00102</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_row_index_out_of_bounds (-9)</span>
<a name="l00103"></a><a class="code" href="colamd_8h.html#703f11265b521c931cdd44709d141fca">00103</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_out_of_memory (-10)</span>
<a name="l00104"></a><a class="code" href="colamd_8h.html#e97b9ba07b455e4ce07c53a4d71c1169">00104</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_ERROR_internal_error (-999)</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span>
<a name="l00106"></a>00106 <span class="comment">/* ========================================================================== */</span>
<a name="l00107"></a>00107 <span class="comment">/* === Row and Column structures ============================================ */</span>
<a name="l00108"></a>00108 <span class="comment">/* ========================================================================== */</span>
<a name="l00109"></a>00109
<a name="l00110"></a>00110 <span class="comment">/* User code that makes use of the colamd/symamd routines need not directly */</span>
<a name="l00111"></a>00111 <span class="comment">/* reference these structures. They are used only for the COLAMD_RECOMMENDED */</span>
<a name="l00112"></a>00112 <span class="comment">/* macro. */</span>
<a name="l00113"></a>00113
<a name="l00114"></a><a class="code" href="structColamd__Col__struct.html">00114</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structColamd__Col__struct.html">Colamd_Col_struct</a>
<a name="l00115"></a>00115 {
<a name="l00116"></a><a class="code" href="structColamd__Col__struct.html#55c862b22c87023300b5ccb3044e0409">00116</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#55c862b22c87023300b5ccb3044e0409">start</a> ; <span class="comment">/* index for A of first row in this column, or DEAD */</span>
<a name="l00117"></a>00117 <span class="comment">/* if column is dead */</span>
<a name="l00118"></a><a class="code" href="structColamd__Col__struct.html#c61e32f7e56a6673058c0d57cb170f22">00118</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#c61e32f7e56a6673058c0d57cb170f22">length</a> ; <span class="comment">/* number of rows in this column */</span>
<a name="l00119"></a>00119 <span class="keyword">union</span>
<a name="l00120"></a>00120 {
<a name="l00121"></a><a class="code" href="structColamd__Col__struct.html#a52760c0c184f617d10b9946618ebc9b">00121</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#a52760c0c184f617d10b9946618ebc9b">thickness</a> ; <span class="comment">/* number of original columns represented by this */</span>
<a name="l00122"></a>00122 <span class="comment">/* col, if the column is alive */</span>
<a name="l00123"></a><a class="code" href="structColamd__Col__struct.html#abae0343baec2ef7f9681bf60a23bacf">00123</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#abae0343baec2ef7f9681bf60a23bacf">parent</a> ; <span class="comment">/* parent in parent tree super-column structure, if */</span>
<a name="l00124"></a>00124 <span class="comment">/* the column is dead */</span>
<a name="l00125"></a>00125 } <a class="code" href="structColamd__Col__struct.html#54fd02e0751a496e05ed7f21a2b2a1f0">shared1</a> ;
<a name="l00126"></a>00126 <span class="keyword">union</span>
<a name="l00127"></a>00127 {
<a name="l00128"></a><a class="code" href="structColamd__Col__struct.html#a3cc8f4e719f65ba6fead93f272d7237">00128</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#a3cc8f4e719f65ba6fead93f272d7237">score</a> ; <span class="comment">/* the score used to maintain heap, if col is alive */</span>
<a name="l00129"></a><a class="code" href="structColamd__Col__struct.html#22ecb292b2471f0a09316656713bfe6e">00129</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#22ecb292b2471f0a09316656713bfe6e">order</a> ; <span class="comment">/* pivot ordering of this column, if col is dead */</span>
<a name="l00130"></a>00130 } <a class="code" href="structColamd__Col__struct.html#f228addd53ebe168293e7e5c3edd372e">shared2</a> ;
<a name="l00131"></a>00131 <span class="keyword">union</span>
<a name="l00132"></a>00132 {
<a name="l00133"></a><a class="code" href="structColamd__Col__struct.html#16435510e5d93025bb7b9f5715a5ba1c">00133</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#16435510e5d93025bb7b9f5715a5ba1c">headhash</a> ; <span class="comment">/* head of a hash bucket, if col is at the head of */</span>
<a name="l00134"></a>00134 <span class="comment">/* a degree list */</span>
<a name="l00135"></a><a class="code" href="structColamd__Col__struct.html#babfe23e6edb41b345085470e52d7264">00135</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#babfe23e6edb41b345085470e52d7264">hash</a> ; <span class="comment">/* hash value, if col is not in a degree list */</span>
<a name="l00136"></a><a class="code" href="structColamd__Col__struct.html#23aaabe8f73f1ae9016ea4bb24d494a7">00136</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#23aaabe8f73f1ae9016ea4bb24d494a7">prev</a> ; <span class="comment">/* previous column in degree list, if col is in a */</span>
<a name="l00137"></a>00137 <span class="comment">/* degree list (but not at the head of a degree list) */</span>
<a name="l00138"></a>00138 } <a class="code" href="structColamd__Col__struct.html#5fc60d7e3cd5df5789a2999c08b47732">shared3</a> ;
<a name="l00139"></a>00139 <span class="keyword">union</span>
<a name="l00140"></a>00140 {
<a name="l00141"></a><a class="code" href="structColamd__Col__struct.html#39ab48d1ea2a8f6d365b60886c9ac5a1">00141</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#39ab48d1ea2a8f6d365b60886c9ac5a1">degree_next</a> ; <span class="comment">/* next column, if col is in a degree list */</span>
<a name="l00142"></a><a class="code" href="structColamd__Col__struct.html#640f93b7885fb94b7dc0330041b53795">00142</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Col__struct.html#640f93b7885fb94b7dc0330041b53795">hash_next</a> ; <span class="comment">/* next column, if col is in a hash list */</span>
<a name="l00143"></a>00143 } <a class="code" href="structColamd__Col__struct.html#4ff41bc973d32218127f4922e4c7019a">shared4</a> ;
<a name="l00144"></a>00144
<a name="l00145"></a>00145 } <a class="code" href="structColamd__Col__struct.html">Colamd_Col</a> ;
<a name="l00146"></a>00146
<a name="l00147"></a><a class="code" href="structColamd__Row__struct.html">00147</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structColamd__Row__struct.html">Colamd_Row_struct</a>
<a name="l00148"></a>00148 {
<a name="l00149"></a><a class="code" href="structColamd__Row__struct.html#24285056395b1cf2e28ea3810d67d09d">00149</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Row__struct.html#24285056395b1cf2e28ea3810d67d09d">start</a> ; <span class="comment">/* index for A of first col in this row */</span>
<a name="l00150"></a><a class="code" href="structColamd__Row__struct.html#4cf6076c6aeab980aa2add1c24913c35">00150</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Row__struct.html#4cf6076c6aeab980aa2add1c24913c35">length</a> ; <span class="comment">/* number of principal columns in this row */</span>
<a name="l00151"></a>00151 <span class="keyword">union</span>
<a name="l00152"></a>00152 {
<a name="l00153"></a><a class="code" href="structColamd__Row__struct.html#01e336d70f1cbe2ac615d4b23c480ecd">00153</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Row__struct.html#01e336d70f1cbe2ac615d4b23c480ecd">degree</a> ; <span class="comment">/* number of principal & non-principal columns in row */</span>
<a name="l00154"></a><a class="code" href="structColamd__Row__struct.html#cb0d165350cbbdad8dc4260bd48b1f80">00154</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Row__struct.html#cb0d165350cbbdad8dc4260bd48b1f80">p</a> ; <span class="comment">/* used as a row pointer in init_rows_cols () */</span>
<a name="l00155"></a>00155 } <a class="code" href="structColamd__Row__struct.html#2562d9df5820b202cd5e83696fc053f5">shared1</a> ;
<a name="l00156"></a>00156 <span class="keyword">union</span>
<a name="l00157"></a>00157 {
<a name="l00158"></a><a class="code" href="structColamd__Row__struct.html#00b8bd69ce2b84d9b75c5503d80c5080">00158</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Row__struct.html#00b8bd69ce2b84d9b75c5503d80c5080">mark</a> ; <span class="comment">/* for computing set differences and marking dead rows*/</span>
<a name="l00159"></a><a class="code" href="structColamd__Row__struct.html#f7bf4c87b04e63e6b1abc2c86e8d1376">00159</a> <span class="keywordtype">int</span> <a class="code" href="structColamd__Row__struct.html#f7bf4c87b04e63e6b1abc2c86e8d1376">first_column</a> ;<span class="comment">/* first column in row (used in garbage collection) */</span>
<a name="l00160"></a>00160 } <a class="code" href="structColamd__Row__struct.html#eb2ca96dcadf6490c614ed559acef59a">shared2</a> ;
<a name="l00161"></a>00161
<a name="l00162"></a>00162 } <a class="code" href="structColamd__Row__struct.html">Colamd_Row</a> ;
<a name="l00163"></a>00163
<a name="l00164"></a>00164 <span class="comment">/* ========================================================================== */</span>
<a name="l00165"></a>00165 <span class="comment">/* === Colamd recommended memory size ======================================= */</span>
<a name="l00166"></a>00166 <span class="comment">/* ========================================================================== */</span>
<a name="l00167"></a>00167
<a name="l00168"></a>00168 <span class="comment">/*</span>
<a name="l00169"></a>00169 <span class="comment"> The recommended length Alen of the array A passed to colamd is given by</span>
<a name="l00170"></a>00170 <span class="comment"> the COLAMD_RECOMMENDED (nnz, n_row, n_col) macro. It returns -1 if any</span>
<a name="l00171"></a>00171 <span class="comment"> argument is negative. 2*nnz space is required for the row and column</span>
<a name="l00172"></a>00172 <span class="comment"> indices of the matrix. COLAMD_C (n_col) + COLAMD_R (n_row) space is</span>
<a name="l00173"></a>00173 <span class="comment"> required for the Col and Row arrays, respectively, which are internal to</span>
<a name="l00174"></a>00174 <span class="comment"> colamd. An additional n_col space is the minimal amount of "elbow room",</span>
<a name="l00175"></a>00175 <span class="comment"> and nnz/5 more space is recommended for run time efficiency.</span>
<a name="l00176"></a>00176 <span class="comment"></span>
<a name="l00177"></a>00177 <span class="comment"> This macro is not needed when using symamd.</span>
<a name="l00178"></a>00178 <span class="comment"></span>
<a name="l00179"></a>00179 <span class="comment"> Explicit typecast to int added Sept. 23, 2002, COLAMD version 2.2, to avoid</span>
<a name="l00180"></a>00180 <span class="comment"> gcc -pedantic warning messages.</span>
<a name="l00181"></a>00181 <span class="comment">*/</span>
<a name="l00182"></a>00182
<a name="l00183"></a><a class="code" href="colamd_8h.html#339fb9b07ed315667cc4542c15116c83">00183</a> <span class="preprocessor">#define COLAMD_C(n_col) ((int) (((n_col) + 1) * sizeof (Colamd_Col) / sizeof (int)))</span>
<a name="l00184"></a><a class="code" href="colamd_8h.html#52e8a8827c11d9c2a1f1b87e09bc8dc0">00184</a> <span class="preprocessor"></span><span class="preprocessor">#define COLAMD_R(n_row) ((int) (((n_row) + 1) * sizeof (Colamd_Row) / sizeof (int)))</span>
<a name="l00185"></a>00185 <span class="preprocessor"></span>
<a name="l00186"></a><a class="code" href="colamd_8h.html#a6980d68bd04f7567d7d0bd40b244c2f">00186</a> <span class="preprocessor">#define COLAMD_RECOMMENDED(nnz, n_row, n_col) \</span>
<a name="l00187"></a>00187 <span class="preprocessor">( \</span>
<a name="l00188"></a>00188 <span class="preprocessor">((nnz) < 0 || (n_row) < 0 || (n_col) < 0) \</span>
<a name="l00189"></a>00189 <span class="preprocessor">? \</span>
<a name="l00190"></a>00190 <span class="preprocessor"> (-1) \</span>
<a name="l00191"></a>00191 <span class="preprocessor">: \</span>
<a name="l00192"></a>00192 <span class="preprocessor"> (2 * (nnz) + COLAMD_C (n_col) + COLAMD_R (n_row) + (n_col) + ((nnz) / 5)) \</span>
<a name="l00193"></a>00193 <span class="preprocessor">)</span>
<a name="l00194"></a>00194 <span class="preprocessor"></span>
<a name="l00195"></a>00195 <span class="comment">/* ========================================================================== */</span>
<a name="l00196"></a>00196 <span class="comment">/* === Prototypes of user-callable routines ================================= */</span>
<a name="l00197"></a>00197 <span class="comment">/* ========================================================================== */</span>
<a name="l00198"></a>00198
<a name="l00199"></a>00199 <span class="keywordtype">int</span> <a class="code" href="colamd_8c.html#ac7214b99bcf4db1b13547521367817f">colamd_recommended</a> <span class="comment">/* returns recommended value of Alen, */</span>
<a name="l00200"></a>00200 <span class="comment">/* or (-1) if input arguments are erroneous */</span>
<a name="l00201"></a>00201 (
<a name="l00202"></a>00202 <span class="keywordtype">int</span> nnz, <span class="comment">/* nonzeros in A */</span>
<a name="l00203"></a>00203 <span class="keywordtype">int</span> n_row, <span class="comment">/* number of rows in A */</span>
<a name="l00204"></a>00204 <span class="keywordtype">int</span> n_col <span class="comment">/* number of columns in A */</span>
<a name="l00205"></a>00205 ) ;
<a name="l00206"></a>00206
<a name="l00207"></a>00207 <span class="keywordtype">void</span> <a class="code" href="colamd_8c.html#cd15277a8a063dd0586e280004a92c89">colamd_set_defaults</a> <span class="comment">/* sets default parameters */</span>
<a name="l00208"></a>00208 ( <span class="comment">/* knobs argument is modified on output */</span>
<a name="l00209"></a>00209 <span class="keywordtype">double</span> knobs [<a class="code" href="colamd_8h.html#e92bb10d09f7cd004f07d1baddf90548">COLAMD_KNOBS</a>] <span class="comment">/* parameter settings for colamd */</span>
<a name="l00210"></a>00210 ) ;
<a name="l00211"></a>00211
<a name="l00212"></a>00212 <span class="keywordtype">int</span> <a class="code" href="colamd_8c.html#4ace2482b681af56de48dd3ba8971baf">colamd</a> <span class="comment">/* returns (1) if successful, (0) otherwise*/</span>
<a name="l00213"></a>00213 ( <span class="comment">/* A and p arguments are modified on output */</span>
<a name="l00214"></a>00214 <span class="keywordtype">int</span> n_row, <span class="comment">/* number of rows in A */</span>
<a name="l00215"></a>00215 <span class="keywordtype">int</span> n_col, <span class="comment">/* number of columns in A */</span>
<a name="l00216"></a>00216 <span class="keywordtype">int</span> Alen, <span class="comment">/* size of the array A */</span>
<a name="l00217"></a>00217 <span class="keywordtype">int</span> <a class="code" href="ilu__cdrop__row_8c.html#4f397f6aca9178eb3de2026fc159fa55">A</a> [], <span class="comment">/* row indices of A, of size Alen */</span>
<a name="l00218"></a>00218 <span class="keywordtype">int</span> p [], <span class="comment">/* column pointers of A, of size n_col+1 */</span>
<a name="l00219"></a>00219 <span class="keywordtype">double</span> knobs [<a class="code" href="colamd_8h.html#e92bb10d09f7cd004f07d1baddf90548">COLAMD_KNOBS</a>],<span class="comment">/* parameter settings for colamd */</span>
<a name="l00220"></a>00220 <span class="keywordtype">int</span> stats [<a class="code" href="colamd_8h.html#411703fc0a994b83ec0e00df1abfc0f7">COLAMD_STATS</a>] <span class="comment">/* colamd output statistics and error codes */</span>
<a name="l00221"></a>00221 ) ;
<a name="l00222"></a>00222
<a name="l00223"></a>00223 <span class="keywordtype">int</span> <a class="code" href="colamd_8c.html#e81243e57d577e17400b3f532aa4f1e9">symamd</a> <span class="comment">/* return (1) if OK, (0) otherwise */</span>
<a name="l00224"></a>00224 (
<a name="l00225"></a>00225 <span class="keywordtype">int</span> n, <span class="comment">/* number of rows and columns of A */</span>
<a name="l00226"></a>00226 <span class="keywordtype">int</span> <a class="code" href="ilu__cdrop__row_8c.html#4f397f6aca9178eb3de2026fc159fa55">A</a> [], <span class="comment">/* row indices of A */</span>
<a name="l00227"></a>00227 <span class="keywordtype">int</span> p [], <span class="comment">/* column pointers of A */</span>
<a name="l00228"></a>00228 <span class="keywordtype">int</span> perm [], <span class="comment">/* output permutation, size n_col+1 */</span>
<a name="l00229"></a>00229 <span class="keywordtype">double</span> knobs [<a class="code" href="colamd_8h.html#e92bb10d09f7cd004f07d1baddf90548">COLAMD_KNOBS</a>], <span class="comment">/* parameters (uses defaults if NULL) */</span>
<a name="l00230"></a>00230 <span class="keywordtype">int</span> stats [<a class="code" href="colamd_8h.html#411703fc0a994b83ec0e00df1abfc0f7">COLAMD_STATS</a>], <span class="comment">/* output statistics and error codes */</span>
<a name="l00231"></a>00231 <span class="keywordtype">void</span> * (*allocate) (size_t, size_t),
<a name="l00232"></a>00232 <span class="comment">/* pointer to calloc (ANSI C) or */</span>
<a name="l00233"></a>00233 <span class="comment">/* mxCalloc (for MATLAB mexFunction) */</span>
<a name="l00234"></a>00234 <span class="keywordtype">void</span> (*release) (<span class="keywordtype">void</span> *)
<a name="l00235"></a>00235 <span class="comment">/* pointer to free (ANSI C) or */</span>
<a name="l00236"></a>00236 <span class="comment">/* mxFree (for MATLAB mexFunction) */</span>
<a name="l00237"></a>00237 ) ;
<a name="l00238"></a>00238
<a name="l00239"></a>00239 <span class="keywordtype">void</span> <a class="code" href="colamd_8c.html#85f2c13be93dea98e624144272d00eed">colamd_report</a>
<a name="l00240"></a>00240 (
<a name="l00241"></a>00241 <span class="keywordtype">int</span> stats [<a class="code" href="colamd_8h.html#411703fc0a994b83ec0e00df1abfc0f7">COLAMD_STATS</a>]
<a name="l00242"></a>00242 ) ;
<a name="l00243"></a>00243
<a name="l00244"></a>00244 <span class="keywordtype">void</span> <a class="code" href="colamd_8c.html#df3bb99ff64711d528dafe21fd450512">symamd_report</a>
<a name="l00245"></a>00245 (
<a name="l00246"></a>00246 <span class="keywordtype">int</span> stats [<a class="code" href="colamd_8h.html#411703fc0a994b83ec0e00df1abfc0f7">COLAMD_STATS</a>]
<a name="l00247"></a>00247 ) ;
<a name="l00248"></a>00248
<a name="l00249"></a>00249 <span class="preprocessor">#endif </span><span class="comment">/* COLAMD_H */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 25 13:43:49 2011 for SuperLU by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>
|