Please send your questions, comments, suggestions and/or bug reports to: qhv@kdbio.inesc-id.pt

Important: the subject must start with [QHV]


We are currently distributing the source code for linux 32 bits. The code is optimized to a core2 processor with SSE2. To compile use make in the source directory.

The following packages available:

The new generator that produces randomly and uniformly distributed points on a hyper-sphere surface is available. To compile the generator use:

gcc main.c -o gen -lm

Gnuplot scripts that generate a plot matrix are available. See an example, in 13D, obtained with points from our generator.


QHV accepts files in WFG format, a text file with point per line and coordinates separated by spaces. A Set of points begins with a line that starts by #. These lines are otherwise ignored and can be used for comments. File dots.wfg exemplifies the format for a 3D space.

To compute the hyper-volume for this file use:

./qhv3d dots.wfg

Use the binary with the appropriate number of dimensions. If the first argument is not provided the it runs in interactive mode. Hence we can also use:

./qhv3d < dots.wfg

The resulting output should be:

Time: 0.000000 (s)

Doxygen documentation is available for:

The uniform point generator receives the number of dimensions through the first argument, the number of points throw the second, and the number of test sets throw the third. one. The following commands generates 2 sets of 10 points uniformly distributed on the surface of a 13D hyper-sphere.

./gen 13 10 2

To use the gnuplot scripts put the script in the same dir as the file dots.wfg and issue the following commands:

gnuplot dist3D.gpl | sed 's/2 1 0 1 -1 -1 10 0 -1 0.000 0 0 0 0 0 1/2 1 0 2 -1 -1 10 0 -1 0.000 0 0 0 0 0 1/' > dots.fig
fig2dev -L png dots.fig dots.png

Use the proper script, in this case 3D. The sed command is used to increase point thickness in xfig, so that fig2dev exports properly. Other formats are available.

To use the script with another.wfg file link it, or rename it, as dots.wfg.

ln -s another.wfg dots.wfg


Quick HyperVolume is an algorithm that computes the HyperVolume occupied by a set of hyper-rectangles, that share the "lower leftmost" vertex.

A detailed description of the problem and the algorithms is published in IEEE Transactions on Evolutionary Computation. The article is available at http://dx.doi.org/10.1109/TEVC.2013.2281525

Extensions of the algorithm to compute Exclusive HyperVolumes and use several cores are described in The Journal of Heuristics.

Software in this page is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Any published media that is related with the use of the distributed software, or derived software, must contain a reference to "Quick HyperVolume, Luís M. S. Russo, Alexandre P. Francisco. IEEE Trans. Evolutionary Computation 18(4): 481-502 (2014)", but not in any way that suggests that they endorse you or your use of the work.

Quick HyperVolume + Parallel + Exclusive