From 28200ca3f233480de4179e58099ba5c9f335087c Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Mon, 26 Apr 2010 21:52:50 +0200 Subject: cairo: get rid of old patches Haven't been touches for more than 2 years, so lets get rid of them. Signed-off-by: Peter Korsgaard --- ..._double-to-use-the-magic-number-technique.patch | 79 ---------------------- 1 file changed, 79 deletions(-) delete mode 100644 package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch (limited to 'package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch') diff --git a/package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch b/package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch deleted file mode 100644 index 56d8b7e99..000000000 --- a/package/cairo/old_patches/0002-Change-_cairo_fixed_from_double-to-use-the-magic-number-technique.patch +++ /dev/null @@ -1,79 +0,0 @@ -From nobody Mon Sep 17 00:00:00 2001 -From: Dan Amelang -Date: Sun Oct 29 21:31:23 2006 -0800 -Subject: [PATCH] Change _cairo_fixed_from_double to use the "magic number" technique - -See long thread here: -http://lists.freedesktop.org/archives/cairo/2006-October/008285.html - ---- - - src/cairo-fixed.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++- - 1 files changed, 47 insertions(+), 1 deletions(-) - -d88acddcabe770e17664b34a2d5f74d3926e1642 -diff --git a/src/cairo-fixed.c b/src/cairo-fixed.c -index 604c9e7..fe6c2dc 100644 ---- a/src/cairo-fixed.c -+++ b/src/cairo-fixed.c -@@ -42,10 +42,56 @@ _cairo_fixed_from_int (int i) - return i << 16; - } - -+/* This is the "magic number" approach to converting a double into fixed -+ * point as described here: -+ * -+ * http://www.stereopsis.com/sree/fpu2006.html (an overview) -+ * http://www.d6.com/users/checker/pdfs/gdmfp.pdf (in detail) -+ * -+ * The basic idea is to add a large enough number to the double that the -+ * literal floating point is moved up to the extent that it forces the -+ * double's value to be shifted down to the bottom of the mantissa (to make -+ * room for the large number being added in). Since the mantissa is, at a -+ * given moment in time, a fixed point integer itself, one can convert a -+ * float to various fixed point representations by moving around the point -+ * of a floating point number through arithmetic operations. This behavior -+ * is reliable on most modern platforms as it is mandated by the IEEE-754 -+ * standard for floating point arithmetic. -+ * -+ * For our purposes, a "magic number" must be carefully selected that is -+ * both large enough to produce the desired point-shifting effect, and also -+ * has no lower bits in its representation that would interfere with our -+ * value at the bottom of the mantissa. The magic number is calculated as -+ * follows: -+ * -+ * (2 ^ (MANTISSA_SIZE - FRACTIONAL_SIZE)) * 1.5 -+ * -+ * where in our case: -+ * - MANTISSA_SIZE for 64-bit doubles is 52 -+ * - FRACTIONAL_SIZE for 16.16 fixed point is 16 -+ * -+ * Although this approach provides a very large speedup of this function -+ * on a wide-array of systems, it does come with two caveats: -+ * -+ * 1) It uses banker's rounding as opposed to arithmetic rounding. -+ * 2) It doesn't function properly if the FPU is in single-precision -+ * mode. -+ */ -+#define CAIRO_MAGIC_NUMBER_FIXED_16_16 (103079215104.0) - cairo_fixed_t - _cairo_fixed_from_double (double d) - { -- return (cairo_fixed_t) floor (d * 65536 + 0.5); -+ union { -+ double d; -+ int32_t i[2]; -+ } u; -+ -+ u.d = d + CAIRO_MAGIC_NUMBER_FIXED_16_16; -+#ifdef FLOAT_WORDS_BIGENDIAN -+ return u.i[1]; -+#else -+ return u.i[0]; -+#endif - } - - cairo_fixed_t --- -1.2.6 - -- cgit v1.2.3