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
30#if !defined(MagickPathExtent)
31#define MagickPathExtent MaxTextExtent
34#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__)
35# define MagickLLConstant(c) ((MagickOffsetType) (c ## i64))
36# define MagickULLConstant(c) ((MagickSizeType) (c ## ui64))
38# define MagickLLConstant(c) ((MagickOffsetType) (c ## LL))
39# define MagickULLConstant(c) ((MagickSizeType) (c ## ULL))
42#if MAGICKCORE_SIZEOF_FLOAT_T == 0
44#elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT)
46#elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE)
48#elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
51#error Your MagickFloatType type is neither a float, nor a double, nor a long double
53#if MAGICKCORE_SIZEOF_DOUBLE_T == 0
55#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_DOUBLE)
57#elif (MAGICKCORE_SIZEOF_DOUBLE_T == MAGICKCORE_SIZEOF_LONG_DOUBLE)
60#error Your MagickDoubleType type is neither a float, nor a double, nor a long double
63#if (MAGICKCORE_QUANTUM_DEPTH == 8)
64#define MaxColormapSize 256UL
67#if defined(MAGICKCORE_HDRI_SUPPORT)
69#define QuantumRange 255.0
70#define QuantumFormat "%g"
73#define QuantumRange ((Quantum) 255)
74#define QuantumFormat "%u"
76#elif (MAGICKCORE_QUANTUM_DEPTH == 16)
77#define MaxColormapSize 65536UL
80#if defined(MAGICKCORE_HDRI_SUPPORT)
82#define QuantumRange 65535.0
83#define QuantumFormat "%g"
86#define QuantumRange ((Quantum) 65535)
87#define QuantumFormat "%u"
89#elif (MAGICKCORE_QUANTUM_DEPTH == 32)
90#define MaxColormapSize 65536UL
93#if defined(MAGICKCORE_HDRI_SUPPORT)
95#define QuantumRange 4294967295.0
96#define QuantumFormat "%g"
99#define QuantumRange ((Quantum) 4294967295)
100#define QuantumFormat "%u"
102#elif (MAGICKCORE_QUANTUM_DEPTH == 64)
103#define MAGICKCORE_HDRI_SUPPORT 1
104#define MaxColormapSize 65536UL
105#define MaxMap 65535UL
108#define QuantumRange 18446744073709551615.0
109#define QuantumFormat "%g"
112# error "MAGICKCORE_QUANTUM_DEPTH must be one of 8, 16, 32, or 64"
115#define MagickEpsilon (1.0e-12)
116#define MagickMaximumValue 1.79769313486231570E+308
117#define MagickMinimumValue 2.22507385850720140E-308
118#define MagickStringify(macro_or_string) MagickStringifyArg(macro_or_string)
119#define MagickStringifyArg(contents) #contents
120#define QuantumScale ((double) 1.0/(double) QuantumRange)
128#if !defined(MAGICKCORE_WINDOWS_SUPPORT)
129#if (MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG == 8)
132#define MagickOffsetFormat "lld"
133#define MagickSizeFormat "llu"
137#define MagickOffsetFormat "ld"
138#define MagickSizeFormat "lu"
143#define MagickOffsetFormat "I64i"
144#define MagickSizeFormat "I64u"
147#if MAGICKCORE_HAVE_UINTPTR_T || defined(uintptr_t)
154#if defined(_MSC_VER) && (_MSC_VER == 1200)
160#if defined(macintosh)
161#define ExceptionInfo MagickExceptionInfo
215#if defined(MAGICKCORE_HAVE_ISNAN) && !defined(__cplusplus) && !defined(c_plusplus)
216# define IsNaN(a) isnan(a)
217#elif defined(_MSC_VER) && (_MSC_VER >= 1310)
219# define IsNaN(a) _isnan(a)
221# define IsNaN(a) ((a) != (a))
223#if !defined(INFINITY)
224# define INFINITY ((double) -logf(0f))
235#if defined(__cplusplus) || defined(c_plusplus)
float MagickFloatType
Definition: magick-type.h:43
ChannelType
Definition: magick-type.h:165
@ MatteChannel
Definition: magick-type.h:176
@ UndefinedChannel
Definition: magick-type.h:166
@ GrayChannels
Definition: magick-type.h:186
@ AllChannels
Definition: magick-type.h:180
@ GreenChannel
Definition: magick-type.h:170
@ OpacityChannel
Definition: magick-type.h:175
@ CompositeChannels
Definition: magick-type.h:179
@ TrueAlphaChannel
Definition: magick-type.h:184
@ BlackChannel
Definition: magick-type.h:177
@ DefaultChannels
Definition: magick-type.h:188
@ BlueChannel
Definition: magick-type.h:172
@ RedChannel
Definition: magick-type.h:167
@ SyncChannels
Definition: magick-type.h:187
@ YellowChannel
Definition: magick-type.h:173
@ MagentaChannel
Definition: magick-type.h:171
@ RGBChannels
Definition: magick-type.h:185
@ IndexChannel
Definition: magick-type.h:178
@ CyanChannel
Definition: magick-type.h:169
@ AlphaChannel
Definition: magick-type.h:174
@ GrayChannel
Definition: magick-type.h:168
MagickDoubleType MagickRealType
Definition: magick-type.h:125
double MagickDoubleType
Definition: magick-type.h:54
ssize_t MagickOffsetType
Definition: magick-type.h:135
ssize_t SignedQuantum
Definition: magick-type.h:79
unsigned short Quantum
Definition: magick-type.h:85
unsigned int MagickStatusType
Definition: magick-type.h:127
ClassType
Definition: magick-type.h:192
@ UndefinedClass
Definition: magick-type.h:193
@ DirectClass
Definition: magick-type.h:194
@ PseudoClass
Definition: magick-type.h:195
MagickSizeType QuantumAny
Definition: magick-type.h:157
size_t MagickSizeType
Definition: magick-type.h:136
MagickBooleanType
Definition: magick-type.h:199
@ MagickFalse
Definition: magick-type.h:200
@ MagickTrue
Definition: magick-type.h:201
size_t MagickAddressType
Definition: magick-type.h:151
Definition: exception.h:103