<!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/solver/dsdpcops.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_03c647d51c93e018646ff83aa2eeb169.html">solver</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">dsdpcops.c File Reference</div> </div> </div> <div class="contents"> <p>Applies conic operations to each cone in the solver. <a href="#details">More...</a></p> <p><a href="dsdpcops_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="dsdpcops_8c.html#a2435d09eb37177925e8257f7fb4d9968">DSDPAddCone</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, struct DSDPCone_Ops *dsdpops, void *dsdpcone)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Apply DSDP to a conic structure. <a href="#a2435d09eb37177925e8257f7fb4d9968"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#ab41876205bbb01b21624eeeea359c756">DSDPAddSchurRow</a> (<a class="el" href="structDSDP__C.html">DSDP</a>, int, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a row to the Schur matrix. <a href="#ab41876205bbb01b21624eeeea359c756"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#acf8889abb8bd4a4330ad4ad9e42b6164">DSDPComputeANorm2</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> Anorm2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute norm of A and C. <a href="#acf8889abb8bd4a4330ad4ad9e42b6164"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#afd320a99d5269ecd61f343355acee481">DSDPComputeG</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> vt, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> vrhs1, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> vrhs2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the gradient of the barrier for each cone. <a href="#afd320a99d5269ecd61f343355acee481"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a860f77c9f4b46f29dfaf4168ef75120e">DSDPComputeHessian</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="structDSDPSchurMat__C.html">DSDPSchurMat</a> M, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> vrhs1, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> vrhs2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the Schur complement, or Gram, matrix for each cone. <a href="#a860f77c9f4b46f29dfaf4168ef75120e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a079dccb87a854b8b7b1fba7a0790f23e">DSDPComputeLogSDeterminant</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, double *logdet)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the logarithmic barrier function for the dual varialbe S. <a href="#a079dccb87a854b8b7b1fba7a0790f23e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a4c0538bfd8916f9e72d8a01360b733f2">DSDPComputeMaxStepLength</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> DY, <a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a> flag, double *maxsteplength)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the maximum step length for the given step direction. <a href="#a4c0538bfd8916f9e72d8a01360b733f2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#ab5c9965faf6bc134628aa7dbc41089be">DSDPComputeSS</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> Y, <a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a> flag, <a class="el" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65">DSDPTruth</a> *ispsdefinite)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the dual variables S in each cone. <a href="#ab5c9965faf6bc134628aa7dbc41089be"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#ab3c99380d452c9b4eae6b74abbd2d21d">DSDPComputeXVariables</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, double xmakermu, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> xmakery, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> xmakerdy, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> AX, double *tracexs)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the X variables in each cone. <a href="#ab3c99380d452c9b4eae6b74abbd2d21d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a007c0bef8e59c8d5cad8eebf577b17fb">DSDPDestroyCones</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Each cone shoudl free its data structures. <a href="#a007c0bef8e59c8d5cad8eebf577b17fb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#aee70cfb08e59f142c96f14a9df579b5b">DSDPGetConicDimension</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, double *n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the total dimension of the cones. <a href="#aee70cfb08e59f142c96f14a9df579b5b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#aefa0b9783d36f7351415e3973412ecd2">DSDPHessianMultiplyAdd</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> v, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> vv)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add the product of Schur matrix with v. <a href="#aefa0b9783d36f7351415e3973412ecd2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#aad72524c8109b033a29d95e645cd2360">DSDPInvertS</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Invert the S variables in each cone. <a href="#aad72524c8109b033a29d95e645cd2360"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#ad6f3db49063e69ff3dd9da24edfc0027">DSDPMonitorCones</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, int tag)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This routine is called once per iteration. <a href="#ad6f3db49063e69ff3dd9da24edfc0027"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a7507c5e1a9a46d6fea30f48e9a72ab42">DSDPPassXVectors</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, double mu, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> Y, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> DY)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pass the information needed to compute the variables X in each cone but do not compute X. <a href="#a7507c5e1a9a46d6fea30f48e9a72ab42"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a0e9ca82696c63e5f43875a4d01138dc3">DSDPSchurSparsity</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, int row, int rnnz[], int m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Each cone should print its state. <a href="#a0e9ca82696c63e5f43875a4d01138dc3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a030166084dfd75e9cd9ae726817d7f6d">DSDPSetCone</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> tcone)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pass a cone to the DSDP solver. <a href="#a030166084dfd75e9cd9ae726817d7f6d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#ae0eb90aaf8b6eeb6dfc629e6c36db654">DSDPSetSchurMatOps</a> (<a class="el" href="structDSDP__C.html">DSDP</a>, struct DSDPSchurMat_Ops *, void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the Schur complement matrix. <a href="#ae0eb90aaf8b6eeb6dfc629e6c36db654"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a6e7417c73f70c5a79f2d6d7a505afe93">DSDPSetUpCones</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Each cone should factor data or allocate internal data structures. <a href="#a6e7417c73f70c5a79f2d6d7a505afe93"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#aea0bf9031c6e20e827b6ffdb9b911434">DSDPSetUpCones2</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> yy0, <a class="el" href="structDSDPSchurMat__C.html">DSDPSchurMat</a> M)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Each cone should allocate its data structures . <a href="#aea0bf9031c6e20e827b6ffdb9b911434"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcops_8c.html#a03399e755be87d0399a5d92a53c230a0">DSDPViewCones</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Each cone should print its state. <a href="#a03399e755be87d0399a5d92a53c230a0"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Applies conic operations to each cone in the solver. </p> <p>Definition in file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> </div><hr/><h2>Function Documentation</h2> <a class="anchor" id="a2435d09eb37177925e8257f7fb4d9968"></a><!-- doxytag: member="dsdpcops.c::DSDPAddCone" ref="a2435d09eb37177925e8257f7fb4d9968" args="(DSDP dsdp, struct DSDPCone_Ops *dsdpops, void *dsdpcone)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPAddCone </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct DSDPCone_Ops * </td> <td class="paramname"><em>dsdpops</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>dsdpcone</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Apply DSDP to a conic structure. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">dsdpops</td><td>address of a structure with function pointers </td></tr> <tr><td class="paramname">dsdpcone</td><td>address of a cone structure DSDP operates on cones such as the semidefinite cone and nonnegative orthant. Given variables y from the solver, each cone implements operations such as computing S, maximum step length, computing the Newton matrix, and computing the Hessian. Each operation is well defined by the dual-scaling algorithm. A cone that implements these operations can be added to the DSDP solver.</td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd>DSDPCreateSDPCone() </dd> <dd> <a class="el" href="group__LPRoutines.html#ga0d29bfae7b375bfb3bc8ccab769a4003" title="Create a new object for linear programs and scalar inequalities.">DSDPCreateLPCone()</a> </dd> <dd> <a class="el" href="group__Bounds.html#ga66c37f394d6efb45e686aed600015d09" title="Create a new cone that represents bounds on the y variables.">DSDPCreateBCone()</a></dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Add SOCP cone and application-specific cones.</dd></dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00569">569</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="allbounds_8c_source.html#l00549">DSDPAddLUBounds()</a>, <a class="el" href="dsdprescone_8c_source.html#l00302">DSDPAddRCone()</a>, <a class="el" href="sdpkcone_8c_source.html#l00331">DSDPAddSDP()</a>, <a class="el" href="dbounds_8c_source.html#l00467">DSDPCreateBCone()</a>, and <a class="el" href="dsdplp_8c_source.html#l00509">DSDPCreateLPCone()</a>.</p> </div> </div> <a class="anchor" id="ab41876205bbb01b21624eeeea359c756"></a><!-- doxytag: member="dsdpcops.c::DSDPAddSchurRow" ref="ab41876205bbb01b21624eeeea359c756" args="(DSDP, int, DSDPVec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPAddSchurRow </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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"><a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a> </td> <td class="paramname"><em>R</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a row to the Schur matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">row</td><td>corresponding to which variable y. </td></tr> <tr><td class="paramname">R</td><td>the elements of the row.</td></tr> </table> </dd> </dl> <p>This routine is called by the conic routines that compute the Hessian matrix. </p> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00622">622</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> </div> </div> <a class="anchor" id="acf8889abb8bd4a4330ad4ad9e42b6164"></a><!-- doxytag: member="dsdpcops.c::DSDPComputeANorm2" ref="acf8889abb8bd4a4330ad4ad9e42b6164" args="(DSDP dsdp, DSDPVec Anorm2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPComputeANorm2 </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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>Anorm2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute norm of A and C. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">Anorm2</td><td>norm of data corresponding to each variable y. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00246">246</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpsetup_8c_source.html#l00283">DSDPComputeDataNorms()</a>.</p> </div> </div> <a class="anchor" id="afd320a99d5269ecd61f343355acee481"></a><!-- doxytag: member="dsdpcops.c::DSDPComputeG" ref="afd320a99d5269ecd61f343355acee481" args="(DSDP dsdp, DSDPVec vt, DSDPVec vrhs1, DSDPVec vrhs2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPComputeG </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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>vt</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>vrhs1</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>vrhs2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the gradient of the barrier for each cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">vt</td><td>scaling for each element in the next two vectors </td></tr> <tr><td class="paramname">vrhs1</td><td>scaled gradient of the objective function </td></tr> <tr><td class="paramname">vrhs2</td><td>scaled gradient of the barrier function </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00215">215</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dualalg_8c_source.html#l00370">DSDPComputeDualStepDirections()</a>, and <a class="el" href="dualalg_8c_source.html#l00121">DSDPSolveDynamicRho()</a>.</p> </div> </div> <a class="anchor" id="a860f77c9f4b46f29dfaf4168ef75120e"></a><!-- doxytag: member="dsdpcops.c::DSDPComputeHessian" ref="a860f77c9f4b46f29dfaf4168ef75120e" args="(DSDP dsdp, DSDPSchurMat M, DSDPVec vrhs1, DSDPVec vrhs2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPComputeHessian </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDSDPSchurMat__C.html">DSDPSchurMat</a> </td> <td class="paramname"><em>M</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>vrhs1</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>vrhs2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the Schur complement, or Gram, matrix for each cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">M</td><td>matrix </td></tr> <tr><td class="paramname">vrhs1</td><td>gradient of objective (b) </td></tr> <tr><td class="paramname">vrhs2</td><td>gradient of barrier </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00142">142</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dualalg_8c_source.html#l00370">DSDPComputeDualStepDirections()</a>.</p> </div> </div> <a class="anchor" id="a079dccb87a854b8b7b1fba7a0790f23e"></a><!-- doxytag: member="dsdpcops.c::DSDPComputeLogSDeterminant" ref="a079dccb87a854b8b7b1fba7a0790f23e" args="(DSDP dsdp, double *logdet)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPComputeLogSDeterminant </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>logdet</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the logarithmic barrier function for the dual varialbe S. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">logdet</td><td>evaluated barrier function</td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdp_8h.html#a0866ec107b5c60afbec8a9bda9caa22d" title="Compute the dual variables S in each cone.">DSDPComputeSS()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00495">495</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dualalg_8c_source.html#l00475">DSDPInitializeVariables()</a>, <a class="el" href="dualalg_8c_source.html#l00328">DSDPResetY0()</a>, <a class="el" href="dualalg_8c_source.html#l00024">DSDPYStepLineSearch()</a>, and <a class="el" href="dualalg_8c_source.html#l00073">DSDPYStepLineSearch2()</a>.</p> </div> </div> <a class="anchor" id="a4c0538bfd8916f9e72d8a01360b733f2"></a><!-- doxytag: member="dsdpcops.c::DSDPComputeMaxStepLength" ref="a4c0538bfd8916f9e72d8a01360b733f2" args="(DSDP dsdp, DSDPVec DY, DSDPDualFactorMatrix flag, double *maxsteplength)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPComputeMaxStepLength </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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>DY</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a> </td> <td class="paramname"><em>flag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>maxsteplength</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the maximum step length for the given step direction. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">DY</td><td>step direction </td></tr> <tr><td class="paramname">flag</td><td>primal or dual structure </td></tr> <tr><td class="paramname">maxsteplength</td><td>the minumum of maximums on each cone.</td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdp_8h.html#a0866ec107b5c60afbec8a9bda9caa22d" title="Compute the dual variables S in each cone.">DSDPComputeSS()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00336">336</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dualalg_8c_source.html#l00240">DSDPChooseBarrierParameter()</a>, <a class="el" href="dualalg_8c_source.html#l00024">DSDPYStepLineSearch()</a>, and <a class="el" href="dualalg_8c_source.html#l00073">DSDPYStepLineSearch2()</a>.</p> </div> </div> <a class="anchor" id="ab5c9965faf6bc134628aa7dbc41089be"></a><!-- doxytag: member="dsdpcops.c::DSDPComputeSS" ref="ab5c9965faf6bc134628aa7dbc41089be" args="(DSDP dsdp, DSDPVec Y, DSDPDualFactorMatrix flag, DSDPTruth *ispsdefinite)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPComputeSS </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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>Y</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a> </td> <td class="paramname"><em>flag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65">DSDPTruth</a> * </td> <td class="paramname"><em>ispsdefinite</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the dual variables S in each cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">Y</td><td>variables </td></tr> <tr><td class="paramname">flag</td><td>primal or dual structure </td></tr> <tr><td class="paramname">ispsdefinite</td><td>DSDP_TRUE if a member of the cone, DSDP_FALSE otherwise. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00272">272</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dualalg_8c_source.html#l00240">DSDPChooseBarrierParameter()</a>, <a class="el" href="dualalg_8c_source.html#l00540">DSDPComputeAndFactorS()</a>, <a class="el" href="dualalg_8c_source.html#l00475">DSDPInitializeVariables()</a>, <a class="el" href="dualalg_8c_source.html#l00328">DSDPResetY0()</a>, <a class="el" href="dualalg_8c_source.html#l00121">DSDPSolveDynamicRho()</a>, <a class="el" href="dualalg_8c_source.html#l00024">DSDPYStepLineSearch()</a>, and <a class="el" href="dualalg_8c_source.html#l00073">DSDPYStepLineSearch2()</a>.</p> </div> </div> <a class="anchor" id="ab3c99380d452c9b4eae6b74abbd2d21d"></a><!-- doxytag: member="dsdpcops.c::DSDPComputeXVariables" ref="ab3c99380d452c9b4eae6b74abbd2d21d" args="(DSDP dsdp, double xmakermu, DSDPVec xmakery, DSDPVec xmakerdy, DSDPVec AX, double *tracexs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPComputeXVariables </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>xmakermu</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>xmakery</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>xmakerdy</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 class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>tracexs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the X variables in each cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">xmakermu</td><td>barrier parameter </td></tr> <tr><td class="paramname">xmakery</td><td>input y variables </td></tr> <tr><td class="paramname">xmakerdy</td><td>input step direction </td></tr> <tr><td class="paramname">AX</td><td>output product of X and the data </td></tr> <tr><td class="paramname">tracexs</td><td>ouput inner product of X and S. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00654">654</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpx_8c_source.html#l00055">DSDPComputeX()</a>.</p> </div> </div> <a class="anchor" id="a007c0bef8e59c8d5cad8eebf577b17fb"></a><!-- doxytag: member="dsdpcops.c::DSDPDestroyCones" ref="a007c0bef8e59c8d5cad8eebf577b17fb" args="(DSDP dsdp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPDestroyCones </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Each cone shoudl free its data structures. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00107">107</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpsetup_8c_source.html#l00428">DSDPTakeDown()</a>.</p> </div> </div> <a class="anchor" id="aee70cfb08e59f142c96f14a9df579b5b"></a><!-- doxytag: member="dsdpcops.c::DSDPGetConicDimension" ref="aee70cfb08e59f142c96f14a9df579b5b" args="(DSDP dsdp, double *n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPGetConicDimension </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </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>Get the total dimension of the cones. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">n</td><td>dimension </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00401">401</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpsetup_8c_source.html#l00384">DSDPCheckConvergence()</a>, <a class="el" href="dsdpsetdata_8c_source.html#l00661">DSDPGetDimension()</a>, <a class="el" href="dsdpsetup_8c_source.html#l00193">DSDPSetup()</a>, and <a class="el" href="dsdpsetup_8c_source.html#l00428">DSDPTakeDown()</a>.</p> </div> </div> <a class="anchor" id="aefa0b9783d36f7351415e3973412ecd2"></a><!-- doxytag: member="dsdpcops.c::DSDPHessianMultiplyAdd" ref="aefa0b9783d36f7351415e3973412ecd2" args="(DSDP dsdp, DSDPVec v, DSDPVec vv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPHessianMultiplyAdd </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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>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>vv</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add the product of Schur matrix with v. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">v</td><td>input vector. </td></tr> <tr><td class="paramname">vv</td><td>product gradient of barrier </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00188">188</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> </div> </div> <a class="anchor" id="aad72524c8109b033a29d95e645cd2360"></a><!-- doxytag: member="dsdpcops.c::DSDPInvertS" ref="aad72524c8109b033a29d95e645cd2360" args="(DSDP dsdp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPInvertS </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Invert the S variables in each cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver</td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdp_8h.html#a0866ec107b5c60afbec8a9bda9caa22d" title="Compute the dual variables S in each cone.">DSDPComputeSS()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00307">307</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dualalg_8c_source.html#l00370">DSDPComputeDualStepDirections()</a>, and <a class="el" href="dualalg_8c_source.html#l00121">DSDPSolveDynamicRho()</a>.</p> </div> </div> <a class="anchor" id="ad6f3db49063e69ff3dd9da24edfc0027"></a><!-- doxytag: member="dsdpcops.c::DSDPMonitorCones" ref="ad6f3db49063e69ff3dd9da24edfc0027" args="(DSDP dsdp, int tag)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPMonitorCones </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>tag</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>This routine is called once per iteration. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">tag</td><td>allow for multiple monitors</td></tr> </table> </dd> </dl> <p>The cone can print statistics, visualize data, terminate solver, or whatever it wants. </p> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00450">450</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpsetup_8c_source.html#l00384">DSDPCheckConvergence()</a>.</p> </div> </div> <a class="anchor" id="a7507c5e1a9a46d6fea30f48e9a72ab42"></a><!-- doxytag: member="dsdpcops.c::DSDPPassXVectors" ref="a7507c5e1a9a46d6fea30f48e9a72ab42" args="(DSDP dsdp, double mu, DSDPVec Y, DSDPVec DY)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPPassXVectors </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>mu</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>Y</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>DY</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pass the information needed to compute the variables X in each cone but do not compute X. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">mu</td><td>barrier parameter </td></tr> <tr><td class="paramname">Y</td><td>input y variables </td></tr> <tr><td class="paramname">DY</td><td>input step direction</td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdp_8h.html#a871c5d28852a40e2593f75e635855296" title="Compute the X variables in each cone.">DSDPComputeXVariables()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00378">378</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpx_8c_source.html#l00149">DSDPSaveYForX()</a>.</p> </div> </div> <a class="anchor" id="a0e9ca82696c63e5f43875a4d01138dc3"></a><!-- doxytag: member="dsdpcops.c::DSDPSchurSparsity" ref="a0e9ca82696c63e5f43875a4d01138dc3" args="(DSDP dsdp, int row, int rnnz[], int m)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPSchurSparsity </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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>rnnz</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>m</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Each cone should print its state. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">row</td><td>corresponding to the variable y. </td></tr> <tr><td class="paramname">rnnz</td><td>nonzeros indicate a nonzero in the Shur matrix at that column. </td></tr> <tr><td class="paramname">m</td><td>size of Schur matrix and the arrow. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00474">474</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpschurmat_8c_source.html#l00649">DSDPSparsityInSchurMat()</a>.</p> </div> </div> <a class="anchor" id="a030166084dfd75e9cd9ae726817d7f6d"></a><!-- doxytag: member="dsdpcops.c::DSDPSetCone" ref="a030166084dfd75e9cd9ae726817d7f6d" args="(DSDP dsdp, DSDPCone tcone)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPSetCone </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>tcone</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pass a cone to the DSDP solver. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">tcone</td><td>a cone object. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00522">522</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00569">DSDPAddCone()</a>.</p> </div> </div> <a class="anchor" id="ae0eb90aaf8b6eeb6dfc629e6c36db654"></a><!-- doxytag: member="dsdpcops.c::DSDPSetSchurMatOps" ref="ae0eb90aaf8b6eeb6dfc629e6c36db654" args="(DSDP, struct DSDPSchurMat_Ops *, void *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPSetSchurMatOps </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct DSDPSchurMat_Ops * </td> <td class="paramname"><em>sops</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>mdata</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the Schur complement matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">sops</td><td>address of a structure with function pointers </td></tr> <tr><td class="paramname">mdata</td><td>address of a matrix object The step direction in DSDP is the solution to a set of linear equations. The cones used by DSDP compute the elements of the matrix and the right-hand side vectors. Any matrix that implements the Schur complement matrix interface can be used by DSDP. In addition to factoring a matrix and solving it, this interface also provides matrix assembly routines for the cones.</td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdpcone__impl_8h.html#ae305676af8ca6fb9340d129b392c0f4d" title="Apply DSDP to a conic structure.">DSDPAddCone()</a></dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>Use SCALAPACK to assemble, factor, and solve the matrix in parallel.</dd></dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00602">602</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> </div> </div> <a class="anchor" id="a6e7417c73f70c5a79f2d6d7a505afe93"></a><!-- doxytag: member="dsdpcops.c::DSDPSetUpCones" ref="a6e7417c73f70c5a79f2d6d7a505afe93" args="(DSDP dsdp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPSetUpCones </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Each cone should factor data or allocate internal data structures. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00058">58</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpsetup_8c_source.html#l00193">DSDPSetup()</a>.</p> </div> </div> <a class="anchor" id="aea0bf9031c6e20e827b6ffdb9b911434"></a><!-- doxytag: member="dsdpcops.c::DSDPSetUpCones2" ref="aea0bf9031c6e20e827b6ffdb9b911434" args="(DSDP dsdp, DSDPVec yy0, DSDPSchurMat M)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPSetUpCones2 </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</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>yy0</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDSDPSchurMat__C.html">DSDPSchurMat</a> </td> <td class="paramname"><em>M</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Each cone should allocate its data structures . </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> <tr><td class="paramname">yy0</td><td>variable vector </td></tr> <tr><td class="paramname">M</td><td>Shur Matrix </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00084">84</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</a>.</p> <p>Referenced by <a class="el" href="dsdpsetup_8c_source.html#l00193">DSDPSetup()</a>.</p> </div> </div> <a class="anchor" id="a03399e755be87d0399a5d92a53c230a0"></a><!-- doxytag: member="dsdpcops.c::DSDPViewCones" ref="a03399e755be87d0399a5d92a53c230a0" args="(DSDP dsdp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPViewCones </td> <td>(</td> <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> </td> <td class="paramname"><em>dsdp</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Each cone should print its state. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">dsdp</td><td>the solver </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcops_8c_source.html#l00424">424</a> of file <a class="el" href="dsdpcops_8c_source.html">dsdpcops.c</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>