[gs-cvs] rev 8184 - trunk/gs/src

alexcher at ghostscript.com alexcher at ghostscript.com
Sun Aug 12 10:29:30 PDT 2007


Author: alexcher
Date: 2007-08-12 10:29:29 -0700 (Sun, 12 Aug 2007)
New Revision: 8184

Modified:
   trunk/gs/src/gscie.c
   trunk/gs/src/gscie.h
Log:
Use inline and intristic functions to improve the speed of CIE cache set-up.
Bug 689153, customer 850.

DIFFERENCES:
None


Modified: trunk/gs/src/gscie.c
===================================================================
--- trunk/gs/src/gscie.c	2007-08-11 03:57:31 UTC (rev 8183)
+++ trunk/gs/src/gscie.c	2007-08-12 17:29:29 UTC (rev 8184)
@@ -628,13 +628,13 @@
     cie_cached_value prev;
     int imin, imax;
 } cie_cache_range_temp_t;
-private void
+private inline void
 check_interpolation_required(cie_cache_range_temp_t *pccr,
 			     cie_cached_value cur, int i, floatp threshold)
 {
     cie_cached_value prev = pccr->prev;
 
-    if (any_abs(cur - prev) > threshold * min(any_abs(prev), any_abs(cur))) {
+    if (cie_cached_abs(cur - prev) > threshold * min(cie_cached_abs(prev), cie_cached_abs(cur))) {
 	if (i - 1 < pccr->imin)
 	    pccr->imin = i - 1;
 	if (i > pccr->imax)

Modified: trunk/gs/src/gscie.h
===================================================================
--- trunk/gs/src/gscie.h	2007-08-11 03:57:31 UTC (rev 8183)
+++ trunk/gs/src/gscie.h	2007-08-12 17:29:29 UTC (rev 8184)
@@ -140,6 +140,7 @@
 		    _cie_fixed_shift * 2 - _cie_product_excess_bits - (fbits)) :\
       arith_rshift((v) * (factor), _cie_fixed_shift * 2 - (fbits)))
 #  define cie_cached_rshift(v, n) arith_rshift(v, n)
+#  define cie_cached_abs(v) any_abs(v)  /* labs() is C89 extension */
 #else
 typedef float cie_cached_value;
 #  define float2cie_cached(v) (v)
@@ -149,6 +150,7 @@
 #  define cie_cached_product2int(v, factor, fbits)\
      ((int)float_lshift((v) * (factor), fbits))
 #  define cie_cached_rshift(v, n) float_rshift(v, n)
+#  define cie_cached_abs(v) fabs(v)  /* intristic on MSVC and GCC */
 #endif
 
 /* ---------------- Structures ---------------- */



More information about the gs-cvs mailing list