\hypertarget{group___evaluation}{}\doxysection{Evaluation} \label{group___evaluation}\index{Evaluation@{Evaluation}} Collaboration diagram for Evaluation\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{group___evaluation} \end{center} \end{figure} \doxysubsection*{Classes} \begin{DoxyCompactItemize} \item class \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness$<$ Base\+Type, Compare $>$}} \begin{DoxyCompactList}\small\item\em A fitness class that permits to compare feasible and unfeasible individuals and guaranties that a feasible individual will always be better than an unfeasible one. \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_dual_stat_switch}{eo\+Dual\+Stat\+Switch$<$ E\+O\+T, E\+O\+S\+T\+A\+T $>$}} \item class \mbox{\hyperlink{classeo_eval_counter_throw_exception}{eo\+Eval\+Counter\+Throw\+Exception$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_eval_func}{eo\+Eval\+Func$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_eval_func_counter}{eo\+Eval\+Func\+Counter$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_eval_func_counter_bounder_exception}{eo\+Eval\+Func\+Counter\+Bounder\+Exception}} \item class \mbox{\hyperlink{classeo_eval_func_counter_bounder}{eo\+Eval\+Func\+Counter\+Bounder$<$ E\+O\+T $>$}} \item struct \mbox{\hyperlink{structeo_eval_func_ptr}{eo\+Eval\+Func\+Ptr$<$ E\+O\+T, Fit\+T, Function\+Arg $>$}} \item class \mbox{\hyperlink{classeo_eval_time_throw_exception}{eo\+Eval\+Time\+Throw\+Exception$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_max_time_exception}{eo\+Max\+Time\+Exception}} \item class \mbox{\hyperlink{classeo_max_eval_exception}{eo\+Max\+Eval\+Exception}} \item class \mbox{\hyperlink{classeo_pop_eval_func}{eo\+Pop\+Eval\+Func$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_pop_loop_eval}{eo\+Pop\+Loop\+Eval$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_time_varying_loop_eval}{eo\+Time\+Varying\+Loop\+Eval$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness$<$ Scalar\+Type, Compare $>$}} \item class \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} \begin{DoxyCompactList}\small\item\em Defines properties of \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}. \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled$<$ Scalar\+Type, Compare, Fitness\+Traits $>$}} \begin{DoxyCompactList}\small\item\em Implements fitness as std\+::vector, storing all values that might occur during fitness assembly. \end{DoxyCompactList}\item class \mbox{\hyperlink{classeo_dual_pop_split}{eo\+Dual\+Pop\+Split$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_eval_keep_best}{eo\+Eval\+Keep\+Best$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_eval_named_pipe}{eo\+Eval\+Named\+Pipe$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_eval_nan_throw_exception}{eo\+Eval\+Nan\+Throw\+Exception$<$ E\+O\+T $>$}} \item class \mbox{\hyperlink{classeo_nan_exception}{eo\+Nan\+Exception}} \end{DoxyCompactItemize} \doxysubsection*{Typedefs} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}\label{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}} typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::less$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}{eo\+Maximizing\+Dual\+Fitness}} \begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were maximizing. \end{DoxyCompactList}\item \mbox{\Hypertarget{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}\label{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}} typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::greater$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}{eo\+Minimizing\+Dual\+Fitness}} \begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were minimizing. \end{DoxyCompactList}\item typedef \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ double, std\+::less$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}{eo\+Maximizing\+Fitness}} \item \mbox{\Hypertarget{group___evaluation_gab71af05a8f933ea2836abc8fcf04d529}\label{group___evaluation_gab71af05a8f933ea2836abc8fcf04d529}} typedef \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ double, std\+::greater$<$ double $>$ $>$ {\bfseries eo\+Minimizing\+Fitness} \item typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::less$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}} \item \mbox{\Hypertarget{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}\label{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}} typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::greater$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ {\bfseries eo\+Assembled\+Minimizing\+Fitness} \item \mbox{\Hypertarget{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}\label{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}} typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::less$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}{eo\+Maximizing\+Dual\+Fitness}} \begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were maximizing. \end{DoxyCompactList}\item \mbox{\Hypertarget{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}\label{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}} typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::greater$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}{eo\+Minimizing\+Dual\+Fitness}} \begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were minimizing. \end{DoxyCompactList}\item {\footnotesize template$<$class T = double$>$ }\\using \mbox{\hyperlink{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}{eo\+Maximizing\+FitnessT}} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ T, std\+::less$<$ T $>$ $>$ \item \mbox{\Hypertarget{group___evaluation_ga35ea587da9a261eddb20f6b9b2771809}\label{group___evaluation_ga35ea587da9a261eddb20f6b9b2771809}} {\footnotesize template$<$class T = double$>$ }\\using {\bfseries eo\+Minimizing\+FitnessT} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ T, std\+::greater$<$ T $>$ $>$ \item \mbox{\Hypertarget{group___evaluation_ga2498338d9f08b4b586773dfb1b1be23d}\label{group___evaluation_ga2498338d9f08b4b586773dfb1b1be23d}} using {\bfseries eo\+Maximizing\+Fitness} = \mbox{\hyperlink{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}{eo\+Maximizing\+FitnessT}}$<$ double $>$ \item \mbox{\Hypertarget{group___evaluation_ga623c5af795cdb89235b3951b3cb7d8eb}\label{group___evaluation_ga623c5af795cdb89235b3951b3cb7d8eb}} using {\bfseries eo\+Minimizing\+Fitness} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Minimizing\+FitnessT}}$<$ double $>$ \item typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::less$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}} \item \mbox{\Hypertarget{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}\label{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}} typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::greater$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ {\bfseries eo\+Assembled\+Minimizing\+Fitness} \end{DoxyCompactItemize} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$class E\+OT $>$ }\\bool \mbox{\hyperlink{group___evaluation_ga11a9b0146c9675c81a62154b72b501ed}{eo\+Is\+Feasible}} (const \mbox{\hyperlink{struct_dummy}{E\+OT}} \&sol) \begin{DoxyCompactList}\small\item\em A predicate that returns the feasibility of a given dual fitness. \end{DoxyCompactList}\item \mbox{\Hypertarget{group___evaluation_gae6668230f17740819a564306e33167c8}\label{group___evaluation_gae6668230f17740819a564306e33167c8}} {\footnotesize template$<$class F , class Cmp $>$ }\\std\+::ostream \& {\bfseries operator$<$$<$} (std\+::ostream \&os, const \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ F, Cmp $>$ \&f) \item \mbox{\Hypertarget{group___evaluation_ga929a4eeff005e4a3cf13134279a99337}\label{group___evaluation_ga929a4eeff005e4a3cf13134279a99337}} {\footnotesize template$<$class F , class Cmp $>$ }\\std\+::istream \& {\bfseries operator$>$$>$} (std\+::istream \&is, \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ F, Cmp $>$ \&f) \item \mbox{\Hypertarget{group___evaluation_ga9fcb3cac191775ff3fab31fa1b0d98ec}\label{group___evaluation_ga9fcb3cac191775ff3fab31fa1b0d98ec}} {\footnotesize template$<$class F , class Cmp , class Fitness\+Traits $>$ }\\std\+::ostream \& {\bfseries operator$<$$<$} (std\+::ostream \&os, const \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ F, Cmp, Fitness\+Traits $>$ \&f) \item \mbox{\Hypertarget{group___evaluation_gad42a87cde6d71cc31ae858369d792db1}\label{group___evaluation_gad42a87cde6d71cc31ae858369d792db1}} {\footnotesize template$<$class F , class Cmp , class Fitness\+Traits $>$ }\\std\+::istream \& {\bfseries operator$>$$>$} (std\+::istream \&is, \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ F, Cmp, Fitness\+Traits $>$ \&f) \end{DoxyCompactItemize} \doxysubsection{Detailed Description} \doxysubsection{Typedef Documentation} \mbox{\Hypertarget{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}\label{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}} \index{Evaluation@{Evaluation}!eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}} \index{eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}!Evaluation@{Evaluation}} \doxysubsubsection{\texorpdfstring{eoAssembledMaximizingFitness}{eoAssembledMaximizingFitness}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$double, std\+::less$<$double$>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}}} Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour. \mbox{\Hypertarget{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}\label{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}} \index{Evaluation@{Evaluation}!eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}} \index{eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}!Evaluation@{Evaluation}} \doxysubsubsection{\texorpdfstring{eoAssembledMaximizingFitness}{eoAssembledMaximizingFitness}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$double, std\+::less$<$double$>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}}} Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour. \mbox{\Hypertarget{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}\label{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}} \index{Evaluation@{Evaluation}!eoMaximizingFitness@{eoMaximizingFitness}} \index{eoMaximizingFitness@{eoMaximizingFitness}!Evaluation@{Evaluation}} \doxysubsubsection{\texorpdfstring{eoMaximizingFitness}{eoMaximizingFitness}} {\footnotesize\ttfamily typedef \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$double, std\+::less$<$double$>$ $>$ \mbox{\hyperlink{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}{eo\+Maximizing\+Fitness}}} Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour. \mbox{\Hypertarget{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}\label{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}} \index{Evaluation@{Evaluation}!eoMaximizingFitnessT@{eoMaximizingFitnessT}} \index{eoMaximizingFitnessT@{eoMaximizingFitnessT}!Evaluation@{Evaluation}} \doxysubsubsection{\texorpdfstring{eoMaximizingFitnessT}{eoMaximizingFitnessT}} {\footnotesize\ttfamily template$<$class T = double$>$ \\ using \mbox{\hyperlink{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}{eo\+Maximizing\+FitnessT}} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$T, std\+::less$<$T$>$ $>$} Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour. \doxysubsection{Function Documentation} \mbox{\Hypertarget{group___evaluation_ga11a9b0146c9675c81a62154b72b501ed}\label{group___evaluation_ga11a9b0146c9675c81a62154b72b501ed}} \index{Evaluation@{Evaluation}!eoIsFeasible@{eoIsFeasible}} \index{eoIsFeasible@{eoIsFeasible}!Evaluation@{Evaluation}} \doxysubsubsection{\texorpdfstring{eoIsFeasible()}{eoIsFeasible()}} {\footnotesize\ttfamily template$<$class E\+OT $>$ \\ bool eo\+Is\+Feasible (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct_dummy}{E\+OT}} \&}]{sol }\end{DoxyParamCaption})} A predicate that returns the feasibility of a given dual fitness. Use this in S\+TL algorithm that use binary predicates (e.\+g. count\+\_\+if, find\+\_\+if, etc.)