<div class="gmail_quote">On Tue, Apr 24, 2012 at 12:57, Dave Goodell <span dir="ltr">&lt;<a href="mailto:goodell@mcs.anl.gov">goodell@mcs.anl.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":6nd">(a) is potentially doable, but you&#39;ll need additional functionality to register operations that doesn&#39;t currently exist in MPI.  Also, it would be difficult to pass in the MPI Forum.<br>
<br>
(b) is much more feasible, assuming you apply the same restrictions about having only a single basic datatype.<br>
<br>
(c) has the advantage of making MPI_PROD work correctly as well even if (a) is not permitted.<br>
<br>
Out of curiosity, how do you feel about just cheating a bit and using MPI_C_DOUBLE_COMPLEX for this particular use case?  Do you believe the risk of some sort of mismatch between C&#39;s _Complex and std::complex to be too great?</div>
</blockquote></div><div><br></div><div>We tried to do this, but learned that MPI_C_DOUBLE_COMPLEX was floating around in mpi.h just to trick our configure tests (since it fails at run-time on Windows) and the bug report was closed by you as INVALID.</div>
<br><div><a href="http://trac.mcs.anl.gov/projects/mpich2/ticket/1525">http://trac.mcs.anl.gov/projects/mpich2/ticket/1525</a></div><div><br></div><div>I&#39;m not concerned about C99 complex being binary-incompatible with std::complex.</div>