18 #ifndef MAGICKCORE_MAGICK_TYPE_H
19 #define MAGICKCORE_MAGICK_TYPE_H
23 #if defined(__cplusplus) || defined(c_plusplus)
27 #if !defined(MAGICKCORE_QUANTUM_DEPTH)
28 #define MAGICKCORE_QUANTUM_DEPTH 16
31 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__)
32 # define MagickLLConstant(c) ((MagickOffsetType) (c ## i64))
33 # define MagickULLConstant(c) ((MagickSizeType) (c ## ui64))
35 # define MagickLLConstant(c) ((MagickOffsetType) (c ## LL))
36 # define MagickULLConstant(c) ((MagickSizeType) (c ## ULL))
39 #if MAGICKCORE_SIZEOF_FLOAT_T == 0
41 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT)
43 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE)
45 #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
48 #error Your MagickFloatType type is neither a float, nor a double, nor a long double
50 #if MAGICKCORE_SIZEOF_DOUBLE_T == 0
52 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
54 #elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
57 #error Your MagickDoubleType type is neither a float, nor a double, nor a long double
60 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
61 #define MaxColormapSize 256UL
64 #if defined(MAGICKCORE_HDRI_SUPPORT)
65 typedef MagickFloatType
Quantum;
66 #define QuantumRange 255.0
67 #define QuantumFormat "%g"
70 #define QuantumRange ((Quantum) 255)
71 #define QuantumFormat "%u"
73 #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
74 #define MaxColormapSize 65536UL
75 #define MaxMap 65535UL
77 #if defined(MAGICKCORE_HDRI_SUPPORT)
78 typedef MagickFloatType
Quantum;
79 #define QuantumRange 65535.0f
80 #define QuantumFormat "%g"
83 #define QuantumRange ((Quantum) 65535)
84 #define QuantumFormat "%u"
86 #elif (MAGICKCORE_QUANTUM_DEPTH == 32)
87 #define MaxColormapSize 65536UL
88 #define MaxMap 65535UL
90 #if defined(MAGICKCORE_HDRI_SUPPORT)
91 typedef MagickDoubleType
Quantum;
92 #define QuantumRange 4294967295.0
93 #define QuantumFormat "%g"
96 #define QuantumRange ((Quantum) 4294967295)
97 #define QuantumFormat "%u"
99 #elif (MAGICKCORE_QUANTUM_DEPTH == 64)
100 #define MAGICKCORE_HDRI_SUPPORT 1
101 #define MaxColormapSize 65536UL
102 #define MaxMap 65535UL
104 typedef MagickDoubleType
Quantum;
105 #define QuantumRange 18446744073709551615.0
106 #define QuantumFormat "%g"
108 #error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64"
110 #define MagickEpsilon (1.0e-12)
111 #define MagickMaximumValue 1.79769313486231570E+308
112 #define MagickMinimumValue 2.22507385850720140E-308
113 #define MagickStringify(macro_or_string) MagickStringifyArg(macro_or_string)
114 #define MagickStringifyArg(contents) #contents
115 #define QuantumScale ((double) 1.0/(double) QuantumRange)
122 #if !defined(MAGICKCORE_WINDOWS_SUPPORT)
123 #if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8)
126 #define MagickOffsetFormat "lld"
127 #define MagickSizeFormat "llu"
131 #define MagickOffsetFormat "ld"
132 #define MagickSizeFormat "lu"
137 #define MagickOffsetFormat "I64i"
138 #define MagickSizeFormat "I64u"
141 #if defined(_MSC_VER) && (_MSC_VER == 1200)
147 #if defined(macintosh)
148 #define ExceptionInfo MagickExceptionInfo
175 #if defined(MAGICKCORE_HAVE_ISNAN)
176 # define IsNaN(a) isnan(a)
177 #elif defined(_MSC_VER) && (_MSC_VER >= 1310)
179 # define IsNaN(a) _isnan(a)
181 # define IsNaN(a) ((a) != (a))
183 #if !defined(INFINITY)
184 # define INFINITY ((double) -logf(0f))
195 #if defined(__cplusplus) || defined(c_plusplus)
MagickDoubleType MagickRealType
Definition: magick-type.h:120
double MagickDoubleType
Definition: magick-type.h:51
Definition: exception.h:101
Definition: magick-type.h:154
float MagickFloatType
Definition: magick-type.h:40
ssize_t MagickOffsetType
Definition: magick-type.h:129
MagickBooleanType
Definition: magick-type.h:158
unsigned int MagickStatusType
Definition: magick-type.h:121
ClassType
Definition: magick-type.h:151
Definition: magick-type.h:161
size_t MagickSizeType
Definition: magick-type.h:130
Definition: magick-type.h:160
unsigned short Quantum
Definition: magick-type.h:82
Definition: magick-type.h:153
Definition: magick-type.h:155
MagickSizeType QuantumAny
Definition: magick-type.h:144