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