<!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: include/dsdpbasictypes.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">DSDP</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_a85e8a4ff74ee6e4ec6add3296036b20.html">include</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">dsdpbasictypes.h File Reference</div> </div> </div> <div class="contents"> <p>Solver, solution types, termination codes,. <a href="#details">More...</a></p> <p><a href="dsdpbasictypes_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structDSDP__C.html">DSDP_C</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpbasictypes_8h.html#a6846cf08c1143f181c7ff13cb00b8ea5">DSDP</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An implementation of the dual-scaling algorithm for semidefinite programming. <a href="#a6846cf08c1143f181c7ff13cb00b8ea5"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a> { <br/>   <a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634bab6fdf4f2eac3be74db4cdd12007f3cb0">DUAL_FACTOR</a> = 1, <br/>   <a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634baa8adedc328d310fc0bb1b04a9091bad1">PRIMAL_FACTOR</a> = 2 <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">DSDP requires two instances of the data structures S. <a href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90">DSDPSolutionType</a> { <br/>   <a class="el" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90a7dfad20f823f952f1442144a8fa5c208">DSDP_PDUNKNOWN</a> = 0, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90a6ebc36bcf5037f059ae5e9014e76cee0">DSDP_PDFEASIBLE</a> = 1, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90a0008f194b20fc02f61eca61fab25ed05">DSDP_UNBOUNDED</a> = 3, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90abb5750f090ec5d7e1d8c1aead6565a52">DSDP_INFEASIBLE</a> = 4 <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Formulations (P) and (D) can be feasible and bounded, feasible and unbounded, or infeasible. <a href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3a">DSDPTerminationReason</a> { <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aa9d1d9628ba1a342cc5403338bc84ae6b">DSDP_CONVERGED</a> = 1, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aa7f8800e949dce9fa0f5e41b9bca69e02">DSDP_INFEASIBLE_START</a> = -6, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aaaae024f404b3e21b95c40583917f1c5f">DSDP_SMALL_STEPS</a> = -2, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aa00cee4470de06c0e859c051ec0374788">DSDP_INDEFINITE_SCHUR_MATRIX</a> = -8, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aa2bf71cc572ec2d45e18e8182a6341854">DSDP_MAX_IT</a> = -3, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aafd547daf59da4b0986d7894d38d3d269">DSDP_NUMERICAL_ERROR</a> = -9, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aa3cf44a69251d45275e6c6564f08b3e08">DSDP_UPPERBOUND</a> = 5, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aa1b8a1f02bbca1c2d6105f2ba408fa7b4">DSDP_USER_TERMINATION</a> = 7, <br/>   <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3aa1eff5fd2a15ae3ba9ba57eb0db8db618">CONTINUE_ITERATING</a> = 0 <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">There are many reasons to terminate the solver. <a href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3a">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65">DSDPTruth</a> { <br/>   <a class="el" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65a74385569aa7a59059a8847e2d39b754c">DSDP_FALSE</a> = 0, <br/>   <a class="el" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65ae6b2e53e51e94a5fa7204ceac78f824f">DSDP_TRUE</a> = 1 <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Boolean variables. <a href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DSDPConverge.html#ga1293e76a2fb57bd963713c3df7e88221">DSDPSetConvergenceFlag</a> (<a class="el" href="structDSDP__C.html">DSDP</a>, <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3a">DSDPTerminationReason</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Monitor each iteration of the solver. <a href="group__DSDPConverge.html#ga1293e76a2fb57bd963713c3df7e88221"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Solver, solution types, termination codes,. </p> <p>Definition in file <a class="el" href="dsdpbasictypes_8h_source.html">dsdpbasictypes.h</a>.</p> </div><hr/><h2>Typedef Documentation</h2> <a class="anchor" id="a6846cf08c1143f181c7ff13cb00b8ea5"></a><!-- doxytag: member="dsdpbasictypes.h::DSDP" ref="a6846cf08c1143f181c7ff13cb00b8ea5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structDSDP__C.html">DSDP_C</a> * <a class="el" href="structDSDP__C.html">DSDP</a></td> </tr> </table> </div> <div class="memdoc"> <p>An implementation of the dual-scaling algorithm for semidefinite programming. </p> <p>Definition at line <a class="el" href="dsdpbasictypes_8h_source.html#l00013">13</a> of file <a class="el" href="dsdpbasictypes_8h_source.html">dsdpbasictypes.h</a>.</p> </div> </div> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ae47666e7e5d77002110e20ef9ebb634b"></a><!-- doxytag: member="dsdpbasictypes.h::DSDPDualFactorMatrix" ref="ae47666e7e5d77002110e20ef9ebb634b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum enum <a class="el" href="dsdpbasictypes_8h.html#ae47666e7e5d77002110e20ef9ebb634b">DSDPDualFactorMatrix</a></td> </tr> </table> </div> <div class="memdoc"> <p>DSDP requires two instances of the data structures S. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="ae47666e7e5d77002110e20ef9ebb634bab6fdf4f2eac3be74db4cdd12007f3cb0"></a><!-- doxytag: member="DUAL_FACTOR" ref="ae47666e7e5d77002110e20ef9ebb634bab6fdf4f2eac3be74db4cdd12007f3cb0" args="" -->DUAL_FACTOR</em> </td><td> <p>First instance for dual variable S </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae47666e7e5d77002110e20ef9ebb634baa8adedc328d310fc0bb1b04a9091bad1"></a><!-- doxytag: member="PRIMAL_FACTOR" ref="ae47666e7e5d77002110e20ef9ebb634baa8adedc328d310fc0bb1b04a9091bad1" args="" -->PRIMAL_FACTOR</em> </td><td> <p>Second instance used to compute X </p> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpbasictypes_8h_source.html#l00025">25</a> of file <a class="el" href="dsdpbasictypes_8h_source.html">dsdpbasictypes.h</a>.</p> </div> </div> <a class="anchor" id="a7c124046b4ddae3d637157242af2df90"></a><!-- doxytag: member="dsdpbasictypes.h::DSDPSolutionType" ref="a7c124046b4ddae3d637157242af2df90" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum enum <a class="el" href="dsdpbasictypes_8h.html#a7c124046b4ddae3d637157242af2df90">DSDPSolutionType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Formulations (P) and (D) can be feasible and bounded, feasible and unbounded, or infeasible. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPBasic.html#ga33e05559ab15ea40b1e9b31ecc206b3e" title="Solutions can be bounded, infeasible, or unbounded.">DSDPGetSolutionType()</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a7c124046b4ddae3d637157242af2df90a7dfad20f823f952f1442144a8fa5c208"></a><!-- doxytag: member="DSDP_PDUNKNOWN" ref="a7c124046b4ddae3d637157242af2df90a7dfad20f823f952f1442144a8fa5c208" args="" -->DSDP_PDUNKNOWN</em> </td><td> <p>Not sure whether (D) or (P) is feasible, check y bounds </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a7c124046b4ddae3d637157242af2df90a6ebc36bcf5037f059ae5e9014e76cee0"></a><!-- doxytag: member="DSDP_PDFEASIBLE" ref="a7c124046b4ddae3d637157242af2df90a6ebc36bcf5037f059ae5e9014e76cee0" args="" -->DSDP_PDFEASIBLE</em> </td><td> <p>Both (D) and (P) are feasible and bounded </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a7c124046b4ddae3d637157242af2df90a0008f194b20fc02f61eca61fab25ed05"></a><!-- doxytag: member="DSDP_UNBOUNDED" ref="a7c124046b4ddae3d637157242af2df90a0008f194b20fc02f61eca61fab25ed05" args="" -->DSDP_UNBOUNDED</em> </td><td> <p>(D) is unbounded and (P) is infeasible </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a7c124046b4ddae3d637157242af2df90abb5750f090ec5d7e1d8c1aead6565a52"></a><!-- doxytag: member="DSDP_INFEASIBLE" ref="a7c124046b4ddae3d637157242af2df90abb5750f090ec5d7e1d8c1aead6565a52" args="" -->DSDP_INFEASIBLE</em> </td><td> <p>(D) in infeasible and (P) is unbounded </p> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpbasictypes_8h_source.html#l00038">38</a> of file <a class="el" href="dsdpbasictypes_8h_source.html">dsdpbasictypes.h</a>.</p> </div> </div> <a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3a"></a><!-- doxytag: member="dsdpbasictypes.h::DSDPTerminationReason" ref="a2a68c4cccb1289043bf9b59a58f55b3a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum enum <a class="el" href="dsdpbasictypes_8h.html#a2a68c4cccb1289043bf9b59a58f55b3a">DSDPTerminationReason</a></td> </tr> </table> </div> <div class="memdoc"> <p>There are many reasons to terminate the solver. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DSDPConverge.html#ga637bf541e030c5aef4d436a9792714a2" title="Copy the reason why the solver terminated.">DSDPStopReason()</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aa9d1d9628ba1a342cc5403338bc84ae6b"></a><!-- doxytag: member="DSDP_CONVERGED" ref="a2a68c4cccb1289043bf9b59a58f55b3aa9d1d9628ba1a342cc5403338bc84ae6b" args="" -->DSDP_CONVERGED</em> </td><td> <p>Good <a href="news:">news:</a> Solution found. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aa7f8800e949dce9fa0f5e41b9bca69e02"></a><!-- doxytag: member="DSDP_INFEASIBLE_START" ref="a2a68c4cccb1289043bf9b59a58f55b3aa7f8800e949dce9fa0f5e41b9bca69e02" args="" -->DSDP_INFEASIBLE_START</em> </td><td> <p>The initial points y and r imply that S is not positive </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aaaae024f404b3e21b95c40583917f1c5f"></a><!-- doxytag: member="DSDP_SMALL_STEPS" ref="a2a68c4cccb1289043bf9b59a58f55b3aaaae024f404b3e21b95c40583917f1c5f" args="" -->DSDP_SMALL_STEPS</em> </td><td> <p>Short step lengths created by numerical difficulties prevent progress </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aa00cee4470de06c0e859c051ec0374788"></a><!-- doxytag: member="DSDP_INDEFINITE_SCHUR_MATRIX" ref="a2a68c4cccb1289043bf9b59a58f55b3aa00cee4470de06c0e859c051ec0374788" args="" -->DSDP_INDEFINITE_SCHUR_MATRIX</em> </td><td> <p>Theoretically this matrix is positive definite </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aa2bf71cc572ec2d45e18e8182a6341854"></a><!-- doxytag: member="DSDP_MAX_IT" ref="a2a68c4cccb1289043bf9b59a58f55b3aa2bf71cc572ec2d45e18e8182a6341854" args="" -->DSDP_MAX_IT</em> </td><td> <p>Reached maximum number of iterations </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aafd547daf59da4b0986d7894d38d3d269"></a><!-- doxytag: member="DSDP_NUMERICAL_ERROR" ref="a2a68c4cccb1289043bf9b59a58f55b3aafd547daf59da4b0986d7894d38d3d269" args="" -->DSDP_NUMERICAL_ERROR</em> </td><td> <p>Another numerical error occurred. Check solution </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aa3cf44a69251d45275e6c6564f08b3e08"></a><!-- doxytag: member="DSDP_UPPERBOUND" ref="a2a68c4cccb1289043bf9b59a58f55b3aa3cf44a69251d45275e6c6564f08b3e08" args="" -->DSDP_UPPERBOUND</em> </td><td> <p>Objective (DD) big enough to stop </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aa1b8a1f02bbca1c2d6105f2ba408fa7b4"></a><!-- doxytag: member="DSDP_USER_TERMINATION" ref="a2a68c4cccb1289043bf9b59a58f55b3aa1b8a1f02bbca1c2d6105f2ba408fa7b4" args="" -->DSDP_USER_TERMINATION</em> </td><td> <p>DSDP didn't stop it, did you? </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2a68c4cccb1289043bf9b59a58f55b3aa1eff5fd2a15ae3ba9ba57eb0db8db618"></a><!-- doxytag: member="CONTINUE_ITERATING" ref="a2a68c4cccb1289043bf9b59a58f55b3aa1eff5fd2a15ae3ba9ba57eb0db8db618" args="" -->CONTINUE_ITERATING</em> </td><td> <p>Don't Stop </p> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpbasictypes_8h_source.html#l00050">50</a> of file <a class="el" href="dsdpbasictypes_8h_source.html">dsdpbasictypes.h</a>.</p> </div> </div> <a class="anchor" id="ae667f2bff3ab5ab0bc109fa76dc4ed65"></a><!-- doxytag: member="dsdpbasictypes.h::DSDPTruth" ref="ae667f2bff3ab5ab0bc109fa76dc4ed65" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum enum <a class="el" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65">DSDPTruth</a></td> </tr> </table> </div> <div class="memdoc"> <p>Boolean variables. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="ae667f2bff3ab5ab0bc109fa76dc4ed65a74385569aa7a59059a8847e2d39b754c"></a><!-- doxytag: member="DSDP_FALSE" ref="ae667f2bff3ab5ab0bc109fa76dc4ed65a74385569aa7a59059a8847e2d39b754c" args="" -->DSDP_FALSE</em> </td><td> <p>0 </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ae667f2bff3ab5ab0bc109fa76dc4ed65ae6b2e53e51e94a5fa7204ceac78f824f"></a><!-- doxytag: member="DSDP_TRUE" ref="ae667f2bff3ab5ab0bc109fa76dc4ed65ae6b2e53e51e94a5fa7204ceac78f824f" args="" -->DSDP_TRUE</em> </td><td> <p>1 </p> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="dsdpbasictypes_8h_source.html#l00019">19</a> of file <a class="el" href="dsdpbasictypes_8h_source.html">dsdpbasictypes.h</a>.</p> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Wed Jun 8 2011 for DSDP by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>