\hypertarget{classmoeo_hyper_volume_metric}{}\doxysection{moeo\+Hyper\+Volume\+Metric$<$ Objective\+Vector $>$ Class Template Reference} \label{classmoeo_hyper_volume_metric}\index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} {\ttfamily \#include $<$moeo\+Hyper\+Volume\+Metric.\+h$>$} Inheritance diagram for moeo\+Hyper\+Volume\+Metric$<$ Objective\+Vector $>$\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{classmoeo_hyper_volume_metric__inherit__graph} \end{center} \end{figure} Collaboration diagram for moeo\+Hyper\+Volume\+Metric$<$ Objective\+Vector $>$\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{classmoeo_hyper_volume_metric__coll__graph} \end{center} \end{figure} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classmoeo_hyper_volume_metric_a0644eabda4edc3e0ac5b8a7d428a8379}{moeo\+Hyper\+Volume\+Metric}} (bool \+\_\+normalize=true, double \+\_\+rho=1.\+1) \item \mbox{\hyperlink{classmoeo_hyper_volume_metric_a5e8a02b5f92416283df141a038b4a96d}{moeo\+Hyper\+Volume\+Metric}} (bool \+\_\+normalize=true, \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} \&\+\_\+ref\+\_\+point=N\+U\+LL) \item \mbox{\hyperlink{classmoeo_hyper_volume_metric_a0b533316cd1fd6e704eaecf031e595ee}{moeo\+Hyper\+Volume\+Metric}} (\mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} \&\+\_\+ref\+\_\+point, std\+::vector$<$ \mbox{\hyperlink{classeo_real_interval}{eo\+Real\+Interval}} $>$ \&\+\_\+bounds) \item double \mbox{\hyperlink{classmoeo_hyper_volume_metric_a5be58fd3ab239986ebd1cce4fb9ab41a}{operator()}} (const std\+::vector$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$ \&\+\_\+set) \item std\+::vector$<$ \mbox{\hyperlink{classeo_real_interval}{eo\+Real\+Interval}} $>$ \mbox{\hyperlink{classmoeo_hyper_volume_metric_a72f31571342ba2a544782b7b018a5409}{get\+Bounds}} () \item void \mbox{\hyperlink{classmoeo_hyper_volume_metric_af21685f1165bf91da13afbf12d439bac}{setup}} (const std\+::vector$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$ \&\+\_\+set) \item bool \mbox{\hyperlink{classmoeo_hyper_volume_metric_a805146798b12f5960049dd8cb3e26c9f}{dominates}} (std\+::vector$<$ double $>$ \&\+\_\+point1, std\+::vector$<$ double $>$ \&\+\_\+point2, unsigned int \+\_\+no\+\_\+objectives) \item void \mbox{\hyperlink{classmoeo_hyper_volume_metric_ad41366d169258a65c9a4d1f9e79c41a4}{swap}} (std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&\+\_\+front, unsigned int \+\_\+i, unsigned int \+\_\+j) \item unsigned int \mbox{\hyperlink{classmoeo_hyper_volume_metric_a71418cb984d188e0235ae1d458e56565}{filter\+\_\+nondominated\+\_\+set}} (std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&\+\_\+front, unsigned int \+\_\+no\+\_\+points, unsigned int \+\_\+no\+\_\+objectives) \item double \mbox{\hyperlink{classmoeo_hyper_volume_metric_ad24f2e7982f4d71689426b2afaae264e}{surface\+\_\+unchanged\+\_\+to}} (std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&\+\_\+front, unsigned int \+\_\+no\+\_\+points, unsigned int \+\_\+objective) \item unsigned int \mbox{\hyperlink{classmoeo_hyper_volume_metric_a35950b8c23ac19befefd09efed68db5a}{reduce\+\_\+nondominated\+\_\+set}} (std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&\+\_\+front, unsigned int \+\_\+no\+\_\+points, unsigned int \+\_\+objective, double \+\_\+threshold) \item double \mbox{\hyperlink{classmoeo_hyper_volume_metric_a720619b463092fea6a38bac1ee973c74}{calc\+\_\+hypervolume}} (std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&\+\_\+front, unsigned int \+\_\+no\+\_\+points, unsigned int \+\_\+no\+\_\+objectives) \end{DoxyCompactItemize} \doxysubsection*{Additional Inherited Members} \doxysubsection{Detailed Description} \subsubsection*{template$<$class Objective\+Vector$>$\newline class moeo\+Hyper\+Volume\+Metric$<$ Objective\+Vector $>$} The hypervolume metric evaluates the multi-\/dimensional area (hypervolume) enclosed by set of objective vectors and a reference point (E. Zitzler and L. Thiele. Multiobjective evolutionary algorithms\+: A comparative case study and the strength pareto approach. I\+E\+EE Transactions on Evolutionary Computation, 3(4)\+:257–271, 1999) \doxysubsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a0644eabda4edc3e0ac5b8a7d428a8379}\label{classmoeo_hyper_volume_metric_a0644eabda4edc3e0ac5b8a7d428a8379}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!moeoHyperVolumeMetric@{moeoHyperVolumeMetric}} \index{moeoHyperVolumeMetric@{moeoHyperVolumeMetric}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{moeoHyperVolumeMetric()}{moeoHyperVolumeMetric()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::\mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}} (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+normalize = {\ttfamily true}, }\item[{double}]{\+\_\+rho = {\ttfamily 1.1} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} Constructor with a coefficient (rho) \begin{DoxyParams}{Parameters} {\em \+\_\+normalize} & allow to normalize data (default true) \\ \hline {\em \+\_\+rho} & coefficient to determine the reference point. \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a5e8a02b5f92416283df141a038b4a96d}\label{classmoeo_hyper_volume_metric_a5e8a02b5f92416283df141a038b4a96d}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!moeoHyperVolumeMetric@{moeoHyperVolumeMetric}} \index{moeoHyperVolumeMetric@{moeoHyperVolumeMetric}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{moeoHyperVolumeMetric()}{moeoHyperVolumeMetric()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::\mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}} (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+normalize = {\ttfamily true}, }\item[{\mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} \&}]{\+\_\+ref\+\_\+point = {\ttfamily NULL} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} Constructor with a reference point \begin{DoxyParams}{Parameters} {\em \+\_\+normalize} & allow to normalize data (default true) \\ \hline {\em \+\_\+ref\+\_\+point} & the reference point \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a0b533316cd1fd6e704eaecf031e595ee}\label{classmoeo_hyper_volume_metric_a0b533316cd1fd6e704eaecf031e595ee}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!moeoHyperVolumeMetric@{moeoHyperVolumeMetric}} \index{moeoHyperVolumeMetric@{moeoHyperVolumeMetric}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{moeoHyperVolumeMetric()}{moeoHyperVolumeMetric()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::\mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} \&}]{\+\_\+ref\+\_\+point, }\item[{std\+::vector$<$ \mbox{\hyperlink{classeo_real_interval}{eo\+Real\+Interval}} $>$ \&}]{\+\_\+bounds }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} Constructor with a reference point \begin{DoxyParams}{Parameters} {\em \+\_\+ref\+\_\+point} & the reference point \\ \hline {\em \+\_\+bounds} & bounds value \\ \hline \end{DoxyParams} \doxysubsection{Member Function Documentation} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a720619b463092fea6a38bac1ee973c74}\label{classmoeo_hyper_volume_metric_a720619b463092fea6a38bac1ee973c74}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!calc\_hypervolume@{calc\_hypervolume}} \index{calc\_hypervolume@{calc\_hypervolume}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{calc\_hypervolume()}{calc\_hypervolume()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ double \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::calc\+\_\+hypervolume (\begin{DoxyParamCaption}\item[{std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&}]{\+\_\+front, }\item[{unsigned int}]{\+\_\+no\+\_\+points, }\item[{unsigned int}]{\+\_\+no\+\_\+objectives }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} calculate hypervolume of the front (data are redrafted before) \begin{DoxyParams}{Parameters} {\em \+\_\+front} & the front \\ \hline {\em \+\_\+no\+\_\+points} & the number of points of the front to consider (index 0 to \+\_\+no\+\_\+points are considered) \\ \hline {\em \+\_\+no\+\_\+objectives} & the number of objective to consider \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} the hypervolume of the front \end{DoxyReturn} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a805146798b12f5960049dd8cb3e26c9f}\label{classmoeo_hyper_volume_metric_a805146798b12f5960049dd8cb3e26c9f}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!dominates@{dominates}} \index{dominates@{dominates}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{dominates()}{dominates()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ bool \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::dominates (\begin{DoxyParamCaption}\item[{std\+::vector$<$ double $>$ \&}]{\+\_\+point1, }\item[{std\+::vector$<$ double $>$ \&}]{\+\_\+point2, }\item[{unsigned int}]{\+\_\+no\+\_\+objectives }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} method calculate if a point dominates another one regarding the x first objective \begin{DoxyParams}{Parameters} {\em \+\_\+point1} & a vector of distances \\ \hline {\em \+\_\+point2} & a vector of distances \\ \hline {\em \+\_\+no\+\_\+objectives} & a number of objectives \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} true if \textquotesingle{}\+\_\+point1\textquotesingle{} dominates \textquotesingle{}\+\_\+point2\textquotesingle{} with respect to the first \textquotesingle{}no\+\_\+objectives\textquotesingle{} objectives \end{DoxyReturn} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a71418cb984d188e0235ae1d458e56565}\label{classmoeo_hyper_volume_metric_a71418cb984d188e0235ae1d458e56565}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!filter\_nondominated\_set@{filter\_nondominated\_set}} \index{filter\_nondominated\_set@{filter\_nondominated\_set}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{filter\_nondominated\_set()}{filter\_nondominated\_set()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ unsigned int \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::filter\+\_\+nondominated\+\_\+set (\begin{DoxyParamCaption}\item[{std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&}]{\+\_\+front, }\item[{unsigned int}]{\+\_\+no\+\_\+points, }\item[{unsigned int}]{\+\_\+no\+\_\+objectives }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} collect all nondominated points regarding the first \textquotesingle{}\+\_\+no\+\_\+objectives\textquotesingle{} objectives (dominated points are stored at the end of \+\_\+front) \begin{DoxyParams}{Parameters} {\em \+\_\+front} & the front \\ \hline {\em \+\_\+no\+\_\+points} & the number of points of the front to consider (index 0 to \+\_\+no\+\_\+points are considered) \\ \hline {\em \+\_\+no\+\_\+objectives} & the number of objective to consider \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} the index of the last nondominated point \end{DoxyReturn} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a72f31571342ba2a544782b7b018a5409}\label{classmoeo_hyper_volume_metric_a72f31571342ba2a544782b7b018a5409}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!getBounds@{getBounds}} \index{getBounds@{getBounds}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{getBounds()}{getBounds()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ std\+::vector$<$ \mbox{\hyperlink{classeo_real_interval}{eo\+Real\+Interval}} $>$ \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::get\+Bounds (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} getter on bounds \begin{DoxyReturn}{Returns} bounds \end{DoxyReturn} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a5be58fd3ab239986ebd1cce4fb9ab41a}\label{classmoeo_hyper_volume_metric_a5be58fd3ab239986ebd1cce4fb9ab41a}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!operator()@{operator()}} \index{operator()@{operator()}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{operator()()}{operator()()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ double \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::operator() (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$ \&}]{\+\_\+set }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}} calculates and returns the Hyper\+Volume value of a pareto front \begin{DoxyParams}{Parameters} {\em \+\_\+set} & the vector contains all objective Vector of pareto front \\ \hline \end{DoxyParams} Implements \mbox{\hyperlink{classeo_u_f_a786e028409366dc273e19104f17ba68a}{eo\+U\+F$<$ const std\+::vector$<$ Objective\+Vector $>$ \&, double $>$}}. \mbox{\Hypertarget{classmoeo_hyper_volume_metric_a35950b8c23ac19befefd09efed68db5a}\label{classmoeo_hyper_volume_metric_a35950b8c23ac19befefd09efed68db5a}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!reduce\_nondominated\_set@{reduce\_nondominated\_set}} \index{reduce\_nondominated\_set@{reduce\_nondominated\_set}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{reduce\_nondominated\_set()}{reduce\_nondominated\_set()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ unsigned int \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::reduce\+\_\+nondominated\+\_\+set (\begin{DoxyParamCaption}\item[{std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&}]{\+\_\+front, }\item[{unsigned int}]{\+\_\+no\+\_\+points, }\item[{unsigned int}]{\+\_\+objective, }\item[{double}]{\+\_\+threshold }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} remove all points having a value $<$= \textquotesingle{}threshold\textquotesingle{} regarding the dimension \textquotesingle{}objective\textquotesingle{}, only points of index 0 to \+\_\+no\+\_\+points are considered. points removed are swap at the end of the front. \begin{DoxyParams}{Parameters} {\em \+\_\+front} & the front \\ \hline {\em \+\_\+no\+\_\+points} & the number of points of the front to consider (index 0 to \+\_\+no\+\_\+points are considered) \\ \hline {\em \+\_\+objective} & the objective to consider \\ \hline {\em \+\_\+threshold} & the threshold \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} index of the last points of \textquotesingle{}\+\_\+front\textquotesingle{} greater than the threshold \end{DoxyReturn} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_af21685f1165bf91da13afbf12d439bac}\label{classmoeo_hyper_volume_metric_af21685f1165bf91da13afbf12d439bac}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!setup@{setup}} \index{setup@{setup}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{setup()}{setup()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ void \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::setup (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$ \&}]{\+\_\+set }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} method caclulate bounds for the normalization \begin{DoxyParams}{Parameters} {\em \+\_\+set} & the vector of objective vectors \\ \hline \end{DoxyParams} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_ad24f2e7982f4d71689426b2afaae264e}\label{classmoeo_hyper_volume_metric_ad24f2e7982f4d71689426b2afaae264e}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!surface\_unchanged\_to@{surface\_unchanged\_to}} \index{surface\_unchanged\_to@{surface\_unchanged\_to}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{surface\_unchanged\_to()}{surface\_unchanged\_to()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ double \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::surface\+\_\+unchanged\+\_\+to (\begin{DoxyParamCaption}\item[{std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&}]{\+\_\+front, }\item[{unsigned int}]{\+\_\+no\+\_\+points, }\item[{unsigned int}]{\+\_\+objective }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} find a minimum value \begin{DoxyParams}{Parameters} {\em \+\_\+front} & the front \\ \hline {\em \+\_\+no\+\_\+points} & the number of points of the front to consider (index 0 to \+\_\+no\+\_\+points are considered) \\ \hline {\em \+\_\+objective} & the objective to consider \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} the minimum value regarding dimension \textquotesingle{}\+\_\+objective\textquotesingle{} consider points O to \+\_\+no\+\_\+points in \textquotesingle{}\+\_\+front\textquotesingle{} \end{DoxyReturn} \mbox{\Hypertarget{classmoeo_hyper_volume_metric_ad41366d169258a65c9a4d1f9e79c41a4}\label{classmoeo_hyper_volume_metric_ad41366d169258a65c9a4d1f9e79c41a4}} \index{moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}!swap@{swap}} \index{swap@{swap}!moeoHyperVolumeMetric$<$ ObjectiveVector $>$@{moeoHyperVolumeMetric$<$ ObjectiveVector $>$}} \doxysubsubsection{\texorpdfstring{swap()}{swap()}} {\footnotesize\ttfamily template$<$class Objective\+Vector $>$ \\ void \mbox{\hyperlink{classmoeo_hyper_volume_metric}{moeo\+Hyper\+Volume\+Metric}}$<$ \mbox{\hyperlink{classmoeo_real_objective_vector}{Objective\+Vector}} $>$\+::swap (\begin{DoxyParamCaption}\item[{std\+::vector$<$ std\+::vector$<$ double $>$ $>$ \&}]{\+\_\+front, }\item[{unsigned int}]{\+\_\+i, }\item[{unsigned int}]{\+\_\+j }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} swap two elements of a vector \begin{DoxyParams}{Parameters} {\em \+\_\+front} & the vector \\ \hline {\em \+\_\+i} & index of the first element to swap \\ \hline {\em \+\_\+j} & index of the second element to swap \\ \hline \end{DoxyParams} The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} \item moeo/src/metric/moeo\+Hyper\+Volume\+Metric.\+h\end{DoxyCompactItemize}