Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 247b28499c443e092731ffba814075f2 > files > 410

mpqc-html-2.3.1-9mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPQC: sc::MPIMessageGrp Class 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.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1MPIMessageGrp.html">MPIMessageGrp</a>
  </div>
</div>
<div class="contents">
<h1>sc::MPIMessageGrp Class Reference</h1><!-- doxytag: class="sc::MPIMessageGrp" --><!-- doxytag: inherits="sc::MessageGrp" -->The <a class="el" href="classsc_1_1MPIMessageGrp.html" title="The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the...">MPIMessageGrp</a> class is an concrete implementation of <a class="el" href="classsc_1_1MessageGrp.html" title="The MessageGrp abstract class provides a mechanism for moving data and objects between...">MessageGrp</a> that uses the MPI 1 library.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="messmpi_8h_source.html">messmpi.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for sc::MPIMessageGrp:</div>
<div class="dynsection">

<p><center><img src="classsc_1_1MPIMessageGrp.png" usemap="#sc::MPIMessageGrp_map" border="0" alt=""></center>
<map name="sc::MPIMessageGrp_map">
<area href="classsc_1_1MessageGrp.html" alt="sc::MessageGrp" shape="rect" coords="0,168,125,192">
<area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="0,112,125,136">
<area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="0,56,125,80">
<area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="0,0,125,24">
</map>
</div>

