Sophie

Sophie

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

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: DSDP Basics</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><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">DSDP Basics</div>  </div>
</div>
<div class="contents">
<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="group__DSDPBasic.html#gacd271769549030ce365597101946220b">DSDPComputeX</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the X variables.  <a href="#gacd271769549030ce365597101946220b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#gaa32509ded8359326d02782adb91c745a">DSDPCreate</a> (int m, <a class="el" href="structDSDP__C.html">DSDP</a> *dsdpnew)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a DSDP solver. FIRST DSDP routine!  <a href="#gaa32509ded8359326d02782adb91c745a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga3242b32d5e9c5e5358da5f79ae5d08dd">DSDPDestroy</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the internal data structures of the solver and the cones associated with it.  <a href="#ga3242b32d5e9c5e5358da5f79ae5d08dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga33e05559ab15ea40b1e9b31ecc206b3e">DSDPGetSolutionType</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, <a class="el" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90">DSDPSolutionType</a> *pdfeasible)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Solutions can be bounded, infeasible, or unbounded.  <a href="#ga33e05559ab15ea40b1e9b31ecc206b3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga816a784dde863f6a35a2f5d8786a3441">DSDPGetY</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, double y[], int m)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the variables y into an array.  <a href="#ga816a784dde863f6a35a2f5d8786a3441"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga7e1b78dc7d7407fcf84e05b9c42fc72c">DSDPSetDualObjective</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, int i, double bi)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the objective vector b in (D).  <a href="#ga7e1b78dc7d7407fcf84e05b9c42fc72c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga5f1941aaedfa888e940bad968ac0d847">DSDPSetOptions</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, char *runargs[], int nargs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Read command line arguments to set options in DSDP.  <a href="#ga5f1941aaedfa888e940bad968ac0d847"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga945023e6d663d0897d3d04a7d738608d">DSDPSetStandardMonitor</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp, int k)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print at every kth iteration.  <a href="#ga945023e6d663d0897d3d04a7d738608d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga2bd311ea1ecad8f690255b8a35f694a0">DSDPSetup</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up data structures in the solver and the cones associated with it.  <a href="#ga2bd311ea1ecad8f690255b8a35f694a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9">DSDPSolve</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply DSDP to the problem.  <a href="#gabf7f1440bad5dd2a609288912743c8e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPBasic.html#ga79dacb16d2807f1b6819d296e3073aa5">DSDPView</a> (<a class="el" href="structDSDP__C.html">DSDP</a> dsdp)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Print many of the parameters currently set in DSDP.  <a href="#ga79dacb16d2807f1b6819d296e3073aa5"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>DSDP can be used within a C application through a set of subroutines.</p>
<p>The subroutines listed below use DSDP to solve problems in <a class="el" href="PDForm.html">DSDP Standard Form</a>. Several examples of applications that use the DSDP application program interface are included in the distribution.</p>
<p>Each of these applications includes the header </p>
<div class="fragment"><pre class="fragment"><span class="preprocessor">#include dsdp5.h </span>
</pre></div><p> and link to the DSDP library.</p>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>if successful</td></tr>
  </table>
  </dd>
