[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