powiaina_num.js 0.2.0-alpha.2.3 → 0.2.0-alpha.2.5
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.
- package/dist/PowiainaNum.cjs.js +63 -26
- package/dist/PowiainaNum.esm.js +63 -26
- package/dist/PowiainaNum.js +63 -26
- package/dist/PowiainaNum.min.js +1 -1
- package/dist/index.d.ts +3 -0
- package/package.json +1 -1
package/dist/PowiainaNum.cjs.js
CHANGED
|
@@ -220,6 +220,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
220
220
|
return _createClass(PowiainaNum, [{
|
|
221
221
|
key: "add",
|
|
222
222
|
value: function add(other) {
|
|
223
|
+
var _a, _b, _c, _d;
|
|
223
224
|
var x = this.clone();
|
|
224
225
|
var y = new PowiainaNum(other);
|
|
225
226
|
// inf + -inf = nan
|
|
@@ -253,11 +254,11 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
253
254
|
a = y;
|
|
254
255
|
}
|
|
255
256
|
var mult = 1;
|
|
256
|
-
if (!a.small && !b.small && !a.
|
|
257
|
-
return new PowiainaNum((a.
|
|
257
|
+
if (!a.small && !b.small && !((_a = a.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) && !((_b = b.array[1]) === null || _b === void 0 ? void 0 : _b.repeat) && a.sign == b.sign) {
|
|
258
|
+
return new PowiainaNum((a.array[0].repeat + b.array[0].repeat) * a.sign);
|
|
258
259
|
}
|
|
259
|
-
var alog10 = (a.small ? -1 : 1) * (a.
|
|
260
|
-
var blog10 = (b.small ? -1 : 1) * (b.
|
|
260
|
+
var alog10 = (a.small ? -1 : 1) * (((_c = a.array[1]) === null || _c === void 0 ? void 0 : _c.repeat) ? a.array[0].repeat : Math.log10(a.array[0].repeat));
|
|
261
|
+
var blog10 = (b.small ? -1 : 1) * (((_d = b.array[1]) === null || _d === void 0 ? void 0 : _d.repeat) ? b.array[0].repeat : Math.log10(b.array[0].repeat));
|
|
261
262
|
if (alog10 - blog10 > MSI_LOG10) return a;
|
|
262
263
|
var offset = -Math.floor(alog10); //a number can make a+off in [0,1)
|
|
263
264
|
var r,
|
|
@@ -273,10 +274,9 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
273
274
|
r = new PowiainaNum();
|
|
274
275
|
r.sign = 1;
|
|
275
276
|
if (l > MSI_LOG10 || l < -MSI_LOG10) {
|
|
276
|
-
r.
|
|
277
|
-
r.setOperator(Math.log10(Math.abs(l)), 1);
|
|
277
|
+
r.array = [newOperator(l, 0), newOperator(1, 1)];
|
|
278
278
|
} else {
|
|
279
|
-
r.
|
|
279
|
+
r.array = [newOperator(Math.pow(10, l), 0)];
|
|
280
280
|
}
|
|
281
281
|
r.small = l < 0 ? true : false;
|
|
282
282
|
r.sign *= mult;
|
|
@@ -324,19 +324,20 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
324
324
|
}, {
|
|
325
325
|
key: "pow10",
|
|
326
326
|
value: function pow10() {
|
|
327
|
+
var _a, _b;
|
|
327
328
|
var r = this.clone();
|
|
328
329
|
// inf & nan check
|
|
329
330
|
if (!this.isFinite()) return this.clone();
|
|
330
|
-
if (r.
|
|
331
|
+
if (r.isneg()) {
|
|
331
332
|
// 10^(-x) = 1/(10^x)
|
|
332
333
|
r.sign *= -1;
|
|
333
334
|
return r.pow10().rec();
|
|
334
335
|
}
|
|
335
336
|
if (r.small) {
|
|
336
337
|
if (r.lt(PowiainaNum.MSI_REC)) return PowiainaNum.ONE;
|
|
337
|
-
return new PowiainaNum(Math.pow(10, Math.pow(r.
|
|
338
|
+
return new PowiainaNum(Math.pow(10, Math.pow(r.array[0].repeat, -1)));
|
|
338
339
|
}
|
|
339
|
-
r.setOperator(r.
|
|
340
|
+
r.setOperator(((_b = (_a = r.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) !== null && _b !== void 0 ? _b : 0) + 1, 1);
|
|
340
341
|
r.normalize();
|
|
341
342
|
return r;
|
|
342
343
|
}
|
|
@@ -347,7 +348,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
347
348
|
if (!other.isFinite()) return other.clone();
|
|
348
349
|
if (!this.isFinite()) return this.clone();
|
|
349
350
|
if (this.eq(10)) return other.pow10();
|
|
350
|
-
if (this.
|
|
351
|
+
if (this.isneg()) {
|
|
351
352
|
if (!other.isInt()) return PowiainaNum.NaN.clone();
|
|
352
353
|
var r = this.abs().pow(other);
|
|
353
354
|
r.sign = function () {
|
|
@@ -357,6 +358,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
357
358
|
}();
|
|
358
359
|
return r;
|
|
359
360
|
}
|
|
361
|
+
var a = this.toNumber();
|
|
362
|
+
var b = this.toNumber();
|
|
363
|
+
var t = Math.pow(a, b);
|
|
364
|
+
if (!isFinite(t)) {
|
|
365
|
+
// optimize?
|
|
366
|
+
return PowiainaNum.fromNumber(t);
|
|
367
|
+
}
|
|
360
368
|
// log10(a^b) = b log10(a)
|
|
361
369
|
return this.log10().mul(other).pow10();
|
|
362
370
|
}
|
|
@@ -392,7 +400,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
392
400
|
}, {
|
|
393
401
|
key: "log10",
|
|
394
402
|
value: function log10() {
|
|
395
|
-
if (this.
|
|
403
|
+
if (this.isneg()) return PowiainaNum.NaN.clone();
|
|
396
404
|
if (this.isZero()) return PowiainaNum.NEGATIVE_INFINITY.clone();
|
|
397
405
|
if (this.small) {
|
|
398
406
|
var _x = this.clone();
|
|
@@ -527,7 +535,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
527
535
|
return PowiainaNum.NaN.clone(); //complex
|
|
528
536
|
}
|
|
529
537
|
if (this.layer === 0) {
|
|
530
|
-
return PowiainaNum.fromNumber(f_lambertw(this.sign * this.
|
|
538
|
+
return PowiainaNum.fromNumber(f_lambertw(this.sign * this.array[0].repeat, 1e-10, false));
|
|
531
539
|
} else if (this.layer == 1) {
|
|
532
540
|
return d_lambertw(this, 1e-10, false);
|
|
533
541
|
} else {
|
|
@@ -588,7 +596,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
588
596
|
if (this.sign == 1) return PowiainaNum.ZERO.clone();else return PowiainaNum.ONE.neg().clone();
|
|
589
597
|
}
|
|
590
598
|
var r = this.abs();
|
|
591
|
-
r.
|
|
599
|
+
r.array[0].repeat = Math[this.sign == 1 ? "floor" : "ceil"](r.getOperator(0));
|
|
592
600
|
return r;
|
|
593
601
|
}
|
|
594
602
|
}, {
|
|
@@ -599,7 +607,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
599
607
|
if (this.sign == 1) return PowiainaNum.ONE.clone();else return PowiainaNum.ZERO.clone();
|
|
600
608
|
}
|
|
601
609
|
var r = this.abs();
|
|
602
|
-
r.
|
|
610
|
+
r.array[0].repeat = Math[this.sign == 1 ? "ceil" : "floor"](r.getOperator(0));
|
|
603
611
|
r.sign = this.sign;
|
|
604
612
|
return r;
|
|
605
613
|
}
|
|
@@ -615,7 +623,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
615
623
|
}
|
|
616
624
|
}
|
|
617
625
|
var r = this.abs();
|
|
618
|
-
r.
|
|
626
|
+
r.array[0].repeat = Math.round(r.array[0].repeat);
|
|
619
627
|
r.sign = this.sign;
|
|
620
628
|
return r;
|
|
621
629
|
}
|
|
@@ -728,16 +736,27 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
728
736
|
value: function isInt() {
|
|
729
737
|
if (this.isZero()) return true;
|
|
730
738
|
if (!this.small && Number.isInteger(this.getOperator(0))) return true;
|
|
731
|
-
if (this.abs().gte(
|
|
739
|
+
if (this.abs().gte(MSI / 2)) return true;
|
|
732
740
|
return false;
|
|
733
741
|
}
|
|
742
|
+
}, {
|
|
743
|
+
key: "ispos",
|
|
744
|
+
value: function ispos() {
|
|
745
|
+
return this.sign > 0;
|
|
746
|
+
}
|
|
747
|
+
}, {
|
|
748
|
+
key: "isneg",
|
|
749
|
+
value: function isneg() {
|
|
750
|
+
return this.sign < 0;
|
|
751
|
+
}
|
|
752
|
+
}, {
|
|
753
|
+
key: "normalize",
|
|
754
|
+
value:
|
|
734
755
|
/**
|
|
735
756
|
* Normalize functions will make this number convert into standard format.(it also change `this`, like [].sort)
|
|
736
757
|
* @returns normalized number
|
|
737
758
|
*/
|
|
738
|
-
|
|
739
|
-
key: "normalize",
|
|
740
|
-
value: function normalize() {
|
|
759
|
+
function normalize() {
|
|
741
760
|
//TODO: normalize
|
|
742
761
|
var renormalize = true;
|
|
743
762
|
var x = this;
|
|
@@ -808,7 +827,6 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
808
827
|
}
|
|
809
828
|
if (x.array.length > PowiainaNum.maxOps) x.array.splice(1, x.array.length - PowiainaNum.maxOps); // max operators check
|
|
810
829
|
if (this.getOperator(1) >= 1 && this.getOperator(0) < MSI_LOG10) {
|
|
811
|
-
console.log(this.array);
|
|
812
830
|
this.setOperator(this.getOperator(1) - 1, 1);
|
|
813
831
|
this.setOperator(Math.pow(10, this.getOperator(0)), 0);
|
|
814
832
|
renormalize = true;
|
|
@@ -859,6 +877,10 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
859
877
|
value: function getOperatorIndex(arrow) {
|
|
860
878
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
861
879
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
880
|
+
if (this.array.length == 1 && arrow == 0) return 0;
|
|
881
|
+
if (this.array.length == 1 && arrow == 1) return 0.5;
|
|
882
|
+
if (this.array.length == 2 && arrow == 1) return 1;
|
|
883
|
+
if (this.array.length == 2 && arrow == 0) return 0;
|
|
862
884
|
for (var i = 0; i < this.array.length; i++) {
|
|
863
885
|
var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
|
|
864
886
|
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
@@ -1065,6 +1087,11 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1065
1087
|
var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
1066
1088
|
return new PowiainaNum(x).lambertw(principal);
|
|
1067
1089
|
}
|
|
1090
|
+
}, {
|
|
1091
|
+
key: "isNaN",
|
|
1092
|
+
value: function isNaN(x) {
|
|
1093
|
+
return new PowiainaNum(x).isNaN();
|
|
1094
|
+
}
|
|
1068
1095
|
}, {
|
|
1069
1096
|
key: "fromNumber",
|
|
1070
1097
|
value: function fromNumber(x) {
|
|
@@ -1074,15 +1101,16 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1074
1101
|
var y = Math.abs(x);
|
|
1075
1102
|
if (y >= MSI_REC && y < 1) {
|
|
1076
1103
|
obj.small = true;
|
|
1077
|
-
obj.
|
|
1104
|
+
obj.array = [newOperator(1 / y, 0)];
|
|
1078
1105
|
} else if (y < MSI_REC) {
|
|
1079
1106
|
obj.small = true;
|
|
1080
|
-
obj.
|
|
1081
|
-
|
|
1107
|
+
obj.array = [newOperator(-Math.log10(y), 0), newOperator(1, 1)];
|
|
1108
|
+
} else if (y <= MSI) {
|
|
1109
|
+
obj.array = [newOperator(y, 0)];
|
|
1082
1110
|
} else {
|
|
1083
|
-
obj.setOperator(y, 0);
|
|
1111
|
+
obj.setOperator(Math.log10(y), 0);
|
|
1112
|
+
obj.array = [newOperator(Math.log10(y), 0), newOperator(1, 1)];
|
|
1084
1113
|
}
|
|
1085
|
-
obj.normalize();
|
|
1086
1114
|
return obj;
|
|
1087
1115
|
}
|
|
1088
1116
|
}, {
|
|
@@ -1093,6 +1121,15 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1093
1121
|
throw powiainaNumError + "malformed input: " + input;
|
|
1094
1122
|
}
|
|
1095
1123
|
var x = new PowiainaNum();
|
|
1124
|
+
// Judge the string was a number
|
|
1125
|
+
// @ts-ignore
|
|
1126
|
+
if (!isNaN(Number(input))) {
|
|
1127
|
+
// @ts-ignore
|
|
1128
|
+
if (isFinite(Number(input))) {
|
|
1129
|
+
x.resetFromObject(PowiainaNum.fromNumber(Number(input)));
|
|
1130
|
+
return x;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1096
1133
|
var negateIt = false;
|
|
1097
1134
|
var recipIt = false;
|
|
1098
1135
|
if (input[0] == "-" || input[0] == "+") {
|
package/dist/PowiainaNum.esm.js
CHANGED
|
@@ -218,6 +218,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
218
218
|
return _createClass(PowiainaNum, [{
|
|
219
219
|
key: "add",
|
|
220
220
|
value: function add(other) {
|
|
221
|
+
var _a, _b, _c, _d;
|
|
221
222
|
var x = this.clone();
|
|
222
223
|
var y = new PowiainaNum(other);
|
|
223
224
|
// inf + -inf = nan
|
|
@@ -251,11 +252,11 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
251
252
|
a = y;
|
|
252
253
|
}
|
|
253
254
|
var mult = 1;
|
|
254
|
-
if (!a.small && !b.small && !a.
|
|
255
|
-
return new PowiainaNum((a.
|
|
255
|
+
if (!a.small && !b.small && !((_a = a.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) && !((_b = b.array[1]) === null || _b === void 0 ? void 0 : _b.repeat) && a.sign == b.sign) {
|
|
256
|
+
return new PowiainaNum((a.array[0].repeat + b.array[0].repeat) * a.sign);
|
|
256
257
|
}
|
|
257
|
-
var alog10 = (a.small ? -1 : 1) * (a.
|
|
258
|
-
var blog10 = (b.small ? -1 : 1) * (b.
|
|
258
|
+
var alog10 = (a.small ? -1 : 1) * (((_c = a.array[1]) === null || _c === void 0 ? void 0 : _c.repeat) ? a.array[0].repeat : Math.log10(a.array[0].repeat));
|
|
259
|
+
var blog10 = (b.small ? -1 : 1) * (((_d = b.array[1]) === null || _d === void 0 ? void 0 : _d.repeat) ? b.array[0].repeat : Math.log10(b.array[0].repeat));
|
|
259
260
|
if (alog10 - blog10 > MSI_LOG10) return a;
|
|
260
261
|
var offset = -Math.floor(alog10); //a number can make a+off in [0,1)
|
|
261
262
|
var r,
|
|
@@ -271,10 +272,9 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
271
272
|
r = new PowiainaNum();
|
|
272
273
|
r.sign = 1;
|
|
273
274
|
if (l > MSI_LOG10 || l < -MSI_LOG10) {
|
|
274
|
-
r.
|
|
275
|
-
r.setOperator(Math.log10(Math.abs(l)), 1);
|
|
275
|
+
r.array = [newOperator(l, 0), newOperator(1, 1)];
|
|
276
276
|
} else {
|
|
277
|
-
r.
|
|
277
|
+
r.array = [newOperator(Math.pow(10, l), 0)];
|
|
278
278
|
}
|
|
279
279
|
r.small = l < 0 ? true : false;
|
|
280
280
|
r.sign *= mult;
|
|
@@ -322,19 +322,20 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
322
322
|
}, {
|
|
323
323
|
key: "pow10",
|
|
324
324
|
value: function pow10() {
|
|
325
|
+
var _a, _b;
|
|
325
326
|
var r = this.clone();
|
|
326
327
|
// inf & nan check
|
|
327
328
|
if (!this.isFinite()) return this.clone();
|
|
328
|
-
if (r.
|
|
329
|
+
if (r.isneg()) {
|
|
329
330
|
// 10^(-x) = 1/(10^x)
|
|
330
331
|
r.sign *= -1;
|
|
331
332
|
return r.pow10().rec();
|
|
332
333
|
}
|
|
333
334
|
if (r.small) {
|
|
334
335
|
if (r.lt(PowiainaNum.MSI_REC)) return PowiainaNum.ONE;
|
|
335
|
-
return new PowiainaNum(Math.pow(10, Math.pow(r.
|
|
336
|
+
return new PowiainaNum(Math.pow(10, Math.pow(r.array[0].repeat, -1)));
|
|
336
337
|
}
|
|
337
|
-
r.setOperator(r.
|
|
338
|
+
r.setOperator(((_b = (_a = r.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) !== null && _b !== void 0 ? _b : 0) + 1, 1);
|
|
338
339
|
r.normalize();
|
|
339
340
|
return r;
|
|
340
341
|
}
|
|
@@ -345,7 +346,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
345
346
|
if (!other.isFinite()) return other.clone();
|
|
346
347
|
if (!this.isFinite()) return this.clone();
|
|
347
348
|
if (this.eq(10)) return other.pow10();
|
|
348
|
-
if (this.
|
|
349
|
+
if (this.isneg()) {
|
|
349
350
|
if (!other.isInt()) return PowiainaNum.NaN.clone();
|
|
350
351
|
var r = this.abs().pow(other);
|
|
351
352
|
r.sign = function () {
|
|
@@ -355,6 +356,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
355
356
|
}();
|
|
356
357
|
return r;
|
|
357
358
|
}
|
|
359
|
+
var a = this.toNumber();
|
|
360
|
+
var b = this.toNumber();
|
|
361
|
+
var t = Math.pow(a, b);
|
|
362
|
+
if (!isFinite(t)) {
|
|
363
|
+
// optimize?
|
|
364
|
+
return PowiainaNum.fromNumber(t);
|
|
365
|
+
}
|
|
358
366
|
// log10(a^b) = b log10(a)
|
|
359
367
|
return this.log10().mul(other).pow10();
|
|
360
368
|
}
|
|
@@ -390,7 +398,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
390
398
|
}, {
|
|
391
399
|
key: "log10",
|
|
392
400
|
value: function log10() {
|
|
393
|
-
if (this.
|
|
401
|
+
if (this.isneg()) return PowiainaNum.NaN.clone();
|
|
394
402
|
if (this.isZero()) return PowiainaNum.NEGATIVE_INFINITY.clone();
|
|
395
403
|
if (this.small) {
|
|
396
404
|
var _x = this.clone();
|
|
@@ -525,7 +533,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
525
533
|
return PowiainaNum.NaN.clone(); //complex
|
|
526
534
|
}
|
|
527
535
|
if (this.layer === 0) {
|
|
528
|
-
return PowiainaNum.fromNumber(f_lambertw(this.sign * this.
|
|
536
|
+
return PowiainaNum.fromNumber(f_lambertw(this.sign * this.array[0].repeat, 1e-10, false));
|
|
529
537
|
} else if (this.layer == 1) {
|
|
530
538
|
return d_lambertw(this, 1e-10, false);
|
|
531
539
|
} else {
|
|
@@ -586,7 +594,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
586
594
|
if (this.sign == 1) return PowiainaNum.ZERO.clone();else return PowiainaNum.ONE.neg().clone();
|
|
587
595
|
}
|
|
588
596
|
var r = this.abs();
|
|
589
|
-
r.
|
|
597
|
+
r.array[0].repeat = Math[this.sign == 1 ? "floor" : "ceil"](r.getOperator(0));
|
|
590
598
|
return r;
|
|
591
599
|
}
|
|
592
600
|
}, {
|
|
@@ -597,7 +605,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
597
605
|
if (this.sign == 1) return PowiainaNum.ONE.clone();else return PowiainaNum.ZERO.clone();
|
|
598
606
|
}
|
|
599
607
|
var r = this.abs();
|
|
600
|
-
r.
|
|
608
|
+
r.array[0].repeat = Math[this.sign == 1 ? "ceil" : "floor"](r.getOperator(0));
|
|
601
609
|
r.sign = this.sign;
|
|
602
610
|
return r;
|
|
603
611
|
}
|
|
@@ -613,7 +621,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
613
621
|
}
|
|
614
622
|
}
|
|
615
623
|
var r = this.abs();
|
|
616
|
-
r.
|
|
624
|
+
r.array[0].repeat = Math.round(r.array[0].repeat);
|
|
617
625
|
r.sign = this.sign;
|
|
618
626
|
return r;
|
|
619
627
|
}
|
|
@@ -726,16 +734,27 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
726
734
|
value: function isInt() {
|
|
727
735
|
if (this.isZero()) return true;
|
|
728
736
|
if (!this.small && Number.isInteger(this.getOperator(0))) return true;
|
|
729
|
-
if (this.abs().gte(
|
|
737
|
+
if (this.abs().gte(MSI / 2)) return true;
|
|
730
738
|
return false;
|
|
731
739
|
}
|
|
740
|
+
}, {
|
|
741
|
+
key: "ispos",
|
|
742
|
+
value: function ispos() {
|
|
743
|
+
return this.sign > 0;
|
|
744
|
+
}
|
|
745
|
+
}, {
|
|
746
|
+
key: "isneg",
|
|
747
|
+
value: function isneg() {
|
|
748
|
+
return this.sign < 0;
|
|
749
|
+
}
|
|
750
|
+
}, {
|
|
751
|
+
key: "normalize",
|
|
752
|
+
value:
|
|
732
753
|
/**
|
|
733
754
|
* Normalize functions will make this number convert into standard format.(it also change `this`, like [].sort)
|
|
734
755
|
* @returns normalized number
|
|
735
756
|
*/
|
|
736
|
-
|
|
737
|
-
key: "normalize",
|
|
738
|
-
value: function normalize() {
|
|
757
|
+
function normalize() {
|
|
739
758
|
//TODO: normalize
|
|
740
759
|
var renormalize = true;
|
|
741
760
|
var x = this;
|
|
@@ -806,7 +825,6 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
806
825
|
}
|
|
807
826
|
if (x.array.length > PowiainaNum.maxOps) x.array.splice(1, x.array.length - PowiainaNum.maxOps); // max operators check
|
|
808
827
|
if (this.getOperator(1) >= 1 && this.getOperator(0) < MSI_LOG10) {
|
|
809
|
-
console.log(this.array);
|
|
810
828
|
this.setOperator(this.getOperator(1) - 1, 1);
|
|
811
829
|
this.setOperator(Math.pow(10, this.getOperator(0)), 0);
|
|
812
830
|
renormalize = true;
|
|
@@ -857,6 +875,10 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
857
875
|
value: function getOperatorIndex(arrow) {
|
|
858
876
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
859
877
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
878
|
+
if (this.array.length == 1 && arrow == 0) return 0;
|
|
879
|
+
if (this.array.length == 1 && arrow == 1) return 0.5;
|
|
880
|
+
if (this.array.length == 2 && arrow == 1) return 1;
|
|
881
|
+
if (this.array.length == 2 && arrow == 0) return 0;
|
|
860
882
|
for (var i = 0; i < this.array.length; i++) {
|
|
861
883
|
var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
|
|
862
884
|
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
@@ -1063,6 +1085,11 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1063
1085
|
var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
1064
1086
|
return new PowiainaNum(x).lambertw(principal);
|
|
1065
1087
|
}
|
|
1088
|
+
}, {
|
|
1089
|
+
key: "isNaN",
|
|
1090
|
+
value: function isNaN(x) {
|
|
1091
|
+
return new PowiainaNum(x).isNaN();
|
|
1092
|
+
}
|
|
1066
1093
|
}, {
|
|
1067
1094
|
key: "fromNumber",
|
|
1068
1095
|
value: function fromNumber(x) {
|
|
@@ -1072,15 +1099,16 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1072
1099
|
var y = Math.abs(x);
|
|
1073
1100
|
if (y >= MSI_REC && y < 1) {
|
|
1074
1101
|
obj.small = true;
|
|
1075
|
-
obj.
|
|
1102
|
+
obj.array = [newOperator(1 / y, 0)];
|
|
1076
1103
|
} else if (y < MSI_REC) {
|
|
1077
1104
|
obj.small = true;
|
|
1078
|
-
obj.
|
|
1079
|
-
|
|
1105
|
+
obj.array = [newOperator(-Math.log10(y), 0), newOperator(1, 1)];
|
|
1106
|
+
} else if (y <= MSI) {
|
|
1107
|
+
obj.array = [newOperator(y, 0)];
|
|
1080
1108
|
} else {
|
|
1081
|
-
obj.setOperator(y, 0);
|
|
1109
|
+
obj.setOperator(Math.log10(y), 0);
|
|
1110
|
+
obj.array = [newOperator(Math.log10(y), 0), newOperator(1, 1)];
|
|
1082
1111
|
}
|
|
1083
|
-
obj.normalize();
|
|
1084
1112
|
return obj;
|
|
1085
1113
|
}
|
|
1086
1114
|
}, {
|
|
@@ -1091,6 +1119,15 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1091
1119
|
throw powiainaNumError + "malformed input: " + input;
|
|
1092
1120
|
}
|
|
1093
1121
|
var x = new PowiainaNum();
|
|
1122
|
+
// Judge the string was a number
|
|
1123
|
+
// @ts-ignore
|
|
1124
|
+
if (!isNaN(Number(input))) {
|
|
1125
|
+
// @ts-ignore
|
|
1126
|
+
if (isFinite(Number(input))) {
|
|
1127
|
+
x.resetFromObject(PowiainaNum.fromNumber(Number(input)));
|
|
1128
|
+
return x;
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1094
1131
|
var negateIt = false;
|
|
1095
1132
|
var recipIt = false;
|
|
1096
1133
|
if (input[0] == "-" || input[0] == "+") {
|
package/dist/PowiainaNum.js
CHANGED
|
@@ -224,6 +224,7 @@
|
|
|
224
224
|
return _createClass(PowiainaNum, [{
|
|
225
225
|
key: "add",
|
|
226
226
|
value: function add(other) {
|
|
227
|
+
var _a, _b, _c, _d;
|
|
227
228
|
var x = this.clone();
|
|
228
229
|
var y = new PowiainaNum(other);
|
|
229
230
|
// inf + -inf = nan
|
|
@@ -257,11 +258,11 @@
|
|
|
257
258
|
a = y;
|
|
258
259
|
}
|
|
259
260
|
var mult = 1;
|
|
260
|
-
if (!a.small && !b.small && !a.
|
|
261
|
-
return new PowiainaNum((a.
|
|
261
|
+
if (!a.small && !b.small && !((_a = a.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) && !((_b = b.array[1]) === null || _b === void 0 ? void 0 : _b.repeat) && a.sign == b.sign) {
|
|
262
|
+
return new PowiainaNum((a.array[0].repeat + b.array[0].repeat) * a.sign);
|
|
262
263
|
}
|
|
263
|
-
var alog10 = (a.small ? -1 : 1) * (a.
|
|
264
|
-
var blog10 = (b.small ? -1 : 1) * (b.
|
|
264
|
+
var alog10 = (a.small ? -1 : 1) * (((_c = a.array[1]) === null || _c === void 0 ? void 0 : _c.repeat) ? a.array[0].repeat : Math.log10(a.array[0].repeat));
|
|
265
|
+
var blog10 = (b.small ? -1 : 1) * (((_d = b.array[1]) === null || _d === void 0 ? void 0 : _d.repeat) ? b.array[0].repeat : Math.log10(b.array[0].repeat));
|
|
265
266
|
if (alog10 - blog10 > MSI_LOG10) return a;
|
|
266
267
|
var offset = -Math.floor(alog10); //a number can make a+off in [0,1)
|
|
267
268
|
var r,
|
|
@@ -277,10 +278,9 @@
|
|
|
277
278
|
r = new PowiainaNum();
|
|
278
279
|
r.sign = 1;
|
|
279
280
|
if (l > MSI_LOG10 || l < -MSI_LOG10) {
|
|
280
|
-
r.
|
|
281
|
-
r.setOperator(Math.log10(Math.abs(l)), 1);
|
|
281
|
+
r.array = [newOperator(l, 0), newOperator(1, 1)];
|
|
282
282
|
} else {
|
|
283
|
-
r.
|
|
283
|
+
r.array = [newOperator(Math.pow(10, l), 0)];
|
|
284
284
|
}
|
|
285
285
|
r.small = l < 0 ? true : false;
|
|
286
286
|
r.sign *= mult;
|
|
@@ -328,19 +328,20 @@
|
|
|
328
328
|
}, {
|
|
329
329
|
key: "pow10",
|
|
330
330
|
value: function pow10() {
|
|
331
|
+
var _a, _b;
|
|
331
332
|
var r = this.clone();
|
|
332
333
|
// inf & nan check
|
|
333
334
|
if (!this.isFinite()) return this.clone();
|
|
334
|
-
if (r.
|
|
335
|
+
if (r.isneg()) {
|
|
335
336
|
// 10^(-x) = 1/(10^x)
|
|
336
337
|
r.sign *= -1;
|
|
337
338
|
return r.pow10().rec();
|
|
338
339
|
}
|
|
339
340
|
if (r.small) {
|
|
340
341
|
if (r.lt(PowiainaNum.MSI_REC)) return PowiainaNum.ONE;
|
|
341
|
-
return new PowiainaNum(Math.pow(10, Math.pow(r.
|
|
342
|
+
return new PowiainaNum(Math.pow(10, Math.pow(r.array[0].repeat, -1)));
|
|
342
343
|
}
|
|
343
|
-
r.setOperator(r.
|
|
344
|
+
r.setOperator(((_b = (_a = r.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) !== null && _b !== void 0 ? _b : 0) + 1, 1);
|
|
344
345
|
r.normalize();
|
|
345
346
|
return r;
|
|
346
347
|
}
|
|
@@ -351,7 +352,7 @@
|
|
|
351
352
|
if (!other.isFinite()) return other.clone();
|
|
352
353
|
if (!this.isFinite()) return this.clone();
|
|
353
354
|
if (this.eq(10)) return other.pow10();
|
|
354
|
-
if (this.
|
|
355
|
+
if (this.isneg()) {
|
|
355
356
|
if (!other.isInt()) return PowiainaNum.NaN.clone();
|
|
356
357
|
var r = this.abs().pow(other);
|
|
357
358
|
r.sign = function () {
|
|
@@ -361,6 +362,13 @@
|
|
|
361
362
|
}();
|
|
362
363
|
return r;
|
|
363
364
|
}
|
|
365
|
+
var a = this.toNumber();
|
|
366
|
+
var b = this.toNumber();
|
|
367
|
+
var t = Math.pow(a, b);
|
|
368
|
+
if (!isFinite(t)) {
|
|
369
|
+
// optimize?
|
|
370
|
+
return PowiainaNum.fromNumber(t);
|
|
371
|
+
}
|
|
364
372
|
// log10(a^b) = b log10(a)
|
|
365
373
|
return this.log10().mul(other).pow10();
|
|
366
374
|
}
|
|
@@ -396,7 +404,7 @@
|
|
|
396
404
|
}, {
|
|
397
405
|
key: "log10",
|
|
398
406
|
value: function log10() {
|
|
399
|
-
if (this.
|
|
407
|
+
if (this.isneg()) return PowiainaNum.NaN.clone();
|
|
400
408
|
if (this.isZero()) return PowiainaNum.NEGATIVE_INFINITY.clone();
|
|
401
409
|
if (this.small) {
|
|
402
410
|
var _x = this.clone();
|
|
@@ -531,7 +539,7 @@
|
|
|
531
539
|
return PowiainaNum.NaN.clone(); //complex
|
|
532
540
|
}
|
|
533
541
|
if (this.layer === 0) {
|
|
534
|
-
return PowiainaNum.fromNumber(f_lambertw(this.sign * this.
|
|
542
|
+
return PowiainaNum.fromNumber(f_lambertw(this.sign * this.array[0].repeat, 1e-10, false));
|
|
535
543
|
} else if (this.layer == 1) {
|
|
536
544
|
return d_lambertw(this, 1e-10, false);
|
|
537
545
|
} else {
|
|
@@ -592,7 +600,7 @@
|
|
|
592
600
|
if (this.sign == 1) return PowiainaNum.ZERO.clone();else return PowiainaNum.ONE.neg().clone();
|
|
593
601
|
}
|
|
594
602
|
var r = this.abs();
|
|
595
|
-
r.
|
|
603
|
+
r.array[0].repeat = Math[this.sign == 1 ? "floor" : "ceil"](r.getOperator(0));
|
|
596
604
|
return r;
|
|
597
605
|
}
|
|
598
606
|
}, {
|
|
@@ -603,7 +611,7 @@
|
|
|
603
611
|
if (this.sign == 1) return PowiainaNum.ONE.clone();else return PowiainaNum.ZERO.clone();
|
|
604
612
|
}
|
|
605
613
|
var r = this.abs();
|
|
606
|
-
r.
|
|
614
|
+
r.array[0].repeat = Math[this.sign == 1 ? "ceil" : "floor"](r.getOperator(0));
|
|
607
615
|
r.sign = this.sign;
|
|
608
616
|
return r;
|
|
609
617
|
}
|
|
@@ -619,7 +627,7 @@
|
|
|
619
627
|
}
|
|
620
628
|
}
|
|
621
629
|
var r = this.abs();
|
|
622
|
-
r.
|
|
630
|
+
r.array[0].repeat = Math.round(r.array[0].repeat);
|
|
623
631
|
r.sign = this.sign;
|
|
624
632
|
return r;
|
|
625
633
|
}
|
|
@@ -732,16 +740,27 @@
|
|
|
732
740
|
value: function isInt() {
|
|
733
741
|
if (this.isZero()) return true;
|
|
734
742
|
if (!this.small && Number.isInteger(this.getOperator(0))) return true;
|
|
735
|
-
if (this.abs().gte(
|
|
743
|
+
if (this.abs().gte(MSI / 2)) return true;
|
|
736
744
|
return false;
|
|
737
745
|
}
|
|
746
|
+
}, {
|
|
747
|
+
key: "ispos",
|
|
748
|
+
value: function ispos() {
|
|
749
|
+
return this.sign > 0;
|
|
750
|
+
}
|
|
751
|
+
}, {
|
|
752
|
+
key: "isneg",
|
|
753
|
+
value: function isneg() {
|
|
754
|
+
return this.sign < 0;
|
|
755
|
+
}
|
|
756
|
+
}, {
|
|
757
|
+
key: "normalize",
|
|
758
|
+
value:
|
|
738
759
|
/**
|
|
739
760
|
* Normalize functions will make this number convert into standard format.(it also change `this`, like [].sort)
|
|
740
761
|
* @returns normalized number
|
|
741
762
|
*/
|
|
742
|
-
|
|
743
|
-
key: "normalize",
|
|
744
|
-
value: function normalize() {
|
|
763
|
+
function normalize() {
|
|
745
764
|
//TODO: normalize
|
|
746
765
|
var renormalize = true;
|
|
747
766
|
var x = this;
|
|
@@ -812,7 +831,6 @@
|
|
|
812
831
|
}
|
|
813
832
|
if (x.array.length > PowiainaNum.maxOps) x.array.splice(1, x.array.length - PowiainaNum.maxOps); // max operators check
|
|
814
833
|
if (this.getOperator(1) >= 1 && this.getOperator(0) < MSI_LOG10) {
|
|
815
|
-
console.log(this.array);
|
|
816
834
|
this.setOperator(this.getOperator(1) - 1, 1);
|
|
817
835
|
this.setOperator(Math.pow(10, this.getOperator(0)), 0);
|
|
818
836
|
renormalize = true;
|
|
@@ -863,6 +881,10 @@
|
|
|
863
881
|
value: function getOperatorIndex(arrow) {
|
|
864
882
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
865
883
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
884
|
+
if (this.array.length == 1 && arrow == 0) return 0;
|
|
885
|
+
if (this.array.length == 1 && arrow == 1) return 0.5;
|
|
886
|
+
if (this.array.length == 2 && arrow == 1) return 1;
|
|
887
|
+
if (this.array.length == 2 && arrow == 0) return 0;
|
|
866
888
|
for (var i = 0; i < this.array.length; i++) {
|
|
867
889
|
var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
|
|
868
890
|
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
@@ -1069,6 +1091,11 @@
|
|
|
1069
1091
|
var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
1070
1092
|
return new PowiainaNum(x).lambertw(principal);
|
|
1071
1093
|
}
|
|
1094
|
+
}, {
|
|
1095
|
+
key: "isNaN",
|
|
1096
|
+
value: function isNaN(x) {
|
|
1097
|
+
return new PowiainaNum(x).isNaN();
|
|
1098
|
+
}
|
|
1072
1099
|
}, {
|
|
1073
1100
|
key: "fromNumber",
|
|
1074
1101
|
value: function fromNumber(x) {
|
|
@@ -1078,15 +1105,16 @@
|
|
|
1078
1105
|
var y = Math.abs(x);
|
|
1079
1106
|
if (y >= MSI_REC && y < 1) {
|
|
1080
1107
|
obj.small = true;
|
|
1081
|
-
obj.
|
|
1108
|
+
obj.array = [newOperator(1 / y, 0)];
|
|
1082
1109
|
} else if (y < MSI_REC) {
|
|
1083
1110
|
obj.small = true;
|
|
1084
|
-
obj.
|
|
1085
|
-
|
|
1111
|
+
obj.array = [newOperator(-Math.log10(y), 0), newOperator(1, 1)];
|
|
1112
|
+
} else if (y <= MSI) {
|
|
1113
|
+
obj.array = [newOperator(y, 0)];
|
|
1086
1114
|
} else {
|
|
1087
|
-
obj.setOperator(y, 0);
|
|
1115
|
+
obj.setOperator(Math.log10(y), 0);
|
|
1116
|
+
obj.array = [newOperator(Math.log10(y), 0), newOperator(1, 1)];
|
|
1088
1117
|
}
|
|
1089
|
-
obj.normalize();
|
|
1090
1118
|
return obj;
|
|
1091
1119
|
}
|
|
1092
1120
|
}, {
|
|
@@ -1097,6 +1125,15 @@
|
|
|
1097
1125
|
throw powiainaNumError + "malformed input: " + input;
|
|
1098
1126
|
}
|
|
1099
1127
|
var x = new PowiainaNum();
|
|
1128
|
+
// Judge the string was a number
|
|
1129
|
+
// @ts-ignore
|
|
1130
|
+
if (!isNaN(Number(input))) {
|
|
1131
|
+
// @ts-ignore
|
|
1132
|
+
if (isFinite(Number(input))) {
|
|
1133
|
+
x.resetFromObject(PowiainaNum.fromNumber(Number(input)));
|
|
1134
|
+
return x;
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1100
1137
|
var negateIt = false;
|
|
1101
1138
|
var recipIt = false;
|
|
1102
1139
|
if (input[0] == "-" || input[0] == "+") {
|
package/dist/PowiainaNum.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum=e()}(this,(function(){"use strict";function r(r,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,e(n.key),n)}}function e(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var a=t.call(r,e||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function t(r){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var a=9007199254740991,n=15.954589770191003,i=/^[-\+]*(Infinity|NaN|(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d* )*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function o(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:a,valuereplaced:e==1/0?0:t==1/0?1:-1}}function s(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var a=0;a<Math.min(e[0].length,e[1].length);a++){var n=e[0][a],i=e[1][a];if(n<i)return-1;if(n>i)return 1}return 0}function l(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var u=.5671432904097838;function h(r){var e,t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!Number.isFinite(r))return r;if(n){if(0===r)return r;if(1===r)return u;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var i=0;i<100;++i){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<a*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function g(r){var e,t,a,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(r.isInfinite())return r;if(o){if(r.eq(c.ZERO))return c.ZERO.clone();if(r.eq(c.ONE))return c.fromNumber(u);e=r.log()}else{if(r.eq(c.ZERO))return c.NEGATIVE_INFINITY.clone();e=r.neg().log()}for(var s=0;s<100;++s){if(t=e.neg().exp(),a=e.sub(r.mul(t)),(n=e.sub(a.div(e.add(1).sub(e.add(2).mul(a).div(e.mul(2).add(2)))))).sub(e).abs().lt(n.abs().mul(i)))return n;e=n}throw Error("Iteration failed to converge: ".concat(r.toString()))}var p,c=function(){function e(r){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===r);else if("number"==typeof r){var a=e.fromNumber(r);this.resetFromObject(a)}else if("object"==t(r)){var n=e.fromObject(r);this.resetFromObject(n)}else if("string"==typeof r){var i=e.fromString(r);this.resetFromObject(i)}}return function(e,t,a){return t&&r(e.prototype,t),a&&r(e,a),Object.defineProperty(e,"prototype",{writable:!1}),e}(e,[{key:"add",value:function(r){var t,a,i=this.clone(),o=new e(r);if(i.eq(e.POSITIVE_INFINITY)&&o.eq(e.NEGATIVE_INFINITY)||i.eq(e.NEGATIVE_INFINITY)&&o.eq(e.POSITIVE_INFINITY))return e.NaN.clone();if(!i.isFinite())return i.clone();if(!o.isFinite())return o.clone();if(i.isZero())return o.clone();if(o.isZero())return i.clone();if(i.sign==-o.sign&&function(){var r=i.abs(),e=o.abs();return r.eq(e)}())return e.ZERO.clone();if(i.abs().lt(e.E_MSI_REC)||i.abs().gt(e.E_MSI)||o.abs().lt(e.E_MSI_REC)||o.abs().gt(e.E_MSI))return i.maxabs(o);if(-1==i.sign)return i.neg().add(o.neg()).neg();i.cmpabs(o)>0?(t=i,a=o):(a=i,t=o);var s=1;if(!(t.small||a.small||t.getOperator(1)||a.getOperator(1)||t.sign!=a.sign))return new e((t.getOperator(0)+a.getOperator(0))*t.sign);var l=(t.small?-1:1)*(t.getOperator(1)?t.getOperator(0):Math.log10(t.getOperator(0))),u=(a.small?-1:1)*(a.getOperator(1)?a.getOperator(0):Math.log10(a.getOperator(0)));if(l-u>n)return t;var h,g,p=-Math.floor(l),c=0;if((g=t.sign*Math.pow(10,l+p)+a.sign*Math.pow(10,u+p))>0&&(c=Math.log10(g)-p),g<0&&(c=Math.log10(-g)-p,s*=-1),0==g)throw Error("Encounter a calculate error");return(h=new e).sign=1,c>n||c<-n?(h.setOperator(1,1),h.setOperator(Math.log10(Math.abs(c)),1)):h.setOperator(Math.pow(10,Math.abs(c)),0),h.small=c<0,h.sign*=s,h}},{key:"sub",value:function(r){return this.add(new e(r).neg())}},{key:"mul",value:function(r){var t,a=this.clone(),n=new e(r);return a.eq(e.POSITIVE_INFINITY)&&n.eq(e.NEGATIVE_INFINITY)||n.eq(e.POSITIVE_INFINITY)&&a.eq(e.NEGATIVE_INFINITY)?e.NEGATIVE_INFINITY.clone():a.isInfinite()&&n.eq(e.ZERO)&&n.isInfinite()&&a.eq(e.ZERO)?e.NaN.clone():a.eq(e.NEGATIVE_INFINITY)&&n.eq(e.NEGATIVE_INFINITY)?e.POSITIVE_INFINITY.clone():a.isFinite()?n.isFinite()?a.isZero()||n.isZero()?e.ZERO.clone():((t=a.abs().log10().add(n.abs().log10()).pow10()).sign=a.sign*n.sign,t):n.clone():a.clone()}},{key:"div",value:function(r){var t=new e(r).rec();return this.mul(t)}},{key:"pow10",value:function(){var r=this.clone();return this.isFinite()?r.lt(0)?(r.sign*=-1,r.pow10().rec()):r.small?r.lt(e.MSI_REC)?e.ONE:new e(Math.pow(10,Math.pow(r.getOperator(0),-1))):(r.setOperator(r.getOperator(1)+1,1),r.normalize(),r):this.clone()}},{key:"pow",value:function(r){var t,a=new e(r);if(!a.isFinite())return a.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return a.pow10();if(this.lt(0)){if(!a.isInt())return e.NaN.clone();var n=this.abs().pow(a);return n.sign=(t=a.mod(2).round()).eq(0)||t.eq(2)?1:-1,n}return this.log10().mul(a).pow10()}},{key:"pow_base",value:function(r){return new e(r).pow(this)}},{key:"root",value:function(r){var t=new e(r);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.root(3)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"log10",value:function(){if(this.lt(0))return e.NaN.clone();if(this.isZero())return e.NEGATIVE_INFINITY.clone();if(this.small){var r=this.clone();return r.small=!r.small,r.log10().neg()}if(0==this.getOperator(1))return new e(Math.log10(this.getOperator(0)));var t=this.clone();return t.setOperator(t.getOperator(1)-1,1),t.normalize(),t}},{key:"log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new e(r);return this.log10().div(t.log10())}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"mod",value:function(r){var t=new e(r),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"factorial",value:function(){return this.abs().lt(a)?this.add(1).gamma():this.abs().lt(e.E_MSI)?e.exp(this.mul(this.log10().sub(1))):e.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(a)){if(this.lt(24))return e.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var t=.9189385332046727;t+=((r-=1)+.5)*Math.log(r),t-=r;var a=r*r,n=r;return t+=1/(12*n),t-=1/(360*(n*=a)),t+=1/(1260*(n*=a)),t-=1/(1680*(n*=a)),t+=1/(1188*(n*=a)),t-=691/(360360*(n*=a)),t+=7/(1092*(n*=a)),t-=3617/(122400*(n*=a)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var r=this.getOperator(0)-1,t=.9189385332046727;t+=(r+.5)*Math.log(r);var n=r*r,i=r,o=12*i,s=1/o,l=(t-=r)+s;if(l===t)return e.exp(t);if((l=(t=l)-(s=1/(o=360*(i*=n))))===t)return e.exp(t);t=l;var u=1/(o=1260*(i*=n));return t+=u,t-=u=1/(o=1680*(i*=n)),e.exp(t)}return this.gt(a)?e.exp(this.mul(this.log().sub(1))):e.exp(this)}},{key:"lambertw",value:function(){var r=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?e.NaN.clone():r?this.abs().lt("1e-300")?new e(this):this.small?e.fromNumber(h(this.toNumber())):0===this.layer?e.fromNumber(h(this.sign*this.getOperator(0))):this.lt("eee15")?g(this):this.log():1===this.sign?e.NaN.clone():0===this.layer?e.fromNumber(h(this.sign*this.getOperator(0),1e-10,!1)):1==this.layer?g(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"max",value:function(r){var t=new e(r);return this.lt(t)?t.clone():this.clone()}},{key:"min",value:function(r){var t=new e(r);return this.gte(t)?t.clone():this.clone()}},{key:"maxabs",value:function(r){var t=new e(r).abs();return this.abs().lt(t)?t.clone():this.clone()}},{key:"minabs",value:function(r){var t=new e(r).abs();return this.abs().gt(t)?t.clone():this.clone()}},{key:"cmpabs",value:function(r){var t=new e(r).abs();return this.abs().cmp(t)}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?e.ZERO.clone():e.ONE.neg().clone();var r=this.abs();return r.setOperator(Math[1==this.sign?"floor":"ceil"](r.getOperator(0)),0),r}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?e.ONE.clone():e.ZERO.clone();var r=this.abs();return r.setOperator(Math[1==this.sign?"ceil":"floor"](r.getOperator(0)),0),r.sign=this.sign,r}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?e.ONE.clone():e.ZERO.clone():this.abs().rec().lte(2)?e.ZERO.clone():e.ONE.neg().clone();var r=this.abs();return r.setOperator(Math.round(r.getOperator(0)),0),r.sign=this.sign,r}},{key:"compare",value:function(r){var t=new e(r);if(this.isNaN()||t.isNaN())return 2;if(this.sign<t.sign)return-1;if(this.sign>t.sign)return 1;var a=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(a?-1:1);if(t.small&&!this.small)return 1*(a?-1:1);var n=1;this.small&&t.small&&(n*=-1),a&&(n*=-1);for(var i=0,o=0;this.array.length-1-o>=0&&t.array.length-1-o>=0;o++){var l=this.array[this.array.length-1-o],u=t.array[t.array.length-1-o],h=s([l.megota,l.expans,l.arrow,l.repeat],[u.megota,u.expans,u.arrow,u.repeat]);if(1==h){i=1;break}if(-1==h){i=-1;break}}return i*n+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfinite",value:function(){return Boolean(!this.small&&!isFinite(this.getOperator(0)))||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(Math.pow(2,52)))}},{key:"normalize",value:function(){for(var r=!0,t=this,i=0;i<this.array.length;i++)if(this.array[i].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var l=1;l<t.array.length;++l){var u=t.array[l];if(null!==u.arrow&&void 0!==u.arrow||(u.arrow=0),null!==u.expans&&void 0!==u.expans||(u.expans=1),null!==u.megota&&void 0!==u.megota||(u.megota=1),isNaN(u.arrow)||isNaN(u.repeat)||isNaN(u.expans)||isNaN(u.megota))return t.array=[o(NaN,0,1,1)],t;if(!isFinite(u.repeat)||!isFinite(u.megota))return t.array=[o(1/0,0,1,1)],t;Number.isInteger(u.arrow)||(u.arrow=Math.floor(u.arrow)),Number.isInteger(u.repeat)||(u.repeat=Math.floor(u.repeat)),Number.isInteger(u.expans)||(u.expans=Math.floor(u.expans)),Number.isInteger(u.megota)||(u.megota=Math.floor(u.megota))}do{for(r=!1,this.array.sort((function(r,e){return s([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])})),l=1;l<t.array.length;++l)0===t.array[l].arrow||0!==t.array[l].repeat&&null!==t.array[l].repeat&&void 0!==t.array[l].repeat?0==t.array[l].arrow&&t.array[l].expans>=2&&(t.array[l].arrow=1/0,t.array[l].valuereplaced=0,t.array[l].expans=t.array[l].expans-1):(t.array.splice(l,1),--l);for(var h=1;h<this.array.length;h++)0==this.array[h].repeat&&(this.array.splice(h,1),h--);for(t.array.length||(t.small=!t.small,t.array=[o(1/0)]),t.array.length>e.maxOps&&t.array.splice(1,t.array.length-e.maxOps),this.getOperator(1)>=1&&this.getOperator(0)<n&&(console.log(this.array),this.setOperator(this.getOperator(1)-1,1),this.setOperator(Math.pow(10,this.getOperator(0)),0),r=!0),this.getOperator(0)>a&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),r=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,r=!0);t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,r=!0;for(t.array.length>=2&&t.array[0].repeat<a&&t.array[1].arrow>=2&&1==t.array[1].repeat&&(t.array.splice(1,1,o(t.array[0].repeat,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,r=!0),l=1;l<t.array.length-1;++l)t.array[l].arrow==t.array[l+1].arrow&&t.array[l].expans==t.array[l+1].expans&&t.array[l].megota==t.array[l+1].megota&&(t.array[l].repeat+=t.array[l+1].repeat,t.array.splice(l+1,1),--l,r=!0)}while(r);return this}},{key:"getOperatorIndex",value:function(r){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=0;a<this.array.length;a++){var n=s([this.array[a].megota,this.array[a].expans,this.array[a].arrow],[t,e,r]);if(0==n)return a;if(1==n)return a-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=this.getOperatorIndex(r,e,t);return this.array[a]?this.array[a].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getOperatorIndex(e,t,a);return this.array[n]?(this.array[n].repeat=r,!1):(this.array.splice(Math.ceil(n),0,{arrow:e,expans:t,megota:a,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"clone",value:function(){var r=new e;return r.resetFromObject(this),r}},{key:"resetFromObject",value:function(r){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():0==this.getOperator(1)?this.getOperator(0):1==this.getOperator(1)?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.eq(e.ZERO)?"0":"/".concat(this.rec().toString());if(this.isInfinite())return"Infinity";for(var r="",t=this.array.length-1;t>=0;t--){var a=this.array[t],n="10{".concat(a.arrow===1/0?"!":a.arrow).concat(a.expans>1||a.megota>1?",".concat(a.expans===1/0?"!":a.expans):"").concat(a.megota>1?",".concat(a.megota):"","}");n=1==a.arrow&&1==a.expans&&1==a.megota&&a.repeat<5?"e".repeat(a.repeat):0==a.arrow&&1==a.expans&&1==a.megota?a.repeat.toString():a.repeat>1?"(".concat(n,")^").concat(a.repeat," "):"".concat(n," "),r+="".concat(n)}return r}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}}],[{key:"add",value:function(r,t){return new e(r).add(t)}},{key:"sub",value:function(r,t){return new e(r).sub(t)}},{key:"mul",value:function(r,t){return new e(r).mul(t)}},{key:"div",value:function(r,t){return new e(r).div(t)}},{key:"pow",value:function(r,t){return new e(r).pow(t)}},{key:"root",value:function(r,t){return new e(r).root(t)}},{key:"sqrt",value:function(r){return new e(r).sqrt()}},{key:"cbrt",value:function(r){return new e(r).cbrt()}},{key:"log10",value:function(r){return new e(r).log10()}},{key:"log",value:function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new e(r).log(t)}},{key:"exp",value:function(r){return new e(r).pow_base(Math.E)}},{key:"factorial",value:function(r){return new e(r).factorial()}},{key:"gamma",value:function(r){return new e(r).gamma()}},{key:"lambertw",value:function(r){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new e(r).lambertw(t)}},{key:"fromNumber",value:function(r){var t=new e;r<0?t.sign=-1:0==r?t.sign=0:r>0&&(t.sign=1);var a=Math.abs(r);return a>=11102230246251568e-32&&a<1?(t.small=!0,t.setOperator(1/a,0)):a<11102230246251568e-32?(t.small=!0,t.setOperator(-Math.log10(a),0),t.setOperator(1,1)):t.setOperator(a,0),t.normalize(),t}},{key:"fromString",value:function(r){var t,s,u,h,g,p;if(!i.test(r))throw"[PowiainaNum 0.2 error]malformed input: "+r;var c=new e,f=!1,y=!1;if("-"==r[0]||"+"==r[0]){var m=r.search(/[^-\+]/);f=(null!==(s=null===(t=r.substring(0,m).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==s?s:0)%2==1,r=r.substring(m)}if("/"==r[0]){m=r.search(/[^\/]/);y=(null!==(h=null===(u=r.substring(0,m).match(/\//g))||void 0===u?void 0:u.length)&&void 0!==h?h:0)%2==1,r=r.substring(m)}if("NaN"==r)c.array=[o(NaN)];else if("Infinity"==r)c.array=[o(1/0)];else{var v,w,N,b;for(c.sign=1,c.array=[o(0)];r&&/^(\(?10[\^\{])/.test(r);){var I,d,O;if("("==r[0]&&(r=r.substring(1)),"^"==r[2])I=v=r.substring(2).search(/[^\^]/),w=v+2;else{v=r.indexOf("}");var M=r.substring(3,v).split(",");I=Number("!"==M[0]?1/0:M[0]),d=Number(null!==(g="!"==M[1]?1/0:M[1])&&void 0!==g?g:1),O=Number(null!==(p=M[2])&&void 0!==p?p:1),w=v+1}")"==(r=r.substring(w))[0]?(v=r.indexOf(" "),N=Number(r.substring(2,v)),r=r.substring(v+1)):N=1,1==I&&1==d&&1==O?c.array.length>=2&&1==c.array[1].arrow?c.array[1].repeat+=N:c.array.splice(1,0,o(N,1,d,O)):2==I&&1==d&&1==O?(v=c.array.length>=2&&1==c.array[1].arrow?c.array[1].repeat:0,(w=c.array[0].repeat)>=1e10&&++v,w>=10&&++v,c.array[0].repeat=v,c.array.length>=2&&1==c.array[1].arrow&&c.array.splice(1,1),b=c.getOperatorIndex(2),Number.isInteger(b)?c.array[b].repeat+=N:c.array.splice(Math.ceil(b),0,o(N,2,d,O))):isFinite(I)?(v=c.getOperator(I-1),(w=c.getOperator(I-2))>=10&&++v,b=c.getOperatorIndex(I),c.array.splice(1,Math.ceil(b)-1),c.array[0].repeat=v,Number.isInteger(b)?c.array[1].repeat+=N:c.array.splice(1,0,o(N,I,d,O))):c.array.splice(1,0,o(N,I,d,O))}v=r.split(/[Ee]/),w=[c.array[0].repeat,0],N=1;for(var E=v.length-1;E>=0;--E){w[0]<n&&0===w[1]?w[0]=Math.pow(10,N*w[0]):-1==N?(0===w[1]?w[0]=Math.pow(10,N*w[0]):1==w[1]&&w[0]<=Math.log10(Number.MAX_VALUE)?w[0]=Math.pow(10,N*Math.pow(10,w[0])):w[0]=0,w[1]=0):w[1]++;var k=v[E].indexOf("."),x=-1==k?v[E].length:k;0===w[1]?x>=17?(w[0]=Math.log10(w[0])+l(v[E].substring(0,x)),w[1]=1):v[E]&&(w[0]*=Number(v[E])):(b=x>=17?l(v[E].substring(0,x)):v[E]?Math.log10(Number(v[E])):0,1==w[1]?w[0]+=b:2==w[1]&&w[0]<n+Math.log10(b)&&(w[0]+=Math.log10(1+Math.pow(10,Math.log10(b)-w[0])))),w[0]<n&&w[1]?(w[0]=Math.pow(10,w[0]),w[1]--):w[0]>a&&(w[0]=Math.log10(w[0]),w[1]++)}c.array[0].repeat=w[0],w[1]&&(c.array.length>=2&&1==c.array[1].arrow?c.array[1].repeat+=w[1]:c.array.splice(1,0,o(w[1],1,1,1)))}return f&&(c.sign*=-1),y&&(c.small=!c.small),c.normalize(),c.normalize(),c}},{key:"fromObject",value:function(r){var t=new e;t.array=[];for(var a=0;a<r.array.length;a++)t.array[a]={arrow:r.array[a].arrow,expans:r.array[a].expans,megota:r.array[a].megota,repeat:r.array[a].repeat,valuereplaced:r.array[a].valuereplaced};return t.small=r.small,t.sign=r.sign,t.layer=r.layer,t}}])}();return c.ZERO=new c({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),c.ONE=new c({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),c.MSI=new c(a),c.MSI_REC=((p=new c(a)).small=!0,p),c.E_MSI=new c({array:[{arrow:0,expans:1,megota:1,repeat:a},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),c.E_MSI_REC=new c({array:[{arrow:0,expans:1,megota:1,repeat:a},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),c.TRITRI=new c({small:!1,layer:0,sign:1,array:[o(3638334640023.7783,0,1,1),o(7625587484984,1,1,1)]}),c.GRAHAMS_NUMBER=new c("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),c.POSITIVE_INFINITY=new c(1/0),c.NEGATIVE_INFINITY=new c(-1/0),c.NaN=new c({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),c.maxOps=100,c}));
|
|
1
|
+
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum=e()}(this,(function(){"use strict";function r(r,a){for(var t=0;t<a.length;t++){var n=a[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,e(n.key),n)}}function e(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var a=r[Symbol.toPrimitive];if(void 0!==a){var t=a.call(r,e||"default");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function a(r){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var t=9007199254740991,n=15.954589770191003,i=/^[-\+]*(Infinity|NaN|(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d* )*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function o(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:a,megota:t,valuereplaced:e==1/0?0:a==1/0?1:-1}}function s(){for(var r=arguments.length,e=new Array(r),a=0;a<r;a++)e[a]=arguments[a];for(var t=0;t<Math.min(e[0].length,e[1].length);t++){var n=e[0][t],i=e[1][t];if(n<i)return-1;if(n>i)return 1}return 0}function l(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var u=.5671432904097838;function h(r){var e,a,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!Number.isFinite(r))return r;if(n){if(0===r)return r;if(1===r)return u;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var i=0;i<100;++i){if(a=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(a-e)<t*Math.abs(a))return a;e=a}throw Error("Iteration failed to converge: ".concat(r.toString()))}function g(r){var e,a,t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(r.isInfinite())return r;if(o){if(r.eq(p.ZERO))return p.ZERO.clone();if(r.eq(p.ONE))return p.fromNumber(u);e=r.log()}else{if(r.eq(p.ZERO))return p.NEGATIVE_INFINITY.clone();e=r.neg().log()}for(var s=0;s<100;++s){if(a=e.neg().exp(),t=e.sub(r.mul(a)),(n=e.sub(t.div(e.add(1).sub(e.add(2).mul(t).div(e.mul(2).add(2)))))).sub(e).abs().lt(n.abs().mul(i)))return n;e=n}throw Error("Iteration failed to converge: ".concat(r.toString()))}var y,p=function(){function e(r){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===r);else if("number"==typeof r){var t=e.fromNumber(r);this.resetFromObject(t)}else if("object"==a(r)){var n=e.fromObject(r);this.resetFromObject(n)}else if("string"==typeof r){var i=e.fromString(r);this.resetFromObject(i)}}return function(e,a,t){return a&&r(e.prototype,a),t&&r(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(e,[{key:"add",value:function(r){var a,t,i,s,l,u,h=this.clone(),g=new e(r);if(h.eq(e.POSITIVE_INFINITY)&&g.eq(e.NEGATIVE_INFINITY)||h.eq(e.NEGATIVE_INFINITY)&&g.eq(e.POSITIVE_INFINITY))return e.NaN.clone();if(!h.isFinite())return h.clone();if(!g.isFinite())return g.clone();if(h.isZero())return g.clone();if(g.isZero())return h.clone();if(h.sign==-g.sign&&function(){var r=h.abs(),e=g.abs();return r.eq(e)}())return e.ZERO.clone();if(h.abs().lt(e.E_MSI_REC)||h.abs().gt(e.E_MSI)||g.abs().lt(e.E_MSI_REC)||g.abs().gt(e.E_MSI))return h.maxabs(g);if(-1==h.sign)return h.neg().add(g.neg()).neg();h.cmpabs(g)>0?(l=h,u=g):(u=h,l=g);var y=1;if(!(l.small||u.small||(null===(a=l.array[1])||void 0===a?void 0:a.repeat)||(null===(t=u.array[1])||void 0===t?void 0:t.repeat)||l.sign!=u.sign))return new e((l.array[0].repeat+u.array[0].repeat)*l.sign);var p=(l.small?-1:1)*((null===(i=l.array[1])||void 0===i?void 0:i.repeat)?l.array[0].repeat:Math.log10(l.array[0].repeat)),f=(u.small?-1:1)*((null===(s=u.array[1])||void 0===s?void 0:s.repeat)?u.array[0].repeat:Math.log10(u.array[0].repeat));if(p-f>n)return l;var c,v,m=-Math.floor(p),N=0;if((v=l.sign*Math.pow(10,p+m)+u.sign*Math.pow(10,f+m))>0&&(N=Math.log10(v)-m),v<0&&(N=Math.log10(-v)-m,y*=-1),0==v)throw Error("Encounter a calculate error");return(c=new e).sign=1,c.array=N>n||N<-n?[o(N,0),o(1,1)]:[o(Math.pow(10,N),0)],c.small=N<0,c.sign*=y,c}},{key:"sub",value:function(r){return this.add(new e(r).neg())}},{key:"mul",value:function(r){var a,t=this.clone(),n=new e(r);return t.eq(e.POSITIVE_INFINITY)&&n.eq(e.NEGATIVE_INFINITY)||n.eq(e.POSITIVE_INFINITY)&&t.eq(e.NEGATIVE_INFINITY)?e.NEGATIVE_INFINITY.clone():t.isInfinite()&&n.eq(e.ZERO)&&n.isInfinite()&&t.eq(e.ZERO)?e.NaN.clone():t.eq(e.NEGATIVE_INFINITY)&&n.eq(e.NEGATIVE_INFINITY)?e.POSITIVE_INFINITY.clone():t.isFinite()?n.isFinite()?t.isZero()||n.isZero()?e.ZERO.clone():((a=t.abs().log10().add(n.abs().log10()).pow10()).sign=t.sign*n.sign,a):n.clone():t.clone()}},{key:"div",value:function(r){var a=new e(r).rec();return this.mul(a)}},{key:"pow10",value:function(){var r,a,t=this.clone();return this.isFinite()?t.isneg()?(t.sign*=-1,t.pow10().rec()):t.small?t.lt(e.MSI_REC)?e.ONE:new e(Math.pow(10,Math.pow(t.array[0].repeat,-1))):(t.setOperator((null!==(a=null===(r=t.array[1])||void 0===r?void 0:r.repeat)&&void 0!==a?a:0)+1,1),t.normalize(),t):this.clone()}},{key:"pow",value:function(r){var a=new e(r);if(!a.isFinite())return a.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return a.pow10();if(this.isneg()){if(!a.isInt())return e.NaN.clone();var t=this.abs().pow(a);return t.sign=function(){var r=a.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),t}var n=this.toNumber(),i=this.toNumber(),o=Math.pow(n,i);return isFinite(o)?this.log10().mul(a).pow10():e.fromNumber(o)}},{key:"pow_base",value:function(r){return new e(r).pow(this)}},{key:"root",value:function(r){var a=new e(r);return this.pow(a.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.root(3)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"log10",value:function(){if(this.isneg())return e.NaN.clone();if(this.isZero())return e.NEGATIVE_INFINITY.clone();if(this.small){var r=this.clone();return r.small=!r.small,r.log10().neg()}if(0==this.getOperator(1))return new e(Math.log10(this.getOperator(0)));var a=this.clone();return a.setOperator(a.getOperator(1)-1,1),a.normalize(),a}},{key:"log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,a=new e(r);return this.log10().div(a.log10())}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"mod",value:function(r){var a=new e(r),t=this.div(a);return t.sub(t.floor()).mul(a)}},{key:"factorial",value:function(){return this.abs().lt(t)?this.add(1).gamma():this.abs().lt(e.E_MSI)?e.exp(this.mul(this.log10().sub(1))):e.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(t)){if(this.lt(24))return e.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var a=.9189385332046727;a+=((r-=1)+.5)*Math.log(r),a-=r;var t=r*r,n=r;return a+=1/(12*n),a-=1/(360*(n*=t)),a+=1/(1260*(n*=t)),a-=1/(1680*(n*=t)),a+=1/(1188*(n*=t)),a-=691/(360360*(n*=t)),a+=7/(1092*(n*=t)),a-=3617/(122400*(n*=t)),Math.exp(a)/e}(this.sign*this.getOperator(0)));var r=this.getOperator(0)-1,a=.9189385332046727;a+=(r+.5)*Math.log(r);var n=r*r,i=r,o=12*i,s=1/o,l=(a-=r)+s;if(l===a)return e.exp(a);if((l=(a=l)-(s=1/(o=360*(i*=n))))===a)return e.exp(a);a=l;var u=1/(o=1260*(i*=n));return a+=u,a-=u=1/(o=1680*(i*=n)),e.exp(a)}return this.gt(t)?e.exp(this.mul(this.log().sub(1))):e.exp(this)}},{key:"lambertw",value:function(){var r=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?e.NaN.clone():r?this.abs().lt("1e-300")?new e(this):this.small?e.fromNumber(h(this.toNumber())):0===this.layer?e.fromNumber(h(this.sign*this.getOperator(0))):this.lt("eee15")?g(this):this.log():1===this.sign?e.NaN.clone():0===this.layer?e.fromNumber(h(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?g(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"max",value:function(r){var a=new e(r);return this.lt(a)?a.clone():this.clone()}},{key:"min",value:function(r){var a=new e(r);return this.gte(a)?a.clone():this.clone()}},{key:"maxabs",value:function(r){var a=new e(r).abs();return this.abs().lt(a)?a.clone():this.clone()}},{key:"minabs",value:function(r){var a=new e(r).abs();return this.abs().gt(a)?a.clone():this.clone()}},{key:"cmpabs",value:function(r){var a=new e(r).abs();return this.abs().cmp(a)}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?e.ZERO.clone():e.ONE.neg().clone();var r=this.abs();return r.array[0].repeat=Math[1==this.sign?"floor":"ceil"](r.getOperator(0)),r}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?e.ONE.clone():e.ZERO.clone();var r=this.abs();return r.array[0].repeat=Math[1==this.sign?"ceil":"floor"](r.getOperator(0)),r.sign=this.sign,r}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?e.ONE.clone():e.ZERO.clone():this.abs().rec().lte(2)?e.ZERO.clone():e.ONE.neg().clone();var r=this.abs();return r.array[0].repeat=Math.round(r.array[0].repeat),r.sign=this.sign,r}},{key:"compare",value:function(r){var a=new e(r);if(this.isNaN()||a.isNaN())return 2;if(this.sign<a.sign)return-1;if(this.sign>a.sign)return 1;var t=-1==this.sign&&-1==a.sign;if(this.small&&!a.small)return-1*(t?-1:1);if(a.small&&!this.small)return 1*(t?-1:1);var n=1;this.small&&a.small&&(n*=-1),t&&(n*=-1);for(var i=0,o=0;this.array.length-1-o>=0&&a.array.length-1-o>=0;o++){var l=this.array[this.array.length-1-o],u=a.array[a.array.length-1-o],h=s([l.megota,l.expans,l.arrow,l.repeat],[u.megota,u.expans,u.arrow,u.repeat]);if(1==h){i=1;break}if(-1==h){i=-1;break}}return i*n+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfinite",value:function(){return Boolean(!this.small&&!isFinite(this.getOperator(0)))||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(t/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"normalize",value:function(){for(var r=!0,a=this,i=0;i<this.array.length;i++)if(this.array[i].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var l=1;l<a.array.length;++l){var u=a.array[l];if(null!==u.arrow&&void 0!==u.arrow||(u.arrow=0),null!==u.expans&&void 0!==u.expans||(u.expans=1),null!==u.megota&&void 0!==u.megota||(u.megota=1),isNaN(u.arrow)||isNaN(u.repeat)||isNaN(u.expans)||isNaN(u.megota))return a.array=[o(NaN,0,1,1)],a;if(!isFinite(u.repeat)||!isFinite(u.megota))return a.array=[o(1/0,0,1,1)],a;Number.isInteger(u.arrow)||(u.arrow=Math.floor(u.arrow)),Number.isInteger(u.repeat)||(u.repeat=Math.floor(u.repeat)),Number.isInteger(u.expans)||(u.expans=Math.floor(u.expans)),Number.isInteger(u.megota)||(u.megota=Math.floor(u.megota))}do{for(r=!1,this.array.sort((function(r,e){return s([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])})),l=1;l<a.array.length;++l)0===a.array[l].arrow||0!==a.array[l].repeat&&null!==a.array[l].repeat&&void 0!==a.array[l].repeat?0==a.array[l].arrow&&a.array[l].expans>=2&&(a.array[l].arrow=1/0,a.array[l].valuereplaced=0,a.array[l].expans=a.array[l].expans-1):(a.array.splice(l,1),--l);for(var h=1;h<this.array.length;h++)0==this.array[h].repeat&&(this.array.splice(h,1),h--);for(a.array.length||(a.small=!a.small,a.array=[o(1/0)]),a.array.length>e.maxOps&&a.array.splice(1,a.array.length-e.maxOps),this.getOperator(1)>=1&&this.getOperator(0)<n&&(this.setOperator(this.getOperator(1)-1,1),this.setOperator(Math.pow(10,this.getOperator(0)),0),r=!0),this.getOperator(0)>t&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),r=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,r=!0);a.array.length>=2&&1==a.array[0].repeat&&a.array[1].repeat;)a.array[1].repeat>1?a.array[1].repeat--:a.array.splice(1,1),a.array[0].repeat=10,r=!0;for(a.array.length>=2&&a.array[0].repeat<t&&a.array[1].arrow>=2&&1==a.array[1].repeat&&(a.array.splice(1,1,o(a.array[0].repeat,a.array[1].arrow-1,a.array[1].expans,a.array[1].megota)),a.array[0].repeat=10,r=!0),l=1;l<a.array.length-1;++l)a.array[l].arrow==a.array[l+1].arrow&&a.array[l].expans==a.array[l+1].expans&&a.array[l].megota==a.array[l+1].megota&&(a.array[l].repeat+=a.array[l+1].repeat,a.array.splice(l+1,1),--l,r=!0)}while(r);return this}},{key:"getOperatorIndex",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(1==this.array.length&&0==r)return 0;if(1==this.array.length&&1==r)return.5;if(2==this.array.length&&1==r)return 1;if(2==this.array.length&&0==r)return 0;for(var t=0;t<this.array.length;t++){var n=s([this.array[t].megota,this.array[t].expans,this.array[t].arrow],[a,e,r]);if(0==n)return t;if(1==n)return t-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,t=this.getOperatorIndex(r,e,a);return this.array[t]?this.array[t].repeat:0}},{key:"setOperator",value:function(r,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getOperatorIndex(e,a,t);return this.array[n]?(this.array[n].repeat=r,!1):(this.array.splice(Math.ceil(n),0,{arrow:e,expans:a,megota:t,valuereplaced:a===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"clone",value:function(){var r=new e;return r.resetFromObject(this),r}},{key:"resetFromObject",value:function(r){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():0==this.getOperator(1)?this.getOperator(0):1==this.getOperator(1)?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.eq(e.ZERO)?"0":"/".concat(this.rec().toString());if(this.isInfinite())return"Infinity";for(var r="",a=this.array.length-1;a>=0;a--){var t=this.array[a],n="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");n=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(n,")^").concat(t.repeat," "):"".concat(n," "),r+="".concat(n)}return r}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}}],[{key:"add",value:function(r,a){return new e(r).add(a)}},{key:"sub",value:function(r,a){return new e(r).sub(a)}},{key:"mul",value:function(r,a){return new e(r).mul(a)}},{key:"div",value:function(r,a){return new e(r).div(a)}},{key:"pow",value:function(r,a){return new e(r).pow(a)}},{key:"root",value:function(r,a){return new e(r).root(a)}},{key:"sqrt",value:function(r){return new e(r).sqrt()}},{key:"cbrt",value:function(r){return new e(r).cbrt()}},{key:"log10",value:function(r){return new e(r).log10()}},{key:"log",value:function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new e(r).log(a)}},{key:"exp",value:function(r){return new e(r).pow_base(Math.E)}},{key:"factorial",value:function(r){return new e(r).factorial()}},{key:"gamma",value:function(r){return new e(r).gamma()}},{key:"lambertw",value:function(r){var a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new e(r).lambertw(a)}},{key:"isNaN",value:function(r){return new e(r).isNaN()}},{key:"fromNumber",value:function(r){var a=new e;r<0?a.sign=-1:0==r?a.sign=0:r>0&&(a.sign=1);var n=Math.abs(r);return n>=11102230246251568e-32&&n<1?(a.small=!0,a.array=[o(1/n,0)]):n<11102230246251568e-32?(a.small=!0,a.array=[o(-Math.log10(n),0),o(1,1)]):n<=t?a.array=[o(n,0)]:(a.setOperator(Math.log10(n),0),a.array=[o(Math.log10(n),0),o(1,1)]),a}},{key:"fromString",value:function(r){var a,s,u,h,g,y;if(!i.test(r))throw"[PowiainaNum 0.2 error]malformed input: "+r;var p=new e;if(!isNaN(Number(r))&&isFinite(Number(r)))return p.resetFromObject(e.fromNumber(Number(r))),p;var f=!1,c=!1;if("-"==r[0]||"+"==r[0]){var v=r.search(/[^-\+]/);f=(null!==(s=null===(a=r.substring(0,v).match(/-/g))||void 0===a?void 0:a.length)&&void 0!==s?s:0)%2==1,r=r.substring(v)}if("/"==r[0]){v=r.search(/[^\/]/);c=(null!==(h=null===(u=r.substring(0,v).match(/\//g))||void 0===u?void 0:u.length)&&void 0!==h?h:0)%2==1,r=r.substring(v)}if("NaN"==r)p.array=[o(NaN)];else if("Infinity"==r)p.array=[o(1/0)];else{var m,N,w,b;for(p.sign=1,p.array=[o(0)];r&&/^(\(?10[\^\{])/.test(r);){var d,I,O;if("("==r[0]&&(r=r.substring(1)),"^"==r[2])d=m=r.substring(2).search(/[^\^]/),N=m+2;else{m=r.indexOf("}");var E=r.substring(3,m).split(",");d=Number("!"==E[0]?1/0:E[0]),I=Number(null!==(g="!"==E[1]?1/0:E[1])&&void 0!==g?g:1),O=Number(null!==(y=E[2])&&void 0!==y?y:1),N=m+1}")"==(r=r.substring(N))[0]?(m=r.indexOf(" "),w=Number(r.substring(2,m)),r=r.substring(m+1)):w=1,1==d&&1==I&&1==O?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=w:p.array.splice(1,0,o(w,1,I,O)):2==d&&1==I&&1==O?(m=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(N=p.array[0].repeat)>=1e10&&++m,N>=10&&++m,p.array[0].repeat=m,p.array.length>=2&&1==p.array[1].arrow&&p.array.splice(1,1),b=p.getOperatorIndex(2),Number.isInteger(b)?p.array[b].repeat+=w:p.array.splice(Math.ceil(b),0,o(w,2,I,O))):isFinite(d)?(m=p.getOperator(d-1),(N=p.getOperator(d-2))>=10&&++m,b=p.getOperatorIndex(d),p.array.splice(1,Math.ceil(b)-1),p.array[0].repeat=m,Number.isInteger(b)?p.array[1].repeat+=w:p.array.splice(1,0,o(w,d,I,O))):p.array.splice(1,0,o(w,d,I,O))}m=r.split(/[Ee]/),N=[p.array[0].repeat,0],w=1;for(var M=m.length-1;M>=0;--M){N[0]<n&&0===N[1]?N[0]=Math.pow(10,w*N[0]):-1==w?(0===N[1]?N[0]=Math.pow(10,w*N[0]):1==N[1]&&N[0]<=Math.log10(Number.MAX_VALUE)?N[0]=Math.pow(10,w*Math.pow(10,N[0])):N[0]=0,N[1]=0):N[1]++;var k=m[M].indexOf("."),x=-1==k?m[M].length:k;0===N[1]?x>=17?(N[0]=Math.log10(N[0])+l(m[M].substring(0,x)),N[1]=1):m[M]&&(N[0]*=Number(m[M])):(b=x>=17?l(m[M].substring(0,x)):m[M]?Math.log10(Number(m[M])):0,1==N[1]?N[0]+=b:2==N[1]&&N[0]<n+Math.log10(b)&&(N[0]+=Math.log10(1+Math.pow(10,Math.log10(b)-N[0])))),N[0]<n&&N[1]?(N[0]=Math.pow(10,N[0]),N[1]--):N[0]>t&&(N[0]=Math.log10(N[0]),N[1]++)}p.array[0].repeat=N[0],N[1]&&(p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=N[1]:p.array.splice(1,0,o(N[1],1,1,1)))}return f&&(p.sign*=-1),c&&(p.small=!p.small),p.normalize(),p.normalize(),p}},{key:"fromObject",value:function(r){var a=new e;a.array=[];for(var t=0;t<r.array.length;t++)a.array[t]={arrow:r.array[t].arrow,expans:r.array[t].expans,megota:r.array[t].megota,repeat:r.array[t].repeat,valuereplaced:r.array[t].valuereplaced};return a.small=r.small,a.sign=r.sign,a.layer=r.layer,a}}])}();return p.ZERO=new p({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),p.ONE=new p({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),p.MSI=new p(t),p.MSI_REC=((y=new p(t)).small=!0,y),p.E_MSI=new p({array:[{arrow:0,expans:1,megota:1,repeat:t},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),p.E_MSI_REC=new p({array:[{arrow:0,expans:1,megota:1,repeat:t},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),p.TRITRI=new p({small:!1,layer:0,sign:1,array:[o(3638334640023.7783,0,1,1),o(7625587484984,1,1,1)]}),p.GRAHAMS_NUMBER=new p("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),p.POSITIVE_INFINITY=new p(1/0),p.NEGATIVE_INFINITY=new p(-1/0),p.NaN=new p({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),p.maxOps=100,p}));
|
package/dist/index.d.ts
CHANGED
|
@@ -97,6 +97,9 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
97
97
|
isFinite(): boolean;
|
|
98
98
|
isInfinite(): boolean;
|
|
99
99
|
isInt(): boolean;
|
|
100
|
+
ispos(): boolean;
|
|
101
|
+
isneg(): boolean;
|
|
102
|
+
static isNaN(x: PowiainaNumSource): boolean;
|
|
100
103
|
/**
|
|
101
104
|
* Normalize functions will make this number convert into standard format.(it also change `this`, like [].sort)
|
|
102
105
|
* @returns normalized number
|
package/package.json
CHANGED