What’s new#
Version 0.1.9 (dev)#
- hv_contributions()ignores dominated points by default. Set- ignore_dominated=Falseto restore the previous behavior. The 3D case uses the HVC3D algorithm.
- New function - any_dominated()to quickly detect if a set is nondominated.
- New function - generate_ndset()to generate random nondominated sets with different shapes.
- New example Sampling Random Nondominated Sets. 
- is_nondominated(),- any_dominated(),- pareto_rank()now handle single-objective inputs correctly (#27, #29).
- Ranks returned by - pareto_rank()are 0-based.
- is_nondominated()and- filter_dominated()are faster for dimensions larger than 3.
- moocorewheels are now built for- aarch64(ARM64) in Linux and Windows. See the installation instructions.
- is_nondominated()and- moocore.filter_dominated()are now stable in 2D and 3D with- !keep_weakly, that is, only the first of duplicated points is marked as nondominated.
Version 0.1.8 (15/07/2025)#
- Correct license to LGPL v2.1 or later. 
- Bump dependencies to - cffi>=1.17.1and- setuptools>=77.0.3.
- eaf(),- vorob_t()and- vorob_dev()take the set indices as a separate argument- setsfollowing the API of the R package.
- New example Empirical Attainment Function. 
- Document EAF and Vorob’ev expectation and deviation in more detail. 
- New online dataset: - DTLZLinearShape.8d.front.60pts.10(see- get_dataset()).
- New default method in - hv_approx(). Computation is now done in C, so it is much faster.
- hv_contributions()is much faster for 2D inputs.
Version 0.1.7 (04/06/2025)#
- hypervolume()now uses the HV3D+ algorithm for the 3D case and the HV4D+ algorithm for the 4D case. For dimensions larger than 4, the recursive algorithm uses HV4D+ as the base case, which is significantly faster.
- read_datasets()is significantly faster for large files.
- is_nondominated()and- filter_dominated()are faster for 3D inputs.
- New function: - hv_contributions().
- New online datasets: - test2D-200k.inp.xzand- ran.1000pts.3d.10(see- get_dataset()).
Version 0.1.6 (14/05/2025)#
- New function: - largest_eafdiff().
- New class: - RelativeHypervolume.
- New dataset - tpls50x20_1_MWT.csv.
- Extended example Computing Multi-Objective Quality Metrics. 
- vorobT()and- vorobDev()were renamed to- vorob_t()and- vorob_dev()to follow Python convention.
- get_dataset_path()and- get_dataset()can download large datasets from a remote repository.
Version 0.1.4 (30/10/2024)#
- Improved example Using moocore with Pandas to work in Pandas version >= 2. 
- Changed behavior of - apply_within_sets(). The previous behavior could lead to subtle bugs.
Version 0.1.3 (28/10/2024)#
- New: - Hypervolume: Object-oriented API for hypervolume indicator.
- New: - apply_within_sets(): Utility function to apply operations to individual datasets.
- New: - is_nondominated_within_sets(): Utility function to identify nondominated points within sets.
- New example using - pandas.DataFramein Using moocore with Pandas.
- Fix bug in - normalise()when the input is- pandas.DataFrameor some other non-contiguous array.
Version 0.1.2 (18/09/2024)#
- New: - hv_approx()
- Documentation improvements. 
- New gallery examples.