Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > df736a3bc446df5b16150bebb7296274 > files > 85

DSDP-devel-5.8-2.fc14.i686.rpm

<!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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;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&#160;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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct DSDPCone_Ops *&#160;</td>
          <td class="paramname"><em>dsdpops</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>dsdpcone</em>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</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>&#160;</td>
          <td class="paramname"><em>R</em>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>Anorm2</em>&#160;</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>&#160;</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>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>vrhs2</em>&#160;</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>&#160;</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>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>vrhs2</em>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>logdet</em>&#160;</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>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>flag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>maxsteplength</em>&#160;</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>&#160;</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>&#160;</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>&#160;</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> *&#160;</td>
          <td class="paramname"><em>ispsdefinite</em>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</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>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>AX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>tracexs</em>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>n</em>&#160;</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>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>vv</em>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>tag</em>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>DY</em>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rnnz</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>m</em>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>tcone</em>&#160;</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>&#160;</td>
          <td class="paramname"><em>dsdp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct DSDPSchurMat_Ops *&#160;</td>
          <td class="paramname"><em>sops</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>mdata</em>&#160;</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>&#160;</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>&#160;</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>&#160;</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>&#160;</td>
          <td class="paramname"><em>M</em>&#160;</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>&#160;</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&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>