bigint-decimal 1.0.19 → 1.0.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ type SafeValues = string | number | bigint;
2
+ export declare class BigintDecimalBase {
3
+ protected value: bigint;
4
+ protected decimals: number;
5
+ static precision: number;
6
+ precision: number;
7
+ constructor(val?: SafeValues | BigintDecimalBase);
8
+ static setPrecisionGlobal(newPrecision: number): void;
9
+ setPrecision(newPrecision: number): void;
10
+ protected static checkDecimals(decimals: number, name: string): number;
11
+ protected create(value: bigint, decimals: number): this;
12
+ protected trim(): this;
13
+ private toSafeValue;
14
+ private getNumberIFoForBigintDecimal;
15
+ toString(): string;
16
+ toJSON(): string;
17
+ isBigintDecimal(val: unknown): boolean;
18
+ plus(val: SafeValues | BigintDecimalBase): this;
19
+ minus(val: SafeValues | BigintDecimalBase): this;
20
+ times(val: SafeValues | BigintDecimalBase): this;
21
+ round(toDecimals: number): this;
22
+ div(val: SafeValues | BigintDecimalBase): this;
23
+ private compare;
24
+ gt(val: SafeValues | BigintDecimalBase): boolean;
25
+ lt(val: SafeValues | BigintDecimalBase): boolean;
26
+ gte(val: SafeValues | BigintDecimalBase): boolean;
27
+ lte(val: SafeValues | BigintDecimalBase): boolean;
28
+ eq(val: SafeValues | BigintDecimalBase): boolean;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=bigintDecimalBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigintDecimalBase.d.ts","sourceRoot":"","sources":["../../bigintDecimalBase.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAC1C,qBAAa,iBAAiB;IAE1B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAM;IAC7B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAK;IAC/B,MAAM,CAAC,SAAS,EAAE,MAAM,CAAK;IAC7B,SAAS,EAAE,MAAM,CAA+B;IAEhD,YAAY,GAAG,GAAE,UAAU,GAAG,iBAAuB,EAuBpD;IAED,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,QAG7C;IAED,YAAY,CAAC,YAAY,EAAE,MAAM,QAEhC;IAGD,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrE;IAGD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMtD;IAED,SAAS,CAAC,IAAI,IAAI,IAAI,CAWrB;IAED,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,4BAA4B;IAmCpC,QAAQ,IAAI,MAAM,CAoCjB;IAED,MAAM,WAEL;IAMD,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAwBrC;IAED,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAgB9C;IAED,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAW/C;IAED,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAK/C;IAED,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAa9B;IAED,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAe7C;IAED,OAAO,CAAC,OAAO;IAUf,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,WAErC;IAED,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,WAErC;IAED,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,WAEtC;IAED,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,WAEtC;IAED,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,WAErC;CACJ"}
@@ -0,0 +1,250 @@
1
+ export class BigintDecimalBase {
2
+ value = 0n;
3
+ decimals = 0;
4
+ static precision = 20;
5
+ precision = BigintDecimalBase.precision;
6
+ constructor(val = "0") {
7
+ if (val instanceof BigintDecimalBase) {
8
+ this.value = val.value;
9
+ this.decimals = val.decimals;
10
+ return;
11
+ }
12
+ // Fast paths: integers need no parsing
13
+ if (typeof val === "bigint") {
14
+ this.value = val;
15
+ return;
16
+ }
17
+ if (typeof val === "number" && Number.isSafeInteger(val)) {
18
+ this.value = BigInt(val);
19
+ return;
20
+ }
21
+ if (!this.isBigintDecimal(val)) {
22
+ throw new Error(`"${val}" is not safe parameter .`);
23
+ }
24
+ const numberInfo = this.getNumberIFoForBigintDecimal(val);
25
+ this.value = numberInfo.value;
26
+ this.decimals = numberInfo.decimals;
27
+ this.trim();
28
+ }
29
+ static setPrecisionGlobal(newPrecision) {
30
+ // Always the base class, so subclasses share one setting with it
31
+ BigintDecimalBase.precision = BigintDecimalBase.checkDecimals(newPrecision, "precision");
32
+ }
33
+ setPrecision(newPrecision) {
34
+ this.precision = BigintDecimalBase.checkDecimals(newPrecision, "precision");
35
+ }
36
+ // A count of decimal places must be a whole number >= 0 (anything else would corrupt the value)
37
+ static checkDecimals(decimals, name) {
38
+ if (!Number.isSafeInteger(decimals) || decimals < 0) {
39
+ throw new RangeError(`${name} must be a whole number >= 0, got ${decimals}`);
40
+ }
41
+ return decimals;
42
+ }
43
+ // New instance of the same class as `this` (subclasses get their own type back), without parsing
44
+ create(value, decimals) {
45
+ const Constructor = this.constructor;
46
+ const result = new Constructor(this);
47
+ result.value = value;
48
+ result.decimals = decimals;
49
+ return result.trim();
50
+ }
51
+ trim() {
52
+ if (this.value === 0n) {
53
+ this.value = 0n;
54
+ this.decimals = 0;
55
+ }
56
+ // While we have decimals AND the last digit is 0
57
+ while (this.decimals > 0 && this.value !== 0n && this.value % 10n === 0n) {
58
+ this.value /= 10n; // Shrink the number
59
+ this.decimals--; // Shrink the scale
60
+ }
61
+ return this;
62
+ }
63
+ toSafeValue(val) {
64
+ if (typeof val === "string") {
65
+ return val.trim();
66
+ }
67
+ return `${val}`;
68
+ }
69
+ // Parses a string already checked by isBigintDecimal.
70
+ // All digits go to the native BigInt parser in one call, instead of one bigint operation per digit.
71
+ getNumberIFoForBigintDecimal(val) {
72
+ const safeVal = this.toSafeValue(val);
73
+ // Sign
74
+ const first = safeVal.charCodeAt(0);
75
+ const negative = first === 45;
76
+ const start = negative || first === 43 ? 1 : 0;
77
+ // Scientific Notation Handle
78
+ let end = safeVal.indexOf("e");
79
+ if (end === -1)
80
+ end = safeVal.indexOf("E");
81
+ let exponent = 0;
82
+ if (end === -1) {
83
+ end = safeVal.length;
84
+ }
85
+ else {
86
+ // isBigintDecimal guarantees the exponent has digits
87
+ exponent = parseInt(safeVal.slice(end + 1), 10);
88
+ }
89
+ // Digits around the dot
90
+ const dot = safeVal.indexOf(".");
91
+ const hasDot = dot !== -1; // isBigintDecimal guarantees no dot after the exponent
92
+ const digits = hasDot ? safeVal.slice(start, dot) + safeVal.slice(dot + 1, end) : safeVal.slice(start, end);
93
+ let value = BigInt(digits); // isBigintDecimal guarantees at least one digit
94
+ let decimals = (hasDot ? end - dot - 1 : 0) - exponent;
95
+ // Handle negative decimals (large integers)
96
+ if (decimals < 0) {
97
+ value = value * (10n ** BigInt(-decimals));
98
+ decimals = 0;
99
+ }
100
+ ;
101
+ return { value: negative ? -value : value, decimals };
102
+ }
103
+ toString() {
104
+ // 1. Handle Integer case (Fastest exit, Zero Allocation overhead)
105
+ if (this.decimals === 0)
106
+ return this.value.toString();
107
+ // 2. Separate Sign and Magnitude
108
+ // Check sign using BigInt math (fastest)
109
+ const isNegative = this.value < 0n;
110
+ // Get the string of digits ONLY.
111
+ // isNegative ? -this.value : this.value -> creates a temporary BigInt
112
+ // .toString() -> creates the string of digits "123"
113
+ // This is cheaper than creating "-123" and slicing it.
114
+ const s = (isNegative ? -this.value : this.value).toString();
115
+ const len = s.length;
116
+ // 3. Logic for insertion vs padding
117
+ if (len > this.decimals) {
118
+ // Case A: 12345 (2 dec) -> 123.45
119
+ // splitIndex is purely digits before the dot
120
+ const splitIndex = len - this.decimals;
121
+ // Build the absolute decimal string
122
+ const result = s.substring(0, splitIndex) + "." + s.substring(splitIndex);
123
+ // Add sign if needed
124
+ return isNegative ? "-" + result : result;
125
+ }
126
+ // Case B: 5 (2 dec) -> 0.05
127
+ // Calculate zeros needed: 2 decimals - length 1 = 1 zero
128
+ const zerosNeeded = this.decimals - len;
129
+ // Build the result directly
130
+ // "0." + "0" + "5"
131
+ return (isNegative ? "-0." : "0.") + "0".repeat(zerosNeeded) + s;
132
+ }
133
+ toJSON() {
134
+ return this.toString();
135
+ }
136
+ [Symbol.for('nodejs.util.inspect.custom')]() {
137
+ return this.toString();
138
+ }
139
+ isBigintDecimal(val) {
140
+ const s = this.toSafeValue(val);
141
+ if (s.length === 0)
142
+ return false;
143
+ let dot = false, e = false, mantissaDigits = 0, exponentDigits = 0;
144
+ for (let i = 0; i < s.length; i++) {
145
+ const c = s.charCodeAt(i);
146
+ if (c >= 48 && c <= 57) { // 0-9
147
+ if (e)
148
+ exponentDigits++;
149
+ else
150
+ mantissaDigits++;
151
+ continue;
152
+ }
153
+ if (c === 46 && !dot && !e) {
154
+ dot = true;
155
+ continue;
156
+ } // .
157
+ if (i === 0 && (c === 45 || c === 43))
158
+ continue; // +/- at start
159
+ if ((c === 101 || c === 69) && !e) { // e/E
160
+ e = true;
161
+ const next = s.charCodeAt(i + 1);
162
+ if (next === 45 || next === 43)
163
+ i++; // Skip sign after 'e'
164
+ continue;
165
+ }
166
+ return false;
167
+ }
168
+ // A number needs digits: "-", ".", "e5" and "1e" are not numbers
169
+ return mantissaDigits > 0 && (!e || exponentDigits > 0);
170
+ }
171
+ plus(val) {
172
+ const plusValue = val instanceof BigintDecimalBase ? val : new BigintDecimalBase(val);
173
+ // 1. Determine which number has more decimals
174
+ const d1 = this.decimals;
175
+ const d2 = plusValue.decimals;
176
+ const newDecimal = d1 > d2 ? d1 : d2;
177
+ // 2. Align values (Common Denominator)
178
+ // If 'this' has fewer decimals, scale it up.
179
+ const v1 = d1 < newDecimal ? this.value * (10n ** BigInt(newDecimal - d1)) : this.value;
180
+ // If 'plusValue' has fewer decimals, scale it up.
181
+ const v2 = d2 < newDecimal ? plusValue.value * (10n ** BigInt(newDecimal - d2)) : plusValue.value;
182
+ // 3. Now add and return
183
+ return this.create(v1 + v2, newDecimal);
184
+ }
185
+ minus(val) {
186
+ const other = val instanceof BigintDecimalBase ? val : new BigintDecimalBase(val);
187
+ const d1 = this.decimals;
188
+ const d2 = other.decimals;
189
+ const newDecimal = d1 > d2 ? d1 : d2;
190
+ // Scale values to the same precision
191
+ const v1 = d1 < newDecimal ? this.value * (10n ** BigInt(newDecimal - d1)) : this.value;
192
+ const v2 = d2 < newDecimal ? other.value * (10n ** BigInt(newDecimal - d2)) : other.value;
193
+ return this.create(v1 - v2, newDecimal);
194
+ }
195
+ times(val) {
196
+ const other = val instanceof BigintDecimalBase ? val : new BigintDecimalBase(val);
197
+ // Multiplication: (A * 10^d1) * (B * 10^d2) = (A * B) * 10^(d1 + d2)
198
+ return this.create(this.value * other.value, this.decimals + other.decimals);
199
+ }
200
+ round(toDecimals) {
201
+ const diff = this.decimals - BigintDecimalBase.checkDecimals(toDecimals, "round: decimals");
202
+ if (diff <= 0)
203
+ return this; // Already more precise than requested
204
+ const power = 10n ** BigInt(diff);
205
+ const half = power / 2n;
206
+ // Standard rounding: add half of the divisor before dividing
207
+ // This turns 0.999... into 1.0
208
+ const roundedValue = (this.value >= 0n) ? (this.value + half) / power : (this.value - half) / power;
209
+ return this.create(roundedValue, toDecimals);
210
+ }
211
+ div(val) {
212
+ const other = val instanceof BigintDecimalBase ? val : new BigintDecimalBase(val);
213
+ if (other.value === 0n)
214
+ throw new Error("Division by zero");
215
+ let v1 = this.value;
216
+ const v2 = other.value;
217
+ // 1. Scale up once to your "Max Allowed" precision
218
+ const shift = this.precision + other.decimals - this.decimals;
219
+ if (shift > 0)
220
+ v1 *= 10n ** BigInt(shift);
221
+ else if (shift < 0)
222
+ v1 /= 10n ** BigInt(-shift);
223
+ // 2. create() trims it immediately.
224
+ // This is where 0.500000... becomes 0.5 automatically.
225
+ return this.create(v1 / v2, this.precision);
226
+ }
227
+ compare(val) {
228
+ const other = val instanceof BigintDecimalBase ? val : new BigintDecimalBase(val);
229
+ const maxD = Math.max(this.decimals, other.decimals);
230
+ const v1 = this.decimals < maxD ? this.value * (10n ** BigInt(maxD - this.decimals)) : this.value;
231
+ const v2 = other.decimals < maxD ? other.value * (10n ** BigInt(maxD - other.decimals)) : other.value;
232
+ return v1 > v2 ? 1 : v1 < v2 ? -1 : 0;
233
+ }
234
+ gt(val) {
235
+ return this.compare(val) === 1;
236
+ }
237
+ lt(val) {
238
+ return this.compare(val) === -1;
239
+ }
240
+ gte(val) {
241
+ return this.compare(val) >= 0;
242
+ }
243
+ lte(val) {
244
+ return this.compare(val) <= 0;
245
+ }
246
+ eq(val) {
247
+ return this.compare(val) === 0;
248
+ }
249
+ }
250
+ //# sourceMappingURL=bigintDecimalBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigintDecimalBase.js","sourceRoot":"","sources":["../../bigintDecimalBase.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,147 @@
1
- type SafeValues = string | number | bigint;
2
- export declare class BigintDecimal {
3
- private value;
4
- private decimals;
5
- static precision: number;
6
- precision: number;
7
- constructor(val?: SafeValues | BigintDecimal);
8
- static setPrecisionGlobal(newPrecision: number): void;
9
- setPrecision(newPrecision: number): void;
10
- private trim;
11
- private toSafeValue;
12
- private getNumberIFoForBigintDecimal;
13
- toString(): string;
14
- toJSON(): string;
15
- isBigintDecimal(val: unknown): boolean;
16
- plus(val: SafeValues | BigintDecimal): BigintDecimal;
17
- minus(val: SafeValues | BigintDecimal): BigintDecimal;
18
- times(val: SafeValues | BigintDecimal): BigintDecimal;
19
- round(toDecimals: number): BigintDecimal;
20
- div(val: SafeValues | BigintDecimal): BigintDecimal;
21
- private compare;
22
- gt(val: SafeValues | BigintDecimal): boolean;
23
- lt(val: SafeValues | BigintDecimal): boolean;
24
- gte(val: SafeValues | BigintDecimal): boolean;
25
- lte(val: SafeValues | BigintDecimal): boolean;
26
- eq(val: SafeValues | BigintDecimal): boolean;
1
+ import { BigintDecimalBase } from "./bigintDecimalBase.js";
2
+ type DecimalInput = NonNullable<ConstructorParameters<typeof BigintDecimalBase>[0]>;
3
+ /**
4
+ * BigintDecimal with the JS `Math` object's members as statics
5
+ * (except fround, f16round, clz32 and imul, which only make sense for JS floats and 32-bit integers).
6
+ * Functions take the same values as the constructor and return BigintDecimal,
7
+ * computed to `BigintDecimal.precision` decimal places.
8
+ * Where JS Math would return NaN or ±Infinity, they throw a RangeError.
9
+ */
10
+ export declare class BigintDecimal extends BigintDecimalBase {
11
+ constructor(...args: ConstructorParameters<typeof BigintDecimalBase>);
12
+ /** Euler's number, e ≈ 2.718 */
13
+ static get E(): BigintDecimal;
14
+ /** Natural logarithm of 10 ≈ 2.303 */
15
+ static get LN10(): BigintDecimal;
16
+ /** Natural logarithm of 2 ≈ 0.693 */
17
+ static get LN2(): BigintDecimal;
18
+ /** Base-10 logarithm of e ≈ 0.434 */
19
+ static get LOG10E(): BigintDecimal;
20
+ /** Base-2 logarithm of e ≈ 1.443 */
21
+ static get LOG2E(): BigintDecimal;
22
+ /** Ratio of a circle's circumference to its diameter ≈ 3.14159 */
23
+ static get PI(): BigintDecimal;
24
+ /** Square root of 1/2 ≈ 0.707 */
25
+ static get SQRT1_2(): BigintDecimal;
26
+ /** Square root of 2 ≈ 1.414 */
27
+ static get SQRT2(): BigintDecimal;
28
+ /** Absolute value */
29
+ static abs(x: DecimalInput): BigintDecimal;
30
+ /** -1, 0 or 1, depending on the sign of x */
31
+ static sign(x: DecimalInput): BigintDecimal;
32
+ /** Integer part of x (removes the fractional digits) */
33
+ static trunc(x: DecimalInput): BigintDecimal;
34
+ /** Largest integer less than or equal to x */
35
+ static floor(x: DecimalInput): BigintDecimal;
36
+ /** Smallest integer greater than or equal to x */
37
+ static ceil(x: DecimalInput): BigintDecimal;
38
+ /** Rounds to the nearest integer; halves go up (toward +Infinity), like Math.round */
39
+ static round(x: DecimalInput): BigintDecimal;
40
+ /** Largest of the arguments (at least one is required) */
41
+ static max(...values: DecimalInput[]): BigintDecimal;
42
+ /** Smallest of the arguments (at least one is required) */
43
+ static min(...values: DecimalInput[]): BigintDecimal;
44
+ /** Exact sum of all values in an iterable */
45
+ static sumPrecise(values: Iterable<DecimalInput>): BigintDecimal;
46
+ /** Square root of the sum of squares of the arguments */
47
+ static hypot(...values: DecimalInput[]): BigintDecimal;
48
+ /** Square root. Argument must be >= 0. Always correctly rounded. */
49
+ static sqrt(x: DecimalInput): BigintDecimal;
50
+ /** Cube root. Always correctly rounded. */
51
+ static cbrt(x: DecimalInput): BigintDecimal;
52
+ /** base raised to the power of exponent. Integer powers are exact where the result stays reasonably sized. */
53
+ static pow(base: DecimalInput, exponent: DecimalInput): BigintDecimal;
54
+ /** e raised to the power of x */
55
+ static exp(x: DecimalInput): BigintDecimal;
56
+ /** e^x - 1 */
57
+ static expm1(x: DecimalInput): BigintDecimal;
58
+ /** Natural logarithm (base e). Argument must be > 0. */
59
+ static log(x: DecimalInput): BigintDecimal;
60
+ /** Base-10 logarithm. Argument must be > 0. */
61
+ static log10(x: DecimalInput): BigintDecimal;
62
+ /** Base-2 logarithm. Argument must be > 0. */
63
+ static log2(x: DecimalInput): BigintDecimal;
64
+ /** Natural logarithm of 1 + x. Argument must be > -1. */
65
+ static log1p(x: DecimalInput): BigintDecimal;
66
+ /** Sine */
67
+ static sin(x: DecimalInput): BigintDecimal;
68
+ /** Cosine */
69
+ static cos(x: DecimalInput): BigintDecimal;
70
+ /** Tangent */
71
+ static tan(x: DecimalInput): BigintDecimal;
72
+ /** Arcsine. Argument must be in [-1, 1]. */
73
+ static asin(x: DecimalInput): BigintDecimal;
74
+ /** Arccosine. Argument must be in [-1, 1]. */
75
+ static acos(x: DecimalInput): BigintDecimal;
76
+ /** Arctangent */
77
+ static atan(x: DecimalInput): BigintDecimal;
78
+ /** Angle between the positive x-axis and the point (x, y). Note the order: (y, x). */
79
+ static atan2(y: DecimalInput, x: DecimalInput): BigintDecimal;
80
+ /** Hyperbolic sine */
81
+ static sinh(x: DecimalInput): BigintDecimal;
82
+ /** Hyperbolic cosine */
83
+ static cosh(x: DecimalInput): BigintDecimal;
84
+ /** Hyperbolic tangent */
85
+ static tanh(x: DecimalInput): BigintDecimal;
86
+ /** Hyperbolic arcsine */
87
+ static asinh(x: DecimalInput): BigintDecimal;
88
+ /** Hyperbolic arccosine. Argument must be >= 1. */
89
+ static acosh(x: DecimalInput): BigintDecimal;
90
+ /** Hyperbolic arctangent. Argument must be in (-1, 1). */
91
+ static atanh(x: DecimalInput): BigintDecimal;
92
+ /** Random number in [0, 1) with `BigintDecimal.precision` decimal digits */
93
+ static random(): BigintDecimal;
94
+ /**
95
+ * Frees the cached constants (pi, ln2, ln10, the log table) and powers of ten.
96
+ * They are kept at the highest precision used so far and rebuilt on demand, so this is only
97
+ * useful to give memory back after very high precision work. Results do not change.
98
+ */
99
+ static clearCache(): void;
100
+ private static readonly GUARD_BITS;
101
+ private static readonly ATAN_NEWTON_BITS;
102
+ private static readonly RECTANGULAR_BITS;
103
+ private static readonly BINARY_SPLIT_BITS;
104
+ private static readonly constants;
105
+ private static readonly POW10_CACHE_SIZE;
106
+ private static readonly pow10Cache;
107
+ private static compute;
108
+ private static roundDecimal;
109
+ private static parts;
110
+ private static fromParts;
111
+ private static floorScale;
112
+ private static toFixed;
113
+ private static integerPart;
114
+ private static one;
115
+ private static shift;
116
+ private static pow10;
117
+ private static absBig;
118
+ private static bitLength;
119
+ private static floorDiv;
120
+ private static isqrt;
121
+ private static icbrt;
122
+ private static pick;
123
+ private static logBase;
124
+ private static lnPlusRoot;
125
+ private static expPair;
126
+ private static constant;
127
+ private static piFixed;
128
+ private static ln2Fixed;
129
+ private static ln10Fixed;
130
+ private static atanhRatio;
131
+ private static binarySplit;
132
+ private static series;
133
+ private static halvings;
134
+ private static atanRatio;
135
+ private static lnNear1;
136
+ private static lnFixed;
137
+ private static expParts;
138
+ private static expFixed;
139
+ private static sinCosParts;
140
+ private static sinCosLoss;
141
+ private static sinCosFixed;
142
+ private static atanFixed;
143
+ private static atanNewton;
144
+ private static asinFixed;
27
145
  }
28
146
  export { BigintDecimal as default };
29
147
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAC1C,qBAAa,aAAa;IAEtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAa;IAC7B,MAAM,CAAC,SAAS,EAAE,MAAM,CAAK;IAC7B,SAAS,EAAE,MAAM,CAA2B;IAE5C,YAAY,GAAG,GAAE,UAAU,GAAG,aAAmB,EAchD;IAED,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,QAE7C;IAED,YAAY,CAAC,YAAY,EAAE,MAAM,QAEhC;IAGD,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,4BAA4B;IA0CpC,QAAQ,IAAI,MAAM,CAoCjB;IAED,MAAM,WAEL;IAMD,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAmBrC;IAED,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,iBAoBnC;IAED,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,iBAcpC;IAED,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,iBASpC;IAED,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAgBvC;IAED,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,iBAmBlC;IAED,OAAO,CAAC,OAAO;IAUf,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,WAEjC;IAED,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,WAEjC;IAED,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,WAElC;IAED,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,WAElC;IAED,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,WAEjC;CACJ;AAED,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}