1use crate::{DecContext, DecQuad};
4use libc::{c_char, c_int, c_uchar, c_uint};
5
6extern "C" {
7 pub fn decQuadAbs(dq: *mut DecQuad, dq1: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
9 pub fn decQuadAdd(dq: *mut DecQuad, dq1: *const DecQuad, dq2: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
11 pub fn decQuadAnd(dq: *mut DecQuad, dq1: *const DecQuad, dq2: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
13 pub fn decQuadCanonical(dq: *mut DecQuad, dq1: *const DecQuad) -> *mut DecQuad;
15 pub fn decQuadCompare(
17 dq: *mut DecQuad,
18 dq1: *const DecQuad,
19 dq2: *const DecQuad,
20 dc: *mut DecContext,
21 ) -> *mut DecQuad;
22 pub fn decQuadCompareSignal(
24 dq: *mut DecQuad,
25 dq1: *const DecQuad,
26 dq2: *const DecQuad,
27 dc: *mut DecContext,
28 ) -> *mut DecQuad;
29 pub fn decQuadCompareTotal(dq: *mut DecQuad, dq1: *const DecQuad, dq2: *const DecQuad) -> *mut DecQuad;
31 pub fn decQuadCompareTotalMag(dq: *mut DecQuad, dq1: *const DecQuad, dq2: *const DecQuad) -> *mut DecQuad;
33 pub fn decQuadCopy(dq: *mut DecQuad, dq1: *const DecQuad) -> *mut DecQuad;
35 pub fn decQuadCopyAbs(dq: *mut DecQuad, dq1: *const DecQuad) -> *mut DecQuad;
37 pub fn decQuadCopyNegate(dq: *mut DecQuad, dq1: *const DecQuad) -> *mut DecQuad;
39 pub fn decQuadCopySign(dq: *mut DecQuad, dq1: *const DecQuad, dq2: *const DecQuad) -> *mut DecQuad;
41 pub fn decQuadDigits(dq1: *const DecQuad) -> c_uint;
43 pub fn decQuadDivide(dq: *mut DecQuad, dq1: *const DecQuad, dq2: *const DecQuad, dc: *mut DecContext)
45 -> *mut DecQuad;
46 pub fn decQuadDivideInteger(
48 dq: *mut DecQuad,
49 dq1: *const DecQuad,
50 dq2: *const DecQuad,
51 dc: *mut DecContext,
52 ) -> *mut DecQuad;
53 pub fn decQuadFMA(
55 dq: *mut DecQuad,
56 dq1: *const DecQuad,
57 dq2: *const DecQuad,
58 dq3: *const DecQuad,
59 dc: *mut DecContext,
60 ) -> *mut DecQuad;
61 pub fn decQuadFromBCD(dq: *mut DecQuad, exp: c_int, bcd: *const c_uchar, sign: c_int) -> *mut DecQuad;
63 pub fn decQuadFromInt32(dq: *mut DecQuad, n: c_int) -> *mut DecQuad;
65 pub fn decQuadFromString(dq: *mut DecQuad, s: *const c_char, dc: *mut DecContext) -> *mut DecQuad;
71 pub fn decQuadFromUInt32(dq: *mut DecQuad, n: c_uint) -> *mut DecQuad;
73 pub fn decQuadFromWider(dq: *mut DecQuad, dq1: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
75 pub fn decQuadGetCoefficient(dq1: *const DecQuad, bcd: *const c_uchar) -> c_int;
77 pub fn decQuadGetExponent(dq1: *const DecQuad) -> DecQuad;
79 pub fn decQuadInvert(dq: *mut DecQuad, dq1: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
81 pub fn decQuadIsCanonical(arg1: *const DecQuad) -> c_uint;
83 pub fn decQuadIsFinite(arg1: *const DecQuad) -> c_uint;
85 pub fn decQuadIsInfinite(arg1: *const DecQuad) -> c_uint;
87 pub fn decQuadIsInteger(arg1: *const DecQuad) -> c_uint;
89 pub fn decQuadIsLogical(arg1: *const DecQuad) -> c_uint;
91 pub fn decQuadIsNaN(arg1: *const DecQuad) -> c_uint;
93 pub fn decQuadIsNegative(arg1: *const DecQuad) -> c_uint;
95 pub fn decQuadIsNormal(arg1: *const DecQuad) -> c_uint;
97 pub fn decQuadIsPositive(arg1: *const DecQuad) -> c_uint;
99 pub fn decQuadIsSignaling(arg1: *const DecQuad) -> c_uint;
101 pub fn decQuadIsSignalling(arg1: *const DecQuad) -> c_uint;
103 pub fn decQuadIsZero(arg1: *const DecQuad) -> c_uint;
105 pub fn decQuadMinus(dq: *mut DecQuad, dq1: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
107 pub fn decQuadMultiply(
109 dq: *mut DecQuad,
110 dq1: *const DecQuad,
111 dq2: *const DecQuad,
112 dc: *mut DecContext,
113 ) -> *mut DecQuad;
114 pub fn decQuadPlus(dq: *mut DecQuad, dq1: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
116 pub fn decQuadQuantize(
118 dq: *mut DecQuad,
119 dq1: *const DecQuad,
120 dq2: *const DecQuad,
121 dc: *mut DecContext,
122 ) -> *mut DecQuad;
123 pub fn decQuadReduce(dq: *mut DecQuad, dq1: *const DecQuad, dc: *mut DecContext) -> *mut DecQuad;
125 pub fn decQuadRemainder(
127 dq: *mut DecQuad,
128 dq1: *const DecQuad,
129 dq2: *const DecQuad,
130 dc: *mut DecContext,
131 ) -> *mut DecQuad;
132 pub fn decQuadScaleB(dq: *mut DecQuad, dq1: *const DecQuad, dq2: *const DecQuad, dc: *mut DecContext)
134 -> *mut DecQuad;
135 pub fn decQuadSubtract(
137 dq: *mut DecQuad,
138 dq1: *const DecQuad,
139 dq2: *const DecQuad,
140 dc: *mut DecContext,
141 ) -> *mut DecQuad;
142 pub fn decQuadToInt32(dq: *const DecQuad, dc: *mut DecContext, rounding: u32) -> c_int;
144 pub fn decQuadToIntegralValue(
146 dq: *mut DecQuad,
147 dq1: *const DecQuad,
148 dc: *mut DecContext,
149 rounding: u32,
150 ) -> *mut DecQuad;
151 pub fn decQuadToString(dq: *const DecQuad, s: *mut c_char) -> *mut c_char;
153 pub fn decQuadToUInt32(dq: *const DecQuad, dc: *mut DecContext, rounding: u32) -> c_uint;
155 pub fn decQuadZero(dq: *mut DecQuad);
157}
158
159