13 # undef WORDS_BIG_ENDIAN
14 # undef WORDS_LITTLE_ENDIAN
15 # if BYTE_ORDER == BIG_ENDIAN
16 # define WORDS_BIG_ENDIAN 1
18 # if BYTE_ORDER == LITTLE_ENDIAN
19 # define WORDS_LITTLE_ENDIAN 1
31 #ifdef WORDS_BIGENDIAN
32 unsigned int negative:1;
33 unsigned int exponent:11;
35 unsigned int mantissa0:20;
36 unsigned int mantissa1:32;
39 unsigned int mantissa1:32;
40 unsigned int mantissa0:20;
41 unsigned int exponent:11;
42 unsigned int negative:1;
52 #ifdef WORDS_BIGENDIAN
53 unsigned int negative:1;
54 unsigned int exponent:8;
55 unsigned int mantissa:23;
57 unsigned int mantissa:23;
58 unsigned int exponent:8;
59 unsigned int negative:1;
64 enum ValueType {VT_double,VT_exponent};
77 #ifdef WORDS_BIGENDIAN
78 # define DOUBLEWITHTWODWORD(upper,lower) upper,lower
79 # define UPPERPOWER (0)
80 # define LOWERPOWER (!UPPERPOWER)
82 # define NEXTBYTE(pbd) ((pbd)++)
83 # define PREVIOUSBYTE(pbd) ((pbd)--)
84 # define MOREBYTE(pbd,pbend) ((pbd)<=(pbend))
85 # define OFFSETBYTE(pbd,offset) ((pbd)+=offset)
86 # define BEFOREBYTE(pbd) ((pbd)-1)
87 # define DIFFPOINTERS(p1,p2) ((p1)-(p2))
88 # define SEARCHBYTE(pbstart,b,nb) (unsigned char *)memrchr((pbstart),(b),(nb))
89 # define BYTEAT(pb,i) *((pb)-(i))
91 # define DOUBLEWITHTWODWORD(upper,lower) lower,upper
92 # define UPPERPOWER (1)
93 # define LOWERPOWER (!UPPERPOWER)
95 # define NEXTBYTE(pbd) ((pbd)--)
96 # define PREVIOUSBYTE(pbd) ((pbd)++)
97 # define MOREBYTE(pbd,pbend) ((pbd)>=(pbend))
98 # define OFFSETBYTE(pbd,offset) ((pbd)-=offset)
99 # define BEFOREBYTE(pbd) ((pbd)+1)
100 # define DIFFPOINTERS(p1,p2) ((unsigned)((p2)-(p1)))
101 # define SEARCHBYTE(pbstart,b,nb) (unsigned char *)memchr((pbstart),(b),(nb))
102 # define BYTEAT(pb,i) *((pb)+(i))
105 #define MAXLENGTHFORCOMPRESSEDTYPE ((22+1+1+4+6*(1+8))+7)/8
107 #define NEGATIVE(d) (((union ieee754_double *)&(d))->ieee.negative)
108 #define EXPONENT(d) (((union ieee754_double *)&(d))->ieee.exponent)
109 #define MANTISSA0(d) (((union ieee754_double *)&(d))->ieee.mantissa0)
110 #define MANTISSA1(d) (((union ieee754_double *)&(d))->ieee.mantissa1)
112 typedef unsigned char PRCbyte;
113 typedef unsigned short PRCword;
114 typedef unsigned PRCdword;
116 extern PRCdword stadwZero[2],stadwNegativeZero[2];
118 #define NUMBEROFELEMENTINACOFDOE (2077)
120 #ifdef WORDS_BIGENDIAN
121 # define DOUBLEWITHTWODWORDINTREE(upper,lower) {upper,lower}
123 # define DOUBLEWITHTWODWORDINTREE(upper,lower) {lower,upper}
132 int stCOFDOECompare(
const void*,
const void*);
134 #ifdef WORDS_BIGENDIAN
136 void *memrchr(
const void *,
int,
size_t);
140 #endif // __PRC_DOUBLE_H
Definition: PRCdouble.h:47
Definition: PRCdouble.h:25
Definition: PRCdouble.h:66