| 270 config: &InsertionConfig<F>, |
270 config: &InsertionConfig<F>, |
| 271 ) -> Option<(Loc<N, F>, F, bool)> |
271 ) -> Option<(Loc<N, F>, F, bool)> |
| 272 where |
272 where |
| 273 M: MinMaxMapping<Loc<N, F>, F>, |
273 M: MinMaxMapping<Loc<N, F>, F>, |
| 274 { |
274 { |
| 275 let τα = τ * self.α(); |
275 let τα = if config.greedy { 0.0 } else { τ * self.α() }; |
| 276 let keep_above = -τα - ε; |
276 let keep_above = -τα - ε; |
| 277 let minimise_below = -τα - ε * config.insertion_cutoff_factor; |
277 let minimise_below = -τα - ε * config.insertion_cutoff_factor; |
| 278 let refinement_tolerance = ε * config.refinement.tolerance_mult; |
278 let refinement_tolerance = ε * config.refinement.tolerance_mult; |
| 279 |
279 |
| 280 // If preliminary check indicates that we are in bounds, and if it otherwise matches |
280 // If preliminary check indicates that we are in bounds, and if it otherwise matches |
| 499 config: &InsertionConfig<F>, |
499 config: &InsertionConfig<F>, |
| 500 ) -> Option<(Loc<N, F>, F, bool)> |
500 ) -> Option<(Loc<N, F>, F, bool)> |
| 501 where |
501 where |
| 502 M: MinMaxMapping<Loc<N, F>, F>, |
502 M: MinMaxMapping<Loc<N, F>, F>, |
| 503 { |
503 { |
| 504 let τα = τ * self.α(); |
504 let τα = if config.greedy { 0.0 } else { τ * self.α() }; |
| 505 let keep_below = τα + ε; |
505 let keep_below = τα + ε; |
| 506 let keep_above = -τα - ε; |
506 let keep_above = -τα - ε; |
| 507 let maximise_above = τα + ε * config.insertion_cutoff_factor; |
507 let maximise_above = τα + ε * config.insertion_cutoff_factor; |
| 508 let minimise_below = -τα - ε * config.insertion_cutoff_factor; |
508 let minimise_below = -τα - ε * config.insertion_cutoff_factor; |
| 509 let refinement_tolerance = ε * config.refinement.tolerance_mult; |
509 let refinement_tolerance = ε * config.refinement.tolerance_mult; |