138 let base_spread = Gaussian { variance : Variance1 }; |
138 let base_spread = Gaussian { variance : Variance1 }; |
139 let spread_cutoff = BallIndicator { r : CutOff1, exponent : Linfinity }; |
139 let spread_cutoff = BallIndicator { r : CutOff1, exponent : Linfinity }; |
140 Box::new(Named { name, data : ExperimentV2 { |
140 Box::new(Named { name, data : ExperimentV2 { |
141 domain : [[0.0, 1.0]].into(), |
141 domain : [[0.0, 1.0]].into(), |
142 sensor_count : [N_SENSORS_1D], |
142 sensor_count : [N_SENSORS_1D], |
143 regularisation : Regularisation::Radon(cli.alpha.unwrap_or(0.09)), |
143 regularisation : Regularisation::NonnegRadon(cli.alpha.unwrap_or(0.09)), |
144 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.2))?, |
144 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.2))?, |
145 dataterm : DataTerm::L2Squared, |
145 dataterm : DataTerm::L2Squared, |
146 μ_hat : MU_TRUE_1D_BASIC.into(), |
146 μ_hat : MU_TRUE_1D_BASIC.into(), |
147 sensor : BallIndicator { r : SensorWidth1D, exponent : Linfinity }, |
147 sensor : BallIndicator { r : SensorWidth1D, exponent : Linfinity }, |
148 spread : Prod(spread_cutoff, base_spread), |
148 spread : Prod(spread_cutoff, base_spread), |
155 Experiment1DFast => { |
155 Experiment1DFast => { |
156 let base_spread = HatConv { radius : Hat1 }; |
156 let base_spread = HatConv { radius : Hat1 }; |
157 Box::new(Named { name, data : ExperimentV2 { |
157 Box::new(Named { name, data : ExperimentV2 { |
158 domain : [[0.0, 1.0]].into(), |
158 domain : [[0.0, 1.0]].into(), |
159 sensor_count : [N_SENSORS_1D], |
159 sensor_count : [N_SENSORS_1D], |
160 regularisation : Regularisation::Radon(cli.alpha.unwrap_or(0.06)), |
160 regularisation : Regularisation::NonnegRadon(cli.alpha.unwrap_or(0.06)), |
161 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.2))?, |
161 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.2))?, |
162 dataterm : DataTerm::L2Squared, |
162 dataterm : DataTerm::L2Squared, |
163 μ_hat : MU_TRUE_1D_BASIC.into(), |
163 μ_hat : MU_TRUE_1D_BASIC.into(), |
164 sensor : BallIndicator { r : SensorWidth1D, exponent : Linfinity }, |
164 sensor : BallIndicator { r : SensorWidth1D, exponent : Linfinity }, |
165 spread : base_spread, |
165 spread : base_spread, |
173 let base_spread = Gaussian { variance : Variance1 }; |
173 let base_spread = Gaussian { variance : Variance1 }; |
174 let spread_cutoff = BallIndicator { r : CutOff1, exponent : Linfinity }; |
174 let spread_cutoff = BallIndicator { r : CutOff1, exponent : Linfinity }; |
175 Box::new(Named { name, data : ExperimentV2 { |
175 Box::new(Named { name, data : ExperimentV2 { |
176 domain : [[0.0, 1.0]; 2].into(), |
176 domain : [[0.0, 1.0]; 2].into(), |
177 sensor_count : [N_SENSORS_2D; 2], |
177 sensor_count : [N_SENSORS_2D; 2], |
178 regularisation : Regularisation::Radon(cli.alpha.unwrap_or(0.19)), |
178 regularisation : Regularisation::NonnegRadon(cli.alpha.unwrap_or(0.19)), |
179 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.25))?, |
179 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.25))?, |
180 dataterm : DataTerm::L2Squared, |
180 dataterm : DataTerm::L2Squared, |
181 μ_hat : MU_TRUE_2D_BASIC.into(), |
181 μ_hat : MU_TRUE_2D_BASIC.into(), |
182 sensor : BallIndicator { r : SensorWidth2D, exponent : Linfinity }, |
182 sensor : BallIndicator { r : SensorWidth2D, exponent : Linfinity }, |
183 spread : Prod(spread_cutoff, base_spread), |
183 spread : Prod(spread_cutoff, base_spread), |
192 Experiment2DFast => { |
192 Experiment2DFast => { |
193 let base_spread = HatConv { radius : Hat1 }; |
193 let base_spread = HatConv { radius : Hat1 }; |
194 Box::new(Named { name, data : ExperimentV2 { |
194 Box::new(Named { name, data : ExperimentV2 { |
195 domain : [[0.0, 1.0]; 2].into(), |
195 domain : [[0.0, 1.0]; 2].into(), |
196 sensor_count : [N_SENSORS_2D; 2], |
196 sensor_count : [N_SENSORS_2D; 2], |
197 regularisation : Regularisation::Radon(cli.alpha.unwrap_or(0.12)), |
197 regularisation : Regularisation::NonnegRadon(cli.alpha.unwrap_or(0.12)), |
198 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.15))?, //0.25 |
198 noise_distr : SerializableNormal::new(0.0, cli.variance.unwrap_or(0.15))?, //0.25 |
199 dataterm : DataTerm::L2Squared, |
199 dataterm : DataTerm::L2Squared, |
200 μ_hat : MU_TRUE_2D_BASIC.into(), |
200 μ_hat : MU_TRUE_2D_BASIC.into(), |
201 sensor : BallIndicator { r : SensorWidth2D, exponent : Linfinity }, |
201 sensor : BallIndicator { r : SensorWidth2D, exponent : Linfinity }, |
202 spread : base_spread, |
202 spread : base_spread, |