| 30 } |
30 } |
| 31 |
31 |
| 32 impl<'a, F: Float> Set<Loc<1, F>> for RealInterval<F> { |
32 impl<'a, F: Float> Set<Loc<1, F>> for RealInterval<F> { |
| 33 #[inline] |
33 #[inline] |
| 34 fn contains<I: Instance<Loc<1, F>>>(&self, z: I) -> bool { |
34 fn contains<I: Instance<Loc<1, F>>>(&self, z: I) -> bool { |
| 35 z.eval_ref_decompose(|&Loc([x])| { |
35 z.eval_ref(|&Loc([x])| { |
| 36 let &[Loc([x0]), Loc([x1])] = &self.0; |
36 let &[Loc([x0]), Loc([x1])] = &self.0; |
| 37 (x0 < x && x < x1) || (x1 < x && x < x0) |
37 (x0 < x && x < x1) || (x1 < x && x < x0) |
| 38 }) |
38 }) |
| 39 } |
39 } |
| 40 } |
40 } |
| 316 fn minimise_edge( |
316 fn minimise_edge( |
| 317 &self, |
317 &self, |
| 318 x0: &Loc<2, F>, |
318 x0: &Loc<2, F>, |
| 319 x1: &Loc<2, F>, /*, v0 : F, v1 : F*/ |
319 x1: &Loc<2, F>, /*, v0 : F, v1 : F*/ |
| 320 ) -> (Loc<2, F>, F) { |
320 ) -> (Loc<2, F>, F) { |
| 321 let &P2LocalModel { |
321 let &P2LocalModel { a0, a1: Loc([a1, a2]), a2: Loc([a11, a12, a22]), .. } = self; |
| 322 a0, |
|
| 323 a1: Loc([a1, a2]), |
|
| 324 a2: Loc([a11, a12, a22]), |
|
| 325 .. |
|
| 326 } = self; |
|
| 327 let &Loc([x00, x01]) = x0; |
322 let &Loc([x00, x01]) = x0; |
| 328 let d @ Loc([d0, d1]) = x1 - x0; |
323 let d @ Loc([d0, d1]) = x1 - x0; |
| 329 let b0 = a0 + a1 * x00 + a2 * x01 + a11 * x00 * x00 + a12 * x00 * x01 + a22 * x01 * x01; |
324 let b0 = a0 + a1 * x00 + a2 * x01 + a11 * x00 * x00 + a12 * x00 * x01 + a22 * x01 * x01; |
| 330 let b1 = a1 * d0 |
325 let b1 = a1 * d0 |
| 331 + a2 * d1 |
326 + a2 * d1 |