STK: a Small (Matlab/Octave) Toolbox for Kriging
 STK_DOMINATEHV computes the hypervolume dominated by a set of points

 CALL: HV = stk_dominatedhv (Y, Y_REF)
 CALL: HV = stk_dominatedhv (Y, Y_REF, 0)

    computes the hypervolume dominated by the rows of Y, with respect to the
    reference point Y_REF (a row vector with the same number of columns as Y).
    It is expected that all the rows of Y are smaller than Y_REF
    (multi-objective minimization framework).

 CALL: HV = stk_dominatedhv (Y)
 CALL: HV = stk_dominatedhv (Y, [], 0)

    uses [0 0 ... 0] as a reference point.

 CALL: DECOMP = stk_dominatedhv (Y, Y_REF, 1)

    computes a signed decomposition of the dominated hyper-region delimited by
    the reference point Y_REF into overlapping rectangles. Assuming that Y is
    of size N x D, the result DECOMP is a structure with field .sign (N x 1),
    .xmin (N x D) and .xmax (N x D). The hypervolume can be recovered from this
    decomposition using

      HV = sum (DECOMP.sign .* prod (DECOMP.xmax - DECOMP.xmin, 2))

    provided that the resulting decomposition is not empty.

 CALL: HV = stk_dominatedhv (Y, [], 1)

    computed a signed decomposition using [0 0 ... 0] as a reference point.

 NOTE:

    This function relies internally on the WFG algorithm [1, 2].

 REFERENCES:

   [1] Lyndon While, Lucas Bradstreet and Luigi Barone, "A Fast Way of
       Calculating Exact Hypervolumes", IEEE Transactions on Evolutionary
       Computation, 16(1):86-95, 2012
       http://dx.doi.org/10.1109/TEVC.2010.2077298

   [2] WFG 1.10, released under the GPLv2 licence, available online from:
       http://www.wfg.csse.uwa.edu.au/hypervolume/

 See also: sortrows, stk_isdominated, stk_paretofind