Sophie

Sophie

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

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/dsdp.h Source File</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="headertitle">
<div class="title">dsdp.h</div>  </div>
</div>
<div class="contents">
<a href="dsdp_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __DSDP_H</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __DSDP_H</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &quot;<a class="code" href="dsdpbasictypes_8h.html" title="Solver, solution types, termination codes,.">dsdpbasictypes.h</a>&quot;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &quot;<a class="code" href="dsdpvec_8h.html" title="Vector operations used by the solver.">dsdpvec.h</a>&quot;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &quot;<a class="code" href="dsdpschurmat_8h.html" title="Methods of a Schur Matrix.">dsdpschurmat.h</a>&quot;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &quot;<a class="code" href="dsdpcone_8h.html" title="The public interface between the cones and the solver.">dsdpcone.h</a>&quot;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include &quot;<a class="code" href="dsdpconverge_8h.html" title="Detect convergence of the solver from the duality gap and step sizes.">dsdpconverge.h</a>&quot;</span>
<a name="l00018"></a><a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334">00018</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>LUBounds_C* <a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334" title="Cone with bounds on variables y.">YBoundCone</a>;
<a name="l00019"></a>00019 
<a name="l00024"></a><a class="code" href="dsdp_8h.html#aad5dc1d467db3c4aaea877c5bd2727af">00024</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>RDCone* <a class="code" href="dsdp_8h.html#aad5dc1d467db3c4aaea877c5bd2727af" title="Cone with nonnegativity on variable r.">RRCone</a>;
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 <span class="preprocessor">#define MAX_DSDP_MONITORS 5</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define MAX_XMAKERS 4</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span>
<a name="l00030"></a>00030 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00031"></a>00031   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> y;
<a name="l00032"></a>00032   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> dy;
<a name="l00033"></a>00033   <span class="keywordtype">double</span>  mu;
<a name="l00034"></a>00034   <span class="keywordtype">double</span>  pstep;
<a name="l00035"></a>00035   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> rhs;
<a name="l00036"></a>00036 } XMaker;
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="comment">/* This information is needed to compute the step Direction */</span>
<a name="l00039"></a>00039   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> y;
<a name="l00040"></a>00040   <span class="keywordtype">double</span> zbar;
<a name="l00041"></a>00041   <span class="keywordtype">double</span> mutarget;
<a name="l00042"></a>00042   <span class="keywordtype">double</span> logdet;
<a name="l00043"></a>00043 } DSDPState;
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00046"></a>00046   int (*f)(<span class="keywordtype">void</span>*);
<a name="l00047"></a>00047   <span class="keywordtype">void</span> * ptr;
<a name="l00048"></a>00048 }DRoutine;
<a name="l00049"></a>00049 
<a name="l00050"></a>00050 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00051"></a>00051   int (*monitor)(<span class="keyword">struct </span><a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP_C</a> *, <span class="keywordtype">void</span>*);
<a name="l00052"></a>00052   <span class="keywordtype">void</span> *monitorctx;
<a name="l00053"></a>00053 } DMonitor;
<a name="l00054"></a>00054 
<a name="l00055"></a>00055 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00056"></a>00056   <a class="code" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1" title="This object holds the data of a SDP, LP, or other cone. Its structure is opaque to the DSDP Solver...">DSDPCone</a> cone;
<a name="l00057"></a>00057   <span class="keywordtype">int</span> coneid;
<a name="l00058"></a>00058 } DCone;
<a name="l00059"></a>00059 
<a name="l00065"></a><a class="code" href="structDSDP__C.html">00065</a> <span class="keyword">struct </span><a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP_C</a>{
<a name="l00066"></a>00066 
<a name="l00067"></a>00067   DSDPCG *sles;
<a name="l00068"></a>00068   <span class="keywordtype">int</span> slestype;
<a name="l00069"></a>00069 
<a name="l00070"></a>00070   <span class="keywordtype">double</span> schurmu;
<a name="l00071"></a>00071   <a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a> M;
<a name="l00072"></a>00072   <span class="keywordtype">double</span> Mshift;
<a name="l00073"></a>00073   <span class="keywordtype">double</span> maxschurshift;
<a name="l00074"></a>00074 
<a name="l00075"></a>00075   <span class="keywordtype">int</span> ncones,maxcones;
<a name="l00076"></a>00076   DCone* K;
<a name="l00077"></a>00077 
<a name="l00078"></a>00078   <span class="keywordtype">int</span> keyid;
<a name="l00079"></a>00079 
<a name="l00080"></a>00080   <span class="keywordtype">int</span> solvetime,cgtime,ptime,dtime,ctime;
<a name="l00081"></a>00081   <span class="keywordtype">int</span> reuseM;
<a name="l00082"></a>00082   <a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a> goty0;
<a name="l00083"></a>00083   <a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a> setupcalled;
<a name="l00084"></a>00084 
<a name="l00085"></a>00085   <span class="keywordtype">int</span>    m;       <span class="comment">/*     number of constraints                        */</span> 
<a name="l00086"></a>00086   <span class="keywordtype">double</span> np;      <span class="comment">/*     Dimension of full variable matrix            */</span>
<a name="l00087"></a>00087 
<a name="l00088"></a>00088   <span class="keywordtype">int</span>    itnow;   <span class="comment">/* current iterate                                  */</span>
<a name="l00089"></a>00089   <span class="keywordtype">int</span>    maxiter; <span class="comment">/* Maximum number of iterates                       */</span>
<a name="l00090"></a>00090   <span class="keywordtype">double</span> pobj;    <span class="comment">/* current primal objective value - use duality gap */</span>
<a name="l00091"></a>00091   <span class="keywordtype">double</span> ppobj;   <span class="comment">/* current primal objetive value - evaluate P       */</span>
<a name="l00092"></a>00092   <span class="keywordtype">double</span> dobj,ddobj;  <span class="comment">/* the current dual objective value             */</span>
<a name="l00093"></a>00093   <span class="keywordtype">double</span> pstep,dstep;  <span class="comment">/* current primal and dual step lengths        */</span>
<a name="l00094"></a>00094   <span class="keywordtype">double</span> dualitygap;
<a name="l00095"></a>00095   <span class="keywordtype">double</span> mutarget;
<a name="l00096"></a>00096   <span class="keywordtype">double</span> mu,muold,mu0;      <span class="comment">/* The current  mu */</span>
<a name="l00097"></a>00097   <span class="keywordtype">double</span> rho,potential,logdet,rhon;
<a name="l00098"></a>00098   <span class="keywordtype">double</span> pnorm;   <span class="comment">/* the current value of ||P||                       */</span>
<a name="l00099"></a>00099   <span class="keywordtype">double</span> maxtrustradius;
<a name="l00100"></a>00100   <span class="keywordtype">double</span> cnorm,anorm,bnorm; 
<a name="l00101"></a>00101   <span class="keywordtype">double</span> tracex,tracexs;
<a name="l00102"></a>00102   <span class="keywordtype">double</span> rgap;
<a name="l00103"></a>00103   <span class="keywordtype">double</span> pstepold;
<a name="l00104"></a>00104 
<a name="l00105"></a>00105   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> y;      <span class="comment">/* dual variables                                       */</span>
<a name="l00106"></a>00106   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> y0;     <span class="comment">/* initial dual variables                               */</span>
<a name="l00107"></a>00107   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> ytemp;  <span class="comment">/* temporary dual variables                             */</span>
<a name="l00108"></a>00108   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> dy1;    <span class="comment">/* search direction 1 affine direction                  */</span>
<a name="l00109"></a>00109   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> dy2;    <span class="comment">/* search direction 2 centering direction               */</span>
<a name="l00110"></a>00110   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> dy;     <span class="comment">/* total search direction = constant*dy1-dy2            */</span>
<a name="l00111"></a>00111   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> rhs1;   <span class="comment">/* objective vector b to determine step direction       */</span>
<a name="l00112"></a>00112   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> rhs2;   <span class="comment">/* barrier vector A(S^{-1}) to determine step direction */</span>
<a name="l00113"></a>00113   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> rhs;    <span class="comment">/* right-hand side of linear system                     */</span>
<a name="l00114"></a>00114   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> rhstemp;<span class="comment">/* temporary rhs vector                                 */</span>
<a name="l00115"></a>00115   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> b;      <span class="comment">/* dual objective vector                                */</span>
<a name="l00116"></a>00116 
<a name="l00117"></a>00117   <span class="comment">/* Multiple of identity matrix added to dual        */</span>
<a name="l00118"></a>00118   <span class="keywordtype">double</span> r;
<a name="l00119"></a>00119   <span class="keywordtype">int</span> rflag;
<a name="l00120"></a>00120   DSDPPenalty UsePenalty;
<a name="l00121"></a>00121   <a class="code" href="dsdp_8h.html#aad5dc1d467db3c4aaea877c5bd2727af" title="Cone with nonnegativity on variable r.">RRCone</a> rcone;
<a name="l00122"></a>00122 
<a name="l00123"></a>00123   <a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a> usefixedrho; <span class="comment">/*   True if fixed rho used. */</span>
<a name="l00124"></a>00124   
<a name="l00125"></a>00125   XMaker xmaker[MAX_XMAKERS]; <span class="comment">/* step direction used to create X */</span>
<a name="l00126"></a>00126   <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a> xmakerrhs;
<a name="l00127"></a>00127 
<a name="l00128"></a>00128   <a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334" title="Cone with bounds on variables y.">YBoundCone</a> ybcone;
<a name="l00129"></a>00129   <span class="keywordtype">double</span> pinfeas; <span class="comment">/* Infeasible in P indirectly -- neglect numerical errors */</span>
<a name="l00130"></a>00130   <span class="keywordtype">double</span> perror;  <span class="comment">/* Infeasible in P computed directly   */</span>
<a name="l00131"></a>00131 
<a name="l00132"></a>00132   <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> pdfeasible;
<a name="l00133"></a>00133   <span class="keywordtype">double</span> dinfeastol; <span class="comment">/* Parameter: Classify (D) as feasible */</span>
<a name="l00134"></a>00134   <span class="keywordtype">double</span> pinfeastol; <span class="comment">/* Parameter: Classify (P) as feasible */</span>
<a name="l00135"></a>00135 
<a name="l00136"></a>00136   ConvergenceMonitor conv;
<a name="l00137"></a>00137   <a class="code" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3a" title="There are many reasons to terminate the solver.">DSDPTerminationReason</a> reason;
<a name="l00138"></a>00138 
<a name="l00139"></a>00139   DMonitor dmonitor[MAX_DSDP_MONITORS];
<a name="l00140"></a>00140   <span class="keywordtype">int</span> nmonitors;
<a name="l00141"></a>00141 
<a name="l00142"></a>00142   DRoutine droutine[10];
<a name="l00143"></a>00143   <span class="keywordtype">int</span> ndroutines;
<a name="l00144"></a>00144 };
<a name="l00145"></a>00145 
<a name="l00146"></a>00146 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP_C</a> <a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">PD_DSDP</a>;
<a name="l00147"></a>00147 
<a name="l00148"></a>00148 <span class="preprocessor">#define DSDPKEY  5432</span>
<a name="l00149"></a>00149 <span class="preprocessor"></span>
<a name="l00150"></a>00150 <span class="preprocessor">#define DSDPValid(a) {if (!(a)||((a)-&gt;keyid!=DSDPKEY)){ DSDPSETERR(101,&quot;DSDPERROR: Invalid DSDP object\n&quot;);}}</span>
<a name="l00151"></a>00151 <span class="preprocessor"></span>
<a name="l00152"></a>00152 <span class="preprocessor">#include &quot;<a class="code" href="dsdpbasictypes_8h.html" title="Solver, solution types, termination codes,.">dsdpbasictypes.h</a>&quot;</span>
<a name="l00153"></a>00153 
<a name="l00154"></a>00154 
<a name="l00155"></a>00155 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="allbounds_8c.html#a026bd18ee38b5c9cf2b5a4f5ce52ea12" title="Create bounds cone.">DSDPCreateLUBoundsCone</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334" title="Cone with bounds on variables y.">YBoundCone</a>*);
<a name="l00156"></a>00156 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="allbounds_8c.html#a8332f6f37dddb20cf8bd351b19e54cf3" title="Set bounds on the variables.">BoundYConeSetBounds</a>(<a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334" title="Cone with bounds on variables y.">YBoundCone</a>, <span class="keywordtype">double</span>, <span class="keywordtype">double</span>);
<a name="l00157"></a>00157 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="allbounds_8c.html#a601e09f9ea801ed9b1ddd71de92be7c2" title="Get bounds on the variables.">BoundYConeGetBounds</a>(<a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334" title="Cone with bounds on variables y.">YBoundCone</a>, <span class="keywordtype">double</span>*, <span class="keywordtype">double</span>*);
<a name="l00158"></a>00158 <span class="keyword">extern</span> <span class="keywordtype">int</span> BoundYConeAddX(<a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334" title="Cone with bounds on variables y.">YBoundCone</a>,<span class="keywordtype">double</span>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<span class="keywordtype">double</span>*);
<a name="l00159"></a>00159 <span class="keyword">extern</span> <span class="keywordtype">int</span> BoundYConeAddS(<a class="code" href="dsdp_8h.html#a63fb1fe4854374fdf86be5d0db674334" title="Cone with bounds on variables y.">YBoundCone</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00160"></a>00160 
<a name="l00161"></a>00161 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00162"></a>00162 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00163"></a>00163 <span class="preprocessor">#endif</span>
<a name="l00164"></a>00164 <span class="preprocessor"></span>
<a name="l00165"></a>00165 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a7024b7b5dbbc5914d29e5ac7a1eba545" title="Compute the objective function (DD).">DSDPComputeObjective</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <span class="keywordtype">double</span> *);
<a name="l00166"></a>00166 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#ab857999f0834880cea633350bd673f2e" title="Compute the step direction.">DSDPComputeDY</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <span class="keywordtype">double</span>*);
<a name="l00167"></a>00167 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a52e26571b924b453d5359a32fbcdb469" title="Update the Y variables.">DSDPComputeNewY</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00168"></a>00168 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a2291b15b24f36be603dbca274db5997f" title="Compute the right-hand side of the linear system that determines the step direction.">DSDPComputeRHS</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00169"></a>00169 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#abc6cd551af4104fb327a5a411908e303" title="Compute an affine step direction dy1.">DSDPComputePDY1</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00170"></a>00170 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a8cb81d731067999f226e1999d3ddfa9e" title="Compute the step direction.">DSDPComputePDY</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <span class="keywordtype">double</span>*);
<a name="l00171"></a>00171 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#ac068c96b0701cef420a6ef074690acbd" title="Compute PY = Y - beta DY for use in computing X.">DSDPComputePY</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00172"></a>00172 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a1fefd0ba066603f3c6adff17b06583d4" title="Compute the gradient of the barrier for each cone.">DSDPComputeG</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00173"></a>00173 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a73cd29fb4b7bf78f8bb0454d17d2bf27" title="Compute proximity to a point on the central path.">DSDPComputePNorm</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<span class="keywordtype">double</span>*);
<a name="l00174"></a>00174 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a5cad8f283551874464395089d3aa76b0" title="Compute the current duality gap.">DSDPComputeDualityGap</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>, <span class="keywordtype">double</span>*);
<a name="l00175"></a>00175 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#acd704d80e2686ff321f3a63bc3c3b63f" title="Save the current solution for later computation of X.">DSDPSaveYForX</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>, <span class="keywordtype">double</span>);
<a name="l00176"></a>00176 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#afc317ccad82c19d57f4ffc60812749b5" title="Update the solver with these y variables.">DSDPSetY</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>,<span class="keywordtype">double</span>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00177"></a>00177 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#ad744efbd87d4166f470ecae129535533" title="Compute the potential of the given point.">DSDPComputePotential</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <span class="keywordtype">double</span>,<span class="keywordtype">double</span>*);
<a name="l00178"></a>00178 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a021e787b6bab6efdc2fda0230dfe633c" title="Compute the objective function plus the barrier function.">DSDPComputePotential2</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <span class="keywordtype">double</span>, <span class="keywordtype">double</span>, <span class="keywordtype">double</span>*);
<a name="l00179"></a>00179 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a0f6f666ce8aa2c5a80a8ccfe105c6558" title="Set variable r.">DSDPSetRR</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>);
<a name="l00180"></a>00180 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#af433c52034d6fcfdafe637e66851808c" title="Get variable r.">DSDPGetRR</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>*);
<a name="l00181"></a>00181 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__DSDPSolution.html#gae2e8b2a5e1b71d699d753a045de95add" title="Copy the the infinity norm of the variables y.">DSDPGetMaxYElement</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>*);
<a name="l00182"></a>00182 
<a name="l00183"></a>00183 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a966c193bf736a9e5320f9ddc10e0d767" title="Apply dual-scaling algorithm.">DSDPSolveDynamicRho</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00184"></a>00184 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPRefineStepDirection(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00185"></a>00185 
<a name="l00186"></a>00186 <span class="comment">/* Cone operations */</span>
<a name="l00187"></a>00187 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a122354cd946e3323df519ad58061de7c" title="Each cone should factor data or allocate internal data structures.">DSDPSetUpCones</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00188"></a>00188 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#aee3443bb7583964d908c57096572318d" title="Each cone should allocate its data structures .">DSDPSetUpCones2</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>);
<a name="l00189"></a>00189 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a4116515642c1eb1c843b90aee3909cec" title="Each cone should print its state.">DSDPSchurSparsity</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>[], <span class="keywordtype">int</span>);
<a name="l00190"></a>00190 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a0866ec107b5c60afbec8a9bda9caa22d" title="Compute the dual variables S in each cone.">DSDPComputeSS</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <a class="code" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b" title="DSDP requires two instances of the data structures S.">DSDPDualFactorMatrix</a>, <a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a>*);
<a name="l00191"></a>00191 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a4a52d63cd2860f6737c4c89409656866" title="Invert the S variables in each cone.">DSDPInvertS</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00192"></a>00192 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a2ceab284bd7f378ae4da0c3b01362d8b" title="Compute the Schur complement, or Gram, matrix for each cone.">DSDPComputeHessian</a>( <a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,  <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00193"></a>00193 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a9174f9ff18c7b5ccaa0550f12b22ab5a" title="Add the product of Schur matrix with v.">DSDPHessianMultiplyAdd</a>( <a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00194"></a>00194 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#acd9df2e3c28389c1a0c29ea05bcc73ee" title="Compute the maximum step length for the given step direction.">DSDPComputeMaxStepLength</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>, <a class="code" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b" title="DSDP requires two instances of the data structures S.">DSDPDualFactorMatrix</a>, <span class="keywordtype">double</span>*);
<a name="l00195"></a>00195 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a365ab3f361a5bf6770a8276e7ea2be41" title="Compute the logarithmic barrier function for the dual varialbe S.">DSDPComputeLogSDeterminant</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>*);
<a name="l00196"></a>00196 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a4f78e03b432425021752f660a87cb480" title="Compute norm of A and C.">DSDPComputeANorm2</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00197"></a>00197 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a7fa00d4f9f0ecb5c8e7890ec7cfdc44d" title="Each cone should print its state.">DSDPViewCones</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00198"></a>00198 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a7026470fc2bdbe37a0115250883a7f1e" title="This routine is called once per iteration.">DSDPMonitorCones</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">int</span>);
<a name="l00199"></a>00199 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#adeaefde55edd2502a9eaae479d337fbf" title="Each cone shoudl free its data structures.">DSDPDestroyCones</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00200"></a>00200 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a4d28c58bb5605d6636c6a425c10bf9ea" title="Pass the information needed to compute the variables X in each cone but do not compute X...">DSDPPassXVectors</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00201"></a>00201 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a871c5d28852a40e2593f75e635855296" title="Compute the X variables in each cone.">DSDPComputeXVariables</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<span class="keywordtype">double</span>*);
<a name="l00202"></a>00202 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#ad36ddc31c51eafafc6bf915e54492259" title="Get the total dimension of the cones.">DSDPGetConicDimension</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">double</span>*);
<a name="l00203"></a>00203 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a4116515642c1eb1c843b90aee3909cec" title="Each cone should print its state.">DSDPSchurSparsity</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>[], <span class="keywordtype">int</span>);
<a name="l00204"></a>00204 
<a name="l00205"></a>00205 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a4e27e7414827a3737eb8a22456e0a9db" title="Apply CG to solve for the step directions.">DSDPCGSolve</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<span class="keywordtype">double</span>,<a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a>*);
<a name="l00206"></a>00206 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPComputeDualStepDirection(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">double</span>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00207"></a>00207 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#addddb60ed549d438c2a4a0782601094a" title="Compute the step direction by computing a linear system and solving it.">DSDPComputeDualStepDirections</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00208"></a>00208 
<a name="l00209"></a>00209 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#aa7ef8e73a60cea369a21c3acd004e8ab" title="Pass a cone to the DSDP solver.">DSDPSetCone</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="dsdpcone_8h.html#a635fc48fba0ec5edb9b23bd57aadb1e1" title="This object holds the data of a SDP, LP, or other cone. Its structure is opaque to the DSDP Solver...">DSDPCone</a>);
<a name="l00210"></a>00210 
<a name="l00211"></a>00211 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a335ca9a49f2901cc0022224e0cee0adb" title="Scale the matrix C.">DSDPScaleData</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00212"></a>00212 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#aa4a55b45b5eed1dcf620f6b30b422ce8" title="Compute norms of A,C, and b.">DSDPComputeDataNorms</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00213"></a>00213 
<a name="l00214"></a>00214 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#af722e26f3bbe2a11c0bbfa7073c535d7" title="Destroy internal data structures.">DSDPTakeDown</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00215"></a>00215 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a0aa7c1e1f948694ba1c3363f35ef9980" title="Set default statistics.">DSDPSetDefaultStatistics</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00216"></a>00216 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#ac822ab1ff27bbc23f5ae4d7a14e593ee" title="Set default parameters.">DSDPSetDefaultParameters</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00217"></a>00217 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a1ac0c165e2acf2e792cf39618e65038e" title="Set convergence monitor.">DSDPSetDefaultMonitors</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00218"></a>00218 
<a name="l00219"></a>00219 <span class="comment">/* DSDP subroutines */</span>
<a name="l00220"></a>00220 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#ae27ce4d0697371c7cef4db8fedb7c37e" title="Initialize variables and factor S.">DSDPInitializeVariables</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00221"></a>00221 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a3d8e928c37fdc4ffc624f204930b29c1" title="Compute gradient of dual objective.">DSDPObjectiveGH</a>( <a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00222"></a>00222 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPCheckForUnboundedObjective(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a>*);
<a name="l00223"></a>00223 
<a name="l00224"></a>00224 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#ab3333e00f0dc3e9baa879b6d32e46acb" title="Check for convergence and monitor solution.">DSDPCheckConvergence</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3a" title="There are many reasons to terminate the solver.">DSDPTerminationReason</a> *);
<a name="l00225"></a>00225 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPMonitor(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00226"></a>00226 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__DSDPSolver.html#gafff1eae59a82f7d94915e6388a1c5fa9" title="Print statistics about the current solution to standard output.">DSDPPrintStats</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">void</span>*); 
<a name="l00227"></a>00227 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPPrintStatsFile(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, <span class="keywordtype">void</span>*);
<a name="l00228"></a>00228 
<a name="l00229"></a>00229 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPGetSchurMatrix(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>*);
<a name="l00230"></a>00230 
<a name="l00231"></a>00231 
<a name="l00232"></a>00232 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00233"></a>00233 <span class="preprocessor"></span>}
<a name="l00234"></a>00234 <span class="preprocessor">#endif</span>
<a name="l00235"></a>00235 <span class="preprocessor"></span>
<a name="l00236"></a>00236 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdprescone_8c.html#afebbfe005081dc3efdad71414b838cdf" title="A separate cone specifies that r must be nonnegative.">DSDPAddRCone</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="dsdp_8h.html#aad5dc1d467db3c4aaea877c5bd2727af" title="Cone with nonnegativity on variable r.">RRCone</a>*);
<a name="l00237"></a>00237 <span class="keyword">extern</span> <span class="keywordtype">int</span> RConeSetType(<a class="code" href="dsdp_8h.html#aad5dc1d467db3c4aaea877c5bd2727af" title="Cone with nonnegativity on variable r.">RRCone</a>, DSDPPenalty);
<a name="l00238"></a>00238 <span class="keyword">extern</span> <span class="keywordtype">int</span> RConeGetRX(<a class="code" href="dsdp_8h.html#aad5dc1d467db3c4aaea877c5bd2727af" title="Cone with nonnegativity on variable r.">RRCone</a>, <span class="keywordtype">double</span>*);
<a name="l00239"></a>00239 
<a name="l00240"></a>00240 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdp_8h.html#a04dd4c7875c4c1d140093767c1f2a6f2" title="Get the structure containing convergence parameters.">DSDPGetConvergenceMonitor</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>, ConvergenceMonitor**);
<a name="l00241"></a>00241 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="group__DSDPConverge.html#ga0ec9106b132f46ce0a4109e1d9f3e3ff" title="Check for Convergence.">DSDPDefaultConvergence</a>(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<span class="keywordtype">void</span> *);
<a name="l00242"></a>00242 
<a name="l00243"></a>00243 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPSetDefaultSchurMatrixStructure(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>);
<a name="l00244"></a>00244 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPFixedVariablesNorm(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00245"></a>00245 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPComputeFixedYX(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>);
<a name="l00246"></a>00246 
<a name="l00247"></a>00247 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPAddBCone(<a class="code" href="structDSDP__C.html" title="Internal structures for the DSDP solver.">DSDP</a>,<a class="code" href="dsdpvec_8h.html#a421243d35437ad44ded3c1e34198e8e9" title="This object hold m+2 variables: a scaling of C, the y variables, and r.">DSDPVec</a>,<span class="keywordtype">double</span>);
<a name="l00248"></a>00248 
<a name="l00249"></a>00249 <span class="preprocessor">#endif</span>
</pre></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>