Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 263386785cefb9ae5d63b926d214d809 > files > 597

mpqc-2.1.2-4mdk.ppc.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>sc::SCElementOp class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:17:39 2002 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>sc::SCElementOp  Class Reference</h1>Objects of class <a class="el" href="class_sc__SCElementOp.html">SCElementOp</a> are used to perform operations on the elements of matrices. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="elemop_h-source.html">elemop.h</a>&gt;</code>
<p>
Inheritance diagram for sc::SCElementOp<p><center><img src="class_sc__SCElementOp_inherit_graph.gif" border="0" usemap="#sc::SCElementOp_inherit_map" alt="Inheritance graph"></center>
<map name="sc::SCElementOp_inherit_map">
<area href="class_sc__SavableState.html" shape="rect" coords="25,344,126,363">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for sc::SCElementOp:<p><center><img src="class_sc__SCElementOp_coll_graph.gif" border="0" usemap="#sc::SCElementOp_coll_map" alt="Collaboration graph"></center>
<map name="sc::SCElementOp_coll_map">
<area href="class_sc__SavableState.html" shape="rect" coords="21,214,122,233">
<area href="class_sc__DescribedClass.html" shape="rect" coords="14,147,129,166">
<area href="class_sc__RefCount.html" shape="rect" coords="30,81,113,99">
<area href="class_sc__Identity.html" shape="rect" coords="35,14,107,33">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_sc__SCElementOp-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a0" doxytag="sc::SCElementOp::SCElementOp"></a>
&nbsp;</td><td valign=bottom><b>SCElementOp</b> ()</td></tr>
<tr><td nowrap align=right valign=top><a name="a1" doxytag="sc::SCElementOp::SCElementOp"></a>
&nbsp;</td><td valign=bottom><b>SCElementOp</b> (<a class="el" href="class_sc__StateIn.html">StateIn</a> &amp;s)</td></tr>
<tr><td nowrap align=right valign=top><a name="a2" doxytag="sc::SCElementOp::~SCElementOp"></a>
virtual&nbsp;</td><td valign=bottom><b>~SCElementOp</b> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual int&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SCElementOp.html#a3">has_collect</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>If duplicates of the <a class="el" href="class_sc__SCElementOp.html">SCElementOp</a> exist (that is, there is more than one node), then if has_collect returns nonzero then collect is called with a <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> reference after all of the blocks have been processed.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a4" doxytag="sc::SCElementOp::defer_collect"></a>
virtual void&nbsp;</td><td valign=bottom><b>defer_collect</b> (int)</td></tr>
<tr><td nowrap align=right valign=top><a name="a5" doxytag="sc::SCElementOp::collect"></a>
virtual void&nbsp;</td><td valign=bottom><b>collect</b> (const <a class="el" href="class_sc__Ref.html">Ref</a>&lt; <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> &gt; &amp;)</td></tr>
<tr><td nowrap align=right valign=top>virtual int&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SCElementOp.html#a6">has_side_effects</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>By default this returns nonzero.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a7" doxytag="sc::SCElementOp::process"></a>
virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SCElementOp.html#a7">process</a> (<a class="el" href="class_sc__SCMatrixBlockIter.html">SCMatrixBlockIter</a> &amp;)=0</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>This is the fallback routine to process blocks and is called by process_spec members that are not overridden.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SCElementOp.html#a8">process_base</a> (<a class="el" href="class_sc__SCMatrixBlock.html">SCMatrixBlock</a> *block)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Lazy matrix implementors can call this member when the type of block specialization is unknown.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_sc__SCElementOp.html#a9">process_spec_rect</a> (<a class="el" href="class_sc__SCMatrixRectBlock.html">SCMatrixRectBlock</a> *)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Matrices should call these members when the type of block is known.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a10" doxytag="sc::SCElementOp::process_spec_ltri"></a>
virtual void&nbsp;</td><td valign=bottom><b>process_spec_ltri</b> (<a class="el" href="class_sc__SCMatrixLTriBlock.html">SCMatrixLTriBlock</a> *)</td></tr>
<tr><td nowrap align=right valign=top><a name="a11" doxytag="sc::SCElementOp::process_spec_diag"></a>
virtual void&nbsp;</td><td valign=bottom><b>process_spec_diag</b> (<a class="el" href="class_sc__SCMatrixDiagBlock.html">SCMatrixDiagBlock</a> *)</td></tr>
<tr><td nowrap align=right valign=top><a name="a12" doxytag="sc::SCElementOp::process_spec_vsimp"></a>
virtual void&nbsp;</td><td valign=bottom><b>process_spec_vsimp</b> (<a class="el" href="class_sc__SCVectorSimpleBlock.html">SCVectorSimpleBlock</a> *)</td></tr>
<tr><td nowrap align=right valign=top><a name="a13" doxytag="sc::SCElementOp::process_spec_rectsub"></a>
virtual void&nbsp;</td><td valign=bottom><b>process_spec_rectsub</b> (<a class="el" href="class_sc__SCMatrixRectSubBlock.html">SCMatrixRectSubBlock</a> *)</td></tr>
<tr><td nowrap align=right valign=top><a name="a14" doxytag="sc::SCElementOp::process_spec_ltrisub"></a>
virtual void&nbsp;</td><td valign=bottom><b>process_spec_ltrisub</b> (<a class="el" href="class_sc__SCMatrixLTriSubBlock.html">SCMatrixLTriSubBlock</a> *)</td></tr>
<tr><td nowrap align=right valign=top><a name="a15" doxytag="sc::SCElementOp::process_spec_diagsub"></a>
virtual void&nbsp;</td><td valign=bottom><b>process_spec_diagsub</b> (<a class="el" href="class_sc__SCMatrixDiagSubBlock.html">SCMatrixDiagSubBlock</a> *)</td></tr>
<tr><td nowrap align=right valign=top><a name="a16" doxytag="sc::SCElementOp::process_spec_vsimpsub"></a>
virtual void&nbsp;</td><td valign=bottom><b>process_spec_vsimpsub</b> (<a class="el" href="class_sc__SCVectorSimpleSubBlock.html">SCVectorSimpleSubBlock</a> *)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Objects of class <a class="el" href="class_sc__SCElementOp.html">SCElementOp</a> are used to perform operations on the elements of matrices.
<p>
When the <a class="el" href="class_sc__SCElementOp.html">SCElementOp</a> object is given to the element_op member of a matrix, each block the matrix is passed to one of the process, process_base, or process_base members. 
<p>
<hr><h2>Member Function Documentation</h2>
<a name="a3" doxytag="sc::SCElementOp::has_collect"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
int sc::SCElementOp::has_collect (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
If duplicates of the <a class="el" href="class_sc__SCElementOp.html">SCElementOp</a> exist (that is, there is more than one node), then if has_collect returns nonzero then collect is called with a <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> reference after all of the blocks have been processed.
<p>
The default return value of has_collect is 0 and collect's default action is do nothing. If defer_collect member is called with nonzero, collect will do nothing (this is only used by the blocked matrices).     </td>
  </tr>
</table>
<a name="a6" doxytag="sc::SCElementOp::has_side_effects"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
int sc::SCElementOp::has_side_effects (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
By default this returns nonzero.
<p>
If the ElementOp specialization will change any elements of the matrix, then this must be overridden to return nonzero.     </td>
  </tr>
</table>
<a name="a8" doxytag="sc::SCElementOp::process_base"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void sc::SCElementOp::process_base (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_sc__SCMatrixBlock.html">SCMatrixBlock</a> * <em>block</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Lazy matrix implementors can call this member when the type of block specialization is unknown.
<p>
However, this will attempt to dynamic_cast block to a block specialization and will thus be less efficient.     </td>
  </tr>
</table>
<a name="a9" doxytag="sc::SCElementOp::process_spec_rect"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void sc::SCElementOp::process_spec_rect (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_sc__SCMatrixRectBlock.html">SCMatrixRectBlock</a> *&nbsp;)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Matrices should call these members when the type of block is known.
<p>
ElementOp specializations should override these when efficiency is important, since these give the most efficient access to the elements of the block.     </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="elemop_h-source.html">elemop.h</a></ul>
<hr>
<address>
<small>

Generated at Mon Oct 14 14:17:39 2002 for <a
href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a>
2.1.2 using the documentation package <a
href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a>
1.2.5.

</small>
</address>
</body>
</html>