src/prox_penalty/radon_squared.rs

changeset 87
7b5404283df0
parent 75
677a5fd1b014
--- a/src/prox_penalty/radon_squared.rs	Mon Aug 03 19:28:07 2026 -0500
+++ b/src/prox_penalty/radon_squared.rs	Tue Aug 04 09:15:00 2026 -0500
@@ -100,18 +100,23 @@
                 return μ.merge_spikes_fitness(config.merging, f, |&v| v).1;
             }
         }
-        μ.merge_spikes(config.merging, |μ_candidate| {
-            // Important: μ_candidate's new points are afterwards,
-            // and do not conflict with μ_base.
-            // TODO: could simplify to requiring μ_base instead of μ_radon.
-            // but may complicate with sliding base's exgtra points that need to be
-            // after μ_candidate's extra points.
-            // TODO: doesn't seem to work, maybe need to merge μ_base as well?
-            // Although that doesn't seem to make sense.
-            let μ_radon = μ_candidate.sub_matching(μ_base);
-            reg.verify_merge_candidate_radonsq(τv, μ_candidate, τ, ε, &config, &μ_radon)
-            //let n = μ_candidate.dist_matching(μ_base);
-            //reg.find_tolerance_violation_slack(τv, τ, ε, false, config, n).is_none()
+        μ.merge_spikes(config.merging, |μ_candidate, is_scaling| {
+            if is_scaling {
+                // Scaling heuristic is pointless without fitness-based merging
+                false
+            } else {
+                // Important: μ_candidate's new points are afterwards,
+                // and do not conflict with μ_base.
+                // TODO: could simplify to requiring μ_base instead of μ_radon.
+                // but may complicate with sliding base's exgtra points that need to be
+                // after μ_candidate's extra points.
+                // TODO: doesn't seem to work, maybe need to merge μ_base as well?
+                // Although that doesn't seem to make sense.
+                let μ_radon = μ_candidate.sub_matching(μ_base);
+                reg.verify_merge_candidate_radonsq(τv, μ_candidate, τ, ε, &config, &μ_radon)
+                //let n = μ_candidate.dist_matching(μ_base);
+                //reg.find_tolerance_violation_slack(τv, τ, ε, false, config, n).is_none()
+            }
         })
     }
 }

mercurial