pub enum Kernel {
Gauss {
centers: Vec<Vec<Number>>,
amps: Vec<Number>,
inv_sigma2: Vec<Number>,
},
Pole {
centers: Vec<Vec<Number>>,
eta: Number,
q: Number,
soft: Number,
inv_len2: Vec<Number>,
},
}Expand description
A repulsion kernel evaluated at the current iterate. Centers are the found minima; the per-dimension scales make the bumps/poles anisotropic.
Variants§
Gauss
Σ Aₖ·exp(−½‖(x−cₖ)/σ‖²) — flooding’s Gaussian bumps. amps is one
height per center; inv_sigma2 is the per-dimension 1/σ².
Pole
Σ η·(‖(x−cₖ)/ℓ‖²+soft)^(−q) — deflation/tunneling’s softened poles.
q = power/2; inv_len2 is the per-dimension 1/ℓ².
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Kernel
impl RefUnwindSafe for Kernel
impl Send for Kernel
impl Sync for Kernel
impl Unpin for Kernel
impl UnsafeUnpin for Kernel
impl UnwindSafe for Kernel
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
Mutably borrows from an owned value. Read more
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,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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