\hypertarget{classeo_perf2_worth_cached}{}\doxysection{eo\+Perf2\+Worth\+Cached$<$ E\+OT, WorthT $>$ Class Template Reference}
\label{classeo_perf2_worth_cached}\index{eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}}


{\ttfamily \#include $<$eo\+Perf2\+Worth.\+h$>$}



Inheritance diagram for eo\+Perf2\+Worth\+Cached$<$ E\+OT, WorthT $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classeo_perf2_worth_cached__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for eo\+Perf2\+Worth\+Cached$<$ E\+OT, WorthT $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classeo_perf2_worth_cached__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classeo_perf2_worth_cached_1_1compare__worth}{compare\+\_\+worth}}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classeo_perf2_worth_cached_a125a913ad2eaa585d5d093adaaf0848c}\label{classeo_perf2_worth_cached_a125a913ad2eaa585d5d093adaaf0848c}} 
{\bfseries eo\+Perf2\+Worth\+Cached} (std\+::string \+\_\+description=\char`\"{}Worths\char`\"{})
\item 
void \mbox{\hyperlink{classeo_perf2_worth_cached_a20cce0d59283c68b5b27fe9b6d3038b9}{operator()}} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop)
\item 
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached_a59e76220acec2cd4ddd2860c4b48d3f8}{calculate\+\_\+worths}} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop)=0
\item 
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached_a0a9a0a0f34ac8a399a842773f5a395dd}{sort\+\_\+pop}} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop)
\item 
\mbox{\Hypertarget{classeo_perf2_worth_cached_a0f898a180fc8ef3a2875b97c6c5e294d}\label{classeo_perf2_worth_cached_a0f898a180fc8ef3a2875b97c6c5e294d}} 
virtual void {\bfseries resize} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, unsigned sz)
\item 
\mbox{\Hypertarget{classeo_perf2_worth_cached_a125a913ad2eaa585d5d093adaaf0848c}\label{classeo_perf2_worth_cached_a125a913ad2eaa585d5d093adaaf0848c}} 
{\bfseries eo\+Perf2\+Worth\+Cached} (std\+::string \+\_\+description=\char`\"{}Worths\char`\"{})
\item 
void \mbox{\hyperlink{classeo_perf2_worth_cached_a20cce0d59283c68b5b27fe9b6d3038b9}{operator()}} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop)
\item 
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached_a59e76220acec2cd4ddd2860c4b48d3f8}{calculate\+\_\+worths}} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop)=0
\item 
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached_a0a9a0a0f34ac8a399a842773f5a395dd}{sort\+\_\+pop}} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop)
\item 
\mbox{\Hypertarget{classeo_perf2_worth_cached_a0f898a180fc8ef3a2875b97c6c5e294d}\label{classeo_perf2_worth_cached_a0f898a180fc8ef3a2875b97c6c5e294d}} 
virtual void {\bfseries resize} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, unsigned sz)
\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$class E\+OT, class WorthT = typename E\+O\+T\+::\+Fitness$>$\newline
class eo\+Perf2\+Worth\+Cached$<$ E\+O\+T, Worth\+T $>$}

