pub struct Picheny<P = Vec<f64>>(/* private fields */);Available on crate feature
problems only.Expand description
Pre-wrapped Picheny problem (fixed 2D). Generic over the parameter backend
P; the default P = Vec<f64> lets you write Picheny::default() for the
common case. Backend impls (nalgebra::DVector<f64>, ndarray::Array1<f64>,
faer::Col<f64>) are gated behind their respective features.
Implementations§
Trait Implementations§
Source§impl CostFunction for Picheny<Vec<f64>>
impl CostFunction for Picheny<Vec<f64>>
Source§type Output = f64
type Output = f64
Scalar cost type. In practice
f64 (see CONTRIBUTING.md’s
provisional choices).Source§type Error = Infallible
type Error = Infallible
User-chosen hard-abort error. Pick
std::convert::Infallible when the cost cannot fail: its
niche optimization keeps Result<f64, Infallible> the same
layout as bare f64 on the happy path.Source§impl CostFunction for Picheny<DVector<f64>>
Available on crate feature nalgebra only.
impl CostFunction for Picheny<DVector<f64>>
Available on crate feature
nalgebra only.Source§type Param = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
type Param = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
The parameter type the objective is defined over.
Source§type Output = f64
type Output = f64
Scalar cost type. In practice
f64 (see CONTRIBUTING.md’s
provisional choices).Source§type Error = Infallible
type Error = Infallible
User-chosen hard-abort error. Pick
std::convert::Infallible when the cost cannot fail: its
niche optimization keeps Result<f64, Infallible> the same
layout as bare f64 on the happy path.Source§impl CostFunction for Picheny<Array1<f64>>
Available on crate feature ndarray only.
impl CostFunction for Picheny<Array1<f64>>
Available on crate feature
ndarray only.Source§type Param = ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>
type Param = ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>
The parameter type the objective is defined over.
Source§type Output = f64
type Output = f64
Scalar cost type. In practice
f64 (see CONTRIBUTING.md’s
provisional choices).Source§type Error = Infallible
type Error = Infallible
User-chosen hard-abort error. Pick
std::convert::Infallible when the cost cannot fail: its
niche optimization keeps Result<f64, Infallible> the same
layout as bare f64 on the happy path.Source§impl CostFunction for Picheny<Col<f64>>
Available on crate feature faer only.
impl CostFunction for Picheny<Col<f64>>
Available on crate feature
faer only.Source§type Output = f64
type Output = f64
Scalar cost type. In practice
f64 (see CONTRIBUTING.md’s
provisional choices).Source§type Error = Infallible
type Error = Infallible
User-chosen hard-abort error. Pick
std::convert::Infallible when the cost cannot fail: its
niche optimization keeps Result<f64, Infallible> the same
layout as bare f64 on the happy path.Source§impl Gradient for Picheny<Vec<f64>>
impl Gradient for Picheny<Vec<f64>>
Source§fn gradient(&self, x: &Vec<f64>) -> Result<Vec<f64>, Infallible>
fn gradient(&self, x: &Vec<f64>) -> Result<Vec<f64>, Infallible>
Evaluate the gradient at
param.Source§fn cost_and_gradient(
&self,
param: &Self::Param,
) -> Result<(Self::Output, Self::Gradient), Self::Error>
fn cost_and_gradient( &self, param: &Self::Param, ) -> Result<(Self::Output, Self::Gradient), Self::Error>
Evaluate cost and gradient at
param in one call. The default
body delegates to CostFunction::cost and
Gradient::gradient; override when shared intermediate work
can be amortized across the two. Read moreSource§impl Gradient for Picheny<DVector<f64>>
Available on crate feature nalgebra only.
impl Gradient for Picheny<DVector<f64>>
Available on crate feature
nalgebra only.Source§type Gradient = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
type Gradient = Matrix<f64, Dyn, Const<1>, VecStorage<f64, Dyn, Const<1>>>
The gradient type. Typically the same as
CostFunction::Param.Source§fn gradient(&self, x: &DVector<f64>) -> Result<DVector<f64>, Infallible>
fn gradient(&self, x: &DVector<f64>) -> Result<DVector<f64>, Infallible>
Evaluate the gradient at
param.Source§fn cost_and_gradient(
&self,
param: &Self::Param,
) -> Result<(Self::Output, Self::Gradient), Self::Error>
fn cost_and_gradient( &self, param: &Self::Param, ) -> Result<(Self::Output, Self::Gradient), Self::Error>
Evaluate cost and gradient at
param in one call. The default
body delegates to CostFunction::cost and
Gradient::gradient; override when shared intermediate work
can be amortized across the two. Read moreSource§impl Gradient for Picheny<Array1<f64>>
Available on crate feature ndarray only.
impl Gradient for Picheny<Array1<f64>>
Available on crate feature
ndarray only.Source§type Gradient = ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>
type Gradient = ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>
The gradient type. Typically the same as
CostFunction::Param.Source§fn gradient(&self, x: &Array1<f64>) -> Result<Array1<f64>, Infallible>
fn gradient(&self, x: &Array1<f64>) -> Result<Array1<f64>, Infallible>
Evaluate the gradient at
param.Source§fn cost_and_gradient(
&self,
param: &Self::Param,
) -> Result<(Self::Output, Self::Gradient), Self::Error>
fn cost_and_gradient( &self, param: &Self::Param, ) -> Result<(Self::Output, Self::Gradient), Self::Error>
Evaluate cost and gradient at
param in one call. The default
body delegates to CostFunction::cost and
Gradient::gradient; override when shared intermediate work
can be amortized across the two. Read moreSource§impl Gradient for Picheny<Col<f64>>
Available on crate feature faer only.
impl Gradient for Picheny<Col<f64>>
Available on crate feature
faer only.Source§fn gradient(&self, x: &Col<f64>) -> Result<Col<f64>, Infallible>
fn gradient(&self, x: &Col<f64>) -> Result<Col<f64>, Infallible>
Evaluate the gradient at
param.Source§fn cost_and_gradient(
&self,
param: &Self::Param,
) -> Result<(Self::Output, Self::Gradient), Self::Error>
fn cost_and_gradient( &self, param: &Self::Param, ) -> Result<(Self::Output, Self::Gradient), Self::Error>
Evaluate cost and gradient at
param in one call. The default
body delegates to CostFunction::cost and
Gradient::gradient; override when shared intermediate work
can be amortized across the two. Read moreAuto Trait Implementations§
impl<P> Freeze for Picheny<P>
impl<P> RefUnwindSafe for Picheny<P>
impl<P> Send for Picheny<P>
impl<P> Sync for Picheny<P>
impl<P> Unpin for Picheny<P>
impl<P> UnsafeUnpin for Picheny<P>
impl<P> UnwindSafe for Picheny<P>
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
impl<T, U> Imply<T> for U
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
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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.