pub struct ConvexSubdifferential {
pub name: String,
pub is_differentiable: bool,
pub strong_convexity_modulus: f64,
pub is_lipschitz: bool,
pub lipschitz_constant: f64,
}Expand description
Represents a convex function via its subdifferential properties.
Fields§
§name: StringName/description of the function.
is_differentiable: boolWhether the function is differentiable.
strong_convexity_modulus: f64Whether the function is strongly convex with modulus μ > 0.
is_lipschitz: boolWhether the function is Lipschitz continuous.
lipschitz_constant: f64Lipschitz constant L (if is_lipschitz).
Implementations§
Source§impl ConvexSubdifferential
impl ConvexSubdifferential
Sourcepub fn with_differentiability(self) -> Self
pub fn with_differentiability(self) -> Self
Set differentiability.
Sourcepub fn with_strong_convexity(self, mu: f64) -> Self
pub fn with_strong_convexity(self, mu: f64) -> Self
Set strong convexity modulus μ.
Sourcepub fn with_lipschitz(self, l: f64) -> Self
pub fn with_lipschitz(self, l: f64) -> Self
Set Lipschitz constant.
Sourcepub fn sum_rule_holds(&self, other: &ConvexSubdifferential) -> bool
pub fn sum_rule_holds(&self, other: &ConvexSubdifferential) -> bool
Subdifferential sum rule: ∂(f + g)(x) ⊇ ∂f(x) + ∂g(x). Equality holds when regularity condition is satisfied.
Sourcepub fn chain_rule_holds(&self) -> bool
pub fn chain_rule_holds(&self) -> bool
Chain rule: ∂(f ∘ A)(x) = A^T ∂f(Ax) under constraint qualification.
Sourcepub fn gradient_descent_rate(&self) -> Option<f64>
pub fn gradient_descent_rate(&self) -> Option<f64>
Fenchel conjugate: optimal convergence rate for gradient descent. With μ-strong convexity and L-smoothness: rate = 1 - μ/L.
Sourcepub fn proximal_convergence_rate(&self, k: usize) -> f64
pub fn proximal_convergence_rate(&self, k: usize) -> f64
Proximal point algorithm convergence: 1/k rate for convex, linear for strongly convex.
Auto Trait Implementations§
impl Freeze for ConvexSubdifferential
impl RefUnwindSafe for ConvexSubdifferential
impl Send for ConvexSubdifferential
impl Sync for ConvexSubdifferential
impl Unpin for ConvexSubdifferential
impl UnsafeUnpin for ConvexSubdifferential
impl UnwindSafe for ConvexSubdifferential
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