From 0b59e29004bb19eb9bd458bbe6a48a7c367f72d0 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 28 Dec 2008 02:49:39 -0500 Subject: [PATCH] [_cairo_spline_bound] Simplify condition --- src/cairo-spline.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/cairo-spline.c b/src/cairo-spline.c index d2c45c3bb..f9b1aaf42 100644 --- a/src/cairo-spline.c +++ b/src/cairo-spline.c @@ -277,18 +277,22 @@ _cairo_spline_bound (cairo_spline_add_point_func_t add_point_func, double b2 = b * b; \ double delta = b2 - a * c; \ if (delta > 0) { \ - double a2_b2 = a * a + b2; \ + cairo_bool_t feasible; \ double _2ab = 2 * a * b; \ - double _b_a = - b / a; \ /* We are only interested in solutions t that satisfy 0= 0 && delta > b2 && delta < a2_b2 - _2ab) || \ - (_2ab < 0 && ((_b_a>=1 && (delta < b2 && delta > a2_b2 + _2ab)) || \ - (_b_a< 1 && (delta < b2 || delta < a2_b2 + _2ab))))) { \ + if (_2ab >= 0) \ + feasible = delta > b2 && delta < a*a + b2 - _2ab; \ + else if (-b / a >= 1) \ + feasible = delta < b2 && delta > a*a + b2 + _2ab; \ + else \ + feasible = delta < b2 || delta < a*a + b2 + _2ab; \ + \ + if (unlikely (feasible)) { \ double sqrt_delta = sqrt (delta); \ ADD ((-b - sqrt_delta) / a); \ ADD ((-b + sqrt_delta) / a); \