<!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: Semidefinite Blocks (Operational Routines)</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><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">Semidefinite Blocks (Operational Routines)</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 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga7a1b477dea7f499f3b3499c479087632">SDPConeAddADotX</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, double alpha, double x[], int nn, double adotx[], int m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the inner products of a dense matrix X with the data matrices. <a href="#ga7a1b477dea7f499f3b3499c479087632"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga521bba9ef443933ea8748aa1e7f8d142">SDPConeAddXVAV</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, double vin[], int n, double sum[], int mm)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute <img class="formulaInl" alt="$ v^T A_{i,j} v $" src="form_15.png"/> for i = 0 through m. <a href="#ga521bba9ef443933ea8748aa1e7f8d142"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga1ef87e3c016d9668efaa8240bec4383b">SDPConeComputeS</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, double cc, double y[], int nvars, double r, int n, double s[], int nn)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the dual matrix S. <a href="#ga1ef87e3c016d9668efaa8240bec4383b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga42571e7fb01fa614f3ab4bfdf069d5f7">SDPConeComputeX</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, int n, double x[], int nn)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute the matrix X. <a href="#ga42571e7fb01fa614f3ab4bfdf069d5f7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga274b127d17d7dec0dc4b0ca499f13e89">SDPConeComputeXV</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, int *derror)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compute a factor V such that <img class="formulaInl" alt="$ V V^T= X $" src="form_14.png"/>. <a href="#ga274b127d17d7dec0dc4b0ca499f13e89"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#gada3cc6468c592a2e40b4f78b0def507c">SDPConeGetBlockSize</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, int *n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the dimension of one block in the semidefinite cone. <a href="#gada3cc6468c592a2e40b4f78b0def507c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga1b36d9b0d9411f3a46dafbeffddc8def">SDPConeGetNumberOfBlocks</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int *nblocks)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of blocks in the semidefinite cone. <a href="#ga1b36d9b0d9411f3a46dafbeffddc8def"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#gaa9602b67858d92a161dab4a0b36e42ac">SDPConeMatrixView</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print the dense array to the screen. <a href="#gaa9602b67858d92a161dab4a0b36e42ac"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#gafd7a739bd01013be7e96f4069d526524">SDPConeRestoreXArray</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, double *xx[], int *nn)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Restore the dense array and set these pointers to null. <a href="#gafd7a739bd01013be7e96f4069d526524"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga0c3a5c6eee6aca0ab0c222fbfcca1d19">SDPConeSetBlockSize</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, int n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the dimension of one block in the semidefinite cone. <a href="#ga0c3a5c6eee6aca0ab0c222fbfcca1d19"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga40728695e4c841900c02c615a8d96ab0">SDPConeSetSparsity</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, int nnz)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the number of nonzero matrices in a block of the semidefinite cone. <a href="#ga40728695e4c841900c02c615a8d96ab0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#gaa3db1133fbf2edbfc1e48521bb367705">SDPConeSetXArray</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, int n, double xx[], int nn)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Provide an array for the SDPCone object can use to store dense matrices. <a href="#gaa3db1133fbf2edbfc1e48521bb367705"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__SDPRoutines.html#ga288158182d952a72534b9c8894407c5b">SDPConeXVMultiply</a> (<a class="el" href="structSDPCone__C.html">SDPCone</a> sdpcone, int blockj, double vin[], double vout[], int n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply an array by a factor V such that <img class="formulaInl" alt="$ V V^T= X $" src="form_14.png"/>. <a href="#ga288158182d952a72534b9c8894407c5b"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <p>Additional routines that operate on the data.</p> <div class="fragment"><pre class="fragment"><span class="preprocessor">#include dsdp5.h </span> </pre></div><p>In <a class="el" href="PDForm.html">DSDP Standard Form</a> a semidefinite program is given by the pair of problems </p> <p class="formulaDsp"> <img class="formulaDsp" alt="\[ \begin{array}{llllllllll} (P) \ \ \ & \mbox{minimize} & {\displaystyle \sum_{j=0}^{n_b-1} C_j \bullet X_j } &\mbox{subject to}& {\displaystyle \sum_{j=0}^{n_b-1} A_{i,j} \bullet X_{j} = b_i } ,& i=1,\ldots, m, & & X_j \succeq 0, \\ \end{array} \]" src="form_52.png"/> </p> <p class="formulaDsp"> <img class="formulaDsp" alt="\[ \begin{array}{lllllllll} (D) \ \ \ & \mbox{maximize} & {\displaystyle \sum_{i=1}^m b_i \ y_i } &\mbox{subject to}&{\displaystyle \sum_{i=1}^m A_{i,j}y_i + S_{j} } = C_{j}, & j=0, \ldots, n_b-1, & S_j \succeq 0 \\ \end{array} \]" src="form_53.png"/> </p> <p> where the data <img class="formulaInl" alt="$A_{i,j}$" src="form_2.png"/> and <img class="formulaInl" alt="$C_j$" src="form_28.png"/> are symmetric matrices of the same dimension and the inner product of two <img class="formulaInl" alt="$n \times n$" src="form_3.png"/> matrices <img class="formulaInl" alt="$C=(c_{k,l})$" src="form_29.png"/> and <img class="formulaInl" alt="$X=(x_{k,l})$" src="form_30.png"/> is defined by <img class="formulaInl" alt="$ C \bullet X := trace (C^T X) = \sum_{k,l}c_{k,l} x_{k,l} $" src="form_54.png"/>.</p> <p>Blocks are labelled from 0 to <em>nblocks</em>, where <em>nblocks</em> is the total number of blocks in the SDPCone object.</p> <p>Variables y are numbered 1 through m. Variable 0 designates the C matrices, which are also denoted <img class="formulaInl" alt="$ A_{0,j}$" src="form_55.png"/>.</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> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga7a1b477dea7f499f3b3499c479087632"></a><!-- doxytag: member="sdpcone.c::SDPConeAddADotX" ref="ga7a1b477dea7f499f3b3499c479087632" args="(SDPCone sdpcone, int blockj, double alpha, double x[], int nn, double adotx[], int m)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeAddADotX </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>alpha</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>x</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>adotx</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>m</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the inner products of a dense matrix X with the data matrices. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">alpha</td><td>multiply inner product be this multiple </td></tr> <tr><td class="paramname">x</td><td>the dense array representing a matrix X. </td></tr> <tr><td class="paramname">nn</td><td>length of the array </td></tr> <tr><td class="paramname">adotx</td><td>array. </td></tr> <tr><td class="paramname">m</td><td>the length of the array and the number of variables y, plus two. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sdpcone_8c_source.html#l00075">75</a> of file <a class="el" href="sdpcone_8c_source.html">sdpcone.c</a>.</p> </div> </div> <a class="anchor" id="ga521bba9ef443933ea8748aa1e7f8d142"></a><!-- doxytag: member="sdpcone.c::SDPConeAddXVAV" ref="ga521bba9ef443933ea8748aa1e7f8d142" args="(SDPCone sdpcone, int blockj, double vin[], int n, double sum[], int mm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeAddXVAV </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>vin</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>sum</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>mm</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute <img class="formulaInl" alt="$ v^T A_{i,j} v $" src="form_15.png"/> for i = 0 through m. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>the SDP cone </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">vin</td><td>array </td></tr> <tr><td class="paramname">n</td><td>dimension of the block and the length of the two arrays. </td></tr> <tr><td class="paramname">sum</td><td>input array </td></tr> <tr><td class="paramname">mm</td><td>the number of variables plus 2 </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__SDPRoutines.html#ga7a1b477dea7f499f3b3499c479087632" title="Compute the inner products of a dense matrix X with the data matrices.">SDPConeAddADotX()</a> </dd></dl> <p>Definition at line <a class="el" href="sdpcone_8c_source.html#l00292">292</a> of file <a class="el" href="sdpcone_8c_source.html">sdpcone.c</a>.</p> <p>Referenced by <a class="el" href="maxcut_8c_source.html#l00175">MaxCutRandomized()</a>, and <a class="el" href="stable_8c_source.html#l00164">StableRandomized()</a>.</p> </div> </div> <a class="anchor" id="ga1ef87e3c016d9668efaa8240bec4383b"></a><!-- doxytag: member="sdpcone.c::SDPConeComputeS" ref="ga1ef87e3c016d9668efaa8240bec4383b" args="(SDPCone sdpcone, int blockj, double cc, double y[], int nvars, double r, int n, double s[], int nn)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeComputeS </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>cc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>y</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nvars</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>r</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>s</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nn</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the dual matrix S. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">cc</td><td>the multiple of the matrix C (or A_0) </td></tr> <tr><td class="paramname">y</td><td>an array of containing the variables y </td></tr> <tr><td class="paramname">nvars</td><td>the length of the array and the number of variables y </td></tr> <tr><td class="paramname">r</td><td>the multiple of the identity matrix to add </td></tr> <tr><td class="paramname">n</td><td>the dimension of the block </td></tr> <tr><td class="paramname">s</td><td>array to where the matrix S will be copied. </td></tr> <tr><td class="paramname">nn</td><td>length of the array s </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="sdpcone_8c_source.html#l00042">42</a> of file <a class="el" href="sdpcone_8c_source.html">sdpcone.c</a>.</p> <p>Referenced by <a class="el" href="printsdpa_8c_source.html#l00164">DSDPPrintData()</a>, and <a class="el" href="printsdpa_8c_source.html#l00094">DSDPPrintSolution()</a>.</p> </div> </div> <a class="anchor" id="ga42571e7fb01fa614f3ab4bfdf069d5f7"></a><!-- doxytag: member="sdpcone.c::SDPConeComputeX" ref="ga42571e7fb01fa614f3ab4bfdf069d5f7" args="(SDPCone sdpcone, int blockj, int n, double x[], int nn)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeComputeX </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>x</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nn</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute the matrix X. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone </td></tr> <tr><td class="paramname">n</td><td>di </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">n</td><td>the dimension of the block </td></tr> <tr><td class="paramname">x</td><td>array to where the matrix X will be copied. </td></tr> <tr><td class="paramname">nn</td><td>length of the array x </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><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="sdpcone_8c_source.html#l00191">191</a> of file <a class="el" href="sdpcone_8c_source.html">sdpcone.c</a>.</p> </div> </div> <a class="anchor" id="ga274b127d17d7dec0dc4b0ca499f13e89"></a><!-- doxytag: member="sdpcone.c::SDPConeComputeXV" ref="ga274b127d17d7dec0dc4b0ca499f13e89" args="(SDPCone sdpcone, int blockj, int *derror)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeComputeXV </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>derror</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compute a factor V such that <img class="formulaInl" alt="$ V V^T= X $" src="form_14.png"/>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>the SDP cone </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">derror</td><td>nonzero if no such factor could be computed. </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__SDPRoutines.html#ga288158182d952a72534b9c8894407c5b" title="Multiply an array by a factor V such that .">SDPConeXVMultiply()</a></dd></dl> <p>This routine is helpful in semidefinite relaxations of combinatorial problems. </p> <p>Definition at line <a class="el" href="sdpcone_8c_source.html#l00325">325</a> of file <a class="el" href="sdpcone_8c_source.html">sdpcone.c</a>.</p> <p>Referenced by <a class="el" href="maxcut_8c_source.html#l00175">MaxCutRandomized()</a>, and <a class="el" href="stable_8c_source.html#l00164">StableRandomized()</a>.</p> </div> </div> <a class="anchor" id="gada3cc6468c592a2e40b4f78b0def507c"></a><!-- doxytag: member="dsdpadddata.c::SDPConeGetBlockSize" ref="gada3cc6468c592a2e40b4f78b0def507c" args="(SDPCone sdpcone, int blockj, int *n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeGetBlockSize </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the dimension of one block in the semidefinite cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">*n</td><td>set to the dimension of the block </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__SDPRoutines.html#ga0c3a5c6eee6aca0ab0c222fbfcca1d19" title="Set the dimension of one block in the semidefinite cone.">SDPConeSetBlockSize()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpadddata_8c_source.html#l00560">560</a> of file <a class="el" href="dsdpadddata_8c_source.html">dsdpadddata.c</a>.</p> <p>Referenced by <a class="el" href="printsdpa_8c_source.html#l00164">DSDPPrintData()</a>, <a class="el" href="printsdpa_8c_source.html#l00094">DSDPPrintSolution()</a>, and <a class="el" href="sdpcone_8c_source.html#l00075">SDPConeAddADotX()</a>.</p> </div> </div> <a class="anchor" id="ga1b36d9b0d9411f3a46dafbeffddc8def"></a><!-- doxytag: member="dsdpadddata.c::SDPConeGetNumberOfBlocks" ref="ga1b36d9b0d9411f3a46dafbeffddc8def" args="(SDPCone sdpcone, int *nblocks)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeGetNumberOfBlocks </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>nblocks</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the number of blocks in the semidefinite cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">*nblocks</td><td>set to the dimension of the block </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd>DSDPCreateSDPCone() </dd></dl> <p>Definition at line <a class="el" href="dsdpadddata_8c_source.html#l00578">578</a> of file <a class="el" href="dsdpadddata_8c_source.html">dsdpadddata.c</a>.</p> <p>Referenced by <a class="el" href="printsdpa_8c_source.html#l00164">DSDPPrintData()</a>, and <a class="el" href="printsdpa_8c_source.html#l00094">DSDPPrintSolution()</a>.</p> </div> </div> <a class="anchor" id="gaa9602b67858d92a161dab4a0b36e42ac"></a><!-- doxytag: member="dsdpadddata.c::SDPConeMatrixView" ref="gaa9602b67858d92a161dab4a0b36e42ac" args="(SDPCone sdpcone, int blockj)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeMatrixView </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Print the dense array to the screen. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__SDPBasic.html#ga9e7744a5c7fbe87642979e2b41bc2c00" title="After applying the solver, set a pointer to the array in the object with the solution X...">SDPConeGetXArray()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpadddata_8c_source.html#l00372">372</a> of file <a class="el" href="dsdpadddata_8c_source.html">dsdpadddata.c</a>.</p> </div> </div> <a class="anchor" id="gafd7a739bd01013be7e96f4069d526524"></a><!-- doxytag: member="dsdpadddata.c::SDPConeRestoreXArray" ref="gafd7a739bd01013be7e96f4069d526524" args="(SDPCone sdpcone, int blockj, double *xx[], int *nn)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeRestoreXArray </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>xx</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </td> <td class="paramname"><em>nn</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Restore the dense array and set these pointers to null. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">xx</td><td>address of an array for dense matrices </td></tr> <tr><td class="paramname">*nn</td><td>the length of the array </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__SDPBasic.html#ga9e7744a5c7fbe87642979e2b41bc2c00" title="After applying the solver, set a pointer to the array in the object with the solution X...">SDPConeGetXArray()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpadddata_8c_source.html#l00351">351</a> of file <a class="el" href="dsdpadddata_8c_source.html">dsdpadddata.c</a>.</p> <p>Referenced by <a class="el" href="printsdpa_8c_source.html#l00094">DSDPPrintSolution()</a>.</p> </div> </div> <a class="anchor" id="ga0c3a5c6eee6aca0ab0c222fbfcca1d19"></a><!-- doxytag: member="dsdpadddata.c::SDPConeSetBlockSize" ref="ga0c3a5c6eee6aca0ab0c222fbfcca1d19" args="(SDPCone sdpcone, int blockj, int n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeSetBlockSize </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the dimension of one block in the semidefinite cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">n</td><td>dimension of the block </td></tr> </table> </dd> </dl> <dl class="note"><dt><b>Note:</b></dt><dd>This routine is optional, but its use can help the object detect input errors. </dd></dl> <p>Definition at line <a class="el" href="dsdpadddata_8c_source.html#l00535">535</a> of file <a class="el" href="dsdpadddata_8c_source.html">dsdpadddata.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>, <a class="el" href="dsdpadddata_8c_source.html#l00048">SDPConeCheckN()</a>, and <a class="el" href="stable_8c_source.html#l00040">StableSet()</a>.</p> </div> </div> <a class="anchor" id="ga40728695e4c841900c02c615a8d96ab0"></a><!-- doxytag: member="dsdpadddata.c::SDPConeSetSparsity" ref="ga40728695e4c841900c02c615a8d96ab0" args="(SDPCone sdpcone, int blockj, int nnz)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeSetSparsity </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nnz</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Set the number of nonzero matrices in a block of the semidefinite cone. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">nnz</td><td>number of nonzero matrices in the block </td></tr> </table> </dd> </dl> <dl class="note"><dt><b>Note:</b></dt><dd>This routine is optional, but its use can improve the memory allocation within the SDPCone object. </dd></dl> <p>Definition at line <a class="el" href="dsdpadddata_8c_source.html#l00596">596</a> of file <a class="el" href="dsdpadddata_8c_source.html">dsdpadddata.c</a>.</p> <p>Referenced by <a class="el" href="theta_8c_source.html#l00056">LovaszTheta()</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="gaa3db1133fbf2edbfc1e48521bb367705"></a><!-- doxytag: member="dsdpadddata.c::SDPConeSetXArray" ref="gaa3db1133fbf2edbfc1e48521bb367705" args="(SDPCone sdpcone, int blockj, int n, double xx[], int nn)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeSetXArray </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>xx</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>nn</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Provide an array for the SDPCone object can use to store dense matrices. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>semidefinite cone object </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">n</td><td>dimension of the block </td></tr> <tr><td class="paramname">xx</td><td>array for dense matrices </td></tr> <tr><td class="paramname">nn</td><td>length of array</td></tr> </table> </dd> </dl> <p>This routine elimates the need to copy the solution X into a separate array.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__SDPBasic.html#ga9e7744a5c7fbe87642979e2b41bc2c00" title="After applying the solver, set a pointer to the array in the object with the solution X...">SDPConeGetXArray()</a> </dd></dl> <p>Definition at line <a class="el" href="dsdpadddata_8c_source.html#l00278">278</a> of file <a class="el" href="dsdpadddata_8c_source.html">dsdpadddata.c</a>.</p> <p>Referenced by <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="ga288158182d952a72534b9c8894407c5b"></a><!-- doxytag: member="sdpcone.c::SDPConeXVMultiply" ref="ga288158182d952a72534b9c8894407c5b" args="(SDPCone sdpcone, int blockj, double vin[], double vout[], int n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int SDPConeXVMultiply </td> <td>(</td> <td class="paramtype"><a class="el" href="structSDPCone__C.html">SDPCone</a> </td> <td class="paramname"><em>sdpcone</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>blockj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>vin</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>vout</em>[], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Multiply an array by a factor V such that <img class="formulaInl" alt="$ V V^T= X $" src="form_14.png"/>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">sdpcone</td><td>the SDP cone </td></tr> <tr><td class="paramname">blockj</td><td>block number </td></tr> <tr><td class="paramname">vin</td><td>input array </td></tr> <tr><td class="paramname">vout</td><td>the product V vin </td></tr> <tr><td class="paramname">n</td><td>dimension of the block and the length of the two arrays. </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__SDPRoutines.html#ga274b127d17d7dec0dc4b0ca499f13e89" title="Compute a factor V such that .">SDPConeComputeXV()</a> </dd> <dd> <a class="el" href="group__SDPRoutines.html#ga521bba9ef443933ea8748aa1e7f8d142" title="Compute for i = 0 through m.">SDPConeAddXVAV()</a> </dd></dl> <p>Definition at line <a class="el" href="sdpcone_8c_source.html#l00251">251</a> of file <a class="el" href="sdpcone_8c_source.html">sdpcone.c</a>.</p> <p>Referenced by <a class="el" href="maxcut_8c_source.html#l00175">MaxCutRandomized()</a>, and <a class="el" href="stable_8c_source.html#l00164">StableRandomized()</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>