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,102 @@
<!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: eoRealBounds Class Reference</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>
<h1>eoRealBounds Class Reference<br>
<small>
[<a class="el" href="group___evolution_strategies.html">EvolutionStrategies</a>]</small>
</h1>Defines bound classes for real numbers.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="eo_real_bounds_8h-source.html">es/eoRealBounds.h</a>&gt;</code>
<p>
<p>Inheritance diagram for eoRealBounds:
<p><center><img src="classeo_real_bounds.png" usemap="#eoRealBounds_map" border="0" alt=""></center>
<map name="eoRealBounds_map">
<area href="classeo_persistent.html" alt="eoPersistent" shape="rect" coords="296,56,434,80">
<area href="classeo_printable.html" alt="eoPrintable" shape="rect" coords="296,0,434,24">
<area href="classeo_general_real_bounds.html" alt="eoGeneralRealBounds" shape="rect" coords="0,168,138,192">
<area href="classeo_real_above_bound.html" alt="eoRealAboveBound" shape="rect" coords="148,168,286,192">
<area href="classeo_real_below_bound.html" alt="eoRealBelowBound" shape="rect" coords="296,168,434,192">
<area href="classeo_real_interval.html" alt="eoRealInterval" shape="rect" coords="444,168,582,192">
<area href="classeo_real_no_bounds.html" alt="eoRealNoBounds" shape="rect" coords="592,168,730,192">
</map>
<a href="classeo_real_bounds-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"><a class="anchor" name="a1" doxytag="eoRealBounds::isBounded"></a>
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a1">isBounded</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Self-Test: true if ***both*** a min and a max. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a2" doxytag="eoRealBounds::hasNoBoundAtAll"></a>
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a2">hasNoBoundAtAll</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Self-Test: true if no min ***and*** no max hence no further need to test/truncate/fold anything. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3" doxytag="eoRealBounds::isMinBounded"></a>
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a3">isMinBounded</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Self-Test: bounded from below??? <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a4" doxytag="eoRealBounds::isMaxBounded"></a>
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a4">isMaxBounded</a> (void) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Self-Test: bounded from above??? <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a5" doxytag="eoRealBounds::isInBounds"></a>
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a5">isInBounds</a> (double) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test on a value: is it in bounds? <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6" doxytag="eoRealBounds::foldsInBounds"></a>
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a6">foldsInBounds</a> (double &amp;) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put value back into bounds - by folding back and forth. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a7" doxytag="eoRealBounds::truncate"></a>
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a7">truncate</a> (double &amp;) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put value back into bounds - by truncating to a boundary value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8" doxytag="eoRealBounds::minimum"></a>
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a8">minimum</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get minimum value ::exception if does not exist <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9" doxytag="eoRealBounds::maximum"></a>
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a9">maximum</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get maximum value ::exception if does not exist <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10" doxytag="eoRealBounds::range"></a>
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a10">range</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get range ::exception if unbounded <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a11" doxytag="eoRealBounds::uniform"></a>
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a11">uniform</a> (<a class="el" href="classeo_rng.html">eoRng</a> &amp;_rng=eo::rng) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">random generator of uniform numbers in bounds ::exception if unbounded <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a12" doxytag="eoRealBounds::dup"></a>
virtual <a class="el" href="classeo_real_bounds.html">eoRealBounds</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_real_bounds.html#a12">dup</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">for memory managements - ugly <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Defines bound classes for real numbers.
<p>
Scalar type: ------------ Basic class is eoRealBounds, a pure virtual.<p>
The following pure virtual methods are to be used in mutations:<ul>
<li>void foldsInBounds(double &amp;) that folds any value that falls out of the bounds back into the bounds, by bouncing on the limit (if any)</li><li>bool isInBounds(double) that simply says whether or not the argument is in the bounds</li><li>void truncate(double &amp;) that set the argument to the bound value it it exceeds it</li></ul>
<p>
So mutation can choose<ul>
<li>iterate trying until they fall in bounds,</li><li>only try once and "restd::pair" by using the foldsInBounds method</li><li>only try once and restd::pair using the truncate method (will create a huge bias toward the bound if the soluiton is not far from the bounds)</li></ul>
<p>
There is also a <a class="el" href="classeo_real_bounds.html#a11">uniform()</a> method that generates a uniform value (if possible, i.e. if bounded) in the interval.<p>
Derived class are <a class="el" href="classeo_real_interval.html">eoRealInterval</a> that holds a minimum and maximum value, <a class="el" href="classeo_real_no_bounds.html">eoRealNoBounds</a> the "unbounded bounds" (-infinity, +infinity) <a class="el" href="classeo_real_below_bound.html">eoRealBelowBound</a> the half-bounded interval [min, +infinity) <a class="el" href="classeo_real_above_bound.html">eoRealAboveBound</a> the half-bounded interval (-infinity, max]<p>
THis file also contains the declaration of *the* global object that is the unbounded bound
<p>
<p>
Definition at line <a class="el" href="eo_real_bounds_8h-source.html#l00075">75</a> of file <a class="el" href="eo_real_bounds_8h-source.html">eoRealBounds.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="eo_real_bounds_8h-source.html">eoRealBounds.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 19 05:06:54 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>