src/pdps.rs

changeset 98
b9818eb24b47
parent 93
8f1e57821d76
--- a/src/pdps.rs	Fri Aug 14 10:38:27 2026 -0500
+++ b/src/pdps.rs	Fri Oct 02 12:03:25 2026 -0500
@@ -53,8 +53,10 @@
 use alg_tools::linops::{Mapping, Space, AXPY};
 use alg_tools::mapping::{DataTerm, Instance};
 use alg_tools::nalgebra_support::ToNalgebraRealField;
+use alg_tools::norms::Norm;
 use anyhow::ensure;
 use clap::ValueEnum;
+use measures::Radon;
 use numeric_literals::replace_float_literals;
 use serde::{Deserialize, Serialize};
 
@@ -156,7 +158,7 @@
     A: ForwardModel<DiscreteMeasure<U, F>, F>,
     for<'b> &'b A::Observable: Instance<A::Observable>,
     A::Observable: AXPY<Field = F>,
-    DiscreteMeasure<U, F>: SpikeMerging<F>,
+    DiscreteMeasure<U, F>: SpikeMerging<F> + Norm<Radon, F>,
     Reg: RegTerm<U, F>,
     Phi: Conjugable<A::Observable, F>,
     for<'b> Phi::Conjugate<'b>: Prox<A::Observable>,
@@ -192,6 +194,7 @@
     let full_stats = |μ: &DiscreteMeasure<U, F>, ε, stats| IterInfo {
         value: f.apply(μ) + reg.apply(μ),
         n_spikes: μ.len(),
+        μ_norm: μ.norm(Radon),
         ε,
         // postprocessing: config.postprocessing.then(|| μ.clone()),
         ..stats

mercurial