dec_number 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +20 -0
- data/dec_number.gemspec +13 -0
- data/ext/dec_number/Gemfile +4 -0
- data/ext/dec_number/NOTES +10 -0
- data/ext/dec_number/decNumber/ICU-license.html +45 -0
- data/ext/dec_number/decNumber/Makefile.am +3 -0
- data/ext/dec_number/decNumber/Makefile.in +680 -0
- data/ext/dec_number/decNumber/aclocal.m4 +8988 -0
- data/ext/dec_number/decNumber/autom4te.cache/output.0 +5107 -0
- data/ext/dec_number/decNumber/autom4te.cache/output.1 +6026 -0
- data/ext/dec_number/decNumber/autom4te.cache/output.2 +13468 -0
- data/ext/dec_number/decNumber/autom4te.cache/output.3 +13472 -0
- data/ext/dec_number/decNumber/autom4te.cache/requests +407 -0
- data/ext/dec_number/decNumber/autom4te.cache/traces.0 +352 -0
- data/ext/dec_number/decNumber/autom4te.cache/traces.1 +772 -0
- data/ext/dec_number/decNumber/autom4te.cache/traces.2 +591 -0
- data/ext/dec_number/decNumber/autom4te.cache/traces.3 +2362 -0
- data/ext/dec_number/decNumber/config.guess +1501 -0
- data/ext/dec_number/decNumber/config.h.in +142 -0
- data/ext/dec_number/decNumber/config.sub +1705 -0
- data/ext/dec_number/decNumber/configure +13468 -0
- data/ext/dec_number/decNumber/configure.ac +36 -0
- data/ext/dec_number/decNumber/decBasic.c +3908 -0
- data/ext/dec_number/decNumber/decCommon.c +1835 -0
- data/ext/dec_number/decNumber/decContext.c +437 -0
- data/ext/dec_number/decNumber/decContext.h +254 -0
- data/ext/dec_number/decNumber/decDPD.h +1185 -0
- data/ext/dec_number/decNumber/decDouble.c +140 -0
- data/ext/dec_number/decNumber/decDouble.h +155 -0
- data/ext/dec_number/decNumber/decNumber.c +8141 -0
- data/ext/dec_number/decNumber/decNumber.h +182 -0
- data/ext/dec_number/decNumber/decNumberLocal.h +757 -0
- data/ext/dec_number/decNumber/decPacked.c +220 -0
- data/ext/dec_number/decNumber/decPacked.h +52 -0
- data/ext/dec_number/decNumber/decQuad.c +135 -0
- data/ext/dec_number/decNumber/decQuad.h +177 -0
- data/ext/dec_number/decNumber/decSingle.c +71 -0
- data/ext/dec_number/decNumber/decSingle.h +86 -0
- data/ext/dec_number/decNumber/decimal128.c +553 -0
- data/ext/dec_number/decNumber/decimal128.h +81 -0
- data/ext/dec_number/decNumber/decimal32.c +476 -0
- data/ext/dec_number/decNumber/decimal32.h +81 -0
- data/ext/dec_number/decNumber/decimal64.c +839 -0
- data/ext/dec_number/decNumber/decimal64.h +83 -0
- data/ext/dec_number/decNumber/decnumber.pdf +0 -0
- data/ext/dec_number/decNumber/depcomp +630 -0
- data/ext/dec_number/decNumber/example1.c +38 -0
- data/ext/dec_number/decNumber/example2.c +52 -0
- data/ext/dec_number/decNumber/example3.c +64 -0
- data/ext/dec_number/decNumber/example4.c +61 -0
- data/ext/dec_number/decNumber/example5.c +36 -0
- data/ext/dec_number/decNumber/example6.c +61 -0
- data/ext/dec_number/decNumber/example7.c +35 -0
- data/ext/dec_number/decNumber/example8.c +39 -0
- data/ext/dec_number/decNumber/install-sh +520 -0
- data/ext/dec_number/decNumber/libdecNumber.a +0 -0
- data/ext/dec_number/decNumber/ltmain.sh +8745 -0
- data/ext/dec_number/decNumber/missing +376 -0
- data/ext/dec_number/decNumber/readme.txt +81 -0
- data/ext/dec_number/dec_number.c +464 -0
- data/ext/dec_number/extconf.rb +52 -0
- data/ext/dec_number/extconf2.rb +50 -0
- data/ext/dec_number/recompile.sh +3 -0
- data/ext/dec_number/test_dec_number.rb +236 -0
- data/ext/dec_number/test_numeric.rb +235 -0
- metadata +111 -0
@@ -0,0 +1,140 @@
|
|
1
|
+
/* ------------------------------------------------------------------ */
|
2
|
+
/* decDouble.c -- decDouble operations module */
|
3
|
+
/* ------------------------------------------------------------------ */
|
4
|
+
/* Copyright (c) IBM Corporation, 2000, 2010. All rights reserved. */
|
5
|
+
/* */
|
6
|
+
/* This software is made available under the terms of the */
|
7
|
+
/* ICU License -- ICU 1.8.1 and later. */
|
8
|
+
/* */
|
9
|
+
/* The description and User's Guide ("The decNumber C Library") for */
|
10
|
+
/* this software is included in the package as decNumber.pdf. This */
|
11
|
+
/* document is also available in HTML, together with specifications, */
|
12
|
+
/* testcases, and Web links, on the General Decimal Arithmetic page. */
|
13
|
+
/* */
|
14
|
+
/* Please send comments, suggestions, and corrections to the author: */
|
15
|
+
/* mfc@uk.ibm.com */
|
16
|
+
/* Mike Cowlishaw, IBM Fellow */
|
17
|
+
/* IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK */
|
18
|
+
/* ------------------------------------------------------------------ */
|
19
|
+
/* This module comprises decDouble operations (including conversions) */
|
20
|
+
/* ------------------------------------------------------------------ */
|
21
|
+
|
22
|
+
#include "decContext.h" // public includes
|
23
|
+
#include "decDouble.h" // ..
|
24
|
+
|
25
|
+
/* Constant mappings for shared code */
|
26
|
+
#define DECPMAX DECDOUBLE_Pmax
|
27
|
+
#define DECEMIN DECDOUBLE_Emin
|
28
|
+
#define DECEMAX DECDOUBLE_Emax
|
29
|
+
#define DECEMAXD DECDOUBLE_EmaxD
|
30
|
+
#define DECBYTES DECDOUBLE_Bytes
|
31
|
+
#define DECSTRING DECDOUBLE_String
|
32
|
+
#define DECECONL DECDOUBLE_EconL
|
33
|
+
#define DECBIAS DECDOUBLE_Bias
|
34
|
+
#define DECLETS DECDOUBLE_Declets
|
35
|
+
#define DECQTINY (-DECDOUBLE_Bias)
|
36
|
+
// parameters of next-wider format
|
37
|
+
#define DECWBYTES DECQUAD_Bytes
|
38
|
+
#define DECWPMAX DECQUAD_Pmax
|
39
|
+
#define DECWECONL DECQUAD_EconL
|
40
|
+
#define DECWBIAS DECQUAD_Bias
|
41
|
+
|
42
|
+
/* Type and function mappings for shared code */
|
43
|
+
#define decFloat decDouble // Type name
|
44
|
+
#define decFloatWider decQuad // Type name
|
45
|
+
|
46
|
+
// Utilities and conversions (binary results, extractors, etc.)
|
47
|
+
#define decFloatFromBCD decDoubleFromBCD
|
48
|
+
#define decFloatFromInt32 decDoubleFromInt32
|
49
|
+
#define decFloatFromPacked decDoubleFromPacked
|
50
|
+
#define decFloatFromPackedChecked decDoubleFromPackedChecked
|
51
|
+
#define decFloatFromString decDoubleFromString
|
52
|
+
#define decFloatFromUInt32 decDoubleFromUInt32
|
53
|
+
#define decFloatFromWider decDoubleFromWider
|
54
|
+
#define decFloatGetCoefficient decDoubleGetCoefficient
|
55
|
+
#define decFloatGetExponent decDoubleGetExponent
|
56
|
+
#define decFloatSetCoefficient decDoubleSetCoefficient
|
57
|
+
#define decFloatSetExponent decDoubleSetExponent
|
58
|
+
#define decFloatShow decDoubleShow
|
59
|
+
#define decFloatToBCD decDoubleToBCD
|
60
|
+
#define decFloatToEngString decDoubleToEngString
|
61
|
+
#define decFloatToInt32 decDoubleToInt32
|
62
|
+
#define decFloatToInt32Exact decDoubleToInt32Exact
|
63
|
+
#define decFloatToPacked decDoubleToPacked
|
64
|
+
#define decFloatToString decDoubleToString
|
65
|
+
#define decFloatToUInt32 decDoubleToUInt32
|
66
|
+
#define decFloatToUInt32Exact decDoubleToUInt32Exact
|
67
|
+
#define decFloatToWider decDoubleToWider
|
68
|
+
#define decFloatZero decDoubleZero
|
69
|
+
|
70
|
+
// Computational (result is a decFloat)
|
71
|
+
#define decFloatAbs decDoubleAbs
|
72
|
+
#define decFloatAdd decDoubleAdd
|
73
|
+
#define decFloatAnd decDoubleAnd
|
74
|
+
#define decFloatDivide decDoubleDivide
|
75
|
+
#define decFloatDivideInteger decDoubleDivideInteger
|
76
|
+
#define decFloatFMA decDoubleFMA
|
77
|
+
#define decFloatInvert decDoubleInvert
|
78
|
+
#define decFloatLogB decDoubleLogB
|
79
|
+
#define decFloatMax decDoubleMax
|
80
|
+
#define decFloatMaxMag decDoubleMaxMag
|
81
|
+
#define decFloatMin decDoubleMin
|
82
|
+
#define decFloatMinMag decDoubleMinMag
|
83
|
+
#define decFloatMinus decDoubleMinus
|
84
|
+
#define decFloatMultiply decDoubleMultiply
|
85
|
+
#define decFloatNextMinus decDoubleNextMinus
|
86
|
+
#define decFloatNextPlus decDoubleNextPlus
|
87
|
+
#define decFloatNextToward decDoubleNextToward
|
88
|
+
#define decFloatOr decDoubleOr
|
89
|
+
#define decFloatPlus decDoublePlus
|
90
|
+
#define decFloatQuantize decDoubleQuantize
|
91
|
+
#define decFloatReduce decDoubleReduce
|
92
|
+
#define decFloatRemainder decDoubleRemainder
|
93
|
+
#define decFloatRemainderNear decDoubleRemainderNear
|
94
|
+
#define decFloatRotate decDoubleRotate
|
95
|
+
#define decFloatScaleB decDoubleScaleB
|
96
|
+
#define decFloatShift decDoubleShift
|
97
|
+
#define decFloatSubtract decDoubleSubtract
|
98
|
+
#define decFloatToIntegralValue decDoubleToIntegralValue
|
99
|
+
#define decFloatToIntegralExact decDoubleToIntegralExact
|
100
|
+
#define decFloatXor decDoubleXor
|
101
|
+
|
102
|
+
// Comparisons
|
103
|
+
#define decFloatCompare decDoubleCompare
|
104
|
+
#define decFloatCompareSignal decDoubleCompareSignal
|
105
|
+
#define decFloatCompareTotal decDoubleCompareTotal
|
106
|
+
#define decFloatCompareTotalMag decDoubleCompareTotalMag
|
107
|
+
|
108
|
+
// Copies
|
109
|
+
#define decFloatCanonical decDoubleCanonical
|
110
|
+
#define decFloatCopy decDoubleCopy
|
111
|
+
#define decFloatCopyAbs decDoubleCopyAbs
|
112
|
+
#define decFloatCopyNegate decDoubleCopyNegate
|
113
|
+
#define decFloatCopySign decDoubleCopySign
|
114
|
+
|
115
|
+
// Non-computational
|
116
|
+
#define decFloatClass decDoubleClass
|
117
|
+
#define decFloatClassString decDoubleClassString
|
118
|
+
#define decFloatDigits decDoubleDigits
|
119
|
+
#define decFloatIsCanonical decDoubleIsCanonical
|
120
|
+
#define decFloatIsFinite decDoubleIsFinite
|
121
|
+
#define decFloatIsInfinite decDoubleIsInfinite
|
122
|
+
#define decFloatIsInteger decDoubleIsInteger
|
123
|
+
#define decFloatIsLogical decDoubleIsLogical
|
124
|
+
#define decFloatIsNaN decDoubleIsNaN
|
125
|
+
#define decFloatIsNegative decDoubleIsNegative
|
126
|
+
#define decFloatIsNormal decDoubleIsNormal
|
127
|
+
#define decFloatIsPositive decDoubleIsPositive
|
128
|
+
#define decFloatIsSignaling decDoubleIsSignaling
|
129
|
+
#define decFloatIsSignalling decDoubleIsSignalling
|
130
|
+
#define decFloatIsSigned decDoubleIsSigned
|
131
|
+
#define decFloatIsSubnormal decDoubleIsSubnormal
|
132
|
+
#define decFloatIsZero decDoubleIsZero
|
133
|
+
#define decFloatRadix decDoubleRadix
|
134
|
+
#define decFloatSameQuantum decDoubleSameQuantum
|
135
|
+
#define decFloatVersion decDoubleVersion
|
136
|
+
|
137
|
+
#include "decNumberLocal.h" // local includes (need DECPMAX)
|
138
|
+
#include "decCommon.c" // non-arithmetic decFloat routines
|
139
|
+
#include "decBasic.c" // basic formats routines
|
140
|
+
|
@@ -0,0 +1,155 @@
|
|
1
|
+
/* ------------------------------------------------------------------ */
|
2
|
+
/* decDouble.h -- Decimal 64-bit format module header */
|
3
|
+
/* ------------------------------------------------------------------ */
|
4
|
+
/* Copyright (c) IBM Corporation, 2000, 2010. All rights reserved. */
|
5
|
+
/* */
|
6
|
+
/* This software is made available under the terms of the */
|
7
|
+
/* ICU License -- ICU 1.8.1 and later. */
|
8
|
+
/* */
|
9
|
+
/* The description and User's Guide ("The decNumber C Library") for */
|
10
|
+
/* this software is included in the package as decNumber.pdf. This */
|
11
|
+
/* document is also available in HTML, together with specifications, */
|
12
|
+
/* testcases, and Web links, on the General Decimal Arithmetic page. */
|
13
|
+
/* */
|
14
|
+
/* Please send comments, suggestions, and corrections to the author: */
|
15
|
+
/* mfc@uk.ibm.com */
|
16
|
+
/* Mike Cowlishaw, IBM Fellow */
|
17
|
+
/* IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK */
|
18
|
+
/* ------------------------------------------------------------------ */
|
19
|
+
|
20
|
+
#if !defined(DECDOUBLE)
|
21
|
+
#define DECDOUBLE
|
22
|
+
|
23
|
+
#define DECDOUBLENAME "decimalDouble" /* Short name */
|
24
|
+
#define DECDOUBLETITLE "Decimal 64-bit datum" /* Verbose name */
|
25
|
+
#define DECDOUBLEAUTHOR "Mike Cowlishaw" /* Who to blame */
|
26
|
+
|
27
|
+
/* parameters for decDoubles */
|
28
|
+
#define DECDOUBLE_Bytes 8 /* length */
|
29
|
+
#define DECDOUBLE_Pmax 16 /* maximum precision (digits) */
|
30
|
+
#define DECDOUBLE_Emin -383 /* minimum adjusted exponent */
|
31
|
+
#define DECDOUBLE_Emax 384 /* maximum adjusted exponent */
|
32
|
+
#define DECDOUBLE_EmaxD 3 /* maximum exponent digits */
|
33
|
+
#define DECDOUBLE_Bias 398 /* bias for the exponent */
|
34
|
+
#define DECDOUBLE_String 25 /* maximum string length, +1 */
|
35
|
+
#define DECDOUBLE_EconL 8 /* exponent continuation length */
|
36
|
+
#define DECDOUBLE_Declets 5 /* count of declets */
|
37
|
+
/* highest biased exponent (Elimit-1) */
|
38
|
+
#define DECDOUBLE_Ehigh (DECDOUBLE_Emax + DECDOUBLE_Bias - (DECDOUBLE_Pmax-1))
|
39
|
+
|
40
|
+
/* Required includes */
|
41
|
+
#include "decContext.h"
|
42
|
+
#include "decQuad.h"
|
43
|
+
|
44
|
+
/* The decDouble decimal 64-bit type, accessible by all sizes */
|
45
|
+
typedef union {
|
46
|
+
uint8_t bytes[DECDOUBLE_Bytes]; /* fields: 1, 5, 8, 50 bits */
|
47
|
+
uint16_t shorts[DECDOUBLE_Bytes/2];
|
48
|
+
uint32_t words[DECDOUBLE_Bytes/4];
|
49
|
+
#if DECUSE64
|
50
|
+
uint64_t longs[DECDOUBLE_Bytes/8];
|
51
|
+
#endif
|
52
|
+
} decDouble;
|
53
|
+
|
54
|
+
/* ---------------------------------------------------------------- */
|
55
|
+
/* Routines -- implemented as decFloat routines in common files */
|
56
|
+
/* ---------------------------------------------------------------- */
|
57
|
+
|
58
|
+
/* Utilities and conversions, extractors, etc.) */
|
59
|
+
extern decDouble * decDoubleFromBCD(decDouble *, int32_t, const uint8_t *, int32_t);
|
60
|
+
extern decDouble * decDoubleFromInt32(decDouble *, int32_t);
|
61
|
+
extern decDouble * decDoubleFromPacked(decDouble *, int32_t, const uint8_t *);
|
62
|
+
extern decDouble * decDoubleFromPackedChecked(decDouble *, int32_t, const uint8_t *);
|
63
|
+
extern decDouble * decDoubleFromString(decDouble *, const char *, decContext *);
|
64
|
+
extern decDouble * decDoubleFromUInt32(decDouble *, uint32_t);
|
65
|
+
extern decDouble * decDoubleFromWider(decDouble *, const decQuad *, decContext *);
|
66
|
+
extern int32_t decDoubleGetCoefficient(const decDouble *, uint8_t *);
|
67
|
+
extern int32_t decDoubleGetExponent(const decDouble *);
|
68
|
+
extern decDouble * decDoubleSetCoefficient(decDouble *, const uint8_t *, int32_t);
|
69
|
+
extern decDouble * decDoubleSetExponent(decDouble *, decContext *, int32_t);
|
70
|
+
extern void decDoubleShow(const decDouble *, const char *);
|
71
|
+
extern int32_t decDoubleToBCD(const decDouble *, int32_t *, uint8_t *);
|
72
|
+
extern char * decDoubleToEngString(const decDouble *, char *);
|
73
|
+
extern int32_t decDoubleToInt32(const decDouble *, decContext *, enum rounding);
|
74
|
+
extern int32_t decDoubleToInt32Exact(const decDouble *, decContext *, enum rounding);
|
75
|
+
extern int32_t decDoubleToPacked(const decDouble *, int32_t *, uint8_t *);
|
76
|
+
extern char * decDoubleToString(const decDouble *, char *);
|
77
|
+
extern uint32_t decDoubleToUInt32(const decDouble *, decContext *, enum rounding);
|
78
|
+
extern uint32_t decDoubleToUInt32Exact(const decDouble *, decContext *, enum rounding);
|
79
|
+
extern decQuad * decDoubleToWider(const decDouble *, decQuad *);
|
80
|
+
extern decDouble * decDoubleZero(decDouble *);
|
81
|
+
|
82
|
+
/* Computational (result is a decDouble) */
|
83
|
+
extern decDouble * decDoubleAbs(decDouble *, const decDouble *, decContext *);
|
84
|
+
extern decDouble * decDoubleAdd(decDouble *, const decDouble *, const decDouble *, decContext *);
|
85
|
+
extern decDouble * decDoubleAnd(decDouble *, const decDouble *, const decDouble *, decContext *);
|
86
|
+
extern decDouble * decDoubleDivide(decDouble *, const decDouble *, const decDouble *, decContext *);
|
87
|
+
extern decDouble * decDoubleDivideInteger(decDouble *, const decDouble *, const decDouble *, decContext *);
|
88
|
+
extern decDouble * decDoubleFMA(decDouble *, const decDouble *, const decDouble *, const decDouble *, decContext *);
|
89
|
+
extern decDouble * decDoubleInvert(decDouble *, const decDouble *, decContext *);
|
90
|
+
extern decDouble * decDoubleLogB(decDouble *, const decDouble *, decContext *);
|
91
|
+
extern decDouble * decDoubleMax(decDouble *, const decDouble *, const decDouble *, decContext *);
|
92
|
+
extern decDouble * decDoubleMaxMag(decDouble *, const decDouble *, const decDouble *, decContext *);
|
93
|
+
extern decDouble * decDoubleMin(decDouble *, const decDouble *, const decDouble *, decContext *);
|
94
|
+
extern decDouble * decDoubleMinMag(decDouble *, const decDouble *, const decDouble *, decContext *);
|
95
|
+
extern decDouble * decDoubleMinus(decDouble *, const decDouble *, decContext *);
|
96
|
+
extern decDouble * decDoubleMultiply(decDouble *, const decDouble *, const decDouble *, decContext *);
|
97
|
+
extern decDouble * decDoubleNextMinus(decDouble *, const decDouble *, decContext *);
|
98
|
+
extern decDouble * decDoubleNextPlus(decDouble *, const decDouble *, decContext *);
|
99
|
+
extern decDouble * decDoubleNextToward(decDouble *, const decDouble *, const decDouble *, decContext *);
|
100
|
+
extern decDouble * decDoubleOr(decDouble *, const decDouble *, const decDouble *, decContext *);
|
101
|
+
extern decDouble * decDoublePlus(decDouble *, const decDouble *, decContext *);
|
102
|
+
extern decDouble * decDoubleQuantize(decDouble *, const decDouble *, const decDouble *, decContext *);
|
103
|
+
extern decDouble * decDoubleReduce(decDouble *, const decDouble *, decContext *);
|
104
|
+
extern decDouble * decDoubleRemainder(decDouble *, const decDouble *, const decDouble *, decContext *);
|
105
|
+
extern decDouble * decDoubleRemainderNear(decDouble *, const decDouble *, const decDouble *, decContext *);
|
106
|
+
extern decDouble * decDoubleRotate(decDouble *, const decDouble *, const decDouble *, decContext *);
|
107
|
+
extern decDouble * decDoubleScaleB(decDouble *, const decDouble *, const decDouble *, decContext *);
|
108
|
+
extern decDouble * decDoubleShift(decDouble *, const decDouble *, const decDouble *, decContext *);
|
109
|
+
extern decDouble * decDoubleSubtract(decDouble *, const decDouble *, const decDouble *, decContext *);
|
110
|
+
extern decDouble * decDoubleToIntegralValue(decDouble *, const decDouble *, decContext *, enum rounding);
|
111
|
+
extern decDouble * decDoubleToIntegralExact(decDouble *, const decDouble *, decContext *);
|
112
|
+
extern decDouble * decDoubleXor(decDouble *, const decDouble *, const decDouble *, decContext *);
|
113
|
+
|
114
|
+
/* Comparisons */
|
115
|
+
extern decDouble * decDoubleCompare(decDouble *, const decDouble *, const decDouble *, decContext *);
|
116
|
+
extern decDouble * decDoubleCompareSignal(decDouble *, const decDouble *, const decDouble *, decContext *);
|
117
|
+
extern decDouble * decDoubleCompareTotal(decDouble *, const decDouble *, const decDouble *);
|
118
|
+
extern decDouble * decDoubleCompareTotalMag(decDouble *, const decDouble *, const decDouble *);
|
119
|
+
|
120
|
+
/* Copies */
|
121
|
+
extern decDouble * decDoubleCanonical(decDouble *, const decDouble *);
|
122
|
+
extern decDouble * decDoubleCopy(decDouble *, const decDouble *);
|
123
|
+
extern decDouble * decDoubleCopyAbs(decDouble *, const decDouble *);
|
124
|
+
extern decDouble * decDoubleCopyNegate(decDouble *, const decDouble *);
|
125
|
+
extern decDouble * decDoubleCopySign(decDouble *, const decDouble *, const decDouble *);
|
126
|
+
|
127
|
+
/* Non-computational */
|
128
|
+
extern enum decClass decDoubleClass(const decDouble *);
|
129
|
+
extern const char * decDoubleClassString(const decDouble *);
|
130
|
+
extern uint32_t decDoubleDigits(const decDouble *);
|
131
|
+
extern uint32_t decDoubleIsCanonical(const decDouble *);
|
132
|
+
extern uint32_t decDoubleIsFinite(const decDouble *);
|
133
|
+
extern uint32_t decDoubleIsInfinite(const decDouble *);
|
134
|
+
extern uint32_t decDoubleIsInteger(const decDouble *);
|
135
|
+
extern uint32_t decDoubleIsLogical(const decDouble *);
|
136
|
+
extern uint32_t decDoubleIsNaN(const decDouble *);
|
137
|
+
extern uint32_t decDoubleIsNegative(const decDouble *);
|
138
|
+
extern uint32_t decDoubleIsNormal(const decDouble *);
|
139
|
+
extern uint32_t decDoubleIsPositive(const decDouble *);
|
140
|
+
extern uint32_t decDoubleIsSignaling(const decDouble *);
|
141
|
+
extern uint32_t decDoubleIsSignalling(const decDouble *);
|
142
|
+
extern uint32_t decDoubleIsSigned(const decDouble *);
|
143
|
+
extern uint32_t decDoubleIsSubnormal(const decDouble *);
|
144
|
+
extern uint32_t decDoubleIsZero(const decDouble *);
|
145
|
+
extern uint32_t decDoubleRadix(const decDouble *);
|
146
|
+
extern uint32_t decDoubleSameQuantum(const decDouble *, const decDouble *);
|
147
|
+
extern const char * decDoubleVersion(void);
|
148
|
+
|
149
|
+
/* decNumber conversions; these are implemented as macros so as not */
|
150
|
+
/* to force a dependency on decimal64 and decNumber in decDouble. */
|
151
|
+
/* decDoubleFromNumber returns a decimal64 * to avoid warnings. */
|
152
|
+
#define decDoubleToNumber(dq, dn) decimal64ToNumber((decimal64 *)(dq), dn)
|
153
|
+
#define decDoubleFromNumber(dq, dn, set) decimal64FromNumber((decimal64 *)(dq), dn, set)
|
154
|
+
|
155
|
+
#endif
|