supermatrix_8h-source.html
来自「SuperLU is a general purpose library for」· HTML 代码 · 共 202 行 · 第 1/2 页
HTML
202 行
<!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/supermatrix.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/supermatrix.h</h1><a href="supermatrix_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <a name="l00004"></a>00004 <span class="preprocessor">#ifndef __SUPERLU_SUPERMATRIX </span><span class="comment">/* allow multiple inclusions */</span><a name="l00005"></a>00005 <span class="preprocessor">#define __SUPERLU_SUPERMATRIX</span><a name="l00006"></a>00006 <span class="preprocessor"></span><a name="l00007"></a>00007 <a name="l00008"></a>00008 <span class="comment">/********************************************</span><a name="l00009"></a>00009 <span class="comment"> * The matrix types are defined as follows. *</span><a name="l00010"></a>00010 <span class="comment"> ********************************************/</span><a name="l00011"></a><a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b8796">00011</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a name="l00012"></a>00012 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b87960993c31a9ba98c523bfab0d759c1a628">SLU_NC</a>, <span class="comment">/* column-wise, no supernode */</span><a name="l00013"></a>00013 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b879625e4eb65ac258dadb9abccd65337cfe4">SLU_NCP</a>, <span class="comment">/* column-wise, column-permuted, no supernode </span><a name="l00014"></a>00014 <span class="comment"> (The consecutive columns of nonzeros, after permutation,</span><a name="l00015"></a>00015 <span class="comment"> may not be stored contiguously.) */</span><a name="l00016"></a>00016 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b8796ac74fbf90a105db9be6795b5be9221ca">SLU_NR</a>, <span class="comment">/* row-wize, no supernode */</span><a name="l00017"></a>00017 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b879679d0f76e80f9b57ebdab6a0c76720462">SLU_SC</a>, <span class="comment">/* column-wise, supernode */</span><a name="l00018"></a>00018 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b879635ab293720f39593ceff43e8989f4de6">SLU_SCP</a>, <span class="comment">/* supernode, column-wise, permuted */</span> <a name="l00019"></a>00019 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b87969677060bfc0641fb53defdb70caa8cf5">SLU_SR</a>, <span class="comment">/* row-wise, supernode */</span><a name="l00020"></a>00020 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b8796a59ca236b51fe0c7bd7c80c70e345768">SLU_DN</a>, <span class="comment">/* Fortran style column-wise storage for dense matrix */</span><a name="l00021"></a>00021 <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b8796b96ddd65efd6342d0ac532bb47eb39a0">SLU_NR_loc</a> <span class="comment">/* distributed compressed row format */</span> <a name="l00022"></a>00022 } <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b8796">Stype_t</a>;<a name="l00023"></a>00023 <a name="l00024"></a><a class="code" href="supermatrix_8h.html#7987cb2a28ec879b39a90e9e48e29190">00024</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a name="l00025"></a>00025 <a class="code" href="supermatrix_8h.html#7987cb2a28ec879b39a90e9e48e291900da7fdd394e36c76e7aa215d6a79162d">SLU_S</a>, <span class="comment">/* single */</span><a name="l00026"></a>00026 <a class="code" href="supermatrix_8h.html#7987cb2a28ec879b39a90e9e48e29190b5c3b3a455e3b3a64d805d76f19ac6dc">SLU_D</a>, <span class="comment">/* double */</span><a name="l00027"></a>00027 <a class="code" href="supermatrix_8h.html#7987cb2a28ec879b39a90e9e48e291901b589b5f96dbc8619450aacc22d0bf39">SLU_C</a>, <span class="comment">/* single complex */</span><a name="l00028"></a>00028 <a class="code" href="supermatrix_8h.html#7987cb2a28ec879b39a90e9e48e291901ace1e51c238b13622aaa733ef3b2a47">SLU_Z</a> <span class="comment">/* double complex */</span><a name="l00029"></a>00029 } <a class="code" href="supermatrix_8h.html#7987cb2a28ec879b39a90e9e48e29190">Dtype_t</a>;<a name="l00030"></a>00030 <a name="l00031"></a><a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60">00031</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {<a name="l00032"></a>00032 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60ea9ef3cae331a60a4bcc353bb57ad5db">SLU_GE</a>, <span class="comment">/* general */</span><a name="l00033"></a>00033 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60fee10f9836531b012b1b80cf36355b67">SLU_TRLU</a>, <span class="comment">/* lower triangular, unit diagonal */</span><a name="l00034"></a>00034 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d600c7113548d3d5a292cb2265477436ad7">SLU_TRUU</a>, <span class="comment">/* upper triangular, unit diagonal */</span><a name="l00035"></a>00035 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d604defa99d9ff8ed4af7a92547b3faf9fb">SLU_TRL</a>, <span class="comment">/* lower triangular */</span><a name="l00036"></a>00036 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60a9aea83e745716e0da54d738feb19cba">SLU_TRU</a>, <span class="comment">/* upper triangular */</span><a name="l00037"></a>00037 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d6091b9ee4e608cb7c7cf7572703fbd3506">SLU_SYL</a>, <span class="comment">/* symmetric, store lower half */</span><a name="l00038"></a>00038 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d600d509f1e8285653c36f81b10626fb747">SLU_SYU</a>, <span class="comment">/* symmetric, store upper half */</span><a name="l00039"></a>00039 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60bba0b28718f648302d6f710d7d66d1fb">SLU_HEL</a>, <span class="comment">/* Hermitian, store lower half */</span><a name="l00040"></a>00040 <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60bada9d0add93fd4fbe17b9d6758d38f8">SLU_HEU</a> <span class="comment">/* Hermitian, store upper half */</span><a name="l00041"></a>00041 } <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60">Mtype_t</a>;<a name="l00042"></a>00042 <a name="l00043"></a><a class="code" href="structSuperMatrix.html">00043</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{<a name="l00044"></a><a class="code" href="structSuperMatrix.html#b37e181824f50a405272451afc399952">00044</a> <a class="code" href="supermatrix_8h.html#9d2ddedeb2a3d92e950811c61d0b8796">Stype_t</a> Stype; <span class="comment">/* Storage type: interprets the storage structure </span><a name="l00045"></a>00045 <span class="comment"> pointed to by *Store. */</span><a name="l00046"></a><a class="code" href="structSuperMatrix.html#edd4bd451819549620b49076a62dfdcc">00046</a> <a class="code" href="supermatrix_8h.html#7987cb2a28ec879b39a90e9e48e29190">Dtype_t</a> Dtype; <span class="comment">/* Data type. */</span><a name="l00047"></a><a class="code" href="structSuperMatrix.html#42877db0cfad1033374474f48e4b3fc4">00047</a> <a class="code" href="supermatrix_8h.html#5962adac634f3feebe487ad443802d60">Mtype_t</a> Mtype; <span class="comment">/* Matrix type: describes the mathematical property of </span><a name="l00048"></a>00048 <span class="comment"> the matrix. */</span><a name="l00049"></a><a class="code" href="structSuperMatrix.html#b1d854b814f0757e7ff7e0da01c6ef43">00049</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> nrow; <span class="comment">/* number of rows */</span><a name="l00050"></a><a class="code" href="structSuperMatrix.html#b8b85bf206c36ebc2223cc2ec6acbe8c">00050</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> ncol; <span class="comment">/* number of columns */</span><a name="l00051"></a><a class="code" href="structSuperMatrix.html#73ebca1b46bb24536226b9378e01c5b5">00051</a> <span class="keywordtype">void</span> *Store; <span class="comment">/* pointer to the actual storage of the matrix */</span><a name="l00052"></a>00052 } <a class="code" href="structSuperMatrix.html">SuperMatrix</a>;<a name="l00053"></a>00053 <a name="l00054"></a>00054 <span class="comment">/***********************************************</span><a name="l00055"></a>00055 <span class="comment"> * The storage schemes are defined as follows. *</span><a name="l00056"></a>00056 <span class="comment"> ***********************************************/</span><a name="l00057"></a>00057 <a name="l00058"></a>00058 <span class="comment">/* Stype == SLU_NC (Also known as Harwell-Boeing sparse matrix format) */</span><a name="l00059"></a><a class="code" href="structNCformat.html">00059</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{<a name="l00060"></a><a class="code" href="structNCformat.html#ffa2566dd89ea8ce6422f788887b5b27">00060</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> nnz; <span class="comment">/* number of nonzeros in the matrix */</span><a name="l00061"></a><a class="code" href="structNCformat.html#a3e85810bb190b7359d8aaa956a64e64">00061</a> <span class="keywordtype">void</span> *nzval; <span class="comment">/* pointer to array of nonzero values, packed by column */</span><a name="l00062"></a><a class="code" href="structNCformat.html#16eb8492bb5694035ef3e620ea8c77b1">00062</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *rowind; <span class="comment">/* pointer to array of row indices of the nonzeros */</span><a name="l00063"></a><a class="code" href="structNCformat.html#881f460e39f34bbbf70909b6b0629adc">00063</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *colptr; <span class="comment">/* pointer to array of beginning of columns in nzval[] </span><a name="l00064"></a>00064 <span class="comment"> and rowind[] */</span><a name="l00065"></a>00065 <span class="comment">/* Note:</span><a name="l00066"></a>00066 <span class="comment"> Zero-based indexing is used;</span><a name="l00067"></a>00067 <span class="comment"> colptr[] has ncol+1 entries, the last one pointing</span><a name="l00068"></a>00068 <span class="comment"> beyond the last column, so that colptr[ncol] = nnz. */</span><a name="l00069"></a>00069 } <a class="code" href="structNCformat.html">NCformat</a>;<a name="l00070"></a>00070 <a name="l00071"></a>00071 <span class="comment">/* Stype == SLU_NR */</span><a name="l00072"></a><a class="code" href="structNRformat.html">00072</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{<a name="l00073"></a><a class="code" href="structNRformat.html#e3652d6a08cf47208db6abbd162bdee2">00073</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> nnz; <span class="comment">/* number of nonzeros in the matrix */</span><a name="l00074"></a><a class="code" href="structNRformat.html#3933d6611dc87efede947b08ea8d83f2">00074</a> <span class="keywordtype">void</span> *nzval; <span class="comment">/* pointer to array of nonzero values, packed by raw */</span><a name="l00075"></a><a class="code" href="structNRformat.html#25b76fc1f79b314a99c1e8f8522d77af">00075</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *colind; <span class="comment">/* pointer to array of columns indices of the nonzeros */</span><a name="l00076"></a><a class="code" href="structNRformat.html#552302eb293088d4b7040f487b430ba7">00076</a> <a class="code" href="slu__cdefs_8h.html#b6fd6105e64ed14a0c9281326f05e623">int_t</a> *rowptr; <span class="comment">/* pointer to array of beginning of rows in nzval[] </span><a name="l00077"></a>00077 <span class="comment"> and colind[] */</span><a name="l00078"></a>00078 <span class="comment">/* Note:</span><a name="l00079"></a>00079 <span class="comment"> Zero-based indexing is used;</span><a name="l00080"></a>00080 <span class="comment"> rowptr[] has nrow+1 entries, the last one pointing</span><a name="l00081"></a>00081 <span class="comment"> beyond the last row, so that rowptr[nrow] = nnz. */</span><a name="l00082"></a>00082 } <a class="code" href="structNRformat.html">NRformat</a>;<a name="l00083"></a>00083 <a name="l00084"></a>00084 <span class="comment">/* Stype == SLU_SC */</span><a name="l00085"></a><a class="code" href="structSCformat.html">00085</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?