pub enum HypervolumeMethod {
WFG,
Quick,
HSO,
MonteCarlo,
}Expand description
Hypervolume calculation methods
Variants§
WFG
Walking Fish Group algorithm.
WFG computes the exact hypervolume, so this crate evaluates it with the
same exact slicing recursion as HypervolumeMethod::HSO. The two
therefore return bit-identical results; they differ only in the internal
traversal order a dedicated implementation would use, never in the value.
Quick
Quick hypervolume (QHV).
Also an exact algorithm, evaluated here through the same exact recursion. Selecting it is honest — the returned number is the true hypervolume — it simply does not use QHV’s own pivot decomposition.
HSO
Hypervolume by slicing objectives (the recursion implemented here).
MonteCarlo
Monte Carlo estimation by uniform sampling of the reference box.
This is a genuine estimator (not a fallback to the exact routine): it
draws HypervolumeCalculator::monte_carlo_samples uniform points from
the box spanned by the front’s ideal corner and the reference point and
returns box_volume * dominated_fraction. Use it only when an
approximation is acceptable; it is seeded, so repeated calls on the same
input agree.
Trait Implementations§
Source§impl Clone for HypervolumeMethod
impl Clone for HypervolumeMethod
impl Copy for HypervolumeMethod
Source§impl Debug for HypervolumeMethod
impl Debug for HypervolumeMethod
impl Eq for HypervolumeMethod
Source§impl PartialEq for HypervolumeMethod
impl PartialEq for HypervolumeMethod
impl StructuralPartialEq for HypervolumeMethod
Auto Trait Implementations§
impl Freeze for HypervolumeMethod
impl RefUnwindSafe for HypervolumeMethod
impl Send for HypervolumeMethod
impl Sync for HypervolumeMethod
impl Unpin for HypervolumeMethod
impl UnsafeUnpin for HypervolumeMethod
impl UnwindSafe for HypervolumeMethod
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more