<p>
<a href="classsc_1_1MPIMessageGrp-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#7173cdde6e4ce63fe184738e2fb9ac0f">MPIMessageGrp</a> (MPI_Comm comm)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Use an MPI communicator to create a <a class="el" href="classsc_1_1MessageGrp.html" title="The MessageGrp abstract class provides a mechanism for moving data and objects between...">MessageGrp</a>.  <a href="#7173cdde6e4ce63fe184738e2fb9ac0f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#ef753c393ca64ea2cb39dd5e341a5c48">MPIMessageGrp</a> (int *argc, char ***argv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Use argc and argv to create a <a class="el" href="classsc_1_1MPIMessageGrp.html" title="The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the...">MPIMessageGrp</a>.  <a href="#ef753c393ca64ea2cb39dd5e341a5c48"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#238d4f5f8959ac3f9e9f835f5e3d43a6">MPIMessageGrp</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> &gt; &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construction <a class="el" href="classsc_1_1MPIMessageGrp.html" title="The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the...">MPIMessageGrp</a> given a <a class="el" href="classsc_1_1KeyVal.html" title="The KeyVal class is designed to simplify the process of allowing a user to specify...">KeyVal</a> input object.  <a href="#238d4f5f8959ac3f9e9f835f5e3d43a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="06461667d44e3bc61a3e9dbdfe776a12"></a><!-- doxytag: member="sc::MPIMessageGrp::clone" ref="06461667d44e3bc61a3e9dbdfe776a12" args="(void)" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1MessageGrp.html">MessageGrp</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#06461667d44e3bc61a3e9dbdfe776a12">clone</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clones (dups) an <a class="el" href="classsc_1_1MPIMessageGrp.html" title="The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the...">MPIMessageGrp</a> from MPI_COMM_WORLD. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="128c26b7a4c6c16eb488fed73a5d6af9"></a><!-- doxytag: member="sc::MPIMessageGrp::raw_send" ref="128c26b7a4c6c16eb488fed73a5d6af9" args="(int target, const void *data, int nbyte)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>raw_send</b> (int target, const void *data, int nbyte)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3714517caa7d7beb9c144bcea2e4508c"></a><!-- doxytag: member="sc::MPIMessageGrp::raw_recv" ref="3714517caa7d7beb9c144bcea2e4508c" args="(int sender, void *data, int nbyte)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>raw_recv</b> (int sender, void *data, int nbyte)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cd1350cfc0c62a446790b677b5599e46"></a><!-- doxytag: member="sc::MPIMessageGrp::raw_sendt" ref="cd1350cfc0c62a446790b677b5599e46" args="(int target, int type, const void *data, int nbyte)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>raw_sendt</b> (int target, int type, const void *data, int nbyte)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a6af63a0d998272a9ba70e3ecadfd4c"></a><!-- doxytag: member="sc::MPIMessageGrp::raw_recvt" ref="5a6af63a0d998272a9ba70e3ecadfd4c" args="(int type, void *data, int nbyte)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>raw_recvt</b> (int type, void *data, int nbyte)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="47eac4cc9b02264c0753c3ae248fbce6"></a><!-- doxytag: member="sc::MPIMessageGrp::probet" ref="47eac4cc9b02264c0753c3ae248fbce6" args="(int type)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#47eac4cc9b02264c0753c3ae248fbce6">probet</a> (int type)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ask if a given typed message has been received. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aad6b23c2d802364e502e7a2280662ca"></a><!-- doxytag: member="sc::MPIMessageGrp::sync" ref="aad6b23c2d802364e502e7a2280662ca" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#aad6b23c2d802364e502e7a2280662ca">sync</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Synchronize all of the processors. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#6cf0097bd949dbc90134cf047f88d0fb">sum</a> (double *, int n, double *scratch=0, int target=-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Global sum reduction.  <a href="#6cf0097bd949dbc90134cf047f88d0fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b9d11ef43768d2adcdb8cffeaa7241e0"></a><!-- doxytag: member="sc::MPIMessageGrp::sum" ref="b9d11ef43768d2adcdb8cffeaa7241e0" args="(int *, int n, int *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>sum</b> (int *, int n, int *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#d96da75141ba67485d2ea74e8e73de77">reduce</a> (double *, int n, GrpReduce&lt; double &gt; &amp;, double *scratch=0, int target=-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Global generic reduction.  <a href="#d96da75141ba67485d2ea74e8e73de77"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="77ad281750c8fe14a22761f9c2c1f88d"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="77ad281750c8fe14a22761f9c2c1f88d" args="(unsigned int *, int n, GrpReduce&lt; unsigned int &gt; &amp;, unsigned int *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (unsigned int *, int n, GrpReduce&lt; unsigned int &gt; &amp;, unsigned int *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4e30adca8dab4e726e841b23d51f116f"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="4e30adca8dab4e726e841b23d51f116f" args="(int *, int n, GrpReduce&lt; int &gt; &amp;, int *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (int *, int n, GrpReduce&lt; int &gt; &amp;, int *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a23983f8113787da1619640a1715ddcd"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="a23983f8113787da1619640a1715ddcd" args="(char *, int n, GrpReduce&lt; char &gt; &amp;, char *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (char *, int n, GrpReduce&lt; char &gt; &amp;, char *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8d2f11a62aa81020222ba6385b01ed9d"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="8d2f11a62aa81020222ba6385b01ed9d" args="(unsigned char *, int n, GrpReduce&lt; unsigned char &gt; &amp;, unsigned char *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (unsigned char *, int n, GrpReduce&lt; unsigned char &gt; &amp;, unsigned char *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0d97f0ad1e07987f9cf82c848b7de172"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="0d97f0ad1e07987f9cf82c848b7de172" args="(signed char *, int n, GrpReduce&lt; signed char &gt; &amp;, signed char *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (signed char *, int n, GrpReduce&lt; signed char &gt; &amp;, signed char *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9c6c61f6fb998a943cc69b5346e753f1"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="9c6c61f6fb998a943cc69b5346e753f1" args="(short *, int n, GrpReduce&lt; short &gt; &amp;, short *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (short *, int n, GrpReduce&lt; short &gt; &amp;, short *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0405234568535a0ed260e3f2add621e8"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="0405234568535a0ed260e3f2add621e8" args="(float *, int n, GrpReduce&lt; float &gt; &amp;, float *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (float *, int n, GrpReduce&lt; float &gt; &amp;, float *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6a15f666a18980bf0dea447b6a3f385f"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="6a15f666a18980bf0dea447b6a3f385f" args="(long *, int n, GrpReduce&lt; long &gt; &amp;, long *scratch=0, int target=&#45;1)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reduce</b> (long *, int n, GrpReduce&lt; long &gt; &amp;, long *scratch=0, int target=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="93b670f9ed8949127a68cc5f0262ffe6"></a><!-- doxytag: member="sc::MPIMessageGrp::raw_bcast" ref="93b670f9ed8949127a68cc5f0262ffe6" args="(void *data, int nbyte, int from)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>raw_bcast</b> (void *data, int nbyte, int from)</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3c8b108353633cf9c8305c82c25edea3"></a><!-- doxytag: member="sc::MPIMessageGrp::init" ref="3c8b108353633cf9c8305c82c25edea3" args="(MPI_Comm comm, int *argc=0, char ***argv=0)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#3c8b108353633cf9c8305c82c25edea3">init</a> (MPI_Comm comm, int *argc=0, char ***argv=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not thread-safe due to race condition on nmpi_grps variable. <br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="df350a60431ec6509f28865a4eca0586"></a><!-- doxytag: member="sc::MPIMessageGrp::buf" ref="df350a60431ec6509f28865a4eca0586" args="" -->
void *&nbsp;</td><td class="memItemRight" valign="bottom"><b>buf</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="028a29f438aedb1eaf3f2400edd2544d"></a><!-- doxytag: member="sc::MPIMessageGrp::bufsize" ref="028a29f438aedb1eaf3f2400edd2544d" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>bufsize</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="06522d11eb274446ababa728d7383d60"></a><!-- doxytag: member="sc::MPIMessageGrp::rnode" ref="06522d11eb274446ababa728d7383d60" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>rnode</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3be7045c906e82525c1290feaf3448c1"></a><!-- doxytag: member="sc::MPIMessageGrp::rtag" ref="3be7045c906e82525c1290feaf3448c1" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>rtag</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a5bd67b002688b49599ee142d1a651a0"></a><!-- doxytag: member="sc::MPIMessageGrp::rlen" ref="a5bd67b002688b49599ee142d1a651a0" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>rlen</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2d3825ba324ab6110090cab3d3802f3d"></a><!-- doxytag: member="sc::MPIMessageGrp::use_messagegrp_collectives_" ref="2d3825ba324ab6110090cab3d3802f3d" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#2d3825ba324ab6110090cab3d3802f3d">use_messagegrp_collectives_</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If true use the generic collective routines in the base class. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="155f12329e300cbc0e9bfc42f7ee477b"></a><!-- doxytag: member="sc::MPIMessageGrp::threadgrp" ref="155f12329e300cbc0e9bfc42f7ee477b" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1ThreadGrp.html">ThreadGrp</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>threadgrp</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="20c302e871d3714fe7c489e2413ec241"></a><!-- doxytag: member="sc::MPIMessageGrp::commgrp" ref="20c302e871d3714fe7c489e2413ec241" args="" -->
MPI_Comm&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#20c302e871d3714fe7c489e2413ec241">commgrp</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Currently each commgrp is a dup of MPI_COMM_WORLD. <br></td></tr>
<tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2462c0588190da9f61d4a95dbe14ba97"></a><!-- doxytag: member="sc::MPIMessageGrp::nmpi_grps" ref="2462c0588190da9f61d4a95dbe14ba97" args="" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#2462c0588190da9f61d4a95dbe14ba97">nmpi_grps</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of MPIMessageGrp's currently in use. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="80681c33034623cde72ba2aed83080ba"></a><!-- doxytag: member="sc::MPIMessageGrp::grplock" ref="80681c33034623cde72ba2aed83080ba" args="" -->
static <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1ThreadLock.html">ThreadLock</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1MPIMessageGrp.html#80681c33034623cde72ba2aed83080ba">grplock</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">lock to access nmpi_grps variable <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="classsc_1_1MPIMessageGrp.html" title="The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the...">MPIMessageGrp</a> class is an concrete implementation of <a class="el" href="classsc_1_1MessageGrp.html" title="The MessageGrp abstract class provides a mechanism for moving data and objects between...">MessageGrp</a> that uses the MPI 1 library. 
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="7173cdde6e4ce63fe184738e2fb9ac0f"></a><!-- doxytag: member="sc::MPIMessageGrp::MPIMessageGrp" ref="7173cdde6e4ce63fe184738e2fb9ac0f" args="(MPI_Comm comm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">sc::MPIMessageGrp::MPIMessageGrp           </td>
          <td>(</td>
          <td class="paramtype">MPI_Comm&nbsp;</td>
          <td class="paramname"> <em>comm</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Use an MPI communicator to create a <a class="el" href="classsc_1_1MessageGrp.html" title="The MessageGrp abstract class provides a mechanism for moving data and objects between...">MessageGrp</a>. 
<p>
The comm argument could be a subset of MPI_COMM_WORLD, for example. 
</div>
</div><p>
<a class="anchor" name="ef753c393ca64ea2cb39dd5e341a5c48"></a><!-- doxytag: member="sc::MPIMessageGrp::MPIMessageGrp" ref="ef753c393ca64ea2cb39dd5e341a5c48" args="(int *argc, char ***argv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">sc::MPIMessageGrp::MPIMessageGrp           </td>
          <td>(</td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char ***&nbsp;</td>
          <td class="paramname"> <em>argv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Use argc and argv to create a <a class="el" href="classsc_1_1MPIMessageGrp.html" title="The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the...">MPIMessageGrp</a>. 
<p>
This would have to be used for implementations of MPI that have MPI_Init fill in argc and argv. 
</div>
</div><p>
<a class="anchor" name="238d4f5f8959ac3f9e9f835f5e3d43a6"></a><!-- doxytag: member="sc::MPIMessageGrp::MPIMessageGrp" ref="238d4f5f8959ac3f9e9f835f5e3d43a6" args="(const Ref&lt; KeyVal &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">sc::MPIMessageGrp::MPIMessageGrp           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1KeyVal.html">KeyVal</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Construction <a class="el" href="classsc_1_1MPIMessageGrp.html" title="The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the...">MPIMessageGrp</a> given a <a class="el" href="classsc_1_1KeyVal.html" title="The KeyVal class is designed to simplify the process of allowing a user to specify...">KeyVal</a> input object. 
<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="d96da75141ba67485d2ea74e8e73de77"></a><!-- doxytag: member="sc::MPIMessageGrp::reduce" ref="d96da75141ba67485d2ea74e8e73de77" args="(double *, int n, GrpReduce&lt; double &gt; &amp;, double *scratch=0, int target=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc::MPIMessageGrp::reduce           </td>
          <td>(</td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GrpReduce&lt; double &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname"> <em>scratch</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>target</em> = <code>-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Global generic reduction. 
<p>
Similar members exist for each of the basic types. 
<p>Reimplemented from <a class="el" href="classsc_1_1MessageGrp.html#4460cf4d51dc725994636c46b74ad810">sc::MessageGrp</a>.</p>

</div>
</div><p>
<a class="anchor" name="6cf0097bd949dbc90134cf047f88d0fb"></a><!-- doxytag: member="sc::MPIMessageGrp::sum" ref="6cf0097bd949dbc90134cf047f88d0fb" args="(double *, int n, double *scratch=0, int target=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sc::MPIMessageGrp::sum           </td>
          <td>(</td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname"> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>target</em> = <code>-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Global sum reduction. 
<p>
Similar members exist for each of the basic types. 
<p>Reimplemented from <a class="el" href="classsc_1_1MessageGrp.html#86b4337292682175d4f8ed3d7a964e39">sc::MessageGrp</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="messmpi_8h_source.html">messmpi.h</a></ul>
</div>
<hr>
<address>
<small>

Generated at Wed Oct 14 14:12:16 2009 for <a
href="http://www.mpqc.org">MPQC</a>
2.3.1 using the documentation package <a
href="http://www.doxygen.org">Doxygen</a>
1.5.9.

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