\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}