Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@phensley/decimal

Package Overview
Dependencies
Maintainers
1
Versions
198
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@phensley/decimal - npm Package Compare versions

Comparing version 1.6.0 to 1.6.1

132

lib-es/decimal.js

@@ -52,4 +52,4 @@ import { add, divide, multiply, subtract, trimLeadingZeros, DivMod } from './math';

var size = function (n) {
var q = (n / 7 /* Constants.RDIGITS */) | 0;
var r = n - q * 7 /* Constants.RDIGITS */;
var q = (n / 7 /* RDIGITS */) | 0;
var r = n - q * 7 /* RDIGITS */;
return r === 0 ? q : q + 1;

@@ -67,3 +67,3 @@ };

this._exp = 0;
this.flag = 0 /* DecimalFlag.NONE */;
this.flag = 0 /* NONE */;
if (typeof num === 'string' || typeof num === 'number') {

@@ -89,3 +89,3 @@ this.parse(num);

Decimal.prototype.isNaN = function () {
return this.flag === 1 /* DecimalFlag.NAN */;
return this.flag === 1 /* NAN */;
};

@@ -102,3 +102,3 @@ /**

Decimal.prototype.isInfinity = function () {
return this.flag === 2 /* DecimalFlag.INFINITY */;
return this.flag === 2 /* INFINITY */;
};

@@ -122,3 +122,3 @@ /**

// NAN is never equal to itself or any other value
if (u.flag === 1 /* DecimalFlag.NAN */ || v.flag === 1 /* DecimalFlag.NAN */) {
if (u.flag === 1 /* NAN */ || v.flag === 1 /* NAN */) {
return -1;

@@ -133,3 +133,3 @@ }

// Positive infinity after all other values
return u.flag === 2 /* DecimalFlag.INFINITY */ ? (u.sign === -1 ? -1 : 1) : v.sign === -1 ? 1 : -1;
return u.flag === 2 /* INFINITY */ ? (u.sign === -1 ? -1 : 1) : v.sign === -1 ? 1 : -1;
}

@@ -234,3 +234,3 @@ u = u.stripTrailingZeros();

