#include <stdlib.h>
#include <string.h>
Aller au code source de ce fichier.
Classes | |
struct | bcdnum |
Macros | |
#define | DECNUMBERLOC |
#define | DECVERSION "decNumber 3.61" |
#define | DECNLAUTHOR "Mike Cowlishaw" |
#define | DECLITEND 1 |
#define | DECUSE64 1 |
#define | DECCHECK 0 |
#define | DECALLOC 0 |
#define | DECTRACE 0 |
#define | DECBUFFER 36 |
#define | Flag uint8_t |
#define | Byte int8_t |
#define | uByte uint8_t |
#define | Short int16_t |
#define | uShort uint16_t |
#define | Int int32_t |
#define | uInt uint32_t |
#define | Unit decNumberUnit |
#define | Long int64_t |
#define | uLong uint64_t |
#define | DECNOINT 0 |
#define | LONGMUL32HI(w, u, v) |
#define | ROUNDUP(i, n) ((((i)+(n)-1)/n)*n) |
#define | ROUNDUP4(i) (((i)+3)&~3) |
#define | ROUNDDOWN(i, n) (((i)/n)*n) |
#define | ROUNDDOWN4(i) ((i)&~3) |
#define | UBTOUS(b) (memcpy((void *)&uswork, b, 2), uswork) |
#define | UBTOUI(b) (memcpy((void *)&uiwork, b, 4), uiwork) |
#define | UBFROMUS(b, i) (uswork=(i), memcpy(b, (void *)&uswork, 2), uswork) |
#define | UBFROMUI(b, i) (uiwork=(i), memcpy(b, (void *)&uiwork, 4), uiwork) |
#define | X10(i) (((i)<<1)+((i)<<3)) |
#define | X100(i) (((i)<<2)+((i)<<5)+((i)<<6)) |
#define | MAXI(x, y) ((x)<(y)?(y):(x)) |
#define | MINI(x, y) ((x)>(y)?(y):(x)) |
#define | BILLION 1000000000 |
#define | CHARMASK ((((((((uInt)'0')<<8)+'0')<<8)+'0')<<8)+'0') |
#define | DECNUMMAXP 999999999 |
#define | DECNUMMAXE 999999999 |
#define | DECNUMMINE -999999999 |
#define | DECMAXD2U 49 |
#define | ISZERO(dn) decNumberIsZero(dn) |
#define | D2U(d) ((d)<=DECMAXD2U?d2utable[d]:((d)+DECDPUN-1)/DECDPUN) |
#define | SD2U(d) (((d)+DECDPUN-1)/DECDPUN) |
#define | MSUDIGITS(d) ((d)-(D2U(d)-1)*DECDPUN) |
#define | D2N(d) ((((SD2U(d)-1)*sizeof(Unit))+sizeof(decNumber)*2-1)/sizeof(decNumber)) |
#define | TODIGIT(u, cut, c, pow) |
#define | EXPISSPECIAL(exp) ((exp)>=DECFLOAT_MinSp) |
#define | EXPISINF(exp) (exp==DECFLOAT_Inf) |
#define | EXPISNAN(exp) (exp==DECFLOAT_qNaN || exp==DECFLOAT_sNaN) |
#define | NUMISSPECIAL(num) (EXPISSPECIAL((num)->exponent)) |
#define | DECWORDS (DECBYTES/4) |
#define | DECWWORDS (DECWBYTES/4) |
#define | DFBYTE(df, off) ((df)->bytes[DECBYTES-1-(off)]) |
#define | DFWORD(df, off) ((df)->words[DECWORDS-1-(off)]) |
#define | DFWWORD(dfw, off) ((dfw)->words[DECWWORDS-1-(off)]) |
#define | DFISSIGNED(df) (DFWORD(df, 0)&0x80000000) |
#define | DFISSPECIAL(df) ((DFWORD(df, 0)&0x78000000)==0x78000000) |
#define | DFISINF(df) ((DFWORD(df, 0)&0x7c000000)==0x78000000) |
#define | DFISNAN(df) ((DFWORD(df, 0)&0x7c000000)==0x7c000000) |
#define | DFISQNAN(df) ((DFWORD(df, 0)&0x7e000000)==0x7c000000) |
#define | DFISSNAN(df) ((DFWORD(df, 0)&0x7e000000)==0x7e000000) |
Définition de type | |
typedef long int | LI |
Variables | |
const uByte | DECSTICKYTAB [10] |
const uInt | DECPOWERS [10] |
const uShort | DPD2BIN [1024] |
const uShort | BIN2DPD [1000] |
const uInt | DPD2BINK [1024] |
const uInt | DPD2BINM [1024] |
const uByte | DPD2BCD8 [4096] |
const uByte | BIN2BCD8 [4000] |
const uShort | BCD2DPD [2458] |
const uByte | d2utable [DECMAXD2U+1] |
const uInt | DECCOMBMSD [64] |
const uInt | DECCOMBFROM [48] |
#define BILLION 1000000000 |
Définition à la ligne 154 du fichier decNumberLocal.h.
#define Byte int8_t |
Définition à la ligne 71 du fichier decNumberLocal.h.
#define CHARMASK ((((((((uInt)'0')<<8)+'0')<<8)+'0')<<8)+'0') |
Définition à la ligne 156 du fichier decNumberLocal.h.
Définition à la ligne 261 du fichier decNumberLocal.h.
Référencé par decExpOp(), decLnOp(), decNumberCompareTotalMag(), decNumberFMA(), decNumberLog10(), decNumberPower(), et decNumberSquareRoot().
#define D2U | ( | d | ) | ((d)<=DECMAXD2U?d2utable[d]:((d)+DECDPUN-1)/DECDPUN) |
Définition à la ligne 247 du fichier decNumberLocal.h.
Référencé par decAddOp(), decCompare(), decCompareOp(), decDecap(), decDivideOp(), decExpOp(), decLnOp(), decMultiplyOp(), decNaNs(), decNumberAnd(), decNumberCompareTotalMag(), decNumberCopy(), decNumberFMA(), decNumberInvert(), decNumberLog10(), decNumberOr(), decNumberPower(), decNumberRotate(), decNumberSetBCD(), decNumberShift(), decNumberSquareRoot(), decNumberXor(), decShiftToLeast(), decShiftToMost(), decToString(), et decUnitCompare().
#define DECALLOC 0 |
Définition à la ligne 50 du fichier decNumberLocal.h.
#define DECBUFFER 36 |
Définition à la ligne 58 du fichier decNumberLocal.h.
Référencé par decAddOp(), decDivideOp(), decExpOp(), decLnOp(), decMultiplyOp(), decNumberCompareTotalMag(), decNumberFMA(), decNumberFromString(), decNumberLog10(), decNumberPower(), decNumberSquareRoot(), et decUnitCompare().
#define DECCHECK 0 |
#define DECLITEND 1 |
#define DECMAXD2U 49 |
Définition à la ligne 232 du fichier decNumberLocal.h.
#define DECNLAUTHOR "Mike Cowlishaw" |
Définition à la ligne 30 du fichier decNumberLocal.h.
#define DECNOINT 0 |
Définition à la ligne 85 du fichier decNumberLocal.h.
#define DECNUMBERLOC |
Définition à la ligne 28 du fichier decNumberLocal.h.
#define DECNUMMAXE 999999999 |
Définition à la ligne 166 du fichier decNumberLocal.h.
Référencé par decMultiplyOp(), et decNumberFromString().
#define DECNUMMAXP 999999999 |
#define DECNUMMINE -999999999 |
Définition à la ligne 167 du fichier decNumberLocal.h.
#define DECTRACE 0 |
Définition à la ligne 53 du fichier decNumberLocal.h.
#define DECUSE64 1 |
Définition à la ligne 42 du fichier decNumberLocal.h.
#define DECVERSION "decNumber 3.61" |
#define DECWORDS (DECBYTES/4) |
Définition à la ligne 311 du fichier decNumberLocal.h.
#define DECWWORDS (DECWBYTES/4) |
Définition à la ligne 312 du fichier decNumberLocal.h.
#define DFBYTE | ( | df, | |||
off | ) | ((df)->bytes[DECBYTES-1-(off)]) |
Définition à la ligne 314 du fichier decNumberLocal.h.
#define DFISINF | ( | df | ) | ((DFWORD(df, 0)&0x7c000000)==0x78000000) |
Définition à la ligne 326 du fichier decNumberLocal.h.
#define DFISNAN | ( | df | ) | ((DFWORD(df, 0)&0x7c000000)==0x7c000000) |
Définition à la ligne 327 du fichier decNumberLocal.h.
#define DFISQNAN | ( | df | ) | ((DFWORD(df, 0)&0x7e000000)==0x7c000000) |
Définition à la ligne 328 du fichier decNumberLocal.h.
#define DFISSIGNED | ( | df | ) | (DFWORD(df, 0)&0x80000000) |
Définition à la ligne 324 du fichier decNumberLocal.h.
#define DFISSNAN | ( | df | ) | ((DFWORD(df, 0)&0x7e000000)==0x7e000000) |
Définition à la ligne 329 du fichier decNumberLocal.h.
#define DFISSPECIAL | ( | df | ) | ((DFWORD(df, 0)&0x78000000)==0x78000000) |
Définition à la ligne 325 du fichier decNumberLocal.h.
#define DFWORD | ( | df, | |||
off | ) | ((df)->words[DECWORDS-1-(off)]) |
Définition à la ligne 315 du fichier decNumberLocal.h.
#define DFWWORD | ( | dfw, | |||
off | ) | ((dfw)->words[DECWWORDS-1-(off)]) |
Définition à la ligne 316 du fichier decNumberLocal.h.
#define EXPISINF | ( | exp | ) | (exp==DECFLOAT_Inf) |
Définition à la ligne 303 du fichier decNumberLocal.h.
#define EXPISNAN | ( | exp | ) | (exp==DECFLOAT_qNaN || exp==DECFLOAT_sNaN) |
Définition à la ligne 304 du fichier decNumberLocal.h.
#define EXPISSPECIAL | ( | exp | ) | ((exp)>=DECFLOAT_MinSp) |
Définition à la ligne 302 du fichier decNumberLocal.h.
#define Flag uint8_t |
Définition à la ligne 70 du fichier decNumberLocal.h.
Référencé par decAddOp(), decDivideOp(), decGetInt(), decNumberFromString(), decNumberPower(), decSetOverflow(), et decToString().
#define Int int32_t |
Définition à la ligne 75 du fichier decNumberLocal.h.
Référencé par decAddOp(), decApplyRound(), decCompare(), decCompareOp(), decContextStatusToString(), decContextTestEndian(), decDecap(), decDivideOp(), decExpOp(), decFinalize(), decGetDigits(), decGetInt(), decLnOp(), decMultiplyOp(), decNumberAnd(), decNumberFromString(), decNumberInvert(), decNumberIsNormal(), decNumberIsSubnormal(), decNumberLog10(), decNumberLogB(), decNumberNextToward(), decNumberOr(), decNumberPower(), decNumberReduce(), decNumberRotate(), decNumberScaleB(), decNumberSetBCD(), decNumberShift(), decNumberSquareRoot(), decNumberToInt32(), decNumberToUInt32(), decNumberTrim(), decNumberXor(), decQuantizeOp(), decSetCoeff(), decSetMaxValue(), decSetOverflow(), decSetSubnormal(), decShiftToLeast(), decShiftToMost(), decToString(), decTrim(), decUnitAddSub(), et decUnitCompare().
#define ISZERO | ( | dn | ) | decNumberIsZero(dn) |
Définition à la ligne 238 du fichier decNumberLocal.h.
Référencé par decAddOp(), decCheckMath(), decCompare(), decDivideOp(), decExpOp(), decFinalize(), decGetInt(), decLnOp(), decMultiplyOp(), decNumberLn(), decNumberLog10(), decNumberPower(), decNumberSquareRoot(), decNumberToUInt32(), decQuantizeOp(), decSetOverflow(), decSetSubnormal(), decToString(), et decTrim().
#define Long int64_t |
Définition à la ligne 79 du fichier decNumberLocal.h.
#define LONGMUL32HI | ( | w, | |||
u, | |||||
v | ) |
Valeur :
{ \ uInt u0, u1, v0, v1, w0, w1, w2, t; \ u0=u & 0xffff; u1=u>>16; \ v0=v & 0xffff; v1=v>>16; \ w0=u0*v0; \ t=u1*v0 + (w0>>16); \ w1=t & 0xffff; w2=t>>16; \ w1=u0*v1 + w1; \ (w)=u1*v1 + w2 + (w1>>16);}
Définition à la ligne 110 du fichier decNumberLocal.h.
#define MAXI | ( | x, | |||
y | ) | ((x)<(y)?(y):(x)) |
Définition à la ligne 150 du fichier decNumberLocal.h.
Référencé par decExpOp(), decLnOp(), decNumberPower(), et decNumberSquareRoot().
#define MINI | ( | x, | |||
y | ) | ((x)>(y)?(y):(x)) |
Définition à la ligne 151 du fichier decNumberLocal.h.
Référencé par decExpOp(), et decNumberSquareRoot().
#define MSUDIGITS | ( | d | ) | ((d)-(D2U(d)-1)*DECDPUN) |
Définition à la ligne 254 du fichier decNumberLocal.h.
Référencé par decDecap(), decNumberAnd(), decNumberInvert(), decNumberOr(), decNumberRotate(), decNumberSetBCD(), decNumberXor(), decShiftToLeast(), decShiftToMost(), et decToString().
#define NUMISSPECIAL | ( | num | ) | (EXPISSPECIAL((num)->exponent)) |
Définition à la ligne 305 du fichier decNumberLocal.h.
#define ROUNDDOWN | ( | i, | |||
n | ) | (((i)/n)*n) |
Définition à la ligne 125 du fichier decNumberLocal.h.
#define ROUNDDOWN4 | ( | i | ) | ((i)&~3) |
Définition à la ligne 126 du fichier decNumberLocal.h.
#define ROUNDUP | ( | i, | |||
n | ) | ((((i)+(n)-1)/n)*n) |
Définition à la ligne 121 du fichier decNumberLocal.h.
#define ROUNDUP4 | ( | i | ) | (((i)+3)&~3) |
Définition à la ligne 122 du fichier decNumberLocal.h.
#define SD2U | ( | d | ) | (((d)+DECDPUN-1)/DECDPUN) |
Définition à la ligne 250 du fichier decNumberLocal.h.
Référencé par decAddOp(), decDivideOp(), decMultiplyOp(), decNumberFromString(), et decUnitCompare().
#define Short int16_t |
Définition à la ligne 73 du fichier decNumberLocal.h.
#define TODIGIT | ( | u, | |||
cut, | |||||
c, | |||||
pow | ) |
Valeur :
{ \ *(c)='0'; \ pow=DECPOWERS[cut]*2; \ if ((u)>pow) { \ pow*=4; \ if ((u)>=pow) {(u)-=pow; *(c)+=8;} \ pow/=2; \ if ((u)>=pow) {(u)-=pow; *(c)+=4;} \ pow/=2; \ } \ if ((u)>=pow) {(u)-=pow; *(c)+=2;} \ pow/=2; \ if ((u)>=pow) {(u)-=pow; *(c)+=1;} \ }
Définition à la ligne 271 du fichier decNumberLocal.h.
Référencé par decToString().
#define UBFROMUI | ( | b, | |||
i | ) | (uiwork=(i), memcpy(b, (void *)&uiwork, 4), uiwork) |
Définition à la ligne 142 du fichier decNumberLocal.h.
#define UBFROMUS | ( | b, | |||
i | ) | (uswork=(i), memcpy(b, (void *)&uswork, 2), uswork) |
Définition à la ligne 141 du fichier decNumberLocal.h.
#define UBTOUI | ( | b | ) | (memcpy((void *)&uiwork, b, 4), uiwork) |
Définition à la ligne 136 du fichier decNumberLocal.h.
#define UBTOUS | ( | b | ) | (memcpy((void *)&uswork, b, 2), uswork) |
Définition à la ligne 135 du fichier decNumberLocal.h.
#define uByte uint8_t |
Définition à la ligne 72 du fichier decNumberLocal.h.
Référencé par decAddOp(), decCompareOp(), decDivideOp(), decMultiplyOp(), decNumberAbs(), decNumberCopySign(), decNumberFromString(), decNumberGetBCD(), decNumberNextToward(), decNumberPower(), decNumberSetBCD(), et decSetOverflow().
#define uInt uint32_t |
Définition à la ligne 76 du fichier decNumberLocal.h.
Référencé par decApplyRound(), decCheckMath(), decContextTestEndian(), decDivideOp(), decExpOp(), decGetDigits(), decLnOp(), decMultiplyOp(), decNumberAbs(), decNumberAdd(), decNumberCompare(), decNumberCompareSignal(), decNumberCompareTotal(), decNumberCompareTotalMag(), decNumberDivide(), decNumberDivideInteger(), decNumberExp(), decNumberFMA(), decNumberFromInt32(), decNumberFromString(), decNumberGetBCD(), decNumberLn(), decNumberLog10(), decNumberLogB(), decNumberMax(), decNumberMaxMag(), decNumberMin(), decNumberMinMag(), decNumberMinus(), decNumberMultiply(), decNumberNextMinus(), decNumberNextPlus(), decNumberNextToward(), decNumberPlus(), decNumberPower(), decNumberQuantize(), decNumberReduce(), decNumberRemainder(), decNumberRemainderNear(), decNumberRescale(), decNumberRotate(), decNumberScaleB(), decNumberShift(), decNumberSquareRoot(), decNumberSubtract(), decNumberToInt32(), decNumberToIntegralExact(), decNumberToUInt32(), decSetCoeff(), decShiftToMost(), decToString(), et decTrim().
#define uLong uint64_t |
#define Unit decNumberUnit |
Définition à la ligne 77 du fichier decNumberLocal.h.
Référencé par decNumberFromString(), decNumberFromUInt32(), decNumberToInt32(), et decNumberToUInt32().
#define uShort uint16_t |
Définition à la ligne 74 du fichier decNumberLocal.h.
#define X10 | ( | i | ) | (((i)<<1)+((i)<<3)) |
Définition à la ligne 146 du fichier decNumberLocal.h.
Référencé par decLnOp(), decNumberFromString(), decNumberSetBCD(), decNumberToInt32(), et decNumberToUInt32().
#define X100 | ( | i | ) | (((i)<<2)+((i)<<5)+((i)<<6)) |
Définition à la ligne 147 du fichier decNumberLocal.h.
typedef long int LI |
Définition à la ligne 84 du fichier decNumberLocal.h.
const uShort BCD2DPD[2458] |
const uByte BIN2BCD8[4000] |
const uShort BIN2DPD[1000] |
const uByte d2utable[DECMAXD2U+1] |
Définition à la ligne 176 du fichier decNumber.c.
const uInt DECCOMBFROM[48] |
const uInt DECCOMBMSD[64] |
const uInt DECPOWERS[10] |
Définition à la ligne 46 du fichier decContext.c.
const uByte DECSTICKYTAB[10] |
Définition à la ligne 41 du fichier decContext.c.
const uByte DPD2BCD8[4096] |
const uShort DPD2BIN[1024] |
const uInt DPD2BINK[1024] |
const uInt DPD2BINM[1024] |