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 |