Paradiseo-eo sources added

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@40 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
legrand 2006-12-12 14:49:08 +00:00
commit c3aec878e5
3609 changed files with 342772 additions and 0 deletions

View file

@ -0,0 +1,89 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>EO: eoReduceMerge.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.9.1 -->
<div class="qindex"> <form class="search" action="search.php" method="get">
<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
<div class="nav">
<a class="el" href="dir_000000.html">src</a></div>
<h1>eoReduceMerge.h</h1><div class="fragment"><pre class="fragment">00001
00025 <span class="comment">//-----------------------------------------------------------------------------</span>
00026
00027 <span class="preprocessor">#ifndef _eoReduceMerge_h</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#define _eoReduceMerge_h</span>
00029 <span class="preprocessor"></span>
00030
00031 <span class="comment">//-----------------------------------------------------------------------------</span>
00032 <span class="preprocessor">#include &lt;eoPop.h&gt;</span>
00033 <span class="preprocessor">#include &lt;eoFunctor.h&gt;</span>
00034 <span class="preprocessor">#include &lt;eoMerge.h&gt;</span>
00035 <span class="preprocessor">#include &lt;eoReduce.h&gt;</span>
00036 <span class="preprocessor">#include &lt;eoReplacement.h&gt;</span>
00037 <span class="preprocessor">#include &lt;utils/eoHowMany.h&gt;</span>
00038 <span class="comment">//-----------------------------------------------------------------------------</span>
00039
00040
00052 <span class="keyword">template</span> &lt;<span class="keyword">class</span> EOT&gt;
<a name="l00053"></a><a class="code" href="classeo_reduce_merge.html">00053</a> <span class="keyword">class </span><a class="code" href="classeo_reduce_merge.html">eoReduceMerge</a> : <span class="keyword">public</span> <a class="code" href="classeo_replacement.html">eoReplacement</a>&lt;EOT&gt;
00054 {
00055 <span class="keyword">public</span>:
00056 <a class="code" href="classeo_reduce_merge.html">eoReduceMerge</a>(<a class="code" href="classeo_reduce.html">eoReduce&lt;EOT&gt;</a>&amp; _reduce, <a class="code" href="classeo_merge.html">eoMerge&lt;EOT&gt;</a>&amp; _merge) :
00057 reduce(_reduce), merge(_merge)
00058 {}
00059
<a name="l00060"></a><a class="code" href="classeo_reduce_merge.html#a1">00060</a> <span class="keywordtype">void</span> <a class="code" href="classeo_reduce_merge.html#a1">operator()</a>(<a class="code" href="classeo_pop.html">eoPop&lt;EOT&gt;</a>&amp; _parents, <a class="code" href="classeo_pop.html">eoPop&lt;EOT&gt;</a>&amp; _offspring)
00061 {
00062 <span class="keywordflow">if</span> (_parents.size() &lt; _offspring.size())
00063 <span class="keywordflow">throw</span> std::logic_error(<span class="stringliteral">"eoReduceMerge: More offspring than parents!\n"</span>);
00064 reduce(_parents, _parents.size() - _offspring.size());
00065 merge(_offspring, _parents);
00066 }
00067
00068 <span class="keyword">private</span> :
00069 <a class="code" href="classeo_reduce.html">eoReduce&lt;EOT&gt;</a>&amp; reduce;
00070 <a class="code" href="classeo_merge.html">eoMerge&lt;EOT&gt;</a>&amp; merge;
00071 };
00072
00076 <span class="keyword">template</span> &lt;<span class="keyword">class</span> EOT&gt;
<a name="l00077"></a><a class="code" href="classeo_s_s_g_a_worse_replacement.html">00077</a> <span class="keyword">class </span><a class="code" href="classeo_s_s_g_a_worse_replacement.html">eoSSGAWorseReplacement</a> : <span class="keyword">public</span> <a class="code" href="classeo_reduce_merge.html">eoReduceMerge</a>&lt;EOT&gt;
00078 {
00079 <span class="keyword">public</span> :
00080 <a class="code" href="classeo_s_s_g_a_worse_replacement.html">eoSSGAWorseReplacement</a>() : <a class="code" href="classeo_reduce_merge.html">eoReduceMerge&lt;EOT&gt;</a>(truncate, plus) {}
00081
00082 <span class="keyword">private</span> :
00083 <a class="code" href="classeo_linear_truncate.html">eoLinearTruncate&lt;EOT&gt;</a> truncate;
00084 <a class="code" href="classeo_plus.html">eoPlus&lt;EOT&gt;</a> plus;
00085 };
00086
00090 <span class="keyword">template</span> &lt;<span class="keyword">class</span> EOT&gt;
<a name="l00091"></a><a class="code" href="classeo_s_s_g_a_det_tournament_replacement.html">00091</a> <span class="keyword">class </span><a class="code" href="classeo_s_s_g_a_det_tournament_replacement.html">eoSSGADetTournamentReplacement</a> : <span class="keyword">public</span> <a class="code" href="classeo_reduce_merge.html">eoReduceMerge</a>&lt;EOT&gt;
00092 {
00093 <span class="keyword">public</span> :
00094 <a class="code" href="classeo_s_s_g_a_det_tournament_replacement.html">eoSSGADetTournamentReplacement</a>(<span class="keywordtype">unsigned</span> _t_size) :
00095 <a class="code" href="classeo_reduce_merge.html">eoReduceMerge&lt;EOT&gt;</a>(truncate, plus), truncate(_t_size) {}
00096
00097 <span class="keyword">private</span> :
00098 <a class="code" href="classeo_det_tournament_truncate.html">eoDetTournamentTruncate&lt;EOT&gt;</a> truncate;
00099 <a class="code" href="classeo_plus.html">eoPlus&lt;EOT&gt;</a> plus;
00100 };
00101
00107 <span class="keyword">template</span> &lt;<span class="keyword">class</span> EOT&gt;
<a name="l00108"></a><a class="code" href="classeo_s_s_g_a_stoch_tournament_replacement.html">00108</a> <span class="keyword">class </span><a class="code" href="classeo_s_s_g_a_stoch_tournament_replacement.html">eoSSGAStochTournamentReplacement</a> : <span class="keyword">public</span> <a class="code" href="classeo_reduce_merge.html">eoReduceMerge</a>&lt;EOT&gt;
00109 {
00110 <span class="keyword">public</span> :
00111 <a class="code" href="classeo_s_s_g_a_stoch_tournament_replacement.html">eoSSGAStochTournamentReplacement</a>(<span class="keywordtype">double</span> _t_rate) :
00112 <a class="code" href="classeo_reduce_merge.html">eoReduceMerge&lt;EOT&gt;</a>(truncate, plus), truncate(_t_rate) {}
00113
00114 <span class="keyword">private</span> :
00115 <a class="code" href="classeo_stoch_tournament_truncate.html">eoStochTournamentTruncate&lt;EOT&gt;</a> truncate;
00116 <a class="code" href="classeo_plus.html">eoPlus&lt;EOT&gt;</a> plus;
00117 };
00118
00119 <span class="preprocessor">#endif</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Oct 19 05:06:37 2006 for EO by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
</body>
</html>