<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>DSDP: src/sdp/dsdpblock.c File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">DSDP</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_23046874d7fed141927c769a66d8e3a5.html">src</a> </li> <li class="navelem"><a class="el" href="dir_2c21778722bc8593635d5ebd154ac3f7.html">sdp</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">dsdpblock.c File Reference</div> </div> </div> <div class="contents"> <p>Operations on a single SDP block. <a href="#details">More...</a></p> <p><a href="dsdpblock_8c_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a7126f9cb8f818e6f1e04db14ae2b16e8">DSDPBlockAddDataMatrix</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int vari, struct <a class="el" href="structDSDPDataMat__Ops.html">DSDPDataMat_Ops</a> *dsdpdataops, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add data matrix into SDP block. <a href="#a7126f9cb8f818e6f1e04db14ae2b16e8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#ad44dbf8c3e12441b64fb7725fc6be04e">DSDPBlockADot</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, double aa, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> Alpha, <a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> X, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> AX)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute inner product of XX with data matrices. <a href="#ad44dbf8c3e12441b64fb7725fc6be04e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a8142db7eef0f4770bf79e05a81b01401">DSDPBlockASum</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, double aa, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> Yk, <a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> XX)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sum the data matrices. <a href="#a8142db7eef0f4770bf79e05a81b01401"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#aa48f55168b6780852229dea20c3f1d38">DSDPBlockCountNonzeroMatrices</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int *nzmats)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Count how many data matrices are in a block of data. <a href="#aa48f55168b6780852229dea20c3f1d38"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a3736c54bd0e831664e9aa7e2130a0766">DSDPBlockDataAllocate</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int nnz)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate some structures. <a href="#a3736c54bd0e831664e9aa7e2130a0766"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a308bb1d9ec0ec39af374e457934552dd">DSDPBlockDataDestroy</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free the data matrices. <a href="#a308bb1d9ec0ec39af374e457934552dd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a45c16dcc217a9865cbe223bcf7b4d603">DSDPBlockDataInitialize</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set pointers to null. <a href="#a45c16dcc217a9865cbe223bcf7b4d603"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a5b2d38845e4f571e1ca58e7c17e9a593">DSDPBlockDataMarkNonzeroMatrices</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int *annz)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Mark which variable in block have a data matrix. <a href="#a5b2d38845e4f571e1ca58e7c17e9a593"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#abab8c90bad79318ce63becb3b16239ca">DSDPBlockDataRowSparsity</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int row, int ai[], int rnnz[], int n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine sparsity pattern of data. <a href="#abab8c90bad79318ce63becb3b16239ca"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#acc8cf4482d76bba62bf861f2d2296a78">DSDPBlockFactorData</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, <a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> X, <a class="el" href="structSDPConeVec__C.html">SDPConeVec</a> W)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Factor the data matrices. <a href="#acc8cf4482d76bba62bf861f2d2296a78"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a4154d7692828019b8f2d0f407310188c">DSDPBlockGetMatrix</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int id, int *vari, double *scl, <a class="el" href="structDSDPDataMat__C.html">DSDPDataMat</a> *A)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a data matrix from a block of data. <a href="#a4154d7692828019b8f2d0f407310188c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a94bf6be698a84670ba680739a105657b">DSDPBlockRemoveDataMatrix</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int vari)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove a data matrix. <a href="#a94bf6be698a84670ba680739a105657b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a74777e0932680acbfab564073be288fe">DSDPBlockSetDataMatrix</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, int vari, struct <a class="el" href="structDSDPDataMat__Ops.html">DSDPDataMat_Ops</a> *dsdpdataops, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set data matrix into SDP block. <a href="#a74777e0932680acbfab564073be288fe"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#afe404f36fc31fa861ff1100777171941">DSDPBlockTakeDownData</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free structures in block of data. <a href="#afe404f36fc31fa861ff1100777171941"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#ac40c42f8b658e8913c9e983443a7f86b">DSDPBlockvAv</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA, double aa, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> Alpha, <a class="el" href="structSDPConeVec__C.html">SDPConeVec</a> V, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> VAV)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set VAV[i] to aa * Alpha[i] * V' A[i] V. <a href="#ac40c42f8b658e8913c9e983443a7f86b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#adca5f2068d4515779b89111ef9adf7d4">DSDPBlockView</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print the structure of the block. <a href="#adca5f2068d4515779b89111ef9adf7d4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a2e067fba7b5ec294fff7f3daae5167de">DSDPBlockView2</a> (<a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> *ADATA)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print the data. <a href="#a2e067fba7b5ec294fff7f3daae5167de"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpblock_8c.html#a208f2d363a32877ae6ed1411889d1f13">DSDPDataMatCheck</a> (<a class="el" href="structDSDPDataMat__C.html">DSDPDataMat</a> AA, <a class="el" href="structSDPConeVec__C.html">SDPConeVec</a> W, DSDPIndex IS, <a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> XX)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Check correctness of operations on the data. <a href="#a208f2d363a32877ae6ed1411889d1f13"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Operations on a single SDP block. </p> <p>Definition in file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> </div><hr/><h2>Function Documentation</h2> <a class="anchor" id="a7126f9cb8f818e6f1e04db14ae2b16e8"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockAddDataMatrix" ref="a7126f9cb8f818e6f1e04db14ae2b16e8" args="(DSDPBlockData *ADATA, int vari, struct DSDPDataMat_Ops *dsdpdataops, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockAddDataMatrix </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>vari</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structDSDPDataMat__Ops.html">DSDPDataMat_Ops</a> * </td> <td class="paramname"><em>dsdpdataops</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add data matrix into SDP block. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">vari</td><td>the variable to which the matrix corresponds. </td></tr> <tr><td class="paramname">dsdpdataops</td><td>function pointers </td></tr> <tr><td class="paramname">data</td><td>opaque pointer to matrix. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00381">381</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpblock_8c_source.html#l00406">DSDPBlockSetDataMatrix()</a>, and <a class="el" href="dsdpadddata_8c_source.html#l00154">SDPConeAddDataMatrix()</a>.</p> </div> </div> <a class="anchor" id="ad44dbf8c3e12441b64fb7725fc6be04e"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockADot" ref="ad44dbf8c3e12441b64fb7725fc6be04e" args="(DSDPBlockData *ADATA, double aa, DSDPVec Alpha, DSDPVMat X, DSDPVec AX)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockADot </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>aa</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> </td> <td class="paramname"><em>Alpha</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> </td> <td class="paramname"><em>X</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> </td> <td class="paramname"><em>AX</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute inner product of XX with data matrices. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">aa</td><td>scalar </td></tr> <tr><td class="paramname">Alpha</td><td>scalar. </td></tr> <tr><td class="paramname">X</td><td>Dense symmetric matrix </td></tr> <tr><td class="paramname">AX</td><td>Set AX[i] to aa * Alpha[i] * Dot( A[i] * X) </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00049">49</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="sdpcone_8c_source.html#l00075">SDPConeAddADotX()</a>, <a class="el" href="sdpcompute_8c_source.html#l00030">SDPConeComputeHessian()</a>, <a class="el" href="sdpcompute_8c_source.html#l00125">SDPConeComputeRHS()</a>, and <a class="el" href="sdpcone_8c_source.html#l00111">SDPConeComputeXDot()</a>.</p> </div> </div> <a class="anchor" id="a8142db7eef0f4770bf79e05a81b01401"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockASum" ref="a8142db7eef0f4770bf79e05a81b01401" args="(DSDPBlockData *ADATA, double aa, DSDPVec Yk, DSDPVMat XX)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockASum </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>aa</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> </td> <td class="paramname"><em>Yk</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> </td> <td class="paramname"><em>XX</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Sum the data matrices. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">aa</td><td>scalar </td></tr> <tr><td class="paramname">Yk</td><td>scalar. </td></tr> <tr><td class="paramname">XX</td><td>equals aa * sum ( YK[i]* A[i] ) </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00020">20</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="sdpcone_8c_source.html#l00018">SDPConeComputeSS()</a>, and <a class="el" href="sdpcompute_8c_source.html#l00182">SDPConeMultiply()</a>.</p> </div> </div> <a class="anchor" id="aa48f55168b6780852229dea20c3f1d38"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockCountNonzeroMatrices" ref="aa48f55168b6780852229dea20c3f1d38" args="(DSDPBlockData *ADATA, int *nzmats)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockCountNonzeroMatrices </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>nzmats</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Count how many data matrices are in a block of data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">nzmats</td><td>set to number of nonzero matrices. Numbers from 0 to this number can be used as a matrix id in <a class="el" href="dsdpblock_8c.html#a4154d7692828019b8f2d0f407310188c" title="Get a data matrix from a block of data.">DSDPBlockGetMatrix()</a> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00272">272</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="sdpconesetup_8c_source.html#l00036">DSDPDataTransposeSetup()</a>, <a class="el" href="dsdpadddata_8c_source.html#l00692">SDPConeCheckData()</a>, <a class="el" href="sdpcompute_8c_source.html#l00125">SDPConeComputeRHS()</a>, <a class="el" href="sdpcompute_8c_source.html#l00235">SDPConeComputeXX()</a>, <a class="el" href="sdpcompute_8c_source.html#l00182">SDPConeMultiply()</a>, <a class="el" href="dsdpadddata_8c_source.html#l00657">SDPConeView3()</a>, and <a class="el" href="dsdpadddata_8c_source.html#l00205">SDPConeViewDataMatrix()</a>.</p> </div> </div> <a class="anchor" id="a3736c54bd0e831664e9aa7e2130a0766"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockDataAllocate" ref="a3736c54bd0e831664e9aa7e2130a0766" args="(DSDPBlockData *ADATA, int nnz)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockDataAllocate </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nnz</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Allocate some structures. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">nnz</td><td>number of data matrices to allocate space </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00221">221</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpblock_8c_source.html#l00381">DSDPBlockAddDataMatrix()</a>, and <a class="el" href="dsdpadddata_8c_source.html#l00596">SDPConeSetSparsity()</a>.</p> </div> </div> <a class="anchor" id="a308bb1d9ec0ec39af374e457934552dd"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockDataDestroy" ref="a308bb1d9ec0ec39af374e457934552dd" args="(DSDPBlockData *ADATA)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockDataDestroy </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free the data matrices. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00195">195</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="sdpconesetup_8c_source.html#l00350">SDPConeDestroy()</a>.</p> </div> </div> <a class="anchor" id="a45c16dcc217a9865cbe223bcf7b4d603"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockDataInitialize" ref="a45c16dcc217a9865cbe223bcf7b4d603" args="(DSDPBlockData *ADATA)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockDataInitialize </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set pointers to null. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00163">163</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpblock_8c_source.html#l00195">DSDPBlockDataDestroy()</a>, and <a class="el" href="sdpconesetup_8c_source.html#l00279">DSDPBlockInitialize()</a>.</p> </div> </div> <a class="anchor" id="a5b2d38845e4f571e1ca58e7c17e9a593"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockDataMarkNonzeroMatrices" ref="a5b2d38845e4f571e1ca58e7c17e9a593" args="(DSDPBlockData *ADATA, int *annz)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockDataMarkNonzeroMatrices </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>annz</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Mark which variable in block have a data matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">annz</td><td>array of integers to mark. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00254">254</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="sdpconesetup_8c_source.html#l00036">DSDPDataTransposeSetup()</a>.</p> </div> </div> <a class="anchor" id="abab8c90bad79318ce63becb3b16239ca"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockDataRowSparsity" ref="abab8c90bad79318ce63becb3b16239ca" args="(DSDPBlockData *ADATA, int row, int ai[], int rnnz[], int n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockDataRowSparsity </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>row</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>ai</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>rnnz</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Determine sparsity pattern of data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">row</td><td>from 0 to n. </td></tr> <tr><td class="paramname">ai</td><td>(input) array of ones and zeros that identify which data matrices to check. </td></tr> <tr><td class="paramname">rnnz</td><td>(output) array of length m where nonzeros indicate nonzero data. </td></tr> <tr><td class="paramname">n</td><td>dimension of block. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00330">330</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> </div> </div> <a class="anchor" id="acc8cf4482d76bba62bf861f2d2296a78"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockFactorData" ref="acc8cf4482d76bba62bf861f2d2296a78" args="(DSDPBlockData *ADATA, DSDPVMat X, SDPConeVec W)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockFactorData </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> </td> <td class="paramname"><em>X</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSDPConeVec__C.html">SDPConeVec</a> </td> <td class="paramname"><em>W</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Factor the data matrices. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">X</td><td>work array </td></tr> <tr><td class="paramname">W</td><td>Work vector </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00113">113</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="sdpconesetup_8c_source.html#l00154">DSDPBlockSetup()</a>.</p> </div> </div> <a class="anchor" id="a4154d7692828019b8f2d0f407310188c"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockGetMatrix" ref="a4154d7692828019b8f2d0f407310188c" args="(DSDPBlockData *ADATA, int id, int *vari, double *scl, DSDPDataMat *A)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockGetMatrix </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>vari</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>scl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDSDPDataMat__C.html">DSDPDataMat</a> * </td> <td class="paramname"><em>A</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a data matrix from a block of data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">id</td><td>identfier of the matrices, numbered consecutively from 0. </td></tr> <tr><td class="paramname">vari</td><td>set to variable number corresponding to A. </td></tr> <tr><td class="paramname">scl</td><td>scaling </td></tr> <tr><td class="paramname">A</td><td>data matrix. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00307">307</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpblock_8c_source.html#l00113">DSDPBlockFactorData()</a>, <a class="el" href="sdpconesetup_8c_source.html#l00036">DSDPDataTransposeSetup()</a>, <a class="el" href="dsdpadddata_8c_source.html#l00692">SDPConeCheckData()</a>, <a class="el" href="sdpcompute_8c_source.html#l00030">SDPConeComputeHessian()</a>, <a class="el" href="sdpcompute_8c_source.html#l00125">SDPConeComputeRHS()</a>, <a class="el" href="sdpcompute_8c_source.html#l00235">SDPConeComputeXX()</a>, <a class="el" href="sdpcompute_8c_source.html#l00182">SDPConeMultiply()</a>, and <a class="el" href="dsdpadddata_8c_source.html#l00205">SDPConeViewDataMatrix()</a>.</p> </div> </div> <a class="anchor" id="a94bf6be698a84670ba680739a105657b"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockRemoveDataMatrix" ref="a94bf6be698a84670ba680739a105657b" args="(DSDPBlockData *ADATA, int vari)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockRemoveDataMatrix </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>vari</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Remove a data matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">vari</td><td>variable corresponding the matrix. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00351">351</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpblock_8c_source.html#l00406">DSDPBlockSetDataMatrix()</a>, <a class="el" href="dsdpadddata_8c_source.html#l00127">SDPConeRemoveDataMatrix()</a>, and <a class="el" href="dsdpadddata_8c_source.html#l00181">SDPConeSetRMatrix()</a>.</p> </div> </div> <a class="anchor" id="a74777e0932680acbfab564073be288fe"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockSetDataMatrix" ref="a74777e0932680acbfab564073be288fe" args="(DSDPBlockData *ADATA, int vari, struct DSDPDataMat_Ops *dsdpdataops, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockSetDataMatrix </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>vari</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structDSDPDataMat__Ops.html">DSDPDataMat_Ops</a> * </td> <td class="paramname"><em>dsdpdataops</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>data</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set data matrix into SDP block. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">vari</td><td>the variable to which the matrix corresponds. </td></tr> <tr><td class="paramname">dsdpdataops</td><td>function pointers </td></tr> <tr><td class="paramname">data</td><td>opaque pointer to matrix. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00406">406</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpadddata_8c_source.html#l00181">SDPConeSetRMatrix()</a>.</p> </div> </div> <a class="anchor" id="afe404f36fc31fa861ff1100777171941"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockTakeDownData" ref="afe404f36fc31fa861ff1100777171941" args="(DSDPBlockData *ADATA)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockTakeDownData </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free structures in block of data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00182">182</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpblock_8c_source.html#l00195">DSDPBlockDataDestroy()</a>, and <a class="el" href="sdpconesetup_8c_source.html#l00305">DSDPBlockTakeDown()</a>.</p> </div> </div> <a class="anchor" id="ac40c42f8b658e8913c9e983443a7f86b"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockvAv" ref="ac40c42f8b658e8913c9e983443a7f86b" args="(DSDPBlockData *ADATA, double aa, DSDPVec Alpha, SDPConeVec V, DSDPVec VAV)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int int DSDPBlockvAv </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>aa</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> </td> <td class="paramname"><em>Alpha</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSDPConeVec__C.html">SDPConeVec</a> </td> <td class="paramname"><em>V</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> </td> <td class="paramname"><em>VAV</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set VAV[i] to aa * Alpha[i] * V' A[i] V. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> <tr><td class="paramname">aa</td><td>scalar </td></tr> <tr><td class="paramname">Alpha</td><td>scalar. </td></tr> <tr><td class="paramname">V</td><td>vecotr </td></tr> <tr><td class="paramname">VAV</td><td>the product </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00084">84</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="sdpcone_8c_source.html#l00292">SDPConeAddXVAV()</a>, and <a class="el" href="sdpcompute_8c_source.html#l00030">SDPConeComputeHessian()</a>.</p> </div> </div> <a class="anchor" id="adca5f2068d4515779b89111ef9adf7d4"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockView" ref="adca5f2068d4515779b89111ef9adf7d4" args="(DSDPBlockData *ADATA)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockView </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Print the structure of the block. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00454">454</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpadddata_8c_source.html#l00617">SDPConeView()</a>.</p> </div> </div> <a class="anchor" id="a2e067fba7b5ec294fff7f3daae5167de"></a><!-- doxytag: member="dsdpblock.c::DSDPBlockView2" ref="a2e067fba7b5ec294fff7f3daae5167de" args="(DSDPBlockData *ADATA)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPBlockView2 </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPBlockData.html">DSDPBlockData</a> * </td> <td class="paramname"><em>ADATA</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Print the data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">ADATA</td><td>block of data. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00474">474</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpadddata_8c_source.html#l00637">SDPConeView2()</a>.</p> </div> </div> <a class="anchor" id="a208f2d363a32877ae6ed1411889d1f13"></a><!-- doxytag: member="dsdpblock.c::DSDPDataMatCheck" ref="a208f2d363a32877ae6ed1411889d1f13" args="(DSDPDataMat AA, SDPConeVec W, DSDPIndex IS, DSDPVMat XX)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPDataMatCheck </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDPDataMat__C.html">DSDPDataMat</a> </td> <td class="paramname"><em>AA</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSDPConeVec__C.html">SDPConeVec</a> </td> <td class="paramname"><em>W</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">DSDPIndex </td> <td class="paramname"><em>IS</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDSDPVMat__C.html">DSDPVMat</a> </td> <td class="paramname"><em>XX</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Check correctness of operations on the data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">AA</td><td>data matrix. </td></tr> <tr><td class="paramname">W</td><td>work vector </td></tr> <tr><td class="paramname">IS</td><td>work array </td></tr> <tr><td class="paramname">XX</td><td>work array </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpblock_8c_source.html#l00498">498</a> of file <a class="el" href="dsdpblock_8c_source.html">dsdpblock.c</a>.</p> <p>Referenced by <a class="el" href="dsdpadddata_8c_source.html#l00692">SDPConeCheckData()</a>.</p> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Wed Jun 8 2011 for DSDP by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>