<!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/dsdpcone.h 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="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">dsdpcone.h File Reference</div> </div> </div> <div class="contents"> <p>The public interface between the cones and the solver. <a href="#details">More...</a></p> <p><a href="dsdpcone_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct DSDPCone_C </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This object holds the data of a SDP, LP, or other cone. Its structure is opaque to the DSDP Solver, but it must implement the interface below and provide a structure of function pointers. <a href="#a635fc48fba0ec5edb9b23bd57aadb1e1"></a><br/></td></tr> <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="dsdpcone_8h.html#ad07445aa1e62ad491b95280bdccd82ca">DSDPConeANorm2</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add square of 2-norm of data correponding to each variable y. <a href="#ad07445aa1e62ad491b95280bdccd82ca"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a49145120bcef4810adbfbc4246ca37aa">DSDPConeComputeHessian</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, double, <a class="el" href="structDSDPSchurMat__C.html">DSDPSchurMat</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute Hessian and gradient of barrier function. <a href="#a49145120bcef4810adbfbc4246ca37aa"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#aa98f51d173b57e43d1a97198f5a26c2a">DSDPConeComputeLogSDeterminant</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, double *, double *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Evaluate logrithmic barrier function. <a href="#aa98f51d173b57e43d1a97198f5a26c2a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#acc327af027a77aa7d924b9974e5a3620">DSDPConeComputeMaxStepLength</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a>, double *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine distance to the edge of the cone. <a href="#acc327af027a77aa7d924b9974e5a3620"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a6c146a9edd67495742945f8510df9291">DSDPConeComputeRHS</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, double, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute gradient of barrier function. <a href="#a6c146a9edd67495742945f8510df9291"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a592b13c0d47de855dd6595e4bc0bfc2c">DSDPConeComputeS</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a>, <a class="el" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65">DSDPTruth</a> *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given y, compute S and determine whether its in the cone. <a href="#a592b13c0d47de855dd6595e4bc0bfc2c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a8dc04fee8a2283c27399db098fe8d189">DSDPConeComputeX</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, double, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, double *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Given y,dy, and mu, construct X and add its inner product with the data and S. <a href="#a8dc04fee8a2283c27399db098fe8d189"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a166cb6e08acee23f62b1cc7a73711bdf">DSDPConeDestroy</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free the internal memory of the cone. <a href="#a166cb6e08acee23f62b1cc7a73711bdf"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#aa9f368dde0884b83e829d032fa14b4ee">DSDPConeGetDimension</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, double *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provide the dimension of the cone. <a href="#aa9f368dde0884b83e829d032fa14b4ee"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#aaad1e0d0532f8aef93ffab1d6c5e4058">DSDPConeInitialize</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the pointers to 0. <a href="#aaad1e0d0532f8aef93ffab1d6c5e4058"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a1e54269e513d8b24042d534d5da3ded2">DSDPConeInvertS</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Invert the dual matrix S. <a href="#a1e54269e513d8b24042d534d5da3ded2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#ac57dc15d70a812f3a2332d5dc9d8b137">DSDPConeMonitor</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, int)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Do anything at in the cone at each iteration. <a href="#ac57dc15d70a812f3a2332d5dc9d8b137"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#aabd067915e91d346ed8d5b01b1a6bdc1">DSDPConeMultiplyAdd</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, double, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply Hessian by a vector and add the result. <a href="#aabd067915e91d346ed8d5b01b1a6bdc1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a073ebe136767091d83d4fa2c5b992cf8">DSDPConeSetData</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> *, struct DSDPCone_Ops *, void *)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the pointers to 0. <a href="#a073ebe136767091d83d4fa2c5b992cf8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a7ec7799a19b23027131c33d498602941">DSDPConeSetUp</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Factor the data and allocate data structures. <a href="#a7ec7799a19b23027131c33d498602941"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a181349b08c203b493ded2cb6de8897a8">DSDPConeSetUp2</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="structDSDPSchurMat__C.html">DSDPSchurMat</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Factor the data and allocate data structures. <a href="#a181349b08c203b493ded2cb6de8897a8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#adb36f7523951f8164b00f8374ec175e0">DSDPConeSetXMaker</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, double, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>, <a class="el" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9">DSDPVec</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pass information needed to construct X. <a href="#adb36f7523951f8164b00f8374ec175e0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a8bbc97b1d6ab25b35c5818ab52c9afe9">DSDPConeSparsityInSchurMat</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, int, int[], int)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Identify sparsity pattern in a row of the Hessian term. <a href="#a8bbc97b1d6ab25b35c5818ab52c9afe9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a1bf79645f43ecdb30a84add27e51e165">DSDPConeView</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">View contents of the cone. <a href="#a1bf79645f43ecdb30a84add27e51e165"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpcone_8h.html#a7cd9b87b0e700050fda2f3c8f942e419">DSDPGetConeName</a> (<a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a>, char *, int)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get name of the cone. <a href="#a7cd9b87b0e700050fda2f3c8f942e419"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>The public interface between the cones and the solver. </p> <p>Definition in file <a class="el" href="dsdpcone_8h_source.html">dsdpcone.h</a>.</p> </div><hr/><h2>Typedef Documentation</h2> <a class="anchor" id="a635fc48fba0ec5edb9b23bd57aadb1e1"></a><!-- doxytag: member="dsdpcone.h::DSDPCone" ref="a635fc48fba0ec5edb9b23bd57aadb1e1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> <a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a></td> </tr> </table> </div> <div class="memdoc"> <p>This object holds the data of a SDP, LP, or other cone. Its structure is opaque to the DSDP Solver, but it must implement the interface below and provide a structure of function pointers. </p> <p>Definition at line <a class="el" href="dsdpcone_8h_source.html#l00027">27</a> of file <a class="el" href="dsdpcone_8h_source.html">dsdpcone.h</a>.</p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ad07445aa1e62ad491b95280bdccd82ca"></a><!-- doxytag: member="dsdpcone.h::DSDPConeANorm2" ref="ad07445aa1e62ad491b95280bdccd82ca" args="(DSDPCone, DSDPVec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeANorm2 </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>Add square of 2-norm of data correponding to each variable y. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">anorm2</td><td>norm of constraint data for each varibles </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd>DSDPBlockANorm2 </dd></dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00168">168</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00246">DSDPComputeANorm2()</a>.</p> </div> </div> <a class="anchor" id="a49145120bcef4810adbfbc4246ca37aa"></a><!-- doxytag: member="dsdpcone.h::DSDPConeComputeHessian" ref="a49145120bcef4810adbfbc4246ca37aa" args="(DSDPCone, double, DSDPSchurMat, DSDPVec, DSDPVec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeComputeHessian </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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="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 Hessian and gradient of barrier function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">mu</td><td>barrier parameter </td></tr> <tr><td class="paramname">M</td><td>Schur matrix </td></tr> <tr><td class="paramname">vrhs1</td><td>objective gradient </td></tr> <tr><td class="paramname">vrhs2</td><td>barrier gradient</td></tr> </table> </dd> </dl> <p>This routine assumes that the dual matrix has already been factored and inverted. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdpsdp_8h.html#a3adb86d30c297ad0a4a0aadbcd8ae6ba" title="Compute the Hessian to the barrier term.">SDPConeComputeHessian()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00092">92</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00142">DSDPComputeHessian()</a>.</p> </div> </div> <a class="anchor" id="aa98f51d173b57e43d1a97198f5a26c2a"></a><!-- doxytag: member="dsdpcone.h::DSDPConeComputeLogSDeterminant" ref="aa98f51d173b57e43d1a97198f5a26c2a" args="(DSDPCone, double *, double *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeComputeLogSDeterminant </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>logdetobj</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>Evaluate logrithmic barrier function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">logdetobj</td><td>used term. </td></tr> <tr><td class="paramname">logdet</td><td>logarithmic barrier of cone Assumes S is in cone. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00403">403</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00495">DSDPComputeLogSDeterminant()</a>.</p> </div> </div> <a class="anchor" id="acc327af027a77aa7d924b9974e5a3620"></a><!-- doxytag: member="dsdpcone.h::DSDPConeComputeMaxStepLength" ref="acc327af027a77aa7d924b9974e5a3620" args="(DSDPCone, DSDPVec, DSDPDualFactorMatrix, double *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeComputeMaxStepLength </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>Determine distance to the edge of the cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">DY</td><td>step direction </td></tr> <tr><td class="paramname">flag</td><td>identifies which of two S matrix structures should be used. </td></tr> <tr><td class="paramname">maxsteplength</td><td>distance to the edge of the cone. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00288">288</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00336">DSDPComputeMaxStepLength()</a>.</p> </div> </div> <a class="anchor" id="a6c146a9edd67495742945f8510df9291"></a><!-- doxytag: member="dsdpcone.h::DSDPConeComputeRHS" ref="a6c146a9edd67495742945f8510df9291" args="(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeComputeRHS </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>vrow</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>rhs1</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>rhs2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute gradient of barrier function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">mu</td><td>barrier parameter </td></tr> <tr><td class="paramname">vrow</td><td>scaling for each element in the gradient. </td></tr> <tr><td class="paramname">rhs1</td><td>objective gradient </td></tr> <tr><td class="paramname">rhs2</td><td>barrier gradient</td></tr> </table> </dd> </dl> <p>This routine assumes that the dual matrix has already been factored and inverted. Define rhs2 += mu * vrow .* A(S^{-1}) </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdpsdp_8h.html#a334c8bff3cbf28a420dbe7f93cbe33ab" title="Compute the gradient to the barrier term.">SDPConeComputeRHS()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00147">147</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00215">DSDPComputeG()</a>.</p> </div> </div> <a class="anchor" id="a592b13c0d47de855dd6595e4bc0bfc2c"></a><!-- doxytag: member="dsdpcone.h::DSDPConeComputeS" ref="a592b13c0d47de855dd6595e4bc0bfc2c" args="(DSDPCone, DSDPVec, DSDPDualFactorMatrix, DSDPTruth *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeComputeS </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>Given y, compute S and determine whether its in the cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">Y</td><td>solution </td></tr> <tr><td class="paramname">flag</td><td>identifies which of two S matrix structures should be used. </td></tr> <tr><td class="paramname">ispsdefinite</td><td>true if S is positive definite or an element of the cone. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00242">242</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00272">DSDPComputeSS()</a>.</p> </div> </div> <a class="anchor" id="a8dc04fee8a2283c27399db098fe8d189"></a><!-- doxytag: member="dsdpcone.h::DSDPConeComputeX" ref="a8dc04fee8a2283c27399db098fe8d189" args="(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec, double *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeComputeX </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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 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>Given y,dy, and mu, construct X and add its inner product with the data and S. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">mu</td><td>barrier parameter </td></tr> <tr><td class="paramname">y</td><td>solution </td></tr> <tr><td class="paramname">dy</td><td>step direction </td></tr> <tr><td class="paramname">AX</td><td>add the inner product of the data with X </td></tr> <tr><td class="paramname">tracexs</td><td>inner product of X and S. </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdpsdp_8h.html#a4b077e6275df502022d09162511c4712" title="Compute X.">SDPConeComputeXX()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00216">216</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00654">DSDPComputeXVariables()</a>.</p> </div> </div> <a class="anchor" id="a166cb6e08acee23f62b1cc7a73711bdf"></a><!-- doxytag: member="dsdpcone.h::DSDPConeDestroy" ref="a166cb6e08acee23f62b1cc7a73711bdf" args="(DSDPCone *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeDestroy </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> * </td> <td class="paramname"><em>K</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free the internal memory of the cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00064">64</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00107">DSDPDestroyCones()</a>.</p> </div> </div> <a class="anchor" id="aa9f368dde0884b83e829d032fa14b4ee"></a><!-- doxytag: member="dsdpcone.h::DSDPConeGetDimension" ref="aa9f368dde0884b83e829d032fa14b4ee" args="(DSDPCone, double *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeGetDimension </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>Provide the dimension of the cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">n</td><td>conic dimension (an integer value) </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00312">312</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00401">DSDPGetConicDimension()</a>.</p> </div> </div> <a class="anchor" id="aaad1e0d0532f8aef93ffab1d6c5e4058"></a><!-- doxytag: member="dsdpcone.h::DSDPConeInitialize" ref="aaad1e0d0532f8aef93ffab1d6c5e4058" args="(DSDPCone *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeInitialize </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> * </td> <td class="paramname"><em>K</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize the pointers to 0. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00495">495</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00569">DSDPAddCone()</a>, <a class="el" href="dsdpcone_8c_source.html#l00064">DSDPConeDestroy()</a>, and <a class="el" href="dsdpcops_8c_source.html#l00107">DSDPDestroyCones()</a>.</p> </div> </div> <a class="anchor" id="a1e54269e513d8b24042d534d5da3ded2"></a><!-- doxytag: member="dsdpcone.h::DSDPConeInvertS" ref="a1e54269e513d8b24042d534d5da3ded2" args="(DSDPCone)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeInvertS </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Invert the dual matrix S. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone</td></tr> </table> </dd> </dl> <p>Assumes that the matrix has already been factored. </p> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00265">265</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00307">DSDPInvertS()</a>.</p> </div> </div> <a class="anchor" id="ac57dc15d70a812f3a2332d5dc9d8b137"></a><!-- doxytag: member="dsdpcone.h::DSDPConeMonitor" ref="ac57dc15d70a812f3a2332d5dc9d8b137" args="(DSDPCone, int)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeMonitor </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>Do anything at in the cone at each iteration. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">tag</td><td>allows for multiple types of monitors.</td></tr> </table> </dd> </dl> <p>This routine has be used to visualize data, print some statistics, ... </p> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00380">380</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00450">DSDPMonitorCones()</a>.</p> </div> </div> <a class="anchor" id="aabd067915e91d346ed8d5b01b1a6bdc1"></a><!-- doxytag: member="dsdpcone.h::DSDPConeMultiplyAdd" ref="aabd067915e91d346ed8d5b01b1a6bdc1" args="(DSDPCone, double, DSDPVec, DSDPVec, DSDPVec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeMultiplyAdd </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>vrow</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>Multiply Hessian by a vector and add the result. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">mu</td><td>barrier parameter </td></tr> <tr><td class="paramname">vrow</td><td>scaling for each element in the product. </td></tr> <tr><td class="paramname">v</td><td>input vector gradient </td></tr> <tr><td class="paramname">vv</td><td>output vector</td></tr> </table> </dd> </dl> <p>This routine assumes that the dual matrix has already been factored and inverted. If M is the hessian, then vv += vrow .* Mv </p> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00119">119</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00188">DSDPHessianMultiplyAdd()</a>.</p> </div> </div> <a class="anchor" id="a073ebe136767091d83d4fa2c5b992cf8"></a><!-- doxytag: member="dsdpcone.h::DSDPConeSetData" ref="a073ebe136767091d83d4fa2c5b992cf8" args="(DSDPCone *, struct DSDPCone_Ops *, void *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeSetData </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> * </td> <td class="paramname"><em>K</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct DSDPCone_Ops * </td> <td class="paramname"><em>ops</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>Initialize the pointers to 0. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">ops</td><td>address of a structure of function pointers. </td></tr> <tr><td class="paramname">data</td><td>address of a structure representing a cone </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00477">477</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00569">DSDPAddCone()</a>, and <a class="el" href="dsdpcone_8c_source.html#l00495">DSDPConeInitialize()</a>.</p> </div> </div> <a class="anchor" id="a7ec7799a19b23027131c33d498602941"></a><!-- doxytag: member="dsdpcone.h::DSDPConeSetUp" ref="a7ec7799a19b23027131c33d498602941" args="(DSDPCone, DSDPVec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeSetUp </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Factor the data and allocate data structures. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">y</td><td>initial solution vector </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00022">22</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00058">DSDPSetUpCones()</a>.</p> </div> </div> <a class="anchor" id="a181349b08c203b493ded2cb6de8897a8"></a><!-- doxytag: member="dsdpcone.h::DSDPConeSetUp2" ref="a181349b08c203b493ded2cb6de8897a8" args="(DSDPCone, DSDPVec, DSDPSchurMat)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeSetUp2 </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>Factor the data and allocate data structures. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">yy0</td><td>initial solution vector </td></tr> <tr><td class="paramname">M</td><td>Schur matrix </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00043">43</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00084">DSDPSetUpCones2()</a>.</p> </div> </div> <a class="anchor" id="adb36f7523951f8164b00f8374ec175e0"></a><!-- doxytag: member="dsdpcone.h::DSDPConeSetXMaker" ref="adb36f7523951f8164b00f8374ec175e0" args="(DSDPCone, double, DSDPVec, DSDPVec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeSetXMaker </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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 information needed to construct X. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">mu</td><td>barrier parameter </td></tr> <tr><td class="paramname">y</td><td>solution </td></tr> <tr><td class="paramname">dy</td><td>step direction </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00191">191</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00378">DSDPPassXVectors()</a>.</p> </div> </div> <a class="anchor" id="a8bbc97b1d6ab25b35c5818ab52c9afe9"></a><!-- doxytag: member="dsdpcone.h::DSDPConeSparsityInSchurMat" ref="a8bbc97b1d6ab25b35c5818ab52c9afe9" args="(DSDPCone, int, int[], int)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeSparsityInSchurMat </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</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>Identify sparsity pattern in a row of the Hessian term. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">row</td><td>between 1 and m </td></tr> <tr><td class="paramname">rnnz</td><td>mark elements nonzero for nonzeros in Hessian of barrier. </td></tr> <tr><td class="paramname">m</td><td>number of y variables, length of array, and size of M matrix </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dsdpschurmat_8c.html#a5d1bb7af407a05ae65c63e9d40146644" title="Identify nonzero elements in a row of the Schur complement.">DSDPSparsityInSchurMat()</a> </dd> <dd> <a class="el" href="dsdp_8h.html#a4116515642c1eb1c843b90aee3909cec" title="Each cone should print its state.">DSDPSchurSparsity()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00338">338</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00474">DSDPSchurSparsity()</a>.</p> </div> </div> <a class="anchor" id="a1bf79645f43ecdb30a84add27e51e165"></a><!-- doxytag: member="dsdpcone.h::DSDPConeView" ref="a1bf79645f43ecdb30a84add27e51e165" args="(DSDPCone)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPConeView </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>View contents of the cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00358">358</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00424">DSDPViewCones()</a>.</p> </div> </div> <a class="anchor" id="a7cd9b87b0e700050fda2f3c8f942e419"></a><!-- doxytag: member="dsdpcone.h::DSDPGetConeName" ref="a7cd9b87b0e700050fda2f3c8f942e419" args="(DSDPCone, char *, int)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int DSDPGetConeName </td> <td>(</td> <td class="paramtype"><a class="el" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1">DSDPCone</a> </td> <td class="paramname"><em>K</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>cname</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>maxlength</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get name of the cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">K</td><td>the cone </td></tr> <tr><td class="paramname">cname</td><td>string to copy the string </td></tr> <tr><td class="paramname">maxlength</td><td>maximum length of the string. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpcone_8c_source.html#l00427">427</a> of file <a class="el" href="dsdpcone_8c_source.html">dsdpcone.c</a>.</p> <p>Referenced by <a class="el" href="dsdpcops_8c_source.html#l00522">DSDPSetCone()</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>