Sophie

Sophie

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

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/dsdpschurmat.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">dsdpschurmat.h</div>  </div>
</div>
<div class="contents">
<a href="dsdpschurmat_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#if !defined(__DSDP_SCHURMATRIXOPERATIONS_H) </span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __DSDP_SCHURMATRIXOPERATIONS_H</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00009"></a>00009 <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="l00010"></a>00010 <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="l00011"></a>00011 <span class="preprocessor">#include &quot;<a class="code" href="dsdpcg_8h.html" title="Internal data structure for CG method.">dsdpcg.h</a>&quot;</span>
<a name="l00012"></a>00012 
<a name="l00013"></a>00013 
<a name="l00014"></a>00014 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00015"></a>00015   <span class="keywordtype">int</span> *var;
<a name="l00016"></a>00016   <span class="keywordtype">int</span> nvars;
<a name="l00017"></a>00017   <span class="keywordtype">int</span> nmaxvars;
<a name="l00018"></a>00018   <span class="keywordtype">double</span> *fval;
<a name="l00019"></a>00019   <span class="keywordtype">double</span> *fdual;
<a name="l00020"></a>00020   <span class="keywordtype">double</span> *xout;
<a name="l00021"></a>00021 } FixedVariables;
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00024"></a>00024   FixedVariables fv;
<a name="l00025"></a>00025   <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> rhs3,dy3;
<a name="l00026"></a>00026   <span class="keywordtype">double</span> dd,r;
<a name="l00027"></a>00027   <span class="keywordtype">int</span> m;
<a name="l00028"></a>00028 } DSDPSchurInfo;
<a name="l00029"></a>00029 
<a name="l00035"></a><a class="code" href="structDSDPSchurMat__C.html">00035</a> <span class="keyword">struct </span><a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat_C</a>{
<a name="l00036"></a>00036   <span class="keywordtype">void</span>* data;
<a name="l00037"></a>00037   <span class="keyword">struct </span>DSDPSchurMat_Ops *dsdpops;
<a name="l00038"></a>00038   DSDPSchurInfo* schur;
<a name="l00039"></a>00039 };
<a name="l00040"></a>00040 
<a name="l00049"></a><a class="code" href="dsdpschurmat_8h.html#ad65617ab1159fc5a76619668d80d6b57">00049</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat_C</a>   <a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>;
<a name="l00050"></a>00050 
<a name="l00051"></a>00051 
<a name="l00052"></a>00052 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00054"></a>00054 <span class="preprocessor">#endif</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span>
<a name="l00056"></a>00056 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#ab3f83dfa4e65816b57c0a58ec4e8ba4c" title="Set the Schur matrix with an opaque pointer and structure of function pointers.">DSDPSchurMatSetData</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>*,<span class="keyword">struct</span> DSDPSchurMat_Ops*, <span class="keywordtype">void</span>*);
<a name="l00057"></a>00057 
<a name="l00058"></a>00058 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a9af8b9c907f86d73e44a21de79daeef3" title="Initialize pointers to null.">DSDPSchurMatInitialize</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>*);
<a name="l00059"></a>00059 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a332298433d360d6b5a2b5d09ec2c4d52" title="Set up the data structure.">DSDPSchurMatSetup</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="l00060"></a>00060 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a5d7b6f5a9e43140f0a55eca37d897fb7" title="Zero all element in the matrix.">DSDPSchurMatZeroEntries</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>);
<a name="l00061"></a>00061 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a8d6a10df0c60e0c2721b93839bc0ded8" title="Determine whether M is computed in parallel.">DSDPSchurMatInParallel</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a>*);
<a name="l00062"></a>00062 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#ae641b4fb6efcb0794593d1719a7c3845" title="Add a scalar to each diagonal element of the matrix.">DSDPSchurMatShiftDiagonal</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">double</span>);
<a name="l00063"></a>00063 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#aa0f35c05985382f83c15658f38f07464" title="Final assembly of M.">DSDPSchurMatAssemble</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>);
<a name="l00064"></a>00064 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a3ac77a7f5f31d116197d0dc07bef782f" title="Multiply M by a vector. y = M x.">DSDPSchurMatMultiply</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="l00065"></a>00065 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPSchurMatMultR(<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="l00066"></a>00066 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a0b48fd50cf0b15fc018cfb5addbf132c" title="Collect elements of the vector.">DSDPSchurMatReducePVec</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="l00067"></a>00067 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#ab3c5bcf162b2e5923c5428cb1764ed57" title="Factor M.">DSDPSchurMatFactor</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,<a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a>*);
<a name="l00068"></a>00068 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a4d6f4dcdea100c12545aac3890eb0b9b" title="Solve the linear system.">DSDPSchurMatSolve</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="l00069"></a>00069 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#aa070672b861d36b1cc4fbc8b2950824c" title="Free the memory in the data structure.">DSDPSchurMatDestroy</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>*);
<a name="l00070"></a>00070 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#ac2532ec3ba1a780409e4c22b599a4c4e" title="Print the matrix.">DSDPSchurMatView</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>);
<a name="l00071"></a>00071 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#a50ec9f401f7a0b426e6cfca3b5eedaa5" title="Set up the data structure.">DSDPSchurMatSetR</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">double</span>);
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#ac898fbdcd22765401a81682609dc897c" title="Get the scaling and nonzero pattern of each column in this row of the matrix.">DSDPSchurMatRowColumnScaling</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,<span class="keywordtype">int</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">int</span>*);
<a name="l00074"></a>00074 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#af719c02885dbf6f831e92e8f83ffa0b5" title="Add elements to a row of the Schur matrix.">DSDPSchurMatAddRow</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">int</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="l00075"></a>00075 
<a name="l00076"></a>00076 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#aa882207cc05ef20b3ee13203d38d39ef" title="Determine with the cone should compute this diagonal element of M and RHS.">DSDPSchurMatVariableCompute</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">int</span>, <span class="keywordtype">double</span>*);
<a name="l00077"></a>00077 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPSchurMatVariableComputeC(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">double</span>*);
<a name="l00078"></a>00078 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#adcaec90d4c5143f727ab219974c1e465" title="Add an element to the Schur matrix correponding the variable r.">DSDPSchurMatVariableComputeR</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">double</span>*);
<a name="l00079"></a>00079 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#ae445255840bfecf632d7b6d0fd5042b8" title="Determine with the cone should compute this diagonal element of M and RHS.">DSDPSchurMatAddDiagonalElement</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">int</span>, <span class="keywordtype">double</span>);
<a name="l00080"></a>00080 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPSchurMatAddC(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,<span class="keywordtype">int</span>,<span class="keywordtype">double</span>);
<a name="l00081"></a>00081 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#a22e5445e2278117b9d34b1ed0f134880" title="Add an element to the Schur matrix correponding the variable r.">DSDPSchurMatAddR</a>(<a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>,<span class="keywordtype">int</span>,<span class="keywordtype">double</span>);
<a name="l00082"></a>00082 
<a name="l00083"></a>00083 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#afa6d59fd28e2666d6fbeae8abf370dda" title="Get the scaling and nonzero pattern of each diagonal element of the matrix.">DSDPSchurMatDiagonalScaling</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="l00084"></a>00084 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8h.html#a1d4c2d546c94985883abe1e4ad9173a6" title="Add elements to a row of the Schur matrix.">DSDPSchurMatAddDiagonal</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="l00085"></a>00085 
<a name="l00086"></a>00086 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="dsdpschurmat_8c.html#ae26fbbe6ae18b7a1bae605540e94e7a1" title="Identify which rows on on this processor.">DSDPSchurMatRowScaling</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="l00087"></a>00087 
<a name="l00088"></a>00088 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPZeroFixedVariables( <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="l00089"></a>00089 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPApplyFixedVariables( <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="l00090"></a>00090 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPIsFixed( <a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">int</span>, <a class="code" href="dsdpbasictypes_8h.html#ae667f2bff3ab5ab0bc109fa76dc4ed65" title="Boolean variables.">DSDPTruth</a>*);
<a name="l00091"></a>00091 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPInitializeFixedVariable( FixedVariables *);
<a name="l00092"></a>00092 <span class="keyword">extern</span> <span class="keywordtype">int</span> DSDPAddFixedVariable( <a class="code" href="structDSDPSchurMat__C.html" title="Schur complement matrix whose solution is the Newton direction.">DSDPSchurMat</a>, <span class="keywordtype">int</span>, <span class="keywordtype">double</span>);
<a name="l00093"></a>00093 
<a name="l00094"></a>00094 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00095"></a>00095 <span class="preprocessor"></span>}
<a name="l00096"></a>00096 <span class="preprocessor">#endif</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span>
<a name="l00098"></a>00098 <span class="preprocessor">#endif</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span>
<a name="l00100"></a>00100 
</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>