pub struct Scale<F> { /* private fields */ }Expand description
A type that wraps any ObjectiveFunction and scales the input vectors before passing them to
the wrapped function.
Can be used to restrict or widen the the search space in one or more dimensions in case it is known that the solution likely lies within a narrower or wider range in them.
§Examples
use cmaes::objective_function::Scale;
let mut function = |x: &DVector<f64>| x.magnitude();
let scale = Scale::new(function, vec![0.2, 0.2, 1.0]);
let mut state = CMAESOptions::new(vec![0.0; 2], 1.0).build(scale).unwrap();Implementations§
Source§impl<F> Scale<F>
impl<F> Scale<F>
Sourcepub fn new<S: Into<DVector<f64>>>(function: F, scales: S) -> Self
pub fn new<S: Into<DVector<f64>>>(function: F, scales: S) -> Self
Returns a new Scale, wrapping function and multiplying each dimension of its inputs by
the respective element of scales.
Sourcepub fn scale(&self, vector: &DVector<f64>) -> DVector<f64>
pub fn scale(&self, vector: &DVector<f64>) -> DVector<f64>
Applies the Scale to a vector and returns it.
Sourcepub fn into_wrapped_function(self) -> F
pub fn into_wrapped_function(self) -> F
Consumes self and returns the wrapped function.
Trait Implementations§
Source§impl<'a, F: ObjectiveFunction> ObjectiveFunction for &'a mut Scale<F>
impl<'a, F: ObjectiveFunction> ObjectiveFunction for &'a mut Scale<F>
Source§impl<F: ObjectiveFunction> ObjectiveFunction for Scale<F>
impl<F: ObjectiveFunction> ObjectiveFunction for Scale<F>
Source§impl<'a, F: ParallelObjectiveFunction> ParallelObjectiveFunction for &'a Scale<F>
impl<'a, F: ParallelObjectiveFunction> ParallelObjectiveFunction for &'a Scale<F>
Source§impl<F: ParallelObjectiveFunction> ParallelObjectiveFunction for Scale<F>
impl<F: ParallelObjectiveFunction> ParallelObjectiveFunction for Scale<F>
Auto Trait Implementations§
impl<F> Freeze for Scale<F>where
F: Freeze,
impl<F> RefUnwindSafe for Scale<F>where
F: RefUnwindSafe,
impl<F> Send for Scale<F>where
F: Send,
impl<F> Sync for Scale<F>where
F: Sync,
impl<F> Unpin for Scale<F>where
F: Unpin,
impl<F> UnwindSafe for Scale<F>where
F: UnwindSafe,
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
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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.