v = coerceDecimal(v);
var r = this.handleFlags(0 /* Op.ADDITION */, v);
var r = this.handleFlags(0 /* ADDITION */, v);
if (r === undefined) {

@@ -249,3 +249,3 @@ if (this.isZero()) {

v = coerceDecimal(v);
var r = this.handleFlags(1 /* Op.SUBTRACTION */, v);
var r = this.handleFlags(1 /* SUBTRACTION */, v);
if (r === undefined) {

@@ -265,3 +265,3 @@ if (this.isZero()) {

v = coerceDecimal(v);
var r = this.handleFlags(2 /* Op.MULTIPLICATION */, v);
var r = this.handleFlags(2 /* MULTIPLICATION */, v);
if (r !== undefined) {

@@ -302,3 +302,3 @@ return r;

v = coerceDecimal(v);
var r = this.handleFlags(3 /* Op.DIVISION */, v);
var r = this.handleFlags(3 /* DIVISION */, v);
if (r !== undefined) {

@@ -352,5 +352,5 @@ return r;

v = coerceDecimal(v);
var rq = this.handleFlags(3 /* Op.DIVISION */, v);
var rq = this.handleFlags(3 /* DIVISION */, v);
if (rq !== undefined) {
var rm = this.handleFlags(4 /* Op.MOD */, v);
var rm = this.handleFlags(4 /* MOD */, v);
return [rq, rm];

@@ -394,3 +394,3 @@ }

v = coerceDecimal(v);
var r = this.handleFlags(4 /* Op.MOD */, v);
var r = this.handleFlags(4 /* MOD */, v);
return r === undefined ? this.divmod(v)[1] : r;

@@ -411,3 +411,3 @@ };

var n = d[i];
r = i * 7 /* Constants.RDIGITS */;
r = i * 7 /* RDIGITS */;
while (n % 10 === 0) {

@@ -456,3 +456,3 @@ n /= 10 | 0;

var len = this.data.length;
return (len - 1) * 7 /* Constants.RDIGITS */ + digitCount(this.data[len - 1]);
return (len - 1) * 7 /* RDIGITS */ + digitCount(this.data[len - 1]);
};

@@ -654,3 +654,3 @@ /**

var d = this.data[i];
var c = i === last ? digitCount(d) : 7 /* Constants.RDIGITS */;
var c = i === last ? digitCount(d) : 7 /* RDIGITS */;
// Loop over the decimal digits

@@ -701,5 +701,5 @@ for (var j = 0; j < c; j++) {

switch (this.flag) {
case 1 /* DecimalFlag.NAN */:
case 1 /* NAN */:
return 'NaN';
case 2 /* DecimalFlag.INFINITY */:
case 2 /* INFINITY */:
default:

@@ -711,5 +711,5 @@ return this.sign === 1 ? 'Infinity' : '-Infinity';

switch (this.flag) {
case 1 /* DecimalFlag.NAN */:
case 1 /* NAN */:
return [{ type: 'nan', value: 'NaN' }];
case 2 /* DecimalFlag.INFINITY */:
case 2 /* INFINITY */:
default:

@@ -754,11 +754,11 @@ var s = this.sign === 1 ? 'Infinity' : '-Infinity';

// Any operation involving a NAN returns a NAN
if (uflag === 1 /* DecimalFlag.NAN */ || vflag === 1 /* DecimalFlag.NAN */) {
if (uflag === 1 /* NAN */ || vflag === 1 /* NAN */) {
return NAN;
}
var uinf = uflag === 2 /* DecimalFlag.INFINITY */;
var vinf = vflag === 2 /* DecimalFlag.INFINITY */;
var uinf = uflag === 2 /* INFINITY */;
var vinf = vflag === 2 /* INFINITY */;
var uzero = u.isZero();
var vzero = v.isZero();
switch (op) {
case 0 /* Op.ADDITION */:
case 0 /* ADDITION */:
if (uinf && vinf) {

@@ -771,3 +771,3 @@ return u.sign === v.sign ? (u.sign === 1 ? POSITIVE_INFINITY : NEGATIVE_INFINITY) : NAN;

break;
case 1 /* Op.SUBTRACTION */:
case 1 /* SUBTRACTION */:
if (uinf && vinf) {

@@ -786,3 +786,3 @@ return u.sign === v.sign ? NAN : u.sign === 1 ? POSITIVE_INFINITY : NEGATIVE_INFINITY;

break;
case 2 /* Op.MULTIPLICATION */:
case 2 /* MULTIPLICATION */:
if (uinf) {

@@ -795,3 +795,3 @@ return vzero ? NAN : u.sign === v.sign ? POSITIVE_INFINITY : NEGATIVE_INFINITY;

break;
case 3 /* Op.DIVISION */:
case 3 /* DIVISION */:
if (uinf && vinf) {

@@ -816,3 +816,3 @@ return NAN;

break;
case 4 /* Op.MOD */:
case 4 /* MOD */:
if (uinf || vzero) {

@@ -847,4 +847,4 @@ return NAN;

// Compute the shift in terms of our radix.
var q = (shift / 7 /* Constants.RDIGITS */) | 0;
var r = shift - q * 7 /* Constants.RDIGITS */;
var q = (shift / 7 /* RDIGITS */) | 0;
var r = shift - q * 7 /* RDIGITS */;
// Expand w to hold shifted result and zero all elements.

@@ -863,3 +863,3 @@ var n = size(prec + shift);

var powlo = POWERS10[r];
var powhi = POWERS10[7 /* Constants.RDIGITS */ - r];
var powhi = POWERS10[7 /* RDIGITS */ - r];
var hi = 0;

@@ -912,3 +912,3 @@ var lo = 0;

var div = new DivMod();
var _d = div.word(shift, 7 /* Constants.RDIGITS */), q = _d[0], r = _d[1];
var _d = div.word(shift, 7 /* RDIGITS */), q = _d[0], r = _d[1];
var data = w.data.slice();

@@ -921,3 +921,3 @@ w.data.fill(0);

// q is always non-zero here, else there would be no shift
_a = div.pow10(data[q - 1], 7 /* Constants.RDIGITS */ - 1), rnd = _a[0], rest = _a[1];
_a = div.pow10(data[q - 1], 7 /* RDIGITS */ - 1), rnd = _a[0], rest = _a[1];
if (rest === 0) {

@@ -932,3 +932,3 @@ rest = allzero(data, q - 1) === 0 ? 1 : 0;

var hiprev = 0;
var ph = POWERS10[7 /* Constants.RDIGITS */ - r];
var ph = POWERS10[7 /* RDIGITS */ - r];
// q is always < data.length here; otherwise r == 0

@@ -998,3 +998,3 @@ _b = div.pow10(data[q], r), hiprev = _b[0], rest = _b[1];

s = d[i] + k;
k = s === 10000000 /* Constants.RADIX */ ? 1 : 0;
k = s === 10000000 /* RADIX */ ? 1 : 0;
d[i] = k ? 0 : s;

@@ -1094,7 +1094,7 @@ }

if (isNaN(arg)) {
this.flag = 1 /* DecimalFlag.NAN */;
this.flag = 1 /* NAN */;
return;
}
if (!isFinite(arg)) {
this.flag = 2 /* DecimalFlag.INFINITY */;
this.flag = 2 /* INFINITY */;
this.sign = arg === Infinity ? 1 : -1;

@@ -1121,7 +1121,7 @@ return;

if (NAN_VALUES.has(str)) {
this.flag = 1 /* DecimalFlag.NAN */;
this.flag = 1 /* NAN */;
return;
}
if (POS_INFINITY.has(str)) {
this.flag = 2 /* DecimalFlag.INFINITY */;
this.flag = 2 /* INFINITY */;
this.sign = 1;

@@ -1131,3 +1131,3 @@ return;

if (NEG_INFINITY.has(str)) {
this.flag = 2 /* DecimalFlag.INFINITY */;
this.flag = 2 /* INFINITY */;
this.sign = -1;

@@ -1156,5 +1156,5 @@ return;

switch (code) {
case 69 /* Chars.ELOWER */:
case 101 /* Chars.EUPPER */:
if (flags & 4 /* ParseFlags.EXP */) {
case 69 /* ELOWER */:
case 101 /* EUPPER */:
if (flags & 4 /* EXP */) {
return "Extra exponent character at ".concat(i);

@@ -1170,4 +1170,4 @@ }

// Indicate we have an exponent, and clear the sign flag.
flags |= 4 /* ParseFlags.EXP */;
flags &= ~1 /* ParseFlags.SIGN */;
flags |= 4 /* EXP */;
flags &= ~1 /* SIGN */;
// Copy the parsed number to the exponent and reset the digit count.

@@ -1180,34 +1180,34 @@ dig = 0;

break;
case 45 /* Chars.MINUS */:
case 43 /* Chars.PLUS */:
case 45 /* MINUS */:
case 43 /* PLUS */:
if (dig === 0) {
return 'Found a bare sign symbol';
}
if (flags & 1 /* ParseFlags.SIGN */) {
if (flags & 1 /* SIGN */) {
return "Duplicate sign character at ".concat(i);
}
sign = code === 45 /* Chars.MINUS */ ? -1 : 1;
flags |= 1 /* ParseFlags.SIGN */;
sign = code === 45 /* MINUS */ ? -1 : 1;
flags |= 1 /* SIGN */;
break;
case 46 /* Chars.DOT */:
if (flags & 2 /* ParseFlags.POINT */) {
case 46 /* DOT */:
if (flags & 2 /* POINT */) {
return "Extra radix point seen at ".concat(i);
}
flags |= 2 /* ParseFlags.POINT */;
flags |= 2 /* POINT */;
exp -= dig;
break;
case 48 /* Chars.DIGIT0 */:
case 49 /* Chars.DIGIT1 */:
case 50 /* Chars.DIGIT2 */:
case 51 /* Chars.DIGIT3 */:
case 52 /* Chars.DIGIT4 */:
case 53 /* Chars.DIGIT5 */:
case 54 /* Chars.DIGIT6 */:
case 55 /* Chars.DIGIT7 */:
case 56 /* Chars.DIGIT8 */:
case 57 /* Chars.DIGIT9 */:
n += (code - 48 /* Chars.DIGIT0 */) * POWERS10[z];
case 48 /* DIGIT0 */:
case 49 /* DIGIT1 */:
case 50 /* DIGIT2 */:
case 51 /* DIGIT3 */:
case 52 /* DIGIT4 */:
case 53 /* DIGIT5 */:
case 54 /* DIGIT6 */:
case 55 /* DIGIT7 */:
case 56 /* DIGIT8 */:
case 57 /* DIGIT9 */:
n += (code - 48 /* DIGIT0 */) * POWERS10[z];
z++;
dig++;
if (z === 7 /* Constants.RDIGITS */) {
if (z === 7 /* RDIGITS */) {
data.push(n);

@@ -1214,0 +1214,0 @@ n = 0;

@@ -19,5 +19,5 @@ import { POWERS10 } from './types';

var z = u[j] + vj + k;
w[j] = z % 10000000 /* Constants.RADIX */;
w[j] = z % 10000000 /* RADIX */;
// .. k is being set to 1 or 0, to carry
k = (z / 10000000 /* Constants.RADIX */) | 0;
k = (z / 10000000 /* RADIX */) | 0;
// A3. Loop on j

@@ -46,3 +46,3 @@ j++;

var z = u[j] - v[j] - k;
w[j] = z < 0 ? z + 10000000 /* Constants.RADIX */ : z;
w[j] = z < 0 ? z + 10000000 /* RADIX */ : z;
// k is set to 1 or 0, indicating a borrow

@@ -56,3 +56,3 @@ k = z < 0 ? 1 : 0;

var z = u[j] - k;
w[j] = z < 0 ? z + 10000000 /* Constants.RADIX */ : z;
w[j] = z < 0 ? z + 10000000 /* RADIX */ : z;
k = z < 0 ? 1 : 0;

@@ -89,4 +89,4 @@ j++;

var p = k + w[i + j] + u[i] * v[j];
k = (p / 10000000 /* Constants.RADIX */) | 0;
w[i + j] = p - k * 10000000 /* Constants.RADIX */;
k = (p / 10000000 /* RADIX */) | 0;
w[i + j] = p - k * 10000000 /* RADIX */;
// M5. Loop on i

@@ -111,4 +111,4 @@ i++;

var p = k + u[i] * v;
k = (p / 10000000 /* Constants.RADIX */) | 0;
w[i] = p - k * 10000000 /* Constants.RADIX */;
k = (p / 10000000 /* RADIX */) | 0;
w[i] = p - k * 10000000 /* RADIX */;
}

@@ -143,3 +143,3 @@ if (k > 0) {

// D1. Normalize
var d = (10000000 /* Constants.RADIX */ / (v[n - 1] + 1)) | 0;
var d = (10000000 /* RADIX */ / (v[n - 1] + 1)) | 0;
if (d !== 1) {

@@ -156,3 +156,3 @@ multiplyword(u, uc, nplusm, d);

// D3. Calculate q̂ and r̂.
p = u[j + n - 1] + u[j + n] * 10000000 /* Constants.RADIX */;
p = u[j + n - 1] + u[j + n] * 10000000 /* RADIX */;
var qhat = (p / v[n - 1]) | 0;

@@ -162,6 +162,6 @@ var rhat = p - qhat * v[n - 1];

// D3. Test if q̂ = radix ...
if (qhat < 10000000 /* Constants.RADIX */) {
if (qhat < 10000000 /* RADIX */) {
var z = qhat * v[n - 2];
hi = (z / 10000000 /* Constants.RADIX */) | 0;
lo = z - hi * 10000000 /* Constants.RADIX */;
hi = (z / 10000000 /* RADIX */) | 0;
lo = z - hi * 10000000 /* RADIX */;
if (hi <= rhat) {

@@ -176,3 +176,3 @@ if (hi !== rhat || lo <= u[j + n - 2]) {

rhat += v[n - 1];
if (rhat >= 10000000 /* Constants.RADIX */) {
if (rhat >= 10000000 /* RADIX */) {
break;

@@ -187,8 +187,8 @@ }

p = qhat * v[i] + k;
hi = (p / 10000000 /* Constants.RADIX */) | 0;
lo = p - hi * 10000000 /* Constants.RADIX */;
hi = (p / 10000000 /* RADIX */) | 0;
lo = p - hi * 10000000 /* RADIX */;
// Subtract and determine carry.
var x = u[i + j] - lo;
k = x < 0 ? 1 : 0;
u[i + j] = k ? x + 10000000 /* Constants.RADIX */ : x;
u[i + j] = k ? x + 10000000 /* RADIX */ : x;
k += hi;

@@ -212,3 +212,3 @@ }

for (var i = n - 1; i >= 0; i--) {
p = u[i] + k * 10000000 /* Constants.RADIX */;
p = u[i] + k * 10000000 /* RADIX */;
r[i] = (p / d) | 0;

@@ -230,3 +230,3 @@ k = p - r[i] * d;

for (var i = n - 1; i >= 0; i--) {
var p = u[i] + r * 10000000 /* Constants.RADIX */;
var p = u[i] + r * 10000000 /* RADIX */;
q[i] = (p / v) | 0;

@@ -246,4 +246,4 @@ r = p - q[i] * v;

s = u[i + j] + (v[i] + k);
k = s >= 10000000 /* Constants.RADIX */ ? 1 : 0;
u[i + j] = k ? s - 10000000 /* Constants.RADIX */ : s;
k = s >= 10000000 /* RADIX */ ? 1 : 0;
u[i + j] = k ? s - 10000000 /* RADIX */ : s;
i++;

@@ -253,4 +253,4 @@ }

s = u[i + j] + k;
k = s === 10000000 /* Constants.RADIX */ ? 1 : /* istanbul ignore next */ 0;
u[i + j] = k === 1 ? s - 10000000 /* Constants.RADIX */ : /* istanbul ignore next */ s;
k = s === 10000000 /* RADIX */ ? 1 : /* istanbul ignore next */ 0;
u[i + j] = k === 1 ? s - 10000000 /* RADIX */ : /* istanbul ignore next */ s;
i++;

@@ -257,0 +257,0 @@ }

@@ -9,3 +9,3 @@ import { DivMod } from './math';

var m = b.length;
var _c = div.word(shift, 7 /* Constants.RDIGITS */), q = _c[0], r = _c[1];
var _c = div.word(shift, 7 /* RDIGITS */), q = _c[0], r = _c[1];
if (r === 0) {

@@ -27,3 +27,3 @@ while (--m >= 0) {

--n;
_a = div.pow10(b[m--], 7 /* Constants.RDIGITS */ - r), hi = _a[0], loprev = _a[1];
_a = div.pow10(b[m--], 7 /* RDIGITS */ - r), hi = _a[0], loprev = _a[1];
if (hi !== 0) {

@@ -38,3 +38,3 @@ c = cmp(a[n], hi);

for (; m >= 0; m--, n--) {
_b = div.pow10(b[m], 7 /* Constants.RDIGITS */ - r), hi = _b[0], lo = _b[1];
_b = div.pow10(b[m], 7 /* RDIGITS */ - r), hi = _b[0], lo = _b[1];
x = ph * loprev + hi;

@@ -69,13 +69,13 @@ c = cmp(a[n], x);

export var digitCount = function (w) {
if (w < 10000 /* Constants.P4 */) {
if (w < 100 /* Constants.P2 */) {
return w < 10 /* Constants.P1 */ ? 1 : 2;
if (w < 10000 /* P4 */) {
if (w < 100 /* P2 */) {
return w < 10 /* P1 */ ? 1 : 2;
}
return w < 1000 /* Constants.P3 */ ? 3 : 4;
return w < 1000 /* P3 */ ? 3 : 4;
}
if (w < 1000000 /* Constants.P6 */) {
return w < 100000 /* Constants.P5 */ ? 5 : 6;
if (w < 1000000 /* P6 */) {
return w < 100000 /* P5 */ ? 5 : 6;
}
return w < 10000000 /* Constants.P7 */ ? 7 : 8;
return w < 10000000 /* P7 */ ? 7 : 8;
};
//# sourceMappingURL=operations.js.map
export var POWERS10 = [
1 /* Constants.P0 */,
10 /* Constants.P1 */,
100 /* Constants.P2 */,
1000 /* Constants.P3 */,
10000 /* Constants.P4 */,
100000 /* Constants.P5 */,
1000000 /* Constants.P6 */,
10000000 /* Constants.P7 */,
100000000 /* Constants.P8 */,
1 /* P0 */,
10 /* P1 */,
100 /* P2 */,
1000 /* P3 */,
10000 /* P4 */,
100000 /* P5 */,
1000000 /* P6 */,
10000000 /* P7 */,
100000000 /* P8 */,
];
//# sourceMappingURL=types.js.map

@@ -56,4 +56,4 @@ "use strict";

var size = function (n) {
var q = (n / 7 /* Constants.RDIGITS */) | 0;
var r = n - q * 7 /* Constants.RDIGITS */;
var q = (n / 7 /* RDIGITS */) | 0;
var r = n - q * 7 /* RDIGITS */;
return r === 0 ? q : q + 1;

@@ -71,3 +71,3 @@ };

this._exp = 0;
this.flag = 0 /* DecimalFlag.NONE */;
this.flag = 0 /* NONE */;
if (typeof num === 'string' || typeof num === 'number') {

@@ -93,3 +93,3 @@ this.parse(num);

Decimal.prototype.isNaN = function () {
return this.flag === 1 /* DecimalFlag.NAN */;
return this.flag === 1 /* NAN */;
};

@@ -106,3 +106,3 @@ /**

Decimal.prototype.isInfinity = function () {
return this.flag === 2 /* DecimalFlag.INFINITY */;
return this.flag === 2 /* INFINITY */;
};

@@ -126,3 +126,3 @@ /**

// NAN is never equal to itself or any other value
if (u.flag === 1 /* DecimalFlag.NAN */ || v.flag === 1 /* DecimalFlag.NAN */) {
if (u.flag === 1 /* NAN */ || v.flag === 1 /* NAN */) {
return -1;

@@ -137,3 +137,3 @@ }

// Positive infinity after all other values
return u.flag === 2 /* DecimalFlag.INFINITY */ ? (u.sign === -1 ? -1 : 1) : v.sign === -1 ? 1 : -1;
return u.flag === 2 /* INFINITY */ ? (u.sign === -1 ? -1 : 1) : v.sign === -1 ? 1 : -1;
}

@@ -238,3 +238,3 @@ u = u.stripTrailingZeros();

v = (0, exports.coerceDecimal)(v);
var r = this.handleFlags(0 /* Op.ADDITION */, v);
var r = this.handleFlags(0 /* ADDITION */, v);
if (r === undefined) {

@@ -253,3 +253,3 @@ if (this.isZero()) {

v = (0, exports.coerceDecimal)(v);
var r = this.handleFlags(1 /* Op.SUBTRACTION */, v);
var r = this.handleFlags(1 /* SUBTRACTION */, v);
if (r === undefined) {

@@ -269,3 +269,3 @@ if (this.isZero()) {

v = (0, exports.coerceDecimal)(v);
var r = this.handleFlags(2 /* Op.MULTIPLICATION */, v);
var r = this.handleFlags(2 /* MULTIPLICATION */, v);
if (r !== undefined) {

@@ -306,3 +306,3 @@ return r;

v = (0, exports.coerceDecimal)(v);
var r = this.handleFlags(3 /* Op.DIVISION */, v);
var r = this.handleFlags(3 /* DIVISION */, v);
if (r !== undefined) {

@@ -356,5 +356,5 @@ return r;

v = (0, exports.coerceDecimal)(v);
var rq = this.handleFlags(3 /* Op.DIVISION */, v);
var rq = this.handleFlags(3 /* DIVISION */, v);
if (rq !== undefined) {
var rm = this.handleFlags(4 /* Op.MOD */, v);
var rm = this.handleFlags(4 /* MOD */, v);
return [rq, rm];

@@ -398,3 +398,3 @@ }

v = (0, exports.coerceDecimal)(v);
var r = this.handleFlags(4 /* Op.MOD */, v);
var r = this.handleFlags(4 /* MOD */, v);
return r === undefined ? this.divmod(v)[1] : r;

@@ -415,3 +415,3 @@ };

var n = d[i];
r = i * 7 /* Constants.RDIGITS */;
r = i * 7 /* RDIGITS */;
while (n % 10 === 0) {

@@ -460,3 +460,3 @@ n /= 10 | 0;

var len = this.data.length;
return (len - 1) * 7 /* Constants.RDIGITS */ + (0, operations_1.digitCount)(this.data[len - 1]);
return (len - 1) * 7 /* RDIGITS */ + (0, operations_1.digitCount)(this.data[len - 1]);
};

@@ -658,3 +658,3 @@ /**

var d = this.data[i];
var c = i === last ? (0, operations_1.digitCount)(d) : 7 /* Constants.RDIGITS */;
var c = i === last ? (0, operations_1.digitCount)(d) : 7 /* RDIGITS */;
// Loop over the decimal digits

@@ -705,5 +705,5 @@ for (var j = 0; j < c; j++) {

switch (this.flag) {
case 1 /* DecimalFlag.NAN */:
case 1 /* NAN */:
return 'NaN';
case 2 /* DecimalFlag.INFINITY */:
case 2 /* INFINITY */:
default:

@@ -715,5 +715,5 @@ return this.sign === 1 ? 'Infinity' : '-Infinity';

switch (this.flag) {
case 1 /* DecimalFlag.NAN */:
case 1 /* NAN */:
return [{ type: 'nan', value: 'NaN' }];
case 2 /* DecimalFlag.INFINITY */:
case 2 /* INFINITY */:
default:

@@ -758,11 +758,11 @@ var s = this.sign === 1 ? 'Infinity' : '-Infinity';

// Any operation involving a NAN returns a NAN
if (uflag === 1 /* DecimalFlag.NAN */ || vflag === 1 /* DecimalFlag.NAN */) {
if (uflag === 1 /* NAN */ || vflag === 1 /* NAN */) {
return NAN;
}
var uinf = uflag === 2 /* DecimalFlag.INFINITY */;
var vinf = vflag === 2 /* DecimalFlag.INFINITY */;
var uinf = uflag === 2 /* INFINITY */;
var vinf = vflag === 2 /* INFINITY */;
var uzero = u.isZero();
var vzero = v.isZero();
switch (op) {
case 0 /* Op.ADDITION */:
case 0 /* ADDITION */:
if (uinf && vinf) {

@@ -775,3 +775,3 @@ return u.sign === v.sign ? (u.sign === 1 ? POSITIVE_INFINITY : NEGATIVE_INFINITY) : NAN;

break;
case 1 /* Op.SUBTRACTION */:
case 1 /* SUBTRACTION */:
if (uinf && vinf) {

@@ -790,3 +790,3 @@ return u.sign === v.sign ? NAN : u.sign === 1 ? POSITIVE_INFINITY : NEGATIVE_INFINITY;

break;
case 2 /* Op.MULTIPLICATION */:
case 2 /* MULTIPLICATION */:
if (uinf) {

@@ -799,3 +799,3 @@ return vzero ? NAN : u.sign === v.sign ? POSITIVE_INFINITY : NEGATIVE_INFINITY;

break;
case 3 /* Op.DIVISION */:
case 3 /* DIVISION */:
if (uinf && vinf) {

@@ -820,3 +820,3 @@ return NAN;

break;
case 4 /* Op.MOD */:
case 4 /* MOD */:
if (uinf || vzero) {

@@ -851,4 +851,4 @@ return NAN;

// Compute the shift in terms of our radix.
var q = (shift / 7 /* Constants.RDIGITS */) | 0;
var r = shift - q * 7 /* Constants.RDIGITS */;
var q = (shift / 7 /* RDIGITS */) | 0;
var r = shift - q * 7 /* RDIGITS */;
// Expand w to hold shifted result and zero all elements.

@@ -867,3 +867,3 @@ var n = size(prec + shift);

var powlo = types_1.POWERS10[r];
var powhi = types_1.POWERS10[7 /* Constants.RDIGITS */ - r];
var powhi = types_1.POWERS10[7 /* RDIGITS */ - r];
var hi = 0;

@@ -916,3 +916,3 @@ var lo = 0;

var div = new math_1.DivMod();
var _d = div.word(shift, 7 /* Constants.RDIGITS */), q = _d[0], r = _d[1];
var _d = div.word(shift, 7 /* RDIGITS */), q = _d[0], r = _d[1];
var data = w.data.slice();

@@ -925,3 +925,3 @@ w.data.fill(0);

// q is always non-zero here, else there would be no shift
_a = div.pow10(data[q - 1], 7 /* Constants.RDIGITS */ - 1), rnd = _a[0], rest = _a[1];
_a = div.pow10(data[q - 1], 7 /* RDIGITS */ - 1), rnd = _a[0], rest = _a[1];
if (rest === 0) {

@@ -936,3 +936,3 @@ rest = (0, operations_1.allzero)(data, q - 1) === 0 ? 1 : 0;

var hiprev = 0;
var ph = types_1.POWERS10[7 /* Constants.RDIGITS */ - r];
var ph = types_1.POWERS10[7 /* RDIGITS */ - r];
// q is always < data.length here; otherwise r == 0

@@ -1002,3 +1002,3 @@ _b = div.pow10(data[q], r), hiprev = _b[0], rest = _b[1];

s = d[i] + k;
k = s === 10000000 /* Constants.RADIX */ ? 1 : 0;
k = s === 10000000 /* RADIX */ ? 1 : 0;
d[i] = k ? 0 : s;

@@ -1098,7 +1098,7 @@ }

if (isNaN(arg)) {
this.flag = 1 /* DecimalFlag.NAN */;
this.flag = 1 /* NAN */;
return;
}
if (!isFinite(arg)) {
this.flag = 2 /* DecimalFlag.INFINITY */;
this.flag = 2 /* INFINITY */;
this.sign = arg === Infinity ? 1 : -1;

@@ -1125,7 +1125,7 @@ return;

if (NAN_VALUES.has(str)) {
this.flag = 1 /* DecimalFlag.NAN */;
this.flag = 1 /* NAN */;
return;
}
if (POS_INFINITY.has(str)) {
this.flag = 2 /* DecimalFlag.INFINITY */;
this.flag = 2 /* INFINITY */;
this.sign = 1;

@@ -1135,3 +1135,3 @@ return;

if (NEG_INFINITY.has(str)) {
this.flag = 2 /* DecimalFlag.INFINITY */;
this.flag = 2 /* INFINITY */;
this.sign = -1;

@@ -1160,5 +1160,5 @@ return;

switch (code) {
case 69 /* Chars.ELOWER */:
case 101 /* Chars.EUPPER */:
if (flags & 4 /* ParseFlags.EXP */) {
case 69 /* ELOWER */:
case 101 /* EUPPER */:
if (flags & 4 /* EXP */) {
return "Extra exponent character at ".concat(i);

@@ -1174,4 +1174,4 @@ }

// Indicate we have an exponent, and clear the sign flag.
flags |= 4 /* ParseFlags.EXP */;
flags &= ~1 /* ParseFlags.SIGN */;
flags |= 4 /* EXP */;
flags &= ~1 /* SIGN */;
// Copy the parsed number to the exponent and reset the digit count.

@@ -1184,34 +1184,34 @@ dig = 0;

break;
case 45 /* Chars.MINUS */:
case 43 /* Chars.PLUS */:
case 45 /* MINUS */:
case 43 /* PLUS */:
if (dig === 0) {
return 'Found a bare sign symbol';
}
if (flags & 1 /* ParseFlags.SIGN */) {
if (flags & 1 /* SIGN */) {
return "Duplicate sign character at ".concat(i);
}
sign = code === 45 /* Chars.MINUS */ ? -1 : 1;
flags |= 1 /* ParseFlags.SIGN */;
sign = code === 45 /* MINUS */ ? -1 : 1;
flags |= 1 /* SIGN */;
break;
case 46 /* Chars.DOT */:
if (flags & 2 /* ParseFlags.POINT */) {
case 46 /* DOT */:
if (flags & 2 /* POINT */) {
return "Extra radix point seen at ".concat(i);
}
flags |= 2 /* ParseFlags.POINT */;
flags |= 2 /* POINT */;
exp -= dig;
break;
case 48 /* Chars.DIGIT0 */:
case 49 /* Chars.DIGIT1 */:
case 50 /* Chars.DIGIT2 */:
case 51 /* Chars.DIGIT3 */:
case 52 /* Chars.DIGIT4 */:
case 53 /* Chars.DIGIT5 */:
case 54 /* Chars.DIGIT6 */:
case 55 /* Chars.DIGIT7 */:
case 56 /* Chars.DIGIT8 */:
case 57 /* Chars.DIGIT9 */:
n += (code - 48 /* Chars.DIGIT0 */) * types_1.POWERS10[z];
case 48 /* DIGIT0 */:
case 49 /* DIGIT1 */:
case 50 /* DIGIT2 */:
case 51 /* DIGIT3 */:
case 52 /* DIGIT4 */:
case 53 /* DIGIT5 */:
case 54 /* DIGIT6 */:
case 55 /* DIGIT7 */:
case 56 /* DIGIT8 */:
case 57 /* DIGIT9 */:
n += (code - 48 /* DIGIT0 */) * types_1.POWERS10[z];
z++;
dig++;
if (z === 7 /* Constants.RDIGITS */) {
if (z === 7 /* RDIGITS */) {
data.push(n);

@@ -1218,0 +1218,0 @@ n = 0;

@@ -22,5 +22,5 @@ "use strict";

var z = u[j] + vj + k;
w[j] = z % 10000000 /* Constants.RADIX */;
w[j] = z % 10000000 /* RADIX */;
// .. k is being set to 1 or 0, to carry
k = (z / 10000000 /* Constants.RADIX */) | 0;
k = (z / 10000000 /* RADIX */) | 0;
// A3. Loop on j

@@ -50,3 +50,3 @@ j++;

var z = u[j] - v[j] - k;
w[j] = z < 0 ? z + 10000000 /* Constants.RADIX */ : z;
w[j] = z < 0 ? z + 10000000 /* RADIX */ : z;
// k is set to 1 or 0, indicating a borrow

@@ -60,3 +60,3 @@ k = z < 0 ? 1 : 0;

var z = u[j] - k;
w[j] = z < 0 ? z + 10000000 /* Constants.RADIX */ : z;
w[j] = z < 0 ? z + 10000000 /* RADIX */ : z;
k = z < 0 ? 1 : 0;

@@ -94,4 +94,4 @@ j++;

var p = k + w[i + j] + u[i] * v[j];
k = (p / 10000000 /* Constants.RADIX */) | 0;
w[i + j] = p - k * 10000000 /* Constants.RADIX */;
k = (p / 10000000 /* RADIX */) | 0;
w[i + j] = p - k * 10000000 /* RADIX */;
// M5. Loop on i

@@ -117,4 +117,4 @@ i++;

var p = k + u[i] * v;
k = (p / 10000000 /* Constants.RADIX */) | 0;
w[i] = p - k * 10000000 /* Constants.RADIX */;
k = (p / 10000000 /* RADIX */) | 0;
w[i] = p - k * 10000000 /* RADIX */;
}

@@ -150,3 +150,3 @@ if (k > 0) {

// D1. Normalize
var d = (10000000 /* Constants.RADIX */ / (v[n - 1] + 1)) | 0;
var d = (10000000 /* RADIX */ / (v[n - 1] + 1)) | 0;
if (d !== 1) {

@@ -163,3 +163,3 @@ (0, exports.multiplyword)(u, uc, nplusm, d);

// D3. Calculate q̂ and r̂.
p = u[j + n - 1] + u[j + n] * 10000000 /* Constants.RADIX */;
p = u[j + n - 1] + u[j + n] * 10000000 /* RADIX */;
var qhat = (p / v[n - 1]) | 0;

@@ -169,6 +169,6 @@ var rhat = p - qhat * v[n - 1];

// D3. Test if q̂ = radix ...
if (qhat < 10000000 /* Constants.RADIX */) {
if (qhat < 10000000 /* RADIX */) {
var z = qhat * v[n - 2];
hi = (z / 10000000 /* Constants.RADIX */) | 0;
lo = z - hi * 10000000 /* Constants.RADIX */;
hi = (z / 10000000 /* RADIX */) | 0;
lo = z - hi * 10000000 /* RADIX */;
if (hi <= rhat) {

@@ -183,3 +183,3 @@ if (hi !== rhat || lo <= u[j + n - 2]) {

rhat += v[n - 1];
if (rhat >= 10000000 /* Constants.RADIX */) {
if (rhat >= 10000000 /* RADIX */) {
break;

@@ -194,8 +194,8 @@ }

p = qhat * v[i] + k;
hi = (p / 10000000 /* Constants.RADIX */) | 0;
lo = p - hi * 10000000 /* Constants.RADIX */;
hi = (p / 10000000 /* RADIX */) | 0;
lo = p - hi * 10000000 /* RADIX */;
// Subtract and determine carry.
var x = u[i + j] - lo;
k = x < 0 ? 1 : 0;
u[i + j] = k ? x + 10000000 /* Constants.RADIX */ : x;
u[i + j] = k ? x + 10000000 /* RADIX */ : x;
k += hi;

@@ -219,3 +219,3 @@ }

for (var i = n - 1; i >= 0; i--) {
p = u[i] + k * 10000000 /* Constants.RADIX */;
p = u[i] + k * 10000000 /* RADIX */;
r[i] = (p / d) | 0;

@@ -238,3 +238,3 @@ k = p - r[i] * d;

for (var i = n - 1; i >= 0; i--) {
var p = u[i] + r * 10000000 /* Constants.RADIX */;
var p = u[i] + r * 10000000 /* RADIX */;
q[i] = (p / v) | 0;

@@ -254,4 +254,4 @@ r = p - q[i] * v;

s = u[i + j] + (v[i] + k);
k = s >= 10000000 /* Constants.RADIX */ ? 1 : 0;
u[i + j] = k ? s - 10000000 /* Constants.RADIX */ : s;
k = s >= 10000000 /* RADIX */ ? 1 : 0;
u[i + j] = k ? s - 10000000 /* RADIX */ : s;
i++;

@@ -261,4 +261,4 @@ }

s = u[i + j] + k;
k = s === 10000000 /* Constants.RADIX */ ? 1 : /* istanbul ignore next */ 0;
u[i + j] = k === 1 ? s - 10000000 /* Constants.RADIX */ : /* istanbul ignore next */ s;
k = s === 10000000 /* RADIX */ ? 1 : /* istanbul ignore next */ 0;
u[i + j] = k === 1 ? s - 10000000 /* RADIX */ : /* istanbul ignore next */ s;
i++;

@@ -265,0 +265,0 @@ }

@@ -12,3 +12,3 @@ "use strict";

var m = b.length;
var _c = div.word(shift, 7 /* Constants.RDIGITS */), q = _c[0], r = _c[1];
var _c = div.word(shift, 7 /* RDIGITS */), q = _c[0], r = _c[1];
if (r === 0) {

@@ -30,3 +30,3 @@ while (--m >= 0) {

--n;
_a = div.pow10(b[m--], 7 /* Constants.RDIGITS */ - r), hi = _a[0], loprev = _a[1];
_a = div.pow10(b[m--], 7 /* RDIGITS */ - r), hi = _a[0], loprev = _a[1];
if (hi !== 0) {

@@ -41,3 +41,3 @@ c = cmp(a[n], hi);

for (; m >= 0; m--, n--) {
_b = div.pow10(b[m], 7 /* Constants.RDIGITS */ - r), hi = _b[0], lo = _b[1];
_b = div.pow10(b[m], 7 /* RDIGITS */ - r), hi = _b[0], lo = _b[1];
x = ph * loprev + hi;

@@ -74,14 +74,14 @@ c = cmp(a[n], x);

var digitCount = function (w) {
if (w < 10000 /* Constants.P4 */) {
if (w < 100 /* Constants.P2 */) {
return w < 10 /* Constants.P1 */ ? 1 : 2;
if (w < 10000 /* P4 */) {
if (w < 100 /* P2 */) {
return w < 10 /* P1 */ ? 1 : 2;
}
return w < 1000 /* Constants.P3 */ ? 3 : 4;
return w < 1000 /* P3 */ ? 3 : 4;
}
if (w < 1000000 /* Constants.P6 */) {
return w < 100000 /* Constants.P5 */ ? 5 : 6;
if (w < 1000000 /* P6 */) {
return w < 100000 /* P5 */ ? 5 : 6;
}
return w < 10000000 /* Constants.P7 */ ? 7 : 8;
return w < 10000000 /* P7 */ ? 7 : 8;
};
exports.digitCount = digitCount;
//# sourceMappingURL=operations.js.map

@@ -5,12 +5,12 @@ "use strict";

exports.POWERS10 = [
1 /* Constants.P0 */,
10 /* Constants.P1 */,
100 /* Constants.P2 */,
1000 /* Constants.P3 */,
10000 /* Constants.P4 */,
100000 /* Constants.P5 */,
1000000 /* Constants.P6 */,
10000000 /* Constants.P7 */,
100000000 /* Constants.P8 */,
1 /* P0 */,
10 /* P1 */,
100 /* P2 */,
1000 /* P3 */,
10000 /* P4 */,
100000 /* P5 */,
1000000 /* P6 */,
10000000 /* P7 */,
100000000 /* P8 */,
];
//# sourceMappingURL=types.js.map
{
"name": "@phensley/decimal",
"version": "1.6.0",
"version": "1.6.1",
"description": "Arbitrary precision decimal math",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc