18 #ifndef MAGICKCORE_MAGICK_TYPE_H
19 #define MAGICKCORE_MAGICK_TYPE_H
23 #if MAGICKCORE_HAVE_UINTPTR_T
27 #if defined(__cplusplus) || defined(c_plusplus)
31 #if !defined(MAGICKCORE_QUANTUM_DEPTH)
32 #define MAGICKCORE_QUANTUM_DEPTH 16
35 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__)
36 # define MagickLLConstant(c) ((MagickOffsetType) (c ## i64))
37 # define MagickULLConstant(c) ((MagickSizeType) (c ## ui64))
39 # define MagickLLConstant(c) ((MagickOffsetType) (c ## LL))
40 # define MagickULLConstant(c) ((MagickSizeType) (c ## ULL))
46 #if MAGICKCORE_SIZEOF_FLOAT_T == 0
48 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT)
50 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE)
52 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
55 #error Your MagickFloatType type is neither a float, nor a double, nor a long double
58 #if MAGICKCORE_SIZEOF_DOUBLE_T == 0
60 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
62 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
65 #error Your MagickDoubleType type is neither a float, nor a double, nor a long double
68 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
69 #define MaxColormapSize 256UL
72 #if defined(MAGICKCORE_HDRI_SUPPORT)
73 typedef MagickFloatType
Quantum;
74 #define QuantumRange 255.0
75 #define QuantumFormat "%g"
78 #define QuantumRange ((Quantum) 255)
79 #define QuantumFormat "%u"
81 #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
82 #define MaxColormapSize 65536UL
83 #define MaxMap 65535UL
85 #if defined(MAGICKCORE_HDRI_SUPPORT)
86 typedef MagickFloatType
Quantum;
87 #define QuantumRange 65535.0f
88 #define QuantumFormat "%g"
91 #define QuantumRange ((Quantum) 65535)
92 #define QuantumFormat "%u"
94 #elif (MAGICKCORE_QUANTUM_DEPTH == 32)
95 #define MaxColormapSize 65536UL
96 #define MaxMap 65535UL
98 #if defined(MAGICKCORE_HDRI_SUPPORT)
99 typedef MagickDoubleType
Quantum;
100 #define QuantumRange 4294967295.0
101 #define QuantumFormat "%g"
104 #define QuantumRange ((Quantum) 4294967295)
105 #define QuantumFormat "%u"
107 #elif (MAGICKCORE_QUANTUM_DEPTH == 64)
108 #define MAGICKCORE_HDRI_SUPPORT 1
109 #define MaxColormapSize 65536UL
110 #define MaxMap 65535UL
112 typedef MagickDoubleType
Quantum;
113 #define QuantumRange 18446744073709551615.0
114 #define QuantumFormat "%g"
116 #error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64"
118 #define MagickEpsilon 1.0e-12
119 #define MagickMaximumValue 1.79769313486231570E+308
120 #define MagickMinimumValue 2.22507385850720140E-308
121 #define MagickStringify(macro_or_string) MagickStringifyArg(macro_or_string)
122 #define MagickStringifyArg(contents) #contents
123 #define QuantumScale ((double) 1.0/(double) QuantumRange)
130 #if !defined(MAGICKCORE_WINDOWS_SUPPORT)
131 #if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8)
134 #define MagickOffsetFormat "lld"
135 #define MagickSizeFormat "llu"
139 #define MagickOffsetFormat "ld"
140 #define MagickSizeFormat "lu"
145 #define MagickOffsetFormat "I64i"
146 #define MagickSizeFormat "I64u"
149 #if MAGICKCORE_HAVE_UINTPTR_T || defined(uintptr_t)
156 #if defined(_MSC_VER) && (_MSC_VER == 1200)
162 #if defined(macintosh)
163 #define ExceptionInfo MagickExceptionInfo
190 #if defined(MAGICKCORE_HAVE_ISNAN)
191 # define IsNaN(a) isnan(a)
192 #elif defined(_MSC_VER) && (_MSC_VER >= 1310)
194 # define IsNaN(a) _isnan(a)
196 # define IsNaN(a) ((a) != (a))
198 #if !defined(INFINITY)
199 # define INFINITY ((double) -logf(0f))
210 #if defined(__cplusplus) || defined(c_plusplus)
MagickDoubleType MagickRealType
Definition: magick-type.h:128
double MagickDoubleType
Definition: magick-type.h:59
Definition: exception.h:101
Definition: magick-type.h:169
float MagickFloatType
Definition: magick-type.h:47
ssize_t MagickOffsetType
Definition: magick-type.h:137
MagickBooleanType
Definition: magick-type.h:173
unsigned int MagickStatusType
Definition: magick-type.h:129
ClassType
Definition: magick-type.h:166
Definition: magick-type.h:176
size_t MagickSizeType
Definition: magick-type.h:138
Definition: magick-type.h:175
unsigned short Quantum
Definition: magick-type.h:90
Definition: magick-type.h:168
Definition: magick-type.h:170
size_t MagickAddressType
Definition: magick-type.h:153
MagickSizeType QuantumAny
Definition: magick-type.h:159