<!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 Mon Nov 22 10:23:47 2010 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>