--- a/src/experiments.rs Fri May 15 14:40:02 2026 -0500 +++ b/src/experiments.rs Sun Jul 19 07:34:39 2026 +0200 @@ -156,18 +156,6 @@ //#[replace_float_literals(F::cast_from(literal))] impl DefaultExperiment { - // fn default_list() -> Vec<Self> { - // use DefaultExperiment::*; - // [ - // Experiment1D, - // Experiment1DFast, - // Experiment2D, - // Experiment2DFast, - // Experiment1D_L1, - // ] - // .into() - // } - /// Convert the experiment shorthand into a runnable experiment configuration. fn get_experiment( &self, @@ -193,58 +181,41 @@ make_float_constant!(Hat1 = 0.16); make_float_constant!(HatBias = 0.05); - // We use a different step length for PDPS in 2D experiments - // let pdps_2d = (DefaultAlgorithm::PDPS, - // AlgorithmOverrides { - // tau0 : Some(3.0), - // sigma0 : Some(0.99 / 3.0), - // .. Default::default() - // } - // ); - // let radon_pdps_2d = (DefaultAlgorithm::RadonPDPS, - // AlgorithmOverrides { - // tau0 : Some(3.0), - // sigma0 : Some(0.99 / 3.0), - // .. Default::default() - // } - // ); - let sliding_fb_cut_gaussian = (DefaultAlgorithm::SlidingFB, AlgorithmOverrides { - theta0: Some(0.3), - ..Default::default() - }); - // let higher_cpos = |alg| (alg, - // AlgorithmOverrides { - // transport_tolerance_pos : Some(1000.0), - // .. Default::default() - // } - // ); - let higher_cpos_merging = |alg| { + let basic = |alg| { (alg, AlgorithmOverrides { - transport_tolerance_pos: Some(1000.0), - merge: Some(true), - fitness_merging: Some(true), + gradv_lipest_mult: Some(0.04), + transport_tolerance: Some(100.0), + ..Default::default() + }) + }; + let radon = |alg| { + (alg, AlgorithmOverrides { + gradv_lipest_mult: Some(0.04), + transport_tolerance: Some(1000.0), ..Default::default() }) }; - let higher_cpos_merging_steptune = |alg| { + let radon_2dtv = |alg| { (alg, AlgorithmOverrides { - transport_tolerance_pos: Some(1000.0), - theta0: Some(0.3), - merge: Some(true), - fitness_merging: Some(true), + gradv_lipest_mult: Some(0.04), + transport_tolerance: Some(10000.0), + sigma0: Some(0.15), ..Default::default() }) }; - let much_higher_cpos_merging_steptune = |alg| { - (alg, AlgorithmOverrides { - transport_tolerance_pos: Some(10000.0), - sigma0: Some(0.15), - theta0: Some(0.3), - merge: Some(true), - fitness_merging: Some(true), - ..Default::default() - }) - }; + macro_rules! overrides { + ($a:ident, $b:ident) => { + HashMap::from([ + $a(DefaultAlgorithm::SlidingFB), + $a(DefaultAlgorithm::SlidingPDPS), + $a(DefaultAlgorithm::ForwardPDPS), + $b(DefaultAlgorithm::RadonFB), + $b(DefaultAlgorithm::RadonSlidingFB), + $b(DefaultAlgorithm::RadonSlidingPDPS), + ]) + }; + } + // We add a hash of the experiment name to the configured // noise seed to not use the same noise for different experiments. let mut h = DefaultHasher::new(); @@ -273,11 +244,7 @@ kernel_plot_width, noise_seed, default_merge_radius, - algorithm_overrides: HashMap::from([ - sliding_fb_cut_gaussian, - higher_cpos_merging(DefaultAlgorithm::RadonFB), - higher_cpos_merging(DefaultAlgorithm::RadonSlidingFB), - ]), + algorithm_overrides: overrides!(basic, radon), }, }) } @@ -298,10 +265,7 @@ kernel_plot_width, noise_seed, default_merge_radius, - algorithm_overrides: HashMap::from([ - higher_cpos_merging(DefaultAlgorithm::RadonFB), - higher_cpos_merging(DefaultAlgorithm::RadonSlidingFB), - ]), + algorithm_overrides: overrides!(basic, radon), }, }) } @@ -323,11 +287,7 @@ kernel_plot_width, noise_seed, default_merge_radius, - algorithm_overrides: HashMap::from([ - sliding_fb_cut_gaussian, - higher_cpos_merging(DefaultAlgorithm::RadonFB), - higher_cpos_merging(DefaultAlgorithm::RadonSlidingFB), - ]), + algorithm_overrides: overrides!(basic, radon), }, }) } @@ -348,10 +308,7 @@ kernel_plot_width, noise_seed, default_merge_radius, - algorithm_overrides: HashMap::from([ - higher_cpos_merging(DefaultAlgorithm::RadonFB), - higher_cpos_merging(DefaultAlgorithm::RadonSlidingFB), - ]), + algorithm_overrides: overrides!(basic, radon), }, }) } @@ -482,10 +439,7 @@ kernel_plot_width, noise_seed, default_merge_radius, - algorithm_overrides: HashMap::from([ - higher_cpos_merging_steptune(DefaultAlgorithm::RadonForwardPDPS), - higher_cpos_merging_steptune(DefaultAlgorithm::RadonSlidingPDPS), - ]), + algorithm_overrides: overrides!(basic, radon), }, }, }) @@ -522,14 +476,7 @@ kernel_plot_width, noise_seed, default_merge_radius, - algorithm_overrides: HashMap::from([ - much_higher_cpos_merging_steptune( - DefaultAlgorithm::RadonForwardPDPS, - ), - much_higher_cpos_merging_steptune( - DefaultAlgorithm::RadonSlidingPDPS, - ), - ]), + algorithm_overrides: overrides!(basic, radon_2dtv), }, }, })