pub enum FunctionClass {
SquaredNorm,
EuclideanNorm,
NegativeEntropy,
LpNorm {
p: f64,
},
BoxIndicator {
lo: f64,
hi: f64,
},
Numerical,
}Expand description
Identifies the class of a convex function for exact conjugate computation.
Variants§
SquaredNorm
f(x) = (1/2) ‖x‖² — conjugate is f* = (1/2) ‖y‖².
EuclideanNorm
f(x) = ‖x‖ (Euclidean norm) — conjugate is indicator of unit ball.
NegativeEntropy
f(x) = sum_i x_i log x_i (negative entropy, domain x > 0) — conjugate is sum_i e^{y_i - 1}.
LpNorm
f(x) = (1/p) ‖x‖_p^p — conjugate is (1/q) ‖y‖_q^q (1/p + 1/q = 1).
BoxIndicator
Indicator of a hyperbox [lo, hi]^n — conjugate is sum_i max(lo y_i, hi y_i).
Numerical
Unknown / use numerical approximation.
Trait Implementations§
Source§impl Clone for FunctionClass
impl Clone for FunctionClass
Source§fn clone(&self) -> FunctionClass
fn clone(&self) -> FunctionClass
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FunctionClass
impl RefUnwindSafe for FunctionClass
impl Send for FunctionClass
impl Sync for FunctionClass
impl Unpin for FunctionClass
impl UnsafeUnpin for FunctionClass
impl UnwindSafe for FunctionClass
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