Perf2\+Worth with fitness cache 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classeo_perf2_worth_cached_a59e76220acec2cd4ddd2860c4b48d3f8}\label{classeo_perf2_worth_cached_a59e76220acec2cd4ddd2860c4b48d3f8}} 
\index{eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}!calculate\_worths@{calculate\_worths}}
\index{calculate\_worths@{calculate\_worths}!eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}}
\doxysubsubsection{\texorpdfstring{calculate\_worths()}{calculate\_worths()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class E\+OT , class WorthT  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached}{eo\+Perf2\+Worth\+Cached}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, WorthT $>$\+::calculate\+\_\+worths (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&}]{\+\_\+pop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

The actual virtual function the derived classes should implement 

Implemented in \mbox{\hyperlink{struct_cached_perf2_worth_wrapper_a2767e21cb2991c17037a0c963506dd99}{Cached\+Perf2\+Worth\+Wrapper}}, \mbox{\hyperlink{struct_cached_perf2_worth_wrapper_a2767e21cb2991c17037a0c963506dd99}{Cached\+Perf2\+Worth\+Wrapper}}, \mbox{\hyperlink{classeo_n_d_sorting_a13922491ae784f95d810a7467d3a347d}{eo\+N\+D\+Sorting$<$ E\+O\+T $>$}}, and \mbox{\hyperlink{classeo_n_d_sorting_a13922491ae784f95d810a7467d3a347d}{eo\+N\+D\+Sorting$<$ E\+O\+T $>$}}.

\mbox{\Hypertarget{classeo_perf2_worth_cached_a59e76220acec2cd4ddd2860c4b48d3f8}\label{classeo_perf2_worth_cached_a59e76220acec2cd4ddd2860c4b48d3f8}} 
\index{eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}!calculate\_worths@{calculate\_worths}}
\index{calculate\_worths@{calculate\_worths}!eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}}
\doxysubsubsection{\texorpdfstring{calculate\_worths()}{calculate\_worths()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class E\+OT , class WorthT  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached}{eo\+Perf2\+Worth\+Cached}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, WorthT $>$\+::calculate\+\_\+worths (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&}]{\+\_\+pop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

The actual virtual function the derived classes should implement 

Implemented in \mbox{\hyperlink{struct_cached_perf2_worth_wrapper_a2767e21cb2991c17037a0c963506dd99}{Cached\+Perf2\+Worth\+Wrapper}}, \mbox{\hyperlink{struct_cached_perf2_worth_wrapper_a2767e21cb2991c17037a0c963506dd99}{Cached\+Perf2\+Worth\+Wrapper}}, \mbox{\hyperlink{classeo_n_d_sorting_a13922491ae784f95d810a7467d3a347d}{eo\+N\+D\+Sorting$<$ E\+O\+T $>$}}, and \mbox{\hyperlink{classeo_n_d_sorting_a13922491ae784f95d810a7467d3a347d}{eo\+N\+D\+Sorting$<$ E\+O\+T $>$}}.

\mbox{\Hypertarget{classeo_perf2_worth_cached_a20cce0d59283c68b5b27fe9b6d3038b9}\label{classeo_perf2_worth_cached_a20cce0d59283c68b5b27fe9b6d3038b9}} 
\index{eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}!operator()@{operator()}}
\index{operator()@{operator()}!eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class E\+OT , class WorthT  = typename E\+O\+T\+::\+Fitness$>$ \\
void \mbox{\hyperlink{classeo_perf2_worth_cached}{eo\+Perf2\+Worth\+Cached}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, WorthT $>$\+::operator() (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&}]{\+\_\+pop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Implementation of the operator(), updating a cache of fitnesses. Calls the virtual function calculate\+\_\+worths when one of the fitnesses has changed. It is not virtual, but derived classes can remove the fitness caching trough the third template element 

Implements \mbox{\hyperlink{classeo_u_f_a786e028409366dc273e19104f17ba68a}{eo\+U\+F$<$ const eo\+Pop$<$ E\+O\+T $>$ \&, void $>$}}.

\mbox{\Hypertarget{classeo_perf2_worth_cached_a20cce0d59283c68b5b27fe9b6d3038b9}\label{classeo_perf2_worth_cached_a20cce0d59283c68b5b27fe9b6d3038b9}} 
\index{eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}!operator()@{operator()}}
\index{operator()@{operator()}!eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class E\+OT , class WorthT  = typename E\+O\+T\+::\+Fitness$>$ \\
void \mbox{\hyperlink{classeo_perf2_worth_cached}{eo\+Perf2\+Worth\+Cached}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, WorthT $>$\+::operator() (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&}]{\+\_\+pop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Implementation of the operator(), updating a cache of fitnesses. Calls the virtual function calculate\+\_\+worths when one of the fitnesses has changed. It is not virtual, but derived classes can remove the fitness caching trough the third template element 

Implements \mbox{\hyperlink{classeo_u_f_a786e028409366dc273e19104f17ba68a}{eo\+U\+F$<$ const eo\+Pop$<$ E\+O\+T $>$ \&, void $>$}}.

\mbox{\Hypertarget{classeo_perf2_worth_cached_a0a9a0a0f34ac8a399a842773f5a395dd}\label{classeo_perf2_worth_cached_a0a9a0a0f34ac8a399a842773f5a395dd}} 
\index{eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}!sort\_pop@{sort\_pop}}
\index{sort\_pop@{sort\_pop}!eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}}
\doxysubsubsection{\texorpdfstring{sort\_pop()}{sort\_pop()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class E\+OT , class WorthT  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached}{eo\+Perf2\+Worth\+Cached}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, WorthT $>$\+::sort\+\_\+pop (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&}]{\+\_\+pop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Sort population according to worth, will keep the worths and fitness\+\_\+cache in sync with the population. 

Reimplemented from \mbox{\hyperlink{classeo_perf2_worth_af5131552bee000db94d29c08ac4e1af4}{eo\+Perf2\+Worth$<$ E\+O\+T, typename E\+O\+T\+::\+Fitness $>$}}.

\mbox{\Hypertarget{classeo_perf2_worth_cached_a0a9a0a0f34ac8a399a842773f5a395dd}\label{classeo_perf2_worth_cached_a0a9a0a0f34ac8a399a842773f5a395dd}} 
\index{eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}!sort\_pop@{sort\_pop}}
\index{sort\_pop@{sort\_pop}!eoPerf2WorthCached$<$ EOT, WorthT $>$@{eoPerf2WorthCached$<$ EOT, WorthT $>$}}
\doxysubsubsection{\texorpdfstring{sort\_pop()}{sort\_pop()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class E\+OT , class WorthT  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classeo_perf2_worth_cached}{eo\+Perf2\+Worth\+Cached}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, WorthT $>$\+::sort\+\_\+pop (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&}]{\+\_\+pop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Sort population according to worth, will keep the worths and fitness\+\_\+cache in sync with the population. 

Reimplemented from \mbox{\hyperlink{classeo_perf2_worth_af5131552bee000db94d29c08ac4e1af4}{eo\+Perf2\+Worth$<$ E\+O\+T, typename E\+O\+T\+::\+Fitness $>$}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
deprecated/eo/src/eo\+Perf2\+Worth.\+h\end{DoxyCompactItemize}
