comparison libdecnumber/decNumber.h @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents a06113de4d67
children 04ced10e8804
comparison
equal deleted inserted replaced
52:c156f1bd5cd9 55:77e2b8dfacca
39 39
40 /* Bit settings for decNumber.bits */ 40 /* Bit settings for decNumber.bits */
41 #define DECNEG 0x80 /* Sign; 1=negative, 0=positive or zero */ 41 #define DECNEG 0x80 /* Sign; 1=negative, 0=positive or zero */
42 #define DECINF 0x40 /* 1=Infinity */ 42 #define DECINF 0x40 /* 1=Infinity */
43 #define DECNAN 0x20 /* 1=NaN */ 43 #define DECNAN 0x20 /* 1=NaN */
44 #define DECSNAN 0x10 /* 1=sNaN */ 44 #define DECSNAN 0x10 /* 1=sNaN */
45 /* The remaining bits are reserved; they must be 0 */ 45 /* The remaining bits are reserved; they must be 0 */
46 #define DECSPECIAL (DECINF|DECNAN|DECSNAN) /* any special value */ 46 #define DECSPECIAL (DECINF|DECNAN|DECSNAN) /* any special value */
47 47
48 /* Define the decNumber data structure. The size and shape of the */ 48 /* Define the decNumber data structure. The size and shape of the */
49 /* units array in the structure is determined by the following */ 49 /* units array in the structure is determined by the following */
106 /* decNumber public functions and macros */ 106 /* decNumber public functions and macros */
107 /* ---------------------------------------------------------------- */ 107 /* ---------------------------------------------------------------- */
108 108
109 #include "decNumberSymbols.h" 109 #include "decNumberSymbols.h"
110 110
111 #ifdef __cplusplus
112 extern "C" {
113 #endif
114
111 /* Conversions */ 115 /* Conversions */
112 decNumber * decNumberFromInt32(decNumber *, int32_t); 116 decNumber * decNumberFromInt32(decNumber *, int32_t);
113 decNumber * decNumberFromUInt32(decNumber *, uint32_t); 117 decNumber * decNumberFromUInt32(decNumber *, uint32_t);
114 decNumber * decNumberFromString(decNumber *, const char *, decContext *); 118 decNumber * decNumberFromString(decNumber *, const char *, decContext *);
115 char * decNumberToString(const decNumber *, char *); 119 char * decNumberToString(const decNumber *, char *);
117 uint32_t decNumberToUInt32(const decNumber *, decContext *); 121 uint32_t decNumberToUInt32(const decNumber *, decContext *);
118 int32_t decNumberToInt32(const decNumber *, decContext *); 122 int32_t decNumberToInt32(const decNumber *, decContext *);
119 uint8_t * decNumberGetBCD(const decNumber *, uint8_t *); 123 uint8_t * decNumberGetBCD(const decNumber *, uint8_t *);
120 decNumber * decNumberSetBCD(decNumber *, const uint8_t *, uint32_t); 124 decNumber * decNumberSetBCD(decNumber *, const uint8_t *, uint32_t);
121 125
122 /* Operators and elementary functions */ 126 /* Operators and elementary functions */
123 decNumber * decNumberAbs(decNumber *, const decNumber *, decContext *); 127 decNumber * decNumberAbs(decNumber *, const decNumber *, decContext *);
124 decNumber * decNumberAdd(decNumber *, const decNumber *, const decNumber *, decContext *); 128 decNumber * decNumberAdd(decNumber *, const decNumber *, const decNumber *, decContext *);
125 decNumber * decNumberAnd(decNumber *, const decNumber *, const decNumber *, decContext *); 129 decNumber * decNumberAnd(decNumber *, const decNumber *, const decNumber *, decContext *);
126 decNumber * decNumberCompare(decNumber *, const decNumber *, const decNumber *, decContext *); 130 decNumber * decNumberCompare(decNumber *, const decNumber *, const decNumber *, decContext *);
127 decNumber * decNumberCompareSignal(decNumber *, const decNumber *, const decNumber *, decContext *); 131 decNumber * decNumberCompareSignal(decNumber *, const decNumber *, const decNumber *, decContext *);
178 int32_t decNumberIsNormal(const decNumber *, decContext *); 182 int32_t decNumberIsNormal(const decNumber *, decContext *);
179 int32_t decNumberIsSubnormal(const decNumber *, decContext *); 183 int32_t decNumberIsSubnormal(const decNumber *, decContext *);
180 184
181 /* Macros for testing decNumber *dn */ 185 /* Macros for testing decNumber *dn */
182 #define decNumberIsCanonical(dn) (1) /* All decNumbers are saintly */ 186 #define decNumberIsCanonical(dn) (1) /* All decNumbers are saintly */
183 #define decNumberIsFinite(dn) (((dn)->bits&DECSPECIAL)==0) 187 #define decNumberIsFinite(dn) (((dn)->bits&DECSPECIAL)==0)
184 #define decNumberIsInfinite(dn) (((dn)->bits&DECINF)!=0) 188 #define decNumberIsInfinite(dn) (((dn)->bits&DECINF)!=0)
185 #define decNumberIsNaN(dn) (((dn)->bits&(DECNAN|DECSNAN))!=0) 189 #define decNumberIsNaN(dn) (((dn)->bits&(DECNAN|DECSNAN))!=0)
186 #define decNumberIsNegative(dn) (((dn)->bits&DECNEG)!=0) 190 #define decNumberIsNegative(dn) (((dn)->bits&DECNEG)!=0)
187 #define decNumberIsQNaN(dn) (((dn)->bits&(DECNAN))!=0) 191 #define decNumberIsQNaN(dn) (((dn)->bits&(DECNAN))!=0)
188 #define decNumberIsSNaN(dn) (((dn)->bits&(DECSNAN))!=0) 192 #define decNumberIsSNaN(dn) (((dn)->bits&(DECSNAN))!=0)
190 #define decNumberIsZero(dn) (*(dn)->lsu==0 \ 194 #define decNumberIsZero(dn) (*(dn)->lsu==0 \
191 && (dn)->digits==1 \ 195 && (dn)->digits==1 \
192 && (((dn)->bits&DECSPECIAL)==0)) 196 && (((dn)->bits&DECSPECIAL)==0))
193 #define decNumberRadix(dn) (10) 197 #define decNumberRadix(dn) (10)
194 198
199 #ifdef __cplusplus
200 }
201 #endif
202
195 #endif 203 #endif