</dl>
<p>The documentation of DSDP subroutines in this chapter will not show the return integer, but we highly recommend that applications check for errors after each subroutine. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gacd271769549030ce365597101946220b"></a><!-- doxytag: member="dsdpx.c::DSDPComputeX" ref="gacd271769549030ce365597101946220b" args="(DSDP dsdp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPComputeX </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>Compute the X variables. </p>
<p>This routine explicitly computes X and determines the feasibility and unboundedness of the solution. This routine should be called after <a class="el" href="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9" title="Apply DSDP to the problem.">DSDPSolve()</a>.</p>
<p>The cost of the dual-scaling direction is less than the cost of other interior-point directions because the X matrix does not have to be computed explicitly at each iteration.</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="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9" title="Apply DSDP to the problem.">DSDPSolve()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga33e05559ab15ea40b1e9b31ecc206b3e" title="Solutions can be bounded, infeasible, or unbounded.">DSDPGetSolutionType()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#ga0126bd2c9da5d8a7ca0806bd8dd8e56f" title="Copy the objective value (P).">DSDPGetPObjective()</a></dd></dl>
<p>These four routines can usually be called together. </p>
<div class="fragment"><pre class="fragment"><a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a> dsdp;
<a class="code" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90" title="Formulations (P) and (D) can be feasible and bounded, feasible and unbounded, or infeasible.">DSDPSolutionType</a> type;

<a class="code" href="group__DSDPBasic.html#ga2bd311ea1ecad8f690255b8a35f694a0" title="Set up data structures in the solver and the cones associated with it.">DSDPSetup</a>(dsdp);
<a class="code" href="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9" title="Apply DSDP to the problem.">DSDPSolve</a>(dsdp);
<a class="code" href="group__DSDPBasic.html#gacd271769549030ce365597101946220b" title="Compute the X variables.">DSDPComputeX</a>(dsdp);
<a class="code" href="group__DSDPBasic.html#ga33e05559ab15ea40b1e9b31ecc206b3e" title="Solutions can be bounded, infeasible, or unbounded.">DSDPGetSolutionType</a>(dsdp,&amp;type);
</pre></div> 
<p>Definition at line <a class="el" href="dsdpx_8c_source.html#l00055">55</a> of file <a class="el" href="dsdpx_8c_source.html">dsdpx.c</a>.</p>

<p>Referenced by <a class="el" href="printsdpa_8c_source.html#l00094">DSDPPrintSolution()</a>, <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</a>, <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>, <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa32509ded8359326d02782adb91c745a"></a><!-- doxytag: member="dsdpsetup.c::DSDPCreate" ref="gaa32509ded8359326d02782adb91c745a" args="(int m, DSDP *dsdpnew)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPCreate </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDSDP__C.html">DSDP</a> *&#160;</td>
          <td class="paramname"><em>dsdpnew</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a DSDP solver. FIRST DSDP routine! </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>the number of variables y </td></tr>
    <tr><td class="paramname">*dsdpnew</td><td>will be set to a new solver object </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPBasic.html#ga7e1b78dc7d7407fcf84e05b9c42fc72c" title="Set the objective vector b in (D).">DSDPSetDualObjective()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga2bd311ea1ecad8f690255b8a35f694a0" title="Set up data structures in the solver and the cones associated with it.">DSDPSetup()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9" title="Apply DSDP to the problem.">DSDPSolve()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga3242b32d5e9c5e5358da5f79ae5d08dd" title="Free the internal data structures of the solver and the cones associated with it.">DSDPDestroy()</a></dd></dl>
<p>For example, to create a DSDP solver for a problem with 10 y variables, </p>
<div class="fragment"><pre class="fragment"><span class="keywordtype">int</span> m=10;
<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a> dsdp;
<a class="code" href="group__DSDPBasic.html#gaa32509ded8359326d02782adb91c745a" title="Create a DSDP solver. FIRST DSDP routine!">DSDPCreate</a>(m,&amp;dsdp);
</pre></div> 
<p>Definition at line <a class="el" href="dsdpsetup_8c_source.html#l00030">30</a> of file <a class="el" href="dsdpsetup_8c_source.html">dsdpsetup.c</a>.</p>

<p>Referenced by <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</a>, <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>, <a class="el" href="color_8c_source.html#l00039">MinColoring()</a>, <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3242b32d5e9c5e5358da5f79ae5d08dd"></a><!-- doxytag: member="dsdpsetup.c::DSDPDestroy" ref="ga3242b32d5e9c5e5358da5f79ae5d08dd" args="(DSDP dsdp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPDestroy </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>Free the internal data structures of the solver and the cones associated with it. </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="group__DSDPBasic.html#gaa32509ded8359326d02782adb91c745a" title="Create a DSDP solver. FIRST DSDP routine!">DSDPCreate()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9" title="Apply DSDP to the problem.">DSDPSolve()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga2bd311ea1ecad8f690255b8a35f694a0" title="Set up data structures in the solver and the cones associated with it.">DSDPSetup()</a> </dd></dl>

<p>Definition at line <a class="el" href="dsdpsetup_8c_source.html#l00496">496</a> of file <a class="el" href="dsdpsetup_8c_source.html">dsdpsetup.c</a>.</p>

<p>Referenced by <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</a>, <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>, <a class="el" href="color_8c_source.html#l00039">MinColoring()</a>, <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga33e05559ab15ea40b1e9b31ecc206b3e"></a><!-- doxytag: member="dsdpx.c::DSDPGetSolutionType" ref="ga33e05559ab15ea40b1e9b31ecc206b3e" args="(DSDP dsdp, DSDPSolutionType *pdfeasible)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPGetSolutionType </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="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90">DSDPSolutionType</a> *&#160;</td>
          <td class="paramname"><em>pdfeasible</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Solutions can be bounded, infeasible, or unbounded. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsdp</td><td>is the solver </td></tr>
    <tr><td class="paramname">*pdfeasible</td><td>will be set to the proper enumerated type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPSolver.html#gaaccdf7c94e0296bc83042ba3d4b29c5d" title="Set the penalty parameter Gamma.">DSDPSetPenaltyParameter()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolver.html#gad73a74d9d294e87b58ad3a7e939a43ad" title="Bound the variables y.">DSDPSetYBounds()</a> </dd>
<dd>
<a class="el" href="group__DSDPConverge.html#ga637bf541e030c5aef4d436a9792714a2" title="Copy the reason why the solver terminated.">DSDPStopReason()</a> </dd></dl>

<p>Definition at line <a class="el" href="dsdpx_8c_source.html#l00254">254</a> of file <a class="el" href="dsdpx_8c_source.html">dsdpx.c</a>.</p>

<p>Referenced by <a class="el" href="dsdpsetoptions_8c_source.html#l00190">DSDPView()</a>, <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>, and <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</a>.</p>

</div>
</div>
<a class="anchor" id="ga816a784dde863f6a35a2f5d8786a3441"></a><!-- doxytag: member="dsdpsetdata.c::DSDPGetY" ref="ga816a784dde863f6a35a2f5d8786a3441" args="(DSDP dsdp, double y[], int m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPGetY </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>y</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>Copies the variables y into an array. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsdp</td><td>is the solver </td></tr>
    <tr><td class="paramname">y</td><td>is an array </td></tr>
    <tr><td class="paramname">m</td><td>is the length of the array and the dimension of y </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPSolution.html#gacf5a2bd7ecb03b319caa22e545ef8e01" title="Set the initial values of variables y in (D).">DSDPSetY0()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#gacd271769549030ce365597101946220b" title="Compute the X variables.">DSDPComputeX()</a> </dd></dl>

<p>Definition at line <a class="el" href="dsdpsetdata_8c_source.html#l00100">100</a> of file <a class="el" href="dsdpsetdata_8c_source.html">dsdpsetdata.c</a>.</p>

<p>Referenced by <a class="el" href="printsdpa_8c_source.html#l00094">DSDPPrintSolution()</a>, <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, and <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7e1b78dc7d7407fcf84e05b9c42fc72c"></a><!-- doxytag: member="dsdpsetdata.c::DSDPSetDualObjective" ref="ga7e1b78dc7d7407fcf84e05b9c42fc72c" args="(DSDP dsdp, int i, double bi)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPSetDualObjective </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>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>bi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the objective vector b in (D). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsdp</td><td>is the solver </td></tr>
    <tr><td class="paramname">i</td><td>is the variable number from 1 through m </td></tr>
    <tr><td class="paramname">bi</td><td>is the objective value associated with variable i </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPSolution.html#gacf5a2bd7ecb03b319caa22e545ef8e01" title="Set the initial values of variables y in (D).">DSDPSetY0()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#ga2752cf39e1774945b484bddf7c2a5ef2" title="Copy the objective value (D).">DSDPGetDObjective()</a></dd></dl>
<p>The dual objective function is <img class="formulaInl" alt="$ \mbox{maximize} \ \ {\displaystyle \sum_{i=1}^m b_i \ y_i } $" src="form_19.png"/>. </p>

<p>Definition at line <a class="el" href="dsdpsetdata_8c_source.html#l00025">25</a> of file <a class="el" href="dsdpsetdata_8c_source.html">dsdpsetdata.c</a>.</p>

<p>Referenced by <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>, <a class="el" href="color_8c_source.html#l00039">MinColoring()</a>, <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</a>, <a class="el" href="stable_8c_source.html#l00107">SetStableSetData()</a>, and <a class="el" href="theta_8c_source.html#l00126">SetThetaData()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5f1941aaedfa888e940bad968ac0d847"></a><!-- doxytag: member="dsdpsetoptions.c::DSDPSetOptions" ref="ga5f1941aaedfa888e940bad968ac0d847" args="(DSDP dsdp, char *runargs[], int nargs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPSetOptions </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">char *&#160;</td>
          <td class="paramname"><em>runargs</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nargs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read command line arguments to set options in DSDP. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsdp</td><td>is the solver </td></tr>
    <tr><td class="paramname">runargs</td><td>is the array of strings representing the options </td></tr>
    <tr><td class="paramname">nargs</td><td>is the number of arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPSolver.html#gab1340aac2a0c79108be725389f481979" title="Read DSDP parameters from a file.">DSDPReadOptions()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolver.html#gac2a0ebe706b56fd4cf7f9f8b3d205efe" title="Print runtime options;.">DSDPPrintOptions()</a> </dd>
<dd>
<a class="el" href="group__DSDPConverge.html#ga4c0fa6941c40cca7643c2f4a9ae813bf" title="Terminate the solver when the relative duality gap is less than this tolerance.">DSDPSetGapTolerance()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga945023e6d663d0897d3d04a7d738608d" title="Print at every kth iteration.">DSDPSetStandardMonitor()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolver.html#gaaccdf7c94e0296bc83042ba3d4b29c5d" title="Set the penalty parameter Gamma.">DSDPSetPenaltyParameter()</a> </dd>
<dd>
<a class="el" href="group__DSDPConverge.html#ga91af478f9316391a35b595b669ad22b3" title="Terminate the solver after this number of iterations.">DSDPSetMaxIts()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#ga846e363115b1fba5622306efc2e0ba38" title="Set an initial value for the variable r in (DD)">DSDPSetR0()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolver.html#gad73a74d9d294e87b58ad3a7e939a43ad" title="Bound the variables y.">DSDPSetYBounds()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolver.html#ga5d737fca8ae872f57fd37cc7784feede" title="Set the potential parameter.">DSDPSetPotentialParameter()</a> </dd></dl>

<p>Definition at line <a class="el" href="dsdpsetoptions_8c_source.html#l00046">46</a> of file <a class="el" href="dsdpsetoptions_8c_source.html">dsdpsetoptions.c</a>.</p>

<p>Referenced by <a class="el" href="dsdpsetoptions_8c_source.html#l00145">DSDPReadOptions()</a>, <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</a>, <a class="el" href="color_8c_source.html#l00039">MinColoring()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga945023e6d663d0897d3d04a7d738608d"></a><!-- doxytag: member="dsdpprintout.c::DSDPSetStandardMonitor" ref="ga945023e6d663d0897d3d04a7d738608d" args="(DSDP dsdp, int k)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPSetStandardMonitor </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>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print at every kth iteration. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsdp</td><td>is the solver </td></tr>
    <tr><td class="paramname">k</td><td>is the frequency to print information.</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><pre class="fragment">
Iter   PP Objective      DD Objective    PInfeas   DInfeas     Nu     StepLength   Pnrm
---------------------------------------------------------------------------------------
0     1.00000000e+02   -1.13743137e+05   2.2e+00   3.8e+02   1.1e+05  0.00  0.00   0.00
1     1.36503342e+06   -6.65779055e+04   5.1e+00   2.2e+02   1.1e+04  1.00  0.33   4.06
2     1.36631922e+05   -6.21604409e+03   5.4e+00   1.9e+01   4.5e+02  1.00  1.00   7.85
3     5.45799174e+03   -3.18292092e+03   1.5e-03   9.1e+00   7.5e+01  1.00  1.00  17.63
4     1.02930559e+03   -5.39166166e+02   1.1e-05   5.3e-01   2.7e+01  1.00  1.00   7.58
5     4.30074471e+02   -3.02460061e+01   3.3e-09   0.0e+00   5.6e+00  1.00  1.00  11.36
...
11    8.99999824e+00    8.99999617e+00   1.1e-16   0.0e+00   1.7e-08  1.00  1.00   7.03
12    8.99999668e+00    8.99999629e+00   2.9e-19   0.0e+00   3.4e-09  1.00  1.00  14.19
</pre></div><ul>
<li><code>Iter</code> - the current iteration number,</li>
<li><code>PP</code> <code>Objective</code> - the current objective value in (PP),</li>
<li><code>DD</code> <code>Objective</code> - the current objective value in (DD),</li>
<li><code>PInfeas</code> - is the largest number <img class="formulaInl" alt="$(x^u - x^l)_i$" src="form_16.png"/> in (PP),</li>
<li><code>DInfeas</code> - the variable r in (DD) that corresponds to the infeasibility of y and S in (D).</li>
<li><code>Nu</code> - the current barrier parameter <img class="formulaInl" alt="$\frac{\bar{z} - b^Ty}{\rho}$" src="form_17.png"/>. This parameter decreases to zero as the points get closer to the solution,</li>
<li><code>StepLength</code> - the multiple of the step-directions in (PP) and (DD),</li>
<li><code>Pnrm</code> - the proximity to a point on the central path: <img class="formulaInl" alt="$\sqrt{-\nabla \psi^T(y^k,\bar{z}^k ) \Delta y}$" src="form_18.png"/>.</li>
</ul>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPConverge.html#gaaeaa2ec0c50c43f4499aaffea692ede8" title="Copy the current iteration number.">DSDPGetIts()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#gadb9e055ef8b2194ae67ed14ca06f1d01" title="Copy the objective value (DD).">DSDPGetDDObjective()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#gad603533b7e28587f5b2ee824eee58eb3" title="Copy the objective value (PP).">DSDPGetPPObjective()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#gacfa8e29ecd7eaaeb6a4e31eb07961de3" title="Copy the infeasibility in (D), or the variable r in (DD).">DSDPGetR()</a> </dd>
<dd>
<a class="el" href="group__DSDPConverge.html#ga88aa3c65b2eb3699f6c2d203c3f11963" title="Copy the infeasibility in (P).">DSDPGetPInfeasibility()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolver.html#ga05f1269e817495e448ffa8ae3a4012cf" title="Copy the current barrier parameter.">DSDPGetBarrierParameter()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#gadf4655c90ede45912f2e4ce7f4475cad" title="Copy the step sizes in the current iteration.">DSDPGetStepLengths()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#gaaa2bb03bf7a025936b1d2cd619327a49" title="Copy the proximity of the solution to the central path.">DSDPGetPnorm()</a> </dd></dl>

<p>Definition at line <a class="el" href="dsdpprintout_8c_source.html#l00153">153</a> of file <a class="el" href="dsdpprintout_8c_source.html">dsdpprintout.c</a>.</p>

<p>Referenced by <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</a>, <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, <a class="el" href="color_8c_source.html#l00039">MinColoring()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2bd311ea1ecad8f690255b8a35f694a0"></a><!-- doxytag: member="dsdpsetup.c::DSDPSetup" ref="ga2bd311ea1ecad8f690255b8a35f694a0" args="(DSDP dsdp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPSetup </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>Set up data structures in the solver and the cones associated with it. </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="group__DSDPBasic.html#gaa32509ded8359326d02782adb91c745a" title="Create a DSDP solver. FIRST DSDP routine!">DSDPCreate()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9" title="Apply DSDP to the problem.">DSDPSolve()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga3242b32d5e9c5e5358da5f79ae5d08dd" title="Free the internal data structures of the solver and the cones associated with it.">DSDPDestroy()</a></dd></dl>
<p>This routine must be called before <a class="el" href="group__DSDPBasic.html#gabf7f1440bad5dd2a609288912743c8e9" title="Apply DSDP to the problem.">DSDPSolve()</a>. Do not create SDP, LP or other cones after calling this routines, and do not set data into the cones after calling this routine. </p>

<p>Definition at line <a class="el" href="dsdpsetup_8c_source.html#l00193">193</a> of file <a class="el" href="dsdpsetup_8c_source.html">dsdpsetup.c</a>.</p>

<p>Referenced by <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</a>, <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>, <a class="el" href="color_8c_source.html#l00039">MinColoring()</a>, <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p>

</div>
</div>
<a class="anchor" id="gabf7f1440bad5dd2a609288912743c8e9"></a><!-- doxytag: member="dsdpsetup.c::DSDPSolve" ref="gabf7f1440bad5dd2a609288912743c8e9" args="(DSDP dsdp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPSolve </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>Apply DSDP to the problem. </p>
<p>Call this routine after <a class="el" href="group__DSDPBasic.html#gaa32509ded8359326d02782adb91c745a" title="Create a DSDP solver. FIRST DSDP routine!">DSDPCreate()</a> and <a class="el" href="group__DSDPBasic.html#ga2bd311ea1ecad8f690255b8a35f694a0" title="Set up data structures in the solver and the cones associated with it.">DSDPSetup()</a>, and after setting the data.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsdp</td><td>is the solver </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPBasic.html#gaa32509ded8359326d02782adb91c745a" title="Create a DSDP solver. FIRST DSDP routine!">DSDPCreate()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga33e05559ab15ea40b1e9b31ecc206b3e" title="Solutions can be bounded, infeasible, or unbounded.">DSDPGetSolutionType()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolution.html#ga2752cf39e1774945b484bddf7c2a5ef2" title="Copy the objective value (D).">DSDPGetDObjective()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga816a784dde863f6a35a2f5d8786a3441" title="Copies the variables y into an array.">DSDPGetY()</a> </dd>
<dd>
<a class="el" href="group__DSDPConverge.html#ga637bf541e030c5aef4d436a9792714a2" title="Copy the reason why the solver terminated.">DSDPStopReason()</a> </dd></dl>

<p>Definition at line <a class="el" href="dsdpsetup_8c_source.html#l00343">343</a> of file <a class="el" href="dsdpsetup_8c_source.html">dsdpsetup.c</a>.</p>

<p>Referenced by <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</a>, <a class="el" href="maxcut_8c_source.html#l00051">MaxCut()</a>, <a class="el" href="dsdp_8c_source.html#l00035">mexFunction()</a>, <a class="el" href="color_8c_source.html#l00039">MinColoring()</a>, <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p>

</div>
</div>
<a class="anchor" id="ga79dacb16d2807f1b6819d296e3073aa5"></a><!-- doxytag: member="dsdpsetoptions.c::DSDPView" ref="ga79dacb16d2807f1b6819d296e3073aa5" args="(DSDP dsdp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DSDPView </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>Print many of the parameters currently set in DSDP. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dsdp</td><td>is the solver </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPBasic.html#ga5f1941aaedfa888e940bad968ac0d847" title="Read command line arguments to set options in DSDP.">DSDPSetOptions()</a> </dd>
<dd>
<a class="el" href="group__DSDPSolver.html#gae27461735f62031b5fd794672b026b78" title="Copy the penalty parameter Gamma.">DSDPGetPenaltyParameter()</a> </dd>
<dd>
<a class="el" href="group__DSDPBasic.html#ga33e05559ab15ea40b1e9b31ecc206b3e" title="Solutions can be bounded, infeasible, or unbounded.">DSDPGetSolutionType()</a> </dd>
<dd>
<a class="el" href="group__DSDPConverge.html#ga876bd5084bfd1b62eb37211d4bcf188e" title="Get the termination tolerance.">DSDPGetGapTolerance()</a> </dd></dl>

<p>Definition at line <a class="el" href="dsdpsetoptions_8c_source.html#l00190">190</a> of file <a class="el" href="dsdpsetoptions_8c_source.html">dsdpsetoptions.c</a>.</p>

<p>Referenced by <a class="el" href="readsdpa_8c_source.html#l00080">ReadSDPAFile()</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>