Sun, 11 Dec 2022 23:25:53 +0200
Support arbitrary regularisation terms; implement non-positivity-constrained regularisation.
* Fixes the conditional gradient methods that were incorrectly solving
positivity constrained subproblems although the infinite-dimensional
versions do not include such constraints.
* Introduces the `ExperimentV2` struct that has `regularisation` in place
of `α`. The `Experiment` struct is now deprecated.
* The L^2-squared experiments were switch to be unconstrained, as the
Franke-Wolfe implementations do not support constraints. (This would
be easy to add for the “fully corrective” variant, but is not
immediate for the “relaxed” variant.)
0 | 1 | //! Basic definitions for measures |
2 | ||
3 | use serde::Serialize; | |
4 | use alg_tools::types::Num; | |
5 | use alg_tools::norms::{Norm, NormExponent}; | |
6 | ||
7 | /// This is used with [`Norm::norm`] to indicate that a Radon norm is to be computed. | |
8 | #[derive(Copy,Clone,Serialize,Debug)] | |
9 | pub struct Radon; | |
10 | impl NormExponent for Radon {} | |
11 | ||
12 | /// A trait for (Radon) measures. | |
13 | /// | |
14 | /// Currently has no methods, just the requirement that the Radon norm be implemented. | |
15 | pub trait Measure<F : Num> : Norm<F, Radon> { | |
16 | type Domain; | |
17 | } | |
18 |