⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slu__util_8h-source.html

📁 SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<a name="l00070"></a>00070 <span class="comment"> * Macros used for easy access of sparse matrix entries. *</span><a name="l00071"></a>00071 <span class="comment"> *********************************************************/</span><a name="l00072"></a><a class="code" href="slu__util_8h.html#445a44f88349753bc17f28fbac4df382">00072</a> <span class="preprocessor">#define L_SUB_START(col)     ( Lstore-&gt;rowind_colptr[col] )</span><a name="l00073"></a><a class="code" href="slu__util_8h.html#8de2450f2d4cf12794954b63a319c423">00073</a> <span class="preprocessor"></span><span class="preprocessor">#define L_SUB(ptr)           ( Lstore-&gt;rowind[ptr] )</span><a name="l00074"></a><a class="code" href="slu__util_8h.html#79b13489e4cd00b09633e0c5e0be1b7c">00074</a> <span class="preprocessor"></span><span class="preprocessor">#define L_NZ_START(col)      ( Lstore-&gt;nzval_colptr[col] )</span><a name="l00075"></a><a class="code" href="slu__util_8h.html#0ea367a3afecd30b570d0a46cc819cdf">00075</a> <span class="preprocessor"></span><span class="preprocessor">#define L_FST_SUPC(superno)  ( Lstore-&gt;sup_to_col[superno] )</span><a name="l00076"></a><a class="code" href="slu__util_8h.html#c641190b1a047ebcf224372cb3dfec68">00076</a> <span class="preprocessor"></span><span class="preprocessor">#define U_NZ_START(col)      ( Ustore-&gt;colptr[col] )</span><a name="l00077"></a><a class="code" href="slu__util_8h.html#cbd74ce05240823854ebfcd301f200e8">00077</a> <span class="preprocessor"></span><span class="preprocessor">#define U_SUB(ptr)           ( Ustore-&gt;rowind[ptr] )</span><a name="l00078"></a>00078 <span class="preprocessor"></span><a name="l00079"></a>00079 <a name="l00080"></a>00080 <span class="comment">/***********************************************************************</span><a name="l00081"></a>00081 <span class="comment"> * Constants </span><a name="l00082"></a>00082 <span class="comment"> ***********************************************************************/</span><a name="l00083"></a><a class="code" href="slu__util_8h.html#2b7cf2a3641be7b89138615764d60ba3">00083</a> <span class="preprocessor">#define EMPTY   (-1)</span><a name="l00084"></a>00084 <span class="preprocessor"></span><span class="comment">/*#define NO    (-1)*/</span><a name="l00085"></a><a class="code" href="slu__util_8h.html#a93f0eb578d23995850d61f7d61c55c1">00085</a> <span class="preprocessor">#define FALSE   0</span><a name="l00086"></a><a class="code" href="slu__util_8h.html#a8cecfc5c5c054d2875c03e77b7be15d">00086</a> <span class="preprocessor"></span><span class="preprocessor">#define TRUE    1</span><a name="l00087"></a>00087 <span class="preprocessor"></span><a name="l00088"></a>00088 <span class="comment">/***********************************************************************</span><a name="l00089"></a>00089 <span class="comment"> * Enumerate types</span><a name="l00090"></a>00090 <span class="comment"> ***********************************************************************/</span><a name="l00091"></a><a class="code" href="slu__util_8h.html#e6553118ce91b9c08f9376941ae1536f">00091</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#e6553118ce91b9c08f9376941ae1536f0d077f5b932ce05e5b9f30c6087a2f31">NO</a>, <a class="code" href="slu__util_8h.html#e6553118ce91b9c08f9376941ae1536f99f136a862ba5c7d16967231c29f09d6">YES</a>}                                          <a class="code" href="slu__util_8h.html#e6553118ce91b9c08f9376941ae1536f">yes_no_t</a>;<a name="l00092"></a><a class="code" href="slu__util_8h.html#c785c8235480e5cfef9848d89c047c0a">00092</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#c785c8235480e5cfef9848d89c047c0ae0bd0c48044d1267a827ce526249e168">DOFACT</a>, <a class="code" href="slu__util_8h.html#c785c8235480e5cfef9848d89c047c0ad57746dff8e73ad308739bc6cbee4c27">SamePattern</a>, <a class="code" href="slu__util_8h.html#c785c8235480e5cfef9848d89c047c0a8814b686fe49f5ccc165c04845e112e6">SamePattern_SameRowPerm</a>, <a class="code" href="slu__util_8h.html#c785c8235480e5cfef9848d89c047c0a86901392b6879fba18090792fe8db804">FACTORED</a>} <a class="code" href="slu__util_8h.html#c785c8235480e5cfef9848d89c047c0a">fact_t</a>;<a name="l00093"></a><a class="code" href="slu__util_8h.html#a38fa2e7f17b86333ca49e4b8a151adf">00093</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#a38fa2e7f17b86333ca49e4b8a151adf25895a1ae8a45131936a32274bd7cdde">NOROWPERM</a>, <a class="code" href="slu__util_8h.html#a38fa2e7f17b86333ca49e4b8a151adfe03251277f56e77cfc3989ed67adf932">LargeDiag</a>, <a class="code" href="slu__util_8h.html#a38fa2e7f17b86333ca49e4b8a151adf19f710e8ebccae9025757e877b6c87aa">MY_PERMR</a>}                   <a class="code" href="slu__util_8h.html#a38fa2e7f17b86333ca49e4b8a151adf">rowperm_t</a>;<a name="l00094"></a><a class="code" href="slu__util_8h.html#bd17bbb14f57694750d96639e738e89c">00094</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#bd17bbb14f57694750d96639e738e89c0425aaf673bebee34014367ea7c3deb1">NATURAL</a>, <a class="code" href="slu__util_8h.html#bd17bbb14f57694750d96639e738e89c02f70b975e4d4fa6052812c09bdb7349">MMD_ATA</a>, <a class="code" href="slu__util_8h.html#bd17bbb14f57694750d96639e738e89cef4136af63900170017e1edb479e2f14">MMD_AT_PLUS_A</a>, <a class="code" href="slu__util_8h.html#bd17bbb14f57694750d96639e738e89cfc08a15679354a375b679f7d907867c3">COLAMD</a>, <a class="code" href="slu__util_8h.html#bd17bbb14f57694750d96639e738e89c7475651fbfee514ff59d61da9e101682">MY_PERMC</a>}<a class="code" href="slu__util_8h.html#bd17bbb14f57694750d96639e738e89c">colperm_t</a>;<a name="l00095"></a><a class="code" href="slu__util_8h.html#0c4e17b2d5cea33f9991ccc6a6678d62">00095</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#0c4e17b2d5cea33f9991ccc6a6678d628ccffb9caebb7b4520a0653005b22f43">NOTRANS</a>, <a class="code" href="slu__util_8h.html#0c4e17b2d5cea33f9991ccc6a6678d621f61e3015bfe0f0c2c3fda4c5a0cdf58">TRANS</a>, <a class="code" href="slu__util_8h.html#0c4e17b2d5cea33f9991ccc6a6678d6226a53d2d0576982e73a770a90087a619">CONJ</a>}                             <a class="code" href="slu__util_8h.html#0c4e17b2d5cea33f9991ccc6a6678d62">trans_t</a>;<a name="l00096"></a><a class="code" href="slu__util_8h.html#4d92d07523ba751afadecd63d3479e30">00096</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#4d92d07523ba751afadecd63d3479e30f1e3ee583cb194a25353b4ba7b4798cf">NOEQUIL</a>, <a class="code" href="slu__util_8h.html#4d92d07523ba751afadecd63d3479e30bf470e461303b909bf0dc58084ebafa0">ROW</a>, <a class="code" href="slu__util_8h.html#4d92d07523ba751afadecd63d3479e303e66f07732b51f2cb52e13d598f8abda">COL</a>, <a class="code" href="slu__util_8h.html#4d92d07523ba751afadecd63d3479e30627abe5a430420baf29ebe1940a7f2fb">BOTH</a>}                          <a class="code" href="slu__util_8h.html#4d92d07523ba751afadecd63d3479e30">DiagScale_t</a>;<a name="l00097"></a><a class="code" href="slu__util_8h.html#7e73e9d3a9caeec3586c03e01c494e37">00097</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#7e73e9d3a9caeec3586c03e01c494e375f3a3710645b9041f06dfe164fb336a3">NOREFINE</a>, <a class="code" href="slu__util_8h.html#7e73e9d3a9caeec3586c03e01c494e373388f7110f6f25a54e215eb75d5d7516">SINGLE</a>=1, <a class="code" href="slu__util_8h.html#7e73e9d3a9caeec3586c03e01c494e3733465d1d419b1074fb259ef444609e92">DOUBLE</a>, <a class="code" href="slu__util_8h.html#7e73e9d3a9caeec3586c03e01c494e37ffb2fb86309c5c698e319b5b6dd8ab3a">EXTRA</a>}                <a class="code" href="slu__util_8h.html#7e73e9d3a9caeec3586c03e01c494e37">IterRefine_t</a>;<a name="l00098"></a><a class="code" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b2">00098</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b29f159a8a95b7045670b14e7a521ac71e">LUSUP</a>, <a class="code" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b268eee86a440f07e5aeb1333af7c49968">UCOL</a>, <a class="code" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b2383f412552e65152b50013e6c5397baa">LSUB</a>, <a class="code" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b2ec445297f8e62e119a337ea2b5dd2b66">USUB</a>}                          <a class="code" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b2">MemType</a>;<a name="l00099"></a><a class="code" href="slu__util_8h.html#9c99a6c403d30f227aa91cf3b10f6aa4">00099</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#9c99a6c403d30f227aa91cf3b10f6aa40b0955668575b21eb0ab2272aef49f76">HEAD</a>, <a class="code" href="slu__util_8h.html#9c99a6c403d30f227aa91cf3b10f6aa44c28487b052a2b05f3db4dc5a722b1d7">TAIL</a>}                                       <a class="code" href="slu__util_8h.html#9c99a6c403d30f227aa91cf3b10f6aa4">stack_end_t</a>;<a name="l00100"></a><a class="code" href="slu__util_8h.html#494fe72ce954689dd95399ea9f1d87f6">00100</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a class="code" href="slu__util_8h.html#494fe72ce954689dd95399ea9f1d87f657cc238145ec1361c72c327674c0d754">SYSTEM</a>, <a class="code" href="slu__util_8h.html#494fe72ce954689dd95399ea9f1d87f6e2d30a195cee6b2961cc2c23ea4b520b">USER</a>}                                     <a class="code" href="slu__util_8h.html#494fe72ce954689dd95399ea9f1d87f6">LU_space_t</a>;<a name="l00101"></a>00101 <a name="l00102"></a>00102 <span class="comment">/* </span><a name="l00103"></a>00103 <span class="comment"> * The following enumerate type is used by the statistics variable </span><a name="l00104"></a>00104 <span class="comment"> * to keep track of flop count and time spent at various stages.</span><a name="l00105"></a>00105 <span class="comment"> *</span><a name="l00106"></a>00106 <span class="comment"> * Note that not all of the fields are disjoint.</span><a name="l00107"></a>00107 <span class="comment"> */</span><a name="l00108"></a><a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72">00108</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a name="l00109"></a>00109     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72ed701176980ed77fa7e65315bdae5dc5">COLPERM</a>, <span class="comment">/* find a column ordering that minimizes fills */</span><a name="l00110"></a>00110     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e728abca54580953356d3e1548ddd04a97b">RELAX</a>,   <span class="comment">/* find artificial supernodes */</span><a name="l00111"></a>00111     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72837b4404052bca5280c1c918540bc003">ETREE</a>,   <span class="comment">/* compute column etree */</span><a name="l00112"></a>00112     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72a48ad2d4b3120ba615e725d16ec7bf29">EQUIL</a>,   <span class="comment">/* equilibrate the original matrix */</span><a name="l00113"></a>00113     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e721b6692b56d378abb85bd49063721d034">FACT</a>,    <span class="comment">/* perform LU factorization */</span><a name="l00114"></a>00114     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e729b5c151728d8512307565994c89919d5">RCOND</a>,   <span class="comment">/* estimate reciprocal condition number */</span><a name="l00115"></a>00115     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72b9fc7975179c642bbac2b6ffd8fa3579">SOLVE</a>,   <span class="comment">/* forward and back solves */</span><a name="l00116"></a>00116     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72bb218bd1ec12fd54eaada97721a82be7">REFINE</a>,  <span class="comment">/* perform iterative refinement */</span><a name="l00117"></a>00117     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72be6640d5e5560662c8a729e54e770ecf">TRSV</a>,    <span class="comment">/* fraction of FACT spent in xTRSV */</span><a name="l00118"></a>00118     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72ad1464db9e9e33f25ab0a3b82c6bd0c4">GEMV</a>,    <span class="comment">/* fraction of FACT spent in xGEMV */</span><a name="l00119"></a>00119     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e7278fd14d7abebae04095cfbe02928f153">FERR</a>,    <span class="comment">/* estimate error bounds after iterative refinement */</span><a name="l00120"></a>00120     <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e722b9cc65b188ff2b2b764a5f8160c4bfc">NPHASES</a>  <span class="comment">/* total number of phases */</span><a name="l00121"></a>00121 } <a class="code" href="slu__util_8h.html#f00a42ecad444bbda75cde1b64bd7e72">PhaseType</a>;<a name="l00122"></a>00122 <a name="l00123"></a>00123 <a name="l00124"></a>00124 <span class="comment">/***********************************************************************</span><a name="l00125"></a>00125 <span class="comment"> * Type definitions</span><a name="l00126"></a>00126 <span class="comment"> ***********************************************************************/</span><a name="l00127"></a><a class="code" href="slu__util_8h.html#aae6020bb33e780ff6edbd4e45ce08ac">00127</a> <span class="keyword">typedef</span> <span class="keywordtype">float</span>    <a class="code" href="slu__util_8h.html#aae6020bb33e780ff6edbd4e45ce08ac">flops_t</a>;<a name="l00128"></a><a class="code" href="slu__util_8h.html#30f473cd214dc43270f7a4d54b2887d2">00128</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="slu__util_8h.html#30f473cd214dc43270f7a4d54b2887d2">Logical</a>;<a name="l00129"></a>00129 <a name="l00130"></a>00130 <span class="comment">/* </span><a name="l00131"></a>00131 <span class="comment"> *-- This contains the options used to control the solve process.</span><a name="l00132"></a>00132 <span class="comment"> *</span><a name="l00133"></a>00133 <span class="comment"> * Fact   (fact_t)</span><a name="l00134"></a>00134 <span class="comment"> *        Specifies whether or not the factored form of the matrix</span><a name="l00135"></a>00135 <span class="comment"> *        A is supplied on entry, and if not, how the matrix A should</span><a name="l00136"></a>00136 <span class="comment"> *        be factorizaed.</span><a name="l00137"></a>00137 <span class="comment"> *        = DOFACT: The matrix A will be factorized from scratch, and the</span><a name="l00138"></a>00138 <span class="comment"> *             factors will be stored in L and U.</span><a name="l00139"></a>00139 <span class="comment"> *        = SamePattern: The matrix A will be factorized assuming</span><a name="l00140"></a>00140 <span class="comment"> *             that a factorization of a matrix with the same sparsity</span><a name="l00141"></a>00141 <span class="comment"> *             pattern was performed prior to this one. Therefore, this</span><a name="l00142"></a>00142 <span class="comment"> *             factorization will reuse column permutation vector </span><a name="l00143"></a>00143 <span class="comment"> *             ScalePermstruct-&gt;perm_c and the column elimination tree</span><a name="l00144"></a>00144 <span class="comment"> *             LUstruct-&gt;etree.</span><a name="l00145"></a>00145 <span class="comment"> *        = SamePattern_SameRowPerm: The matrix A will be factorized</span><a name="l00146"></a>00146 <span class="comment"> *             assuming that a factorization of a matrix with the same</span><a name="l00147"></a>00147 <span class="comment"> *             sparsity pattern and similar numerical values was performed</span>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -