git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@40 331e1502-861f-0410-8da2-ba01fb791d7f
113 lines
11 KiB
HTML
113 lines
11 KiB
HTML
<!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: eoIntBounds 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 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 Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
|
|
<h1>eoIntBounds 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 <<a class="el" href="eo_int_bounds_8h-source.html">es/eoIntBounds.h</a>></code>
|
|
<p>
|
|
<p>Inheritance diagram for eoIntBounds:
|
|
<p><center><img src="classeo_int_bounds.png" usemap="#eoIntBounds_map" border="0" alt=""></center>
|
|
<map name="eoIntBounds_map">
|
|
<area href="classeo_persistent.html" alt="eoPersistent" shape="rect" coords="272,56,398,80">
|
|
<area href="classeo_printable.html" alt="eoPrintable" shape="rect" coords="272,0,398,24">
|
|
<area href="classeo_general_int_bounds.html" alt="eoGeneralIntBounds" shape="rect" coords="0,168,126,192">
|
|
<area href="classeo_int_above_bound.html" alt="eoIntAboveBound" shape="rect" coords="136,168,262,192">
|
|
<area href="classeo_int_below_bound.html" alt="eoIntBelowBound" shape="rect" coords="272,168,398,192">
|
|
<area href="classeo_int_interval.html" alt="eoIntInterval" shape="rect" coords="408,168,534,192">
|
|
<area href="classeo_int_no_bounds.html" alt="eoIntNoBounds" shape="rect" coords="544,168,670,192">
|
|
</map>
|
|
<a href="classeo_int_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="eoIntBounds::isBounded"></a>
|
|
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a1">isBounded</a> (void) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="eoIntBounds::hasNoBoundAtAll"></a>
|
|
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a2">hasNoBoundAtAll</a> (void) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="eoIntBounds::isMinBounded"></a>
|
|
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a3">isMinBounded</a> (void) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="eoIntBounds::isMaxBounded"></a>
|
|
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a4">isMaxBounded</a> (void) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="eoIntBounds::isInBounds"></a>
|
|
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a5">isInBounds</a> (double) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="eoIntBounds::foldsInBounds"></a>
|
|
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a6">foldsInBounds</a> (double &) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="eoIntBounds::foldsInBounds"></a>
|
|
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a7">foldsInBounds</a> (long int &i) const </td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">foldsInBounds for ints: call the method for double and convert back <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8" doxytag="eoIntBounds::truncate"></a>
|
|
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a8">truncate</a> (double &) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="a9" doxytag="eoIntBounds::truncate"></a>
|
|
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a9">truncate</a> (long int &i) const </td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">truncate for ints: call the method for double and convert back <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10" doxytag="eoIntBounds::minimum"></a>
|
|
virtual long int </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a10">minimum</a> () const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="a11" doxytag="eoIntBounds::maximum"></a>
|
|
virtual long int </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a11">maximum</a> () const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="a12" doxytag="eoIntBounds::range"></a>
|
|
virtual long int </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a12">range</a> () const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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="a13" doxytag="eoIntBounds::uniform"></a>
|
|
virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a13">uniform</a> (<a class="el" href="classeo_rng.html">eoRng</a> &_rng=eo::rng) const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </td><td class="mdescRight">random generator of uniform numbers in bounds uses same naming convention than eo::rng ::exception if unbounded <br></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a14" doxytag="eoIntBounds::random"></a>
|
|
virtual long int </td><td class="memItemRight" valign="bottom"><b>random</b> (<a class="el" href="classeo_rng.html">eoRng</a> &_rng=eo::rng) const =0</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a15" doxytag="eoIntBounds::dup"></a>
|
|
virtual <a class="el" href="classeo_int_bounds.html">eoIntBounds</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classeo_int_bounds.html#a15">dup</a> () const =0</td></tr>
|
|
|
|
<tr><td class="mdescLeft"> </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 eoIntBounds, a pure virtual.<p>
|
|
The following pure virtual methods are to be used in mutations:<ul>
|
|
<li>void foldsInBounds(long int &) 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(long int) that simply says whether or not the argument is in the bounds</li><li>void truncate(long int &) 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_int_bounds.html#a13">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_int_interval.html">eoIntInterval</a> that holds a minimum and maximum value, <a class="el" href="classeo_int_no_bounds.html">eoIntNoBounds</a> the "unbounded bounds" (-infinity, +infinity) <a class="el" href="classeo_int_below_bound.html">eoIntBelowBound</a> the half-bounded interval [min, +infinity) <a class="el" href="classeo_int_above_bound.html">eoIntAboveBound</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_int_bounds_8h-source.html#l00075">75</a> of file <a class="el" href="eo_int_bounds_8h-source.html">eoIntBounds.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
|
|
<li><a class="el" href="eo_int_bounds_8h-source.html">eoIntBounds.h</a></ul>
|
|
<hr size="1"><address style="align: right;"><small>Generated on Thu Oct 19 05:06:50 2006 for EO by
|
|
<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>
|