colamd_8h-source.html
来自「SuperLU is a general purpose library for」· HTML 代码 · 共 220 行 · 第 1/2 页
HTML
220 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><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.4.6 --><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 id="current"><a href="files.html"><span>Files</span></a></li> </ul></div><div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</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 <span class="keyword"> </span>{<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 <span class="keyword"> </span>{<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 <span class="keyword"> </span>{<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 <span class="keyword"> </span>{<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> ;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?