paradiseo/Doxygen doc/latex/classeo_how_many.tex
aaziz-alaoui e79679b3c9 adding the problem configuration interface to irace interface
problem_config_mapping created
2020-10-01 15:55:30 +02:00

266 lines
16 KiB
TeX

\hypertarget{classeo_how_many}{}\doxysection{eo\+How\+Many Class Reference}
\label{classeo_how_many}\index{eoHowMany@{eoHowMany}}
{\ttfamily \#include $<$eo\+How\+Many.\+h$>$}
Inheritance diagram for eo\+How\+Many\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=157pt]{classeo_how_many__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for eo\+How\+Many\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=157pt]{classeo_how_many__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classeo_how_many_a9bf987a5b7cae0ec328d901b30dd4e0f}{eo\+How\+Many}} (double \+\_\+rate=0.\+0, bool \+\_\+interpret\+\_\+as\+\_\+rate=true)
\item
\mbox{\hyperlink{classeo_how_many_a18f3e575102f3b3492f0ee4da8a29876}{eo\+How\+Many}} (int \+\_\+count)
\item
\mbox{\hyperlink{classeo_how_many_a26ab4da37f7545777e723122e264f9e5}{eo\+How\+Many}} (unsigned int \+\_\+count)
\item
\mbox{\Hypertarget{classeo_how_many_a8b8cdc90bd31ff539957b10c23b328f2}\label{classeo_how_many_a8b8cdc90bd31ff539957b10c23b328f2}}
virtual \mbox{\hyperlink{classeo_how_many_a8b8cdc90bd31ff539957b10c23b328f2}{$\sim$eo\+How\+Many}} ()
\begin{DoxyCompactList}\small\item\em Virtual dtor. They are needed in virtual class hierarchies. \end{DoxyCompactList}\item
unsigned int \mbox{\hyperlink{classeo_how_many_a8195ba4f3ff26bbd101dd7044cc9709f}{operator()}} (unsigned int \+\_\+size)
\item
virtual void \mbox{\hyperlink{classeo_how_many_ad166d8309658f645591bd8d0c43932a2}{print\+On}} (std\+::ostream \&\+\_\+os) const
\item
virtual void \mbox{\hyperlink{classeo_how_many_a87af638855d48af31b0ed15a4297d131}{read\+From}} (std\+::istream \&\+\_\+is)
\item
\mbox{\Hypertarget{classeo_how_many_a0705e868da69adaae05f7be8dd95a1ce}\label{classeo_how_many_a0705e868da69adaae05f7be8dd95a1ce}}
void {\bfseries read\+From} (std\+::string \+\_\+value)
\item
\mbox{\hyperlink{classeo_how_many}{eo\+How\+Many}} \mbox{\hyperlink{classeo_how_many_a408d67356f2ed1f216d3da293826a2f9}{operator-\/}} ()
\item
\mbox{\hyperlink{classeo_how_many_a9bf987a5b7cae0ec328d901b30dd4e0f}{eo\+How\+Many}} (double \+\_\+rate=0.\+0, bool \+\_\+interpret\+\_\+as\+\_\+rate=true)
\item
\mbox{\hyperlink{classeo_how_many_a18f3e575102f3b3492f0ee4da8a29876}{eo\+How\+Many}} (int \+\_\+count)
\item
\mbox{\hyperlink{classeo_how_many_a26ab4da37f7545777e723122e264f9e5}{eo\+How\+Many}} (unsigned int \+\_\+count)
\item
\mbox{\Hypertarget{classeo_how_many_a8b8cdc90bd31ff539957b10c23b328f2}\label{classeo_how_many_a8b8cdc90bd31ff539957b10c23b328f2}}
virtual \mbox{\hyperlink{classeo_how_many_a8b8cdc90bd31ff539957b10c23b328f2}{$\sim$eo\+How\+Many}} ()
\begin{DoxyCompactList}\small\item\em Virtual dtor. They are needed in virtual class hierarchies. \end{DoxyCompactList}\item
unsigned int \mbox{\hyperlink{classeo_how_many_a8195ba4f3ff26bbd101dd7044cc9709f}{operator()}} (unsigned int \+\_\+size)
\item
virtual void \mbox{\hyperlink{classeo_how_many_ad166d8309658f645591bd8d0c43932a2}{print\+On}} (std\+::ostream \&\+\_\+os) const
\item
virtual void \mbox{\hyperlink{classeo_how_many_a87af638855d48af31b0ed15a4297d131}{read\+From}} (std\+::istream \&\+\_\+is)
\item
\mbox{\Hypertarget{classeo_how_many_a0705e868da69adaae05f7be8dd95a1ce}\label{classeo_how_many_a0705e868da69adaae05f7be8dd95a1ce}}
void {\bfseries read\+From} (std\+::string \+\_\+value)
\item
\mbox{\hyperlink{classeo_how_many}{eo\+How\+Many}} \mbox{\hyperlink{classeo_how_many_a408d67356f2ed1f216d3da293826a2f9}{operator-\/}} ()
\item
\mbox{\Hypertarget{classeo_how_many_aa5ff027d3b90534a3915d172a6e84e2a}\label{classeo_how_many_aa5ff027d3b90534a3915d172a6e84e2a}}
void {\bfseries value} (double \+\_\+rate, bool \+\_\+interpret\+\_\+as\+\_\+rate)
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
A helper class, to determine a number of individuals from another one Typically, is used in selection / replacement procedures, e.\+g. the number of offspring from the number of parents, or the number of survivors for an \mbox{\hyperlink{classeo_reduce}{eo\+Reduce}} functor, ...
Such construct is very useful because in some cases you might not know the population size that will enter the replacement. For instance, you cannot simply have a pre-\/computed (double) rate of 1/pop\+Size if you want to select or kill just 1 guy. Using an \mbox{\hyperlink{classeo_how_many}{eo\+How\+Many}} allows one to modify the population size without touching anything else.
There are 4 possible way to compute the return value from the argument\+:
\begin{DoxyItemize}
\item an absolute P\+O\+S\+I\+T\+I\+VE integer -\/-\/$>$ return it (regardless of popsize)
\item a P\+O\+S\+I\+T\+I\+VE rate -\/-\/$>$ return rate$\ast$pop\+Size
\item an absolute N\+E\+G\+A\+T\+I\+VE integer -\/-\/$>$ return popsize-\/rate (if positive)
\item a N\+E\+G\+A\+T\+I\+VE rate in \mbox{[}-\/1,0\mbox{]} -\/-\/$>$ store and use 1-\/$\vert$rate$\vert$ (positive) Note that a negative rate should be have been necessary because a rate is relative, but it is there for consistency reasons -\/ and because it is needed in \href{classeo_g3_replacement_h-source.html}{\texttt{ eo\+G3\+Replacement}}
\end{DoxyItemize}
It has 2 private members, a double and an integer to cover all cases
Example use\+: in \href{class_eogeneralbreeder.html}{\texttt{ eo\+General\+Breeder.\+h}} Example reading from parser\+: in \href{make_algo_scalar_h-source.html}{\texttt{ do/make\+\_\+algo\+\_\+scalar.\+h line 141}}
MS 10/04/2002\+: Added the possibility to have a negative number -\/ when treated as a number\+: returns then (size -\/ count) Should not modify anything when a positive number is passed in the ctor
MS 20/06/2002\+: Added the negative rate and the \mbox{\hyperlink{classeo_how_many_a408d67356f2ed1f216d3da293826a2f9}{operator-\/()}} (for eo\+G3\+Repalcement)
It is an \mbox{\hyperlink{classeo_persistent}{eo\+Persistent}} because we need to be able to use eo\+Param\+Value$<$eo\+How\+Many$>$
\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classeo_how_many_a9bf987a5b7cae0ec328d901b30dd4e0f}\label{classeo_how_many_a9bf987a5b7cae0ec328d901b30dd4e0f}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{eoHowMany()}{eoHowMany()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily eo\+How\+Many\+::eo\+How\+Many (\begin{DoxyParamCaption}\item[{double}]{\+\_\+rate = {\ttfamily 0.0}, }\item[{bool}]{\+\_\+interpret\+\_\+as\+\_\+rate = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Original Ctor from direct rate + bool
\begin{DoxyParams}{Parameters}
{\em \+\_\+rate} & the rate, OR the integer to store, depending on 2nd arg. \\
\hline
{\em \+\_\+interpret\+\_\+as\+\_\+rate} & to tell whether the rate actually is a rate \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classeo_how_many_a18f3e575102f3b3492f0ee4da8a29876}\label{classeo_how_many_a18f3e575102f3b3492f0ee4da8a29876}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{eoHowMany()}{eoHowMany()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily eo\+How\+Many\+::eo\+How\+Many (\begin{DoxyParamCaption}\item[{int}]{\+\_\+count }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Ctor from an int -\/ both from int and unsigned int are needed to avoid ambiguity with the Ctor from a double \mbox{\Hypertarget{classeo_how_many_a26ab4da37f7545777e723122e264f9e5}\label{classeo_how_many_a26ab4da37f7545777e723122e264f9e5}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{eoHowMany()}{eoHowMany()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily eo\+How\+Many\+::eo\+How\+Many (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+count }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Ctor from an unsigned int -\/ both from int and unsigned int are needed to avoid ambiguity with the Ctor from a double \mbox{\Hypertarget{classeo_how_many_a9bf987a5b7cae0ec328d901b30dd4e0f}\label{classeo_how_many_a9bf987a5b7cae0ec328d901b30dd4e0f}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{eoHowMany()}{eoHowMany()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily eo\+How\+Many\+::eo\+How\+Many (\begin{DoxyParamCaption}\item[{double}]{\+\_\+rate = {\ttfamily 0.0}, }\item[{bool}]{\+\_\+interpret\+\_\+as\+\_\+rate = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Original Ctor from direct rate + bool
\begin{DoxyParams}{Parameters}
{\em \+\_\+rate} & the rate, OR the integer to store, depending on 2nd arg. \\
\hline
{\em \+\_\+interpret\+\_\+as\+\_\+rate} & to tell whether the rate actually is a rate \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classeo_how_many_a18f3e575102f3b3492f0ee4da8a29876}\label{classeo_how_many_a18f3e575102f3b3492f0ee4da8a29876}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{eoHowMany()}{eoHowMany()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily eo\+How\+Many\+::eo\+How\+Many (\begin{DoxyParamCaption}\item[{int}]{\+\_\+count }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Ctor from an int -\/ both from int and unsigned int are needed to avoid ambiguity with the Ctor from a double \mbox{\Hypertarget{classeo_how_many_a26ab4da37f7545777e723122e264f9e5}\label{classeo_how_many_a26ab4da37f7545777e723122e264f9e5}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\index{eoHowMany@{eoHowMany}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{eoHowMany()}{eoHowMany()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily eo\+How\+Many\+::eo\+How\+Many (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+count }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Ctor from an unsigned int -\/ both from int and unsigned int are needed to avoid ambiguity with the Ctor from a double
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classeo_how_many_a8195ba4f3ff26bbd101dd7044cc9709f}\label{classeo_how_many_a8195ba4f3ff26bbd101dd7044cc9709f}}
\index{eoHowMany@{eoHowMany}!operator()@{operator()}}
\index{operator()@{operator()}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily unsigned int eo\+How\+Many\+::operator() (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Does what it was designed for
\begin{DoxyItemize}
\item count==0 \+: return rate$\ast$\+\_\+size
\item else
\begin{DoxyItemize}
\item count$>$0 \+: return count (regardless of \+\_\+size)
\item count$<$0 \+: return \+\_\+size-\/$\vert$count$\vert$
\end{DoxyItemize}
\end{DoxyItemize}\mbox{\Hypertarget{classeo_how_many_a8195ba4f3ff26bbd101dd7044cc9709f}\label{classeo_how_many_a8195ba4f3ff26bbd101dd7044cc9709f}}
\index{eoHowMany@{eoHowMany}!operator()@{operator()}}
\index{operator()@{operator()}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily unsigned int eo\+How\+Many\+::operator() (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
Does what it was designed for
\begin{DoxyItemize}
\item count==0 \+: return rate$\ast$\+\_\+size
\item else
\begin{DoxyItemize}
\item count$>$0 \+: return count (regardless of \+\_\+size)
\item count$<$0 \+: return \+\_\+size-\/$\vert$count$\vert$
\end{DoxyItemize}
\end{DoxyItemize}\mbox{\Hypertarget{classeo_how_many_a408d67356f2ed1f216d3da293826a2f9}\label{classeo_how_many_a408d67356f2ed1f216d3da293826a2f9}}
\index{eoHowMany@{eoHowMany}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classeo_how_many}{eo\+How\+Many}} eo\+How\+Many\+::operator-\/ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
The unary -\/ operator\+: reverses the computation \mbox{\Hypertarget{classeo_how_many_a408d67356f2ed1f216d3da293826a2f9}\label{classeo_how_many_a408d67356f2ed1f216d3da293826a2f9}}
\index{eoHowMany@{eoHowMany}!operator-\/@{operator-\/}}
\index{operator-\/@{operator-\/}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classeo_how_many}{eo\+How\+Many}} eo\+How\+Many\+::operator-\/ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
The unary -\/ operator\+: reverses the computation \mbox{\Hypertarget{classeo_how_many_ad166d8309658f645591bd8d0c43932a2}\label{classeo_how_many_ad166d8309658f645591bd8d0c43932a2}}
\index{eoHowMany@{eoHowMany}!printOn@{printOn}}
\index{printOn@{printOn}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{printOn()}{printOn()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void eo\+How\+Many\+::print\+On (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{\+\_\+os }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
Write object. It\textquotesingle{}s called print\+On since it prints the object on a stream.
\begin{DoxyParams}{Parameters}
{\em \+\_\+os} & A std\+::ostream. \\
\hline
\end{DoxyParams}
Implements \mbox{\hyperlink{classeo_printable_a08ce136c0e66d3beaa091209871fcb74}{eo\+Printable}}.
\mbox{\Hypertarget{classeo_how_many_ad166d8309658f645591bd8d0c43932a2}\label{classeo_how_many_ad166d8309658f645591bd8d0c43932a2}}
\index{eoHowMany@{eoHowMany}!printOn@{printOn}}
\index{printOn@{printOn}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{printOn()}{printOn()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void eo\+How\+Many\+::print\+On (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{\+\_\+os }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
Write object. It\textquotesingle{}s called print\+On since it prints the object on a stream.
\begin{DoxyParams}{Parameters}
{\em \+\_\+os} & A std\+::ostream. \\
\hline
\end{DoxyParams}
Implements \mbox{\hyperlink{classeo_printable_a08ce136c0e66d3beaa091209871fcb74}{eo\+Printable}}.
\mbox{\Hypertarget{classeo_how_many_a87af638855d48af31b0ed15a4297d131}\label{classeo_how_many_a87af638855d48af31b0ed15a4297d131}}
\index{eoHowMany@{eoHowMany}!readFrom@{readFrom}}
\index{readFrom@{readFrom}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{readFrom()}{readFrom()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void eo\+How\+Many\+::read\+From (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+is }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
Read object.
\begin{DoxyParams}{Parameters}
{\em \+\_\+is} & A std\+::istream. \\
\hline
\end{DoxyParams}
\begin{DoxyExceptions}{Exceptions}
{\em runtime\+\_\+std\+::exception} & If a valid object can\textquotesingle{}t be read. \\
\hline
\end{DoxyExceptions}
Implements \mbox{\hyperlink{classeo_persistent_af9ffb4fe25ffe2ca3009387ca74abf3a}{eo\+Persistent}}.
\mbox{\Hypertarget{classeo_how_many_a87af638855d48af31b0ed15a4297d131}\label{classeo_how_many_a87af638855d48af31b0ed15a4297d131}}
\index{eoHowMany@{eoHowMany}!readFrom@{readFrom}}
\index{readFrom@{readFrom}!eoHowMany@{eoHowMany}}
\doxysubsubsection{\texorpdfstring{readFrom()}{readFrom()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void eo\+How\+Many\+::read\+From (\begin{DoxyParamCaption}\item[{std\+::istream \&}]{\+\_\+is }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
Read object.
\begin{DoxyParams}{Parameters}
{\em \+\_\+is} & A std\+::istream. \\
\hline
\end{DoxyParams}
\begin{DoxyExceptions}{Exceptions}
{\em runtime\+\_\+std\+::exception} & If a valid object can\textquotesingle{}t be read. \\
\hline
\end{DoxyExceptions}
Implements \mbox{\hyperlink{classeo_persistent_af9ffb4fe25ffe2ca3009387ca74abf3a}{eo\+Persistent}}.
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
deprecated/eo/src/utils/eo\+How\+Many.\+h\end{DoxyCompactItemize}