src/experiments.rs

changeset 25
79943be70720
parent 24
d29d1fcf5423
equal deleted inserted replaced
24:d29d1fcf5423 25:79943be70720
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,

mercurial