#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)
{
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
}
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
}
#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)
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((Quantum) (257U*value));
#else
- return((Quantum) (257.0*value+0.0));
+ return((Quantum) (257.0*value));
#endif
}
return((Quantum) ((value+MagickULLConstant(32768))/
MagickULLConstant(65537)));
#else
- return((Quantum) (value/65537.0+0.0));
+ return((Quantum) (value/65537.0));
#endif
}
{
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
}
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((Quantum) (16843009UL*value));
#else
- return((Quantum) (16843009.0*value+0.0));
+ return((Quantum) (16843009.0*value));
#endif
}
{
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
}
{
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))/
#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)
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((Quantum) (MagickULLConstant(72340172838076673)*value));
#else
- return((Quantum) (72340172838076673.0*value+0.0));
+ return((Quantum) (72340172838076673.0*value));
#endif
}
#if !defined(MAGICKCORE_HDRI_SUPPORT)
return((Quantum) (4294967295UL*value));
#else
- return((Quantum) (4294967295.0*value+0.0));
+ return((Quantum) (4294967295.0*value));
#endif
}
{
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
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