cmemory_8c.html
来自「SuperLU is a general purpose library for」· HTML 代码 · 共 1,266 行 · 第 1/4 页
HTML
1,266 行
<!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/cmemory.c File Reference</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/cmemory.c File Reference</h1>Memory details. <a href="#_details">More...</a><p><code>#include "<a class="el" href="slu__cdefs_8h-source.html">slu_cdefs.h</a>"</code><br><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Data Structures</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structe__node.html">e_node</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Headers for 4 types of dynamatically managed memory. <a href="structe__node.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structLU__stack__t.html">LU_stack_t</a></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#b9ccb8b9963ca083d7f36f5d3acc5744">NO_MEMTYPE</a> 4</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#d3754689b2ab3abc8b3afe4facdd76f3">GluIntArray</a>(n) (5 * (n) + 5)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#1ef4d4db4d5e1fe0719416163e0e51ae">StackFull</a>(x) ( x + stack.used >= stack.size )</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#c11b1c3847a3d397e9675de40782134d">NotDoubleAlign</a>(addr) ( (long int)addr & 7 )</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#c8204d321846eb4b23d563eac7e5bfa7">DoubleAlign</a>(addr) ( ((long int)addr + 7) & ~7L )</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#70ca807c578a0c495f7ce5edb0215e2b">TempSpace</a>(m, w)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#7b2a35bfd2e6c9d03e2a6ccdba9fa847">Reduce</a>(alpha) ((alpha + 1) / 2)</td></tr><tr><td colspan="2"><br><h2>Typedefs</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structe__node.html">e_node</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#c071de4d8a39e15f13c92a5f60bc16f0">ExpHeader</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Headers for 4 types of dynamatically managed memory. <a href="#c071de4d8a39e15f13c92a5f60bc16f0"></a><br></td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#3996260179c0a72397776571b4b19164">cexpand</a> (int *prev_len,<a class="el" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b2">MemType</a> type,int len_to_copy,int keep_prev,<a class="el" href="structGlobalLU__t.html">GlobalLU_t</a> *Glu)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Expand the existing storage to accommodate more fill-ins. <a href="#3996260179c0a72397776571b4b19164"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#8e7899b439da8a9689b35a1c6c07cbba">cLUWorkInit</a> (int m, int n, int panel_size, int **iworkptr, <a class="el" href="structcomplex.html">complex</a> **dworkptr, <a class="el" href="slu__util_8h.html#494fe72ce954689dd95399ea9f1d87f6">LU_space_t</a> MemModel)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate known working storage. Returns 0 if success, otherwise returns the number of bytes allocated so far when failure occurred. <a href="#8e7899b439da8a9689b35a1c6c07cbba"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#e8af819e1072d711fd22ce91c1e928fc">copy_mem_complex</a> (int, void *, void *)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#98ec5775d491718006688922903496ae">cStackCompress</a> (<a class="el" href="structGlobalLU__t.html">GlobalLU_t</a> *Glu)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Compress the work[] array to remove fragmentation. <a href="#98ec5775d491718006688922903496ae"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#8199e9c13ed74eda27ecc5bb431474fe">cSetupSpace</a> (void *work, int lwork, <a class="el" href="slu__util_8h.html#494fe72ce954689dd95399ea9f1d87f6">LU_space_t</a> *MemModel)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Setup the memory model to be used for factorization. <a href="#8199e9c13ed74eda27ecc5bb431474fe"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#b9ca5f64e3103db76c5d3621128a2dc6">cuser_malloc</a> (int, int)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#ae4f5d498c54f24e38cbd3fae2cbf54b">cuser_free</a> (int, int)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#b59eea34474da95fb3dc125400a1287e">copy_mem_int</a> (int, void *, void *)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#4c226087c09a94ff40b92b14fa46fc53">user_bcopy</a> (char *, char *, int)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#34d8cd030775d267947b68a4dacfbabb">cQuerySpace</a> (<a class="el" href="structSuperMatrix.html">SuperMatrix</a> *L, <a class="el" href="structSuperMatrix.html">SuperMatrix</a> *U, <a class="el" href="structmem__usage__t.html">mem_usage_t</a> *mem_usage)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#b9bef7482d73a3b984b2c2be02fd1ee9">cLUMemInit</a> (<a class="el" href="slu__util_8h.html#c785c8235480e5cfef9848d89c047c0a">fact_t</a> fact, void *work, int lwork, int m, int n, int annz, int panel_size, <a class="el" href="structSuperMatrix.html">SuperMatrix</a> *L, <a class="el" href="structSuperMatrix.html">SuperMatrix</a> *U, <a class="el" href="structGlobalLU__t.html">GlobalLU_t</a> *Glu, int **iwork, <a class="el" href="structcomplex.html">complex</a> **dwork)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Memory-related. <a href="#b9bef7482d73a3b984b2c2be02fd1ee9"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#ff3d90f7f22f882faf8ba0dcf68b0f9c">cSetRWork</a> (int m, int panel_size, <a class="el" href="structcomplex.html">complex</a> *dworkptr, <a class="el" href="structcomplex.html">complex</a> **dense, <a class="el" href="structcomplex.html">complex</a> **tempv)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Set up pointers for real working arrays. <a href="#ff3d90f7f22f882faf8ba0dcf68b0f9c"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#d4e33e7a64f75e058e9a8ebd479fa004">cLUWorkFree</a> (int *iwork, <a class="el" href="structcomplex.html">complex</a> *dwork, <a class="el" href="structGlobalLU__t.html">GlobalLU_t</a> *Glu)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Free the working storage used by factor routines. <a href="#d4e33e7a64f75e058e9a8ebd479fa004"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#8f2864f34ca668aeccb8298052a5c449">cLUMemXpand</a> (int jcol, int next, <a class="el" href="slu__util_8h.html#bd31f838aefffa46191d0d7dc36a96b2">MemType</a> mem_type, int *maxlen, <a class="el" href="structGlobalLU__t.html">GlobalLU_t</a> *Glu)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Expand the data structures for L and U during the factorization. <a href="#8f2864f34ca668aeccb8298052a5c449"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#d952b424acd036108ca2f5a0bd9d3739">callocateA</a> (int n, int nnz, <a class="el" href="structcomplex.html">complex</a> **a, int **asub, int **xa)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate storage for original matrix A. <a href="#d952b424acd036108ca2f5a0bd9d3739"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcomplex.html">complex</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#0af029f557e5014a2d6797436b925f53">complexMalloc</a> (int n)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcomplex.html">complex</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#1e625ecaeb259e2dd79667ffbfb816c0">complexCalloc</a> (int n)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#43ff5010762c14ea7591d23cf48403a3">cmemory_usage</a> (const int nzlmax, const int nzumax, const int nzlumax, const int n)</td></tr><tr><td colspan="2"><br><h2>Variables</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structe__node.html">ExpHeader</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#a347c71f273228bb3be403228b525b1c">expanders</a> = 0</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="structLU__stack__t.html">LU_stack_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#b8d3e2ffc5cefd244b83373a93cc692b">stack</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="cmemory_8c.html#43fb8ad35c9bf30d444e49310d43a005">no_expand</a></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2><pre> -- SuperLU routine (version 3.0) -- Univ. of California Berkeley, Xerox Palo Alto Research Center, and Lawrence Berkeley National Lab. October 15, 2003 </pre> <hr><h2>Define Documentation</h2><a class="anchor" name="c8204d321846eb4b23d563eac7e5bfa7"></a><!-- doxytag: member="cmemory.c::DoubleAlign" ref="c8204d321846eb4b23d563eac7e5bfa7" args="(addr)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define DoubleAlign </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">addr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ( ((long int)addr + 7) & ~7L )</td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p> </td> </tr></table><a class="anchor" name="d3754689b2ab3abc8b3afe4facdd76f3"></a><!-- doxytag: member="cmemory.c::GluIntArray" ref="d3754689b2ab3abc8b3afe4facdd76f3" args="(n)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define GluIntArray </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">n </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (5 * (n) + 5)</td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p> </td> </tr></table><a class="anchor" name="b9ccb8b9963ca083d7f36f5d3acc5744"></a><!-- doxytag: member="cmemory.c::NO_MEMTYPE" ref="b9ccb8b9963ca083d7f36f5d3acc5744" args="" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define NO_MEMTYPE 4 </td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p> </td> </tr></table><a class="anchor" name="c11b1c3847a3d397e9675de40782134d"></a><!-- doxytag: member="cmemory.c::NotDoubleAlign" ref="c11b1c3847a3d397e9675de40782134d" args="(addr)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define NotDoubleAlign </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">addr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ( (long int)addr & 7 )</td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p> </td> </tr></table><a class="anchor" name="7b2a35bfd2e6c9d03e2a6ccdba9fa847"></a><!-- doxytag: member="cmemory.c::Reduce" ref="7b2a35bfd2e6c9d03e2a6ccdba9fa847" args="(alpha)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define Reduce </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">alpha </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((alpha + 1) / 2)</td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p> </td> </tr></table><a class="anchor" name="1ef4d4db4d5e1fe0719416163e0e51ae"></a><!-- doxytag: member="cmemory.c::StackFull" ref="1ef4d4db4d5e1fe0719416163e0e51ae" args="(x)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define StackFull </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">x </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ( x + stack.used >= stack.size )</td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p> </td> </tr></table><a class="anchor" name="70ca807c578a0c495f7ce5edb0215e2b"></a><!-- doxytag: member="cmemory.c::TempSpace" ref="70ca807c578a0c495f7ce5edb0215e2b" args="(m, w)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define TempSpace </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">m, <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>w </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p><b>Value:</b><div class="fragment"><pre class="fragment">( (2*w + 4 + <a class="code" href="slu__util_8h.html#9b7b2a5116ee487722b0967317ab6360">NO_MARKER</a>) * m * <span class="keyword">sizeof</span>(<span class="keywordtype">int</span>) + \ (w + 1) * m * <span class="keyword">sizeof</span>(<a class="code" href="structcomplex.html">complex</a>) )</pre></div> </td> </tr></table><hr><h2>Typedef Documentation</h2><a class="anchor" name="c071de4d8a39e15f13c92a5f60bc16f0"></a><!-- doxytag: member="cmemory.c::ExpHeader" ref="c071de4d8a39e15f13c92a5f60bc16f0" args="" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">typedef struct <a class="el" href="structe__node.html">e_node</a> <a class="el" href="structe__node.html">ExpHeader</a> </td> </tr> </table> </td> </tr>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?