Subdifferential discrepancy calculation scaling fix for sliding PDPS

Mon, 05 Oct 2026 20:20:00 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Mon, 05 Oct 2026 20:20:00 -0500
changeset 99
82e3cb274186
parent 98
b9818eb24b47
child 100
9e0baf2143fb

Subdifferential discrepancy calculation scaling fix for sliding PDPS

src/regularisation.rs file | annotate | diff | comparison | revisions
src/sliding_pdps.rs file | annotate | diff | comparison | revisions
--- a/src/regularisation.rs	Fri Oct 02 12:03:25 2026 -0500
+++ b/src/regularisation.rs	Mon Oct 05 20:20:00 2026 -0500
@@ -316,7 +316,7 @@
         M: MinMaxMapping<Loc<N, F>, F>,
     {
         let refinement_tolerance = ε * config.refinement.tolerance_mult;
-        let τα = self.α()*τ;
+        let τα = self.α() * τ;
 
         let μ_disrepancy = μ
             .iter_spikes()
--- a/src/sliding_pdps.rs	Fri Oct 02 12:03:25 2026 -0500
+++ b/src/sliding_pdps.rs	Mon Oct 05 20:20:00 2026 -0500
@@ -227,7 +227,7 @@
 
     // Statistics
     let full_stats = |μ: &DiscreteMeasure<U, F>, v: &mut S, z: &Z, dz: Z, ε, stats| {
-        let discrepancy = reg.discrepancy(v, τ, ε, μ, &config.insertion);
+        let discrepancy = τ * reg.discrepancy(v, 1.0, ε / τ, μ, &config.insertion);
         let aux_discrepancy = is_fb.then(|| z.dist2(fnR.prox(σ_p, dz * (-σ_p) + z)));
         let joint_discrepancy = aux_discrepancy
             .map(|d| (discrepancy.powi(2) + τ * (2.0 / σ_p - l_z) * d.powi(2)).sqrt());

mercurial