Mercurial > hg > CbC > CbC_gcc
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 |