# moocore 0.3.1

 * Separate documentation of `pareto_rank()` to its own page.
 * Fix potential undefined behavior in `is_nondominated()`.


# moocore 0.3.0

 * `r2_exact()` implements the exact computation of the R2 indicator for bi-objective solution sets.
 * `hypervolume()` is significantly faster for more than four dimensions (Andreia P. Guerreiro).
 * `hypervolume()` now handles 1D inputs and provides a clear error for 0D inputs (#58).
 *  Add `GPGame` and `targeted` packages to [Benchmarks](https://multi-objective.github.io/moocore/r/articles/benchmarks.html).
 * `is_nondominated()`, `filter_dominated()` and `pareto_rank()` use a significantly faster algorithm by Kung et al. for dimensions larger than 3.
 * `generate_ndset()`: New shapes `"inverted-simplex"` and `"concave-simplex"`. Shape `"convex-simplex"` is now equivalent to `generate_ndset(..., method="simplex")^2`, which is slightly more uniform than the previous approach.
 * The default method of `hv_approx()` is now `"Rphi-FWE+"`, which is typically as accurate as the other methods, but significantly faster.


# moocore 0.2.0

 * `pareto_rank()` is faster in 3D.
 * HV3D+ is slightly faster with repeated coordinates (#41).
 * `igd()`, `igd_plus()`, `avg_hausdorff_dist()` are faster.
 * Fix wrong values returned by `epsilon_mult()` when mixing minimization and maximization.
 * Fix documentation of `epsilon_additive()` (@leandrolanzieri)
 * `hypervolume()` uses the inclusion-exclusion algorithm for small inputs of
   up to 15 points, which is significantly faster.


# moocore 0.1.10

 * `mooocore` now requires R >= 4.1.
 * `is_nondominated()`: Fix wrong assert (#38).

# moocore 0.1.9

 * `hv_contributions()` ignores dominated points by default.  Set `ignore_dominated=FALSE` to restore the previous behavior.  The 3D case uses the HVC3D algorithm.
 * New function `any_dominated()`.
 * New function `generate_ndset()` to generate random nondominated sets with different shapes.
 * New article: "[Benchmarks](https://multi-objective.github.io/moocore/r/articles/benchmarks.html)"
 * New article: "[Computing Multi-Objective Quality Metrics](https://multi-objective.github.io/moocore/r/articles/metrics.html)"
 * New article: "[Sampling Random Nondominated Sets](https://multi-objective.github.io/moocore/r/articles/generate.html)"
 * `is_nondominated()`, `any_dominated()` and `pareto_rank()` now handle single-objective inputs correctly (#27) (#29).
 * `is_nondominated()` and `filter_dominated()` are faster for dimensions larger than 3.
 * `is_nondominated()` and `filter_dominated()` are now stable in 2D and 3D with `keep_weakly=FALSE`, that is, only the first of duplicated points is marked as nondominated.

# moocore 0.1.8

 * Document the EAF and Vorob'ev expectation and deviation in more detail.
 * New function `hv_approx()`.
 * Function `hv_contributions()` is much faster for 2D inputs.
 * New article "[Approximating the hypervolume](https://multi-objective.github.io/moocore/r/articles/hv_approx.html)".
 * New datasets `DTLZLinearShape.8d.front.60pts.10` and `ran.10pts.9d.10`.

# moocore 0.1.7

 * `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.

# moocore 0.1.6

 * Fix parallel build in CRAN.

# moocore 0.1.5

 * Rename `vorobT()` and `vorobDev()` to `vorob_t()` and `vorob_dev()` to be
   consistent with other function names.

# moocore 0.1.2

 * Fix more warnings and problems that only show in CRAN.

# moocore 0.1.1

 * Fix problems that only show in CRAN.

# moocore 0.1.0

 * Initial version uploaded to CRAN.
