git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@40 331e1502-861f-0410-8da2-ba01fb791d7f
114 lines
3.8 KiB
Groff
114 lines
3.8 KiB
Groff
.TH "eoIntBounds" 3 "19 Oct 2006" "Version 0.9.4-cvs" "EO" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
eoIntBounds \- Defines bound classes for real numbers.
|
|
|
|
.PP
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fC#include <es/eoIntBounds.h>\fP
|
|
.PP
|
|
Inherits \fBeoPersistent\fP.
|
|
.PP
|
|
Inherited by \fBeoGeneralIntBounds\fP, \fBeoIntAboveBound\fP, \fBeoIntBelowBound\fP, \fBeoIntInterval\fP, and \fBeoIntNoBounds\fP.
|
|
.PP
|
|
.SS "Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "virtual bool \fBisBounded\fP (void) const =0"
|
|
.br
|
|
.RI "\fISelf-Test: true if ***both*** a min and a max. \fP"
|
|
.ti -1c
|
|
.RI "virtual bool \fBhasNoBoundAtAll\fP (void) const =0"
|
|
.br
|
|
.RI "\fISelf-Test: true if no min ***and*** no max hence no further need to test/truncate/fold anything. \fP"
|
|
.ti -1c
|
|
.RI "virtual bool \fBisMinBounded\fP (void) const =0"
|
|
.br
|
|
.RI "\fISelf-Test: bounded from below??? \fP"
|
|
.ti -1c
|
|
.RI "virtual bool \fBisMaxBounded\fP (void) const =0"
|
|
.br
|
|
.RI "\fISelf-Test: bounded from above??? \fP"
|
|
.ti -1c
|
|
.RI "virtual bool \fBisInBounds\fP (double) const =0"
|
|
.br
|
|
.RI "\fITest on a value: is it in bounds? \fP"
|
|
.ti -1c
|
|
.RI "virtual void \fBfoldsInBounds\fP (double &) const =0"
|
|
.br
|
|
.RI "\fIPut value back into bounds - by folding back and forth. \fP"
|
|
.ti -1c
|
|
.RI "virtual void \fBfoldsInBounds\fP (long int &i) const "
|
|
.br
|
|
.RI "\fIfoldsInBounds for ints: call the method for double and convert back \fP"
|
|
.ti -1c
|
|
.RI "virtual void \fBtruncate\fP (double &) const =0"
|
|
.br
|
|
.RI "\fIPut value back into bounds - by truncating to a boundary value. \fP"
|
|
.ti -1c
|
|
.RI "virtual void \fBtruncate\fP (long int &i) const "
|
|
.br
|
|
.RI "\fItruncate for ints: call the method for double and convert back \fP"
|
|
.ti -1c
|
|
.RI "virtual long int \fBminimum\fP () const =0"
|
|
.br
|
|
.RI "\fIget minimum value ::exception if does not exist \fP"
|
|
.ti -1c
|
|
.RI "virtual long int \fBmaximum\fP () const =0"
|
|
.br
|
|
.RI "\fIget maximum value ::exception if does not exist \fP"
|
|
.ti -1c
|
|
.RI "virtual long int \fBrange\fP () const =0"
|
|
.br
|
|
.RI "\fIget range ::exception if unbounded \fP"
|
|
.ti -1c
|
|
.RI "virtual double \fBuniform\fP (\fBeoRng\fP &_rng=eo::rng) const =0"
|
|
.br
|
|
.RI "\fIrandom generator of uniform numbers in bounds uses same naming convention than eo::rng ::exception if unbounded \fP"
|
|
.ti -1c
|
|
.RI "virtual long int \fBrandom\fP (\fBeoRng\fP &_rng=eo::rng) const =0"
|
|
.br
|
|
.ti -1c
|
|
.RI "virtual \fBeoIntBounds\fP * \fBdup\fP () const =0"
|
|
.br
|
|
.RI "\fIfor memory managements - ugly \fP"
|
|
.in -1c
|
|
.SH "Detailed Description"
|
|
.PP
|
|
Defines bound classes for real numbers.
|
|
|
|
Scalar type: ------------ Basic class is eoIntBounds, a pure virtual.
|
|
.PP
|
|
The following pure virtual methods are to be used in mutations:
|
|
.IP "\(bu" 2
|
|
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)
|
|
.IP "\(bu" 2
|
|
bool isInBounds(long int) that simply says whether or not the argument is in the bounds
|
|
.IP "\(bu" 2
|
|
void truncate(long int &) that set the argument to the bound value it it exceeds it
|
|
.PP
|
|
.PP
|
|
So mutation can choose
|
|
.IP "\(bu" 2
|
|
iterate trying until they fall in bounds,
|
|
.IP "\(bu" 2
|
|
only try once and 'restd::pair' by using the foldsInBounds method
|
|
.IP "\(bu" 2
|
|
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)
|
|
.PP
|
|
.PP
|
|
There is also a \fBuniform()\fP method that generates a uniform value (if possible, i.e. if bounded) in the interval.
|
|
.PP
|
|
Derived class are \fBeoIntInterval\fP that holds a minimum and maximum value, \fBeoIntNoBounds\fP the 'unbounded bounds' (-infinity, +infinity) \fBeoIntBelowBound\fP the half-bounded interval [min, +infinity) \fBeoIntAboveBound\fP the half-bounded interval (-infinity, max]
|
|
.PP
|
|
THis file also contains the declaration of *the* global object that is the unbounded bound
|
|
.PP
|
|
Definition at line 75 of file eoIntBounds.h.
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for EO from the source code.
|