File: colamd_8h-source.html

package info (click to toggle)
superlu 4.3%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 13,100 kB
  • ctags: 6,351
  • sloc: ansic: 61,952; makefile: 398; csh: 141; fortran: 108; sh: 14
file content (217 lines) | stat: -rw-r--r-- 28,359 bytes parent folder | download
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&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;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 &lt;stdlib.h&gt;</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, &gt; 0 warning or notice, &lt; 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 &amp; 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) &lt; 0 || (n_row) &lt; 0 || (n_col) &lt; 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&nbsp;
<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>