# HG changeset patch # User Tuomo Valkonen # Date 1737322401 -3600 # Node ID 086a59b3a2b44391fd021a6d198a5678f20e2801 # Parent 72968cf300331bbb573038365d981f426bb3d029 doc updates diff -r 72968cf30033 -r 086a59b3a2b4 README.md --- a/README.md Sun Jan 19 16:49:09 2025 +0100 +++ b/README.md Sun Jan 19 22:33:21 2025 +0100 @@ -8,6 +8,10 @@ * [Linear operator], [mapping], [Euclidean space], and [norm] abstractions. Matrices and vectors are supported via [nalgebra]. There is also abstraction for [`AXPY`][AXPY] and [`GEMV`][GEMV] operations. + * A facility to create [`Instance`][Instance]s of other types, for easy application + of functions to various concrete and reference types. + * Abstraction of [Fenchel conjugates] and [proximal operators] of convex + functions. * Small (on stack) [vectors] and [cubes] that implement the relevant abstractions and vector space operations. * Multi-dimensional [linear grids], including the familiar-from-Matlab @@ -56,4 +60,7 @@ [associated traits]: crate::types [vectors]: crate::loc::Loc [cubes]: crate::sets::Cube + [Instance]: crate::instance::Instance + [Fenchel conjugates]: crate::convex::Conjugable + [proximal operators]: crate::convex::Prox diff -r 72968cf30033 -r 086a59b3a2b4 src/convex.rs --- a/src/convex.rs Sun Jan 19 16:49:09 2025 +0100 +++ b/src/convex.rs Sun Jan 19 22:33:21 2025 +0100 @@ -68,12 +68,12 @@ } +/// Constraint to the unit ball of the norm described by `E`. pub struct NormConstraint { radius : F, norm : NormMapping, } - impl ConvexMapping for NormMapping where Domain : Space, @@ -160,6 +160,7 @@ } } +/// Projection to the unit ball of the norm described by `E`. pub struct NormProjection { radius : F, exponent : E, diff -r 72968cf30033 -r 086a59b3a2b4 src/instance.rs --- a/src/instance.rs Sun Jan 19 16:49:09 2025 +0100 +++ b/src/instance.rs Sun Jan 19 22:33:21 2025 +0100 @@ -89,6 +89,8 @@ /// Helper trait for functions to work with either owned values or references to either the /// “principal type” `X` or types some present a subset of `X`. In the latter sense, this /// generalises [`std::borrow::ToOwned`], [`std::borrow::Borrow`], and [`std::borrow::Cow`]. +/// +/// This is used, for example, by [`crate::mapping::Mapping::apply`]. pub trait Instance::Decomp> : Sized where D : Decomposition { /// Decomposes self according to `decomposer`. fn decompose<'b>(self) -> D::Decomposition<'b>