Sun, 19 Jan 2025 22:33:21 +0100
doc updates
README.md | file | annotate | diff | comparison | revisions | |
src/convex.rs | file | annotate | diff | comparison | revisions | |
src/instance.rs | file | annotate | diff | comparison | revisions |
--- 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
--- 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<F : Float, E : NormExponent> { radius : F, norm : NormMapping<F, E>, } - impl<Domain, E, F> ConvexMapping<Domain, F> for NormMapping<F, E> where Domain : Space, @@ -160,6 +160,7 @@ } } +/// Projection to the unit ball of the norm described by `E`. pub struct NormProjection<F : Float, E : NormExponent> { radius : F, exponent : E,
--- 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<X : Space, D = <X as Space>::Decomp> : Sized where D : Decomposition<X> { /// Decomposes self according to `decomposer`. fn decompose<'b>(self) -> D::Decomposition<'b>