From: cristy Date: Mon, 10 May 2010 01:43:37 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~9510 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd2fd9f7f8becee282a1e58a35b51ffe48092c72;p=imagemagick --- diff --git a/magick/quantum-private.h b/magick/quantum-private.h index 673ecae4b..3b7247f24 100644 --- a/magick/quantum-private.h +++ b/magick/quantum-private.h @@ -292,18 +292,14 @@ static inline Quantum ScaleAnyToQuantum(const QuantumAny quantum, #if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) (((MagickRealType) QuantumRange*quantum)/range+0.5)); #else - return((Quantum) (((MagickRealType) QuantumRange*quantum)/range+0.0)); + return((Quantum) (((MagickRealType) QuantumRange*quantum)/range)); #endif } static inline QuantumAny ScaleQuantumToAny(const Quantum quantum, const QuantumAny range) { -#if !defined(MAGICKCORE_HDRI_SUPPORT) - return((QuantumAny) (((MagickRealType) range*quantum)/QuantumRange+0.5)); -#else return((QuantumAny) (((MagickRealType) range*quantum)/QuantumRange+0.5)); -#endif } #if (MAGICKCORE_QUANTUM_DEPTH == 8) @@ -325,14 +321,12 @@ static inline Quantum ScaleMapToQuantum(const MagickRealType value) { if (value <= 0.0) return((Quantum) 0); -#if defined(MAGICKCORE_HDRI_SUPPORT) if (value >= MaxMap) return((Quantum) QuantumRange); - return((Quantum) value); +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((Quantum) (value+0.5)); #else - if ((value+0.5) >= MaxMap) - return((Quantum) QuantumRange); - return((Quantum) (value+0.0)); + return((Quantum) value); #endif } @@ -351,13 +345,13 @@ static inline unsigned long ScaleQuantumToLong(const Quantum quantum) static inline unsigned long ScaleQuantumToMap(const Quantum quantum) { - if (quantum < 0.0) - return(0UL); if (quantum >= (Quantum) MaxMap) return((unsigned long) MaxMap); #if !defined(MAGICKCORE_HDRI_SUPPORT) return((unsigned long) quantum); #else + if (quantum < 0.0) + return(0UL); return((unsigned long) (quantum+0.5)); #endif } @@ -380,7 +374,7 @@ static inline Quantum ScaleShortToQuantum(const unsigned short value) #if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) ((value+128U)/257U)); #else - return((Quantum) (value/257.0+0.0)); + return((Quantum) (value/257.0)); #endif } #elif (MAGICKCORE_QUANTUM_DEPTH == 16) @@ -389,7 +383,7 @@ static inline Quantum ScaleCharToQuantum(const unsigned char value) #if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) (257U*value)); #else - return((Quantum) (257.0*value+0.0)); + return((Quantum) (257.0*value)); #endif } @@ -399,7 +393,7 @@ static inline Quantum ScaleLongToQuantum(const unsigned long value) return((Quantum) ((value+MagickULLConstant(32768))/ MagickULLConstant(65537))); #else - return((Quantum) (value/65537.0+0.0)); + return((Quantum) (value/65537.0)); #endif } @@ -407,14 +401,12 @@ static inline Quantum ScaleMapToQuantum(const MagickRealType value) { if (value <= 0.0) return((Quantum) 0); -#if defined(MAGICKCORE_HDRI_SUPPORT) if (value >= MaxMap) return((Quantum) QuantumRange); - return((Quantum) value); +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((Quantum) (value+0.5)); #else - if ((value+0.5) >= MaxMap) - return((Quantum) QuantumRange); - return((Quantum) (value+0.0)); + return((Quantum) value); #endif } @@ -467,7 +459,7 @@ static inline Quantum ScaleCharToQuantum(const unsigned char value) #if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) (16843009UL*value)); #else - return((Quantum) (16843009.0*value+0.0)); + return((Quantum) (16843009.0*value)); #endif } @@ -480,14 +472,12 @@ static inline Quantum ScaleMapToQuantum(const MagickRealType value) { if (value <= 0.0) return((Quantum) 0); -#if defined(MAGICKCORE_HDRI_SUPPORT) - if (value >= MaxMap) + if (value >= (Quantum) MaxMap) return(QuantumRange); - return((Quantum) (65537.0*value)); +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((Quantum) (65537.0*value+0.5)); #else - if (value >= MaxMap) - return(QuantumRange); - return((Quantum) (65537UL*value+0.0)); + return((Quantum) (65537.0*value)); #endif } @@ -500,7 +490,7 @@ static inline unsigned long ScaleQuantumToMap(const Quantum quantum) { if (quantum < 0.0) return(0UL); - if ((quantum/65537) >= MaxMap) + if ((quantum/65537) >= (Quantum) MaxMap) return((unsigned long) MaxMap); #if !defined(MAGICKCORE_HDRI_SUPPORT) return((unsigned long) ((quantum+MagickULLConstant(32768))/ @@ -529,7 +519,7 @@ static inline Quantum ScaleShortToQuantum(const unsigned short value) #if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) (65537UL*value)); #else - return((Quantum) (65537.0*value+0.0)); + return((Quantum) (65537.0*value+0.5)); #endif } #elif (MAGICKCORE_QUANTUM_DEPTH == 64) @@ -538,7 +528,7 @@ static inline Quantum ScaleCharToQuantum(const unsigned char value) #if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) (MagickULLConstant(72340172838076673)*value)); #else - return((Quantum) (72340172838076673.0*value+0.0)); + return((Quantum) (72340172838076673.0*value)); #endif } @@ -547,7 +537,7 @@ static inline Quantum ScaleLongToQuantum(const unsigned long value) #if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) (4294967295UL*value)); #else - return((Quantum) (4294967295.0*value+0.0)); + return((Quantum) (4294967295.0*value)); #endif } @@ -555,21 +545,20 @@ static inline Quantum ScaleMapToQuantum(const MagickRealType value) { if (value <= 0.0) return((Quantum) 0); -#if defined(MAGICKCORE_HDRI_SUPPORT) if (value >= MaxMap) return(QuantumRange); - return((Quantum) (281479271743489.0*value)); +#if !defined(MAGICKCORE_HDRI_SUPPORT) + return((Quantum) (MagickULLConstant(281479271743489)*value+0.5)); #else - if (value >= MaxMap) - return(QuantumRange); - return((Quantum) (MagickULLConstant(281479271743489)*value+0.0)); + return((Quantum) (281479271743489.0*value)); #endif } static inline unsigned long ScaleQuantumToLong(const Quantum quantum) { #if !defined(MAGICKCORE_HDRI_SUPPORT) - return((unsigned long) ((quantum+2147483648.0)/4294967297.0)); + return((unsigned long) ((quantum+MagickULLConstant(2147483648))/ + MagickULLConstant(4294967297))); #else return((unsigned long) (quantum/4294967297.0+0.5)); #endif @@ -577,21 +566,23 @@ static inline unsigned long ScaleQuantumToLong(const Quantum quantum) static inline unsigned long ScaleQuantumToMap(const Quantum quantum) { - if (quantum < 0.0) - return(0UL); - if ((quantum/281479271743489.0) >= MaxMap) + if ((quantum/MagickULLConstant(281479271743489)) >= MaxMap) return((unsigned long) MaxMap); #if !defined(MAGICKCORE_HDRI_SUPPORT) - return((unsigned long) ((quantum+2147450879.0)/281479271743489.0)); + return((unsigned long) ((quantum+MagickULLConstant(140739635871744))/ + MagickULLConstant(281479271743489))); #else - return((unsigned long) (quantum/281479271743489.0)+0.5); + if (quantum < 0.0) + return(0UL); + return((unsigned long) (quantum/281479271743489.0+0.5)); #endif } static inline unsigned short ScaleQuantumToShort(const Quantum quantum) { #if !defined(MAGICKCORE_HDRI_SUPPORT) - return((unsigned short) ((quantum+2147450879.0)/281479271743489.0)); + return((unsigned short) ((quantum+MagickULLConstant(140739635871744))/ + MagickULLConstant(281479271743489.0)); #else return((unsigned short) (quantum/281479271743489.0+0.5)); #endif diff --git a/magick/quantum.h b/magick/quantum.h index 7b3290e78..b23c31bc4 100644 --- a/magick/quantum.h +++ b/magick/quantum.h @@ -87,10 +87,10 @@ static inline Quantum ClampToQuantum(const MagickRealType value) return((Quantum) 0); if (value >= (MagickRealType) QuantumRange) return((Quantum) QuantumRange); -#if defined(MAGICKCORE_HDRI_SUPPORT) - return((Quantum) value); -#else +#if !defined(MAGICKCORE_HDRI_SUPPORT) return((Quantum) (value+0.5)); +#else + return((Quantum) value); #endif }