powiaina_num.js 0.2.0-alpha.2.6 → 0.2.0-alpha.2.7

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/README.md CHANGED
@@ -1,71 +1,71 @@
1
- # PowiainaNum.js
2
-
3
- A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.
4
-
5
- This reaches level f<sub>ω<sup>3</sup>+1</sub>.
6
-
7
- Internally, it is represented as an sign,layer, small and array. Sign is 1 or -1. It's 10{oper.arrow, oper.expans, oper.megota}, If arrow count or expans count is Infinite, the count replaces from the next operators.
8
-
9
- Some codes snippet from [ExpantaNum.js by Naruyoko](https://github.com/Naruyoko/ExpantaNum.js)
10
-
11
- Functions are as follows `abs, neg, add, sub, mul, div, rec, pow, sqrt, cbrt, root, log10, log, cmp, isFinite, isInfinite, isNaN`(some missing items that have not been fully developed)
12
-
13
- ## Using
14
-
15
- The library exports a class,
16
- Create a PowiainaNum.js object like this:
17
-
18
- ```javascript
19
- import PowiainaNum from "powiaina_num.js";
20
-
21
- let a = new PowiainaNum(); // create PN.js number with NaN
22
- let b = new PowiainaNum(3); // create PN.js number with number 3
23
- let c = new PowiainaNum("1e114514"); // create PN.js number with number 10^114514
24
-
25
- let d = new PowiainaNum(c); // create PN.js number from a PN.js number
26
- ```
27
-
28
- Javascript operators will not work such as `+`, `-`, etc.
29
- You should call the equivalent functions instead.
30
-
31
- ```javascript
32
- let a = new PowiainaNum(114514);
33
- let b = new PowiainaNum(1919810);
34
-
35
- // Calculate a+b:
36
- let c = a.add(b); // 1919810+114514
37
-
38
- // Calculate a-b:
39
- let c = a.sub(b);
40
-
41
- a.mul(b); // a*b
42
- a.div(b); // a/b
43
- a.pow(b); // a^b
44
-
45
- a.log10(); // log10(a)
46
-
47
- // comparing PN.js numbers
48
-
49
- a.lt(b); // a is less than b
50
- a.gt(b); // a is greater than b
51
- a.eq(b); // a is equals to b
52
- ```
53
-
54
- ## Future ideas
55
-
56
- Extend `Operator` to nearly infinite keys to reach level f<sub>ω<sup>ω</sup></sub>
57
-
58
- ```typescript
59
- interface Operator {
60
- /*P3*/ arrow: number;
61
- /*P4*/ expans: number;
62
- /*P5*/ megota: number;
63
- /*P6*/ powiaina: number;
64
- P7: number;
65
- .....
66
-
67
- repeat: number;
68
-
69
- valuereplaced?: -1 | 0 | 1 | 2 | ...
70
- }
71
- ```
1
+ # PowiainaNum.js
2
+
3
+ A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.
4
+
5
+ This reaches level f<sub>ω<sup>3</sup>+1</sub>.
6
+
7
+ Internally, it is represented as an sign,layer, small and array. Sign is 1 or -1. It's 10{oper.arrow, oper.expans, oper.megota}, If arrow count or expans count is Infinite, the count replaces from the next operators.
8
+
9
+ Some codes snippet from [ExpantaNum.js by Naruyoko](https://github.com/Naruyoko/ExpantaNum.js)
10
+
11
+ Functions are as follows `abs, neg, add, sub, mul, div, rec, pow, sqrt, cbrt, root, log10, log, cmp, isFinite, isInfinite, isNaN`(some missing items that have not been fully developed)
12
+
13
+ ## Using
14
+
15
+ The library exports a class,
16
+ Create a PowiainaNum.js object like this:
17
+
18
+ ```javascript
19
+ import PowiainaNum from "powiaina_num.js";
20
+
21
+ let a = new PowiainaNum(); // create PN.js number with NaN
22
+ let b = new PowiainaNum(3); // create PN.js number with number 3
23
+ let c = new PowiainaNum("1e114514"); // create PN.js number with number 10^114514
24
+
25
+ let d = new PowiainaNum(c); // create PN.js number from a PN.js number
26
+ ```
27
+
28
+ Javascript operators will not work such as `+`, `-`, etc.
29
+ You should call the equivalent functions instead.
30
+
31
+ ```javascript
32
+ let a = new PowiainaNum(114514);
33
+ let b = new PowiainaNum(1919810);
34
+
35
+ // Calculate a+b:
36
+ let c = a.add(b); // 1919810+114514
37
+
38
+ // Calculate a-b:
39
+ let c = a.sub(b);
40
+
41
+ a.mul(b); // a*b
42
+ a.div(b); // a/b
43
+ a.pow(b); // a^b
44
+
45
+ a.log10(); // log10(a)
46
+
47
+ // comparing PN.js numbers
48
+
49
+ a.lt(b); // a is less than b
50
+ a.gt(b); // a is greater than b
51
+ a.eq(b); // a is equals to b
52
+ ```
53
+
54
+ ## Future ideas
55
+
56
+ Extend `Operator` to nearly infinite keys to reach level f<sub>ω<sup>ω</sup></sub>
57
+
58
+ ```typescript
59
+ interface Operator {
60
+ /*P3*/ arrow: number;
61
+ /*P4*/ expans: number;
62
+ /*P5*/ megota: number;
63
+ /*P6*/ powiaina: number;
64
+ P7: number;
65
+ .....
66
+
67
+ repeat: number;
68
+
69
+ valuereplaced?: -1 | 0 | 1 | 2 | ...
70
+ }
71
+ ```
@@ -276,7 +276,7 @@ var PowiainaNum = /*#__PURE__*/function () {
276
276
  if (l > MSI_LOG10 || l < -MSI_LOG10) {
277
277
  r.array = [newOperator(l, 0), newOperator(1, 1)];
278
278
  } else {
279
- r.array = [newOperator(Math.pow(10, l), 0)];
279
+ r.array = [newOperator(Math.pow(10, Math.abs(l)), 0)];
280
280
  }
281
281
  r.small = l < 0 ? true : false;
282
282
  r.sign *= mult;
@@ -403,7 +403,6 @@ var PowiainaNum = /*#__PURE__*/function () {
403
403
  }, {
404
404
  key: "log10",
405
405
  value: function log10() {
406
- var _a, _b;
407
406
  if (this.isneg()) return PowiainaNum.NaN.clone();
408
407
  if (this.isZero()) return PowiainaNum.NEGATIVE_INFINITY.clone();
409
408
  if (this.small) {
@@ -411,7 +410,7 @@ var PowiainaNum = /*#__PURE__*/function () {
411
410
  _x.small = !_x.small;
412
411
  return _x.log10().neg();
413
412
  }
414
- if ((_b = (_a = this.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) !== null && _b !== void 0 ? _b : 0 == 0) return new PowiainaNum(Math.log10(this.array[0].repeat));
413
+ if (this.array.length == 1) return new PowiainaNum(Math.log10(this.array[0].repeat));
415
414
  var x = this.clone();
416
415
  x.array[1].repeat = x.array[1].repeat - 1;
417
416
  x.normalize();
@@ -631,6 +630,12 @@ var PowiainaNum = /*#__PURE__*/function () {
631
630
  r.sign = this.sign;
632
631
  return r;
633
632
  }
633
+ }, {
634
+ key: "trunc",
635
+ value: function trunc() {
636
+ var y = this.clone();
637
+ return y.gte(0) ? y.floor() : y.ceil();
638
+ }
634
639
  /**
635
640
  * @returns if this<other, return -1, if this=other, return 0, if this>other, return 1, if this!<=>, return 2
636
641
  */
@@ -1092,6 +1097,30 @@ var PowiainaNum = /*#__PURE__*/function () {
1092
1097
  var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
1093
1098
  return new PowiainaNum(x).lambertw(principal);
1094
1099
  }
1100
+ }, {
1101
+ key: "tetrate_10",
1102
+ value: function tetrate_10(other2) {
1103
+ var other = new PowiainaNum(other2);
1104
+ var height_int = other.trunc().toNumber();
1105
+ var height_frac = other.sub(height_int).toNumber();
1106
+ if (other.gt(PowiainaNum.PENTATED_MSI)) return other.clone();else if (other.gt(PowiainaNum.MSI)) {
1107
+ other.setOperator(other.getOperator(2) + 1, 2);
1108
+ } else if (other.lt(-2)) return PowiainaNum.NaN.clone();else if (other.lt(-1)) {
1109
+ return other.add(2).log10();
1110
+ } else if (other.lt(0)) {
1111
+ return other.add(1);
1112
+ } else if (other.lt(1)) {
1113
+ return other.pow10(); // 10^x
1114
+ } else if (height_int == 1) return PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac));else if (height_int == 2) return PowiainaNum.pow(10, PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac)));else {
1115
+ var remain = height_int - 2;
1116
+ var a = PowiainaNum.pow(10, PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac)));
1117
+ a.setOperator(a.getOperator(1) + remain, 1);
1118
+ return a;
1119
+ }
1120
+ // 1--2, 10-<1e10, 10^10^0->1
1121
+ // 2--3, 1e10-<e1e10, 10^10^10^0->1
1122
+ return PowiainaNum.NaN.clone();
1123
+ }
1095
1124
  }, {
1096
1125
  key: "isNaN",
1097
1126
  value: function isNaN(x) {
@@ -1102,7 +1131,12 @@ var PowiainaNum = /*#__PURE__*/function () {
1102
1131
  value: function fromNumber(x) {
1103
1132
  var obj = new PowiainaNum(); // NaN
1104
1133
  if (x < 0) obj.sign = -1; // negative
1105
- else if (x == 0) obj.sign = 0;else if (x > 0) obj.sign = 1;
1134
+ else if (x == 0) {
1135
+ obj.sign = 0;
1136
+ obj.small = true;
1137
+ obj.array = [newOperator(Infinity, 0)];
1138
+ return obj;
1139
+ } else if (x > 0) obj.sign = 1;
1106
1140
  var y = Math.abs(x);
1107
1141
  if (y >= MSI_REC && y < 1) {
1108
1142
  obj.small = true;
@@ -1371,6 +1405,27 @@ PowiainaNum.TETRATED_MSI = new PowiainaNum({
1371
1405
  layer: 0,
1372
1406
  sign: 1
1373
1407
  });
1408
+ PowiainaNum.PENTATED_MSI = new PowiainaNum({
1409
+ array: [{
1410
+ arrow: 0,
1411
+ expans: 1,
1412
+ megota: 1,
1413
+ repeat: MSI
1414
+ }, {
1415
+ arrow: 1,
1416
+ expans: 1,
1417
+ megota: 1,
1418
+ repeat: MSI
1419
+ }, {
1420
+ arrow: 2,
1421
+ expans: 1,
1422
+ megota: 1,
1423
+ repeat: MSI
1424
+ }],
1425
+ small: false,
1426
+ layer: 0,
1427
+ sign: 1
1428
+ });
1374
1429
  PowiainaNum.TRITRI = new PowiainaNum({
1375
1430
  small: false,
1376
1431
  layer: 0,
@@ -274,7 +274,7 @@ var PowiainaNum = /*#__PURE__*/function () {
274
274
  if (l > MSI_LOG10 || l < -MSI_LOG10) {
275
275
  r.array = [newOperator(l, 0), newOperator(1, 1)];
276
276
  } else {
277
- r.array = [newOperator(Math.pow(10, l), 0)];
277
+ r.array = [newOperator(Math.pow(10, Math.abs(l)), 0)];
278
278
  }
279
279
  r.small = l < 0 ? true : false;
280
280
  r.sign *= mult;
@@ -401,7 +401,6 @@ var PowiainaNum = /*#__PURE__*/function () {
401
401
  }, {
402
402
  key: "log10",
403
403
  value: function log10() {
404
- var _a, _b;
405
404
  if (this.isneg()) return PowiainaNum.NaN.clone();
406
405
  if (this.isZero()) return PowiainaNum.NEGATIVE_INFINITY.clone();
407
406
  if (this.small) {
@@ -409,7 +408,7 @@ var PowiainaNum = /*#__PURE__*/function () {
409
408
  _x.small = !_x.small;
410
409
  return _x.log10().neg();
411
410
  }
412
- if ((_b = (_a = this.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) !== null && _b !== void 0 ? _b : 0 == 0) return new PowiainaNum(Math.log10(this.array[0].repeat));
411
+ if (this.array.length == 1) return new PowiainaNum(Math.log10(this.array[0].repeat));
413
412
  var x = this.clone();
414
413
  x.array[1].repeat = x.array[1].repeat - 1;
415
414
  x.normalize();
@@ -629,6 +628,12 @@ var PowiainaNum = /*#__PURE__*/function () {
629
628
  r.sign = this.sign;
630
629
  return r;
631
630
  }
631
+ }, {
632
+ key: "trunc",
633
+ value: function trunc() {
634
+ var y = this.clone();
635
+ return y.gte(0) ? y.floor() : y.ceil();
636
+ }
632
637
  /**
633
638
  * @returns if this<other, return -1, if this=other, return 0, if this>other, return 1, if this!<=>, return 2
634
639
  */
@@ -1090,6 +1095,30 @@ var PowiainaNum = /*#__PURE__*/function () {
1090
1095
  var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
1091
1096
  return new PowiainaNum(x).lambertw(principal);
1092
1097
  }
1098
+ }, {
1099
+ key: "tetrate_10",
1100
+ value: function tetrate_10(other2) {
1101
+ var other = new PowiainaNum(other2);
1102
+ var height_int = other.trunc().toNumber();
1103
+ var height_frac = other.sub(height_int).toNumber();
1104
+ if (other.gt(PowiainaNum.PENTATED_MSI)) return other.clone();else if (other.gt(PowiainaNum.MSI)) {
1105
+ other.setOperator(other.getOperator(2) + 1, 2);
1106
+ } else if (other.lt(-2)) return PowiainaNum.NaN.clone();else if (other.lt(-1)) {
1107
+ return other.add(2).log10();
1108
+ } else if (other.lt(0)) {
1109
+ return other.add(1);
1110
+ } else if (other.lt(1)) {
1111
+ return other.pow10(); // 10^x
1112
+ } else if (height_int == 1) return PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac));else if (height_int == 2) return PowiainaNum.pow(10, PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac)));else {
1113
+ var remain = height_int - 2;
1114
+ var a = PowiainaNum.pow(10, PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac)));
1115
+ a.setOperator(a.getOperator(1) + remain, 1);
1116
+ return a;
1117
+ }
1118
+ // 1--2, 10-<1e10, 10^10^0->1
1119
+ // 2--3, 1e10-<e1e10, 10^10^10^0->1
1120
+ return PowiainaNum.NaN.clone();
1121
+ }
1093
1122
  }, {
1094
1123
  key: "isNaN",
1095
1124
  value: function isNaN(x) {
@@ -1100,7 +1129,12 @@ var PowiainaNum = /*#__PURE__*/function () {
1100
1129
  value: function fromNumber(x) {
1101
1130
  var obj = new PowiainaNum(); // NaN
1102
1131
  if (x < 0) obj.sign = -1; // negative
1103
- else if (x == 0) obj.sign = 0;else if (x > 0) obj.sign = 1;
1132
+ else if (x == 0) {
1133
+ obj.sign = 0;
1134
+ obj.small = true;
1135
+ obj.array = [newOperator(Infinity, 0)];
1136
+ return obj;
1137
+ } else if (x > 0) obj.sign = 1;
1104
1138
  var y = Math.abs(x);
1105
1139
  if (y >= MSI_REC && y < 1) {
1106
1140
  obj.small = true;
@@ -1369,6 +1403,27 @@ PowiainaNum.TETRATED_MSI = new PowiainaNum({
1369
1403
  layer: 0,
1370
1404
  sign: 1
1371
1405
  });
1406
+ PowiainaNum.PENTATED_MSI = new PowiainaNum({
1407
+ array: [{
1408
+ arrow: 0,
1409
+ expans: 1,
1410
+ megota: 1,
1411
+ repeat: MSI
1412
+ }, {
1413
+ arrow: 1,
1414
+ expans: 1,
1415
+ megota: 1,
1416
+ repeat: MSI
1417
+ }, {
1418
+ arrow: 2,
1419
+ expans: 1,
1420
+ megota: 1,
1421
+ repeat: MSI
1422
+ }],
1423
+ small: false,
1424
+ layer: 0,
1425
+ sign: 1
1426
+ });
1372
1427
  PowiainaNum.TRITRI = new PowiainaNum({
1373
1428
  small: false,
1374
1429
  layer: 0,
@@ -280,7 +280,7 @@
280
280
  if (l > MSI_LOG10 || l < -MSI_LOG10) {
281
281
  r.array = [newOperator(l, 0), newOperator(1, 1)];
282
282
  } else {
283
- r.array = [newOperator(Math.pow(10, l), 0)];
283
+ r.array = [newOperator(Math.pow(10, Math.abs(l)), 0)];
284
284
  }
285
285
  r.small = l < 0 ? true : false;
286
286
  r.sign *= mult;
@@ -407,7 +407,6 @@
407
407
  }, {
408
408
  key: "log10",
409
409
  value: function log10() {
410
- var _a, _b;
411
410
  if (this.isneg()) return PowiainaNum.NaN.clone();
412
411
  if (this.isZero()) return PowiainaNum.NEGATIVE_INFINITY.clone();
413
412
  if (this.small) {
@@ -415,7 +414,7 @@
415
414
  _x.small = !_x.small;
416
415
  return _x.log10().neg();
417
416
  }
418
- if ((_b = (_a = this.array[1]) === null || _a === void 0 ? void 0 : _a.repeat) !== null && _b !== void 0 ? _b : 0 == 0) return new PowiainaNum(Math.log10(this.array[0].repeat));
417
+ if (this.array.length == 1) return new PowiainaNum(Math.log10(this.array[0].repeat));
419
418
  var x = this.clone();
420
419
  x.array[1].repeat = x.array[1].repeat - 1;
421
420
  x.normalize();
@@ -635,6 +634,12 @@
635
634
  r.sign = this.sign;
636
635
  return r;
637
636
  }
637
+ }, {
638
+ key: "trunc",
639
+ value: function trunc() {
640
+ var y = this.clone();
641
+ return y.gte(0) ? y.floor() : y.ceil();
642
+ }
638
643
  /**
639
644
  * @returns if this<other, return -1, if this=other, return 0, if this>other, return 1, if this!<=>, return 2
640
645
  */
@@ -1096,6 +1101,30 @@
1096
1101
  var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
1097
1102
  return new PowiainaNum(x).lambertw(principal);
1098
1103
  }
1104
+ }, {
1105
+ key: "tetrate_10",
1106
+ value: function tetrate_10(other2) {
1107
+ var other = new PowiainaNum(other2);
1108
+ var height_int = other.trunc().toNumber();
1109
+ var height_frac = other.sub(height_int).toNumber();
1110
+ if (other.gt(PowiainaNum.PENTATED_MSI)) return other.clone();else if (other.gt(PowiainaNum.MSI)) {
1111
+ other.setOperator(other.getOperator(2) + 1, 2);
1112
+ } else if (other.lt(-2)) return PowiainaNum.NaN.clone();else if (other.lt(-1)) {
1113
+ return other.add(2).log10();
1114
+ } else if (other.lt(0)) {
1115
+ return other.add(1);
1116
+ } else if (other.lt(1)) {
1117
+ return other.pow10(); // 10^x
1118
+ } else if (height_int == 1) return PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac));else if (height_int == 2) return PowiainaNum.pow(10, PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac)));else {
1119
+ var remain = height_int - 2;
1120
+ var a = PowiainaNum.pow(10, PowiainaNum.pow(10, PowiainaNum.pow(10, height_frac)));
1121
+ a.setOperator(a.getOperator(1) + remain, 1);
1122
+ return a;
1123
+ }
1124
+ // 1--2, 10-<1e10, 10^10^0->1
1125
+ // 2--3, 1e10-<e1e10, 10^10^10^0->1
1126
+ return PowiainaNum.NaN.clone();
1127
+ }
1099
1128
  }, {
1100
1129
  key: "isNaN",
1101
1130
  value: function isNaN(x) {
@@ -1106,7 +1135,12 @@
1106
1135
  value: function fromNumber(x) {
1107
1136
  var obj = new PowiainaNum(); // NaN
1108
1137
  if (x < 0) obj.sign = -1; // negative
1109
- else if (x == 0) obj.sign = 0;else if (x > 0) obj.sign = 1;
1138
+ else if (x == 0) {
1139
+ obj.sign = 0;
1140
+ obj.small = true;
1141
+ obj.array = [newOperator(Infinity, 0)];
1142
+ return obj;
1143
+ } else if (x > 0) obj.sign = 1;
1110
1144
  var y = Math.abs(x);
1111
1145
  if (y >= MSI_REC && y < 1) {
1112
1146
  obj.small = true;
@@ -1375,6 +1409,27 @@
1375
1409
  layer: 0,
1376
1410
  sign: 1
1377
1411
  });
1412
+ PowiainaNum.PENTATED_MSI = new PowiainaNum({
1413
+ array: [{
1414
+ arrow: 0,
1415
+ expans: 1,
1416
+ megota: 1,
1417
+ repeat: MSI
1418
+ }, {
1419
+ arrow: 1,
1420
+ expans: 1,
1421
+ megota: 1,
1422
+ repeat: MSI
1423
+ }, {
1424
+ arrow: 2,
1425
+ expans: 1,
1426
+ megota: 1,
1427
+ repeat: MSI
1428
+ }],
1429
+ small: false,
1430
+ layer: 0,
1431
+ sign: 1
1432
+ });
1378
1433
  PowiainaNum.TRITRI = new PowiainaNum({
1379
1434
  small: false,
1380
1435
  layer: 0,
@@ -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,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,m,v=-Math.floor(p),N=0;if((m=l.sign*Math.pow(10,p+v)+u.sign*Math.pow(10,f+v))>0&&(N=Math.log10(m)-v),m<0&&(N=Math.log10(-m)-v,y*=-1),0==m)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.lte(308.25471555991675)?e.fromNumber(Math.pow(10,t.toNumber())):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=a.toNumber(),o=Math.pow(n,i);return isFinite(o)?e.fromNumber(o):this.log10().mul(a).pow10()}},{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(){var r,a;if(this.isneg())return e.NaN.clone();if(this.isZero())return e.NEGATIVE_INFINITY.clone();if(this.small){var t=this.clone();return t.small=!t.small,t.log10().neg()}if(null===(a=null===(r=this.array[1])||void 0===r?void 0:r.repeat)||void 0===a||a)return new e(Math.log10(this.array[0].repeat));var n=this.clone();return n.array[1].repeat=n.array[1].repeat-1,n.normalize(),n}},{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():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?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,p=new e;if(!isNaN(Number(r))&&isFinite(Number(r)))return p.resetFromObject(e.fromNumber(Number(r))),p;if(!i.test(r))throw"[PowiainaNum 0.2 error]malformed input: "+r;var f=!1,c=!1;if("-"==r[0]||"+"==r[0]){var m=r.search(/[^-\+]/);f=(null!==(s=null===(a=r.substring(0,m).match(/-/g))||void 0===a?void 0:a.length)&&void 0!==s?s:0)%2==1,r=r.substring(m)}if("/"==r[0]){m=r.search(/[^\/]/);c=(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)p.array=[o(NaN)];else if("Infinity"==r)p.array=[o(1/0)];else{var v,N,w,b;for(p.sign=1,p.array=[o(0)];r&&/^(\(?10[\^\{])/.test(r);){var d,I,E;if("("==r[0]&&(r=r.substring(1)),"^"==r[2])d=v=r.substring(2).search(/[^\^]/),N=v+2;else{v=r.indexOf("}");var M=r.substring(3,v).split(",");d=Number("!"==M[0]?1/0:M[0]),I=Number(null!==(g="!"==M[1]?1/0:M[1])&&void 0!==g?g:1),E=Number(null!==(y=M[2])&&void 0!==y?y:1),N=v+1}")"==(r=r.substring(N))[0]?(v=r.indexOf(" "),w=Number(r.substring(2,v)),r=r.substring(v+1)):w=1,1==d&&1==I&&1==E?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=w:p.array.splice(1,0,o(w,1,I,E)):2==d&&1==I&&1==E?(v=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(N=p.array[0].repeat)>=1e10&&++v,N>=10&&++v,p.array[0].repeat=v,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,E))):isFinite(d)?(v=p.getOperator(d-1),(N=p.getOperator(d-2))>=10&&++v,b=p.getOperatorIndex(d),p.array.splice(1,Math.ceil(b)-1),p.array[0].repeat=v,Number.isInteger(b)?p.array[1].repeat+=w:p.array.splice(1,0,o(w,d,I,E))):p.array.splice(1,0,o(w,d,I,E))}v=r.split(/[Ee]/),N=[p.array[0].repeat,0],w=1;for(var O=v.length-1;O>=0;--O){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=v[O].indexOf("."),x=-1==k?v[O].length:k;0===N[1]?x>=17?(N[0]=Math.log10(N[0])+l(v[O].substring(0,x)),N[1]=1):v[O]&&(N[0]*=Number(v[O])):(b=x>=17?l(v[O].substring(0,x)):v[O]?Math.log10(Number(v[O])):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.TETRATED_MSI=new p({array:[{arrow:0,expans:1,megota:1,repeat:t},{arrow:1,expans:1,megota:1,repeat:t}],small:!1,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}));
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,m,v=-Math.floor(p),w=0;if((m=l.sign*Math.pow(10,p+v)+u.sign*Math.pow(10,f+v))>0&&(w=Math.log10(m)-v),m<0&&(w=Math.log10(-m)-v,y*=-1),0==m)throw Error("Encounter a calculate error");return(c=new e).sign=1,c.array=w>n||w<-n?[o(w,0),o(1,1)]:[o(Math.pow(10,Math.abs(w)),0)],c.small=w<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.lte(308.25471555991675)?e.fromNumber(Math.pow(10,t.toNumber())):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=a.toNumber(),o=Math.pow(n,i);return isFinite(o)?e.fromNumber(o):this.log10().mul(a).pow10()}},{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(1==this.array.length)return new e(Math.log10(this.array[0].repeat));var a=this.clone();return a.array[1].repeat=a.array[1].repeat-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:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{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():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?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:"tetrate_10",value:function(r){var a=new e(r),t=a.trunc().toNumber(),n=a.sub(t).toNumber();if(a.gt(e.PENTATED_MSI))return a.clone();if(!a.gt(e.MSI)){if(a.lt(-2))return e.NaN.clone();if(a.lt(-1))return a.add(2).log10();if(a.lt(0))return a.add(1);if(a.lt(1))return a.pow10();if(1==t)return e.pow(10,e.pow(10,n));if(2==t)return e.pow(10,e.pow(10,e.pow(10,n)));var i=t-2,o=e.pow(10,e.pow(10,e.pow(10,n)));return o.setOperator(o.getOperator(1)+i,1),o}return a.setOperator(a.getOperator(2)+1,2),e.NaN.clone()}},{key:"isNaN",value:function(r){return new e(r).isNaN()}},{key:"fromNumber",value:function(r){var a=new e;if(r<0)a.sign=-1;else{if(0==r)return a.sign=0,a.small=!0,a.array=[o(1/0,0)],a;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,p=new e;if(!isNaN(Number(r))&&isFinite(Number(r)))return p.resetFromObject(e.fromNumber(Number(r))),p;if(!i.test(r))throw"[PowiainaNum 0.2 error]malformed input: "+r;var f=!1,c=!1;if("-"==r[0]||"+"==r[0]){var m=r.search(/[^-\+]/);f=(null!==(s=null===(a=r.substring(0,m).match(/-/g))||void 0===a?void 0:a.length)&&void 0!==s?s:0)%2==1,r=r.substring(m)}if("/"==r[0]){m=r.search(/[^\/]/);c=(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)p.array=[o(NaN)];else if("Infinity"==r)p.array=[o(1/0)];else{var v,w,N,b;for(p.sign=1,p.array=[o(0)];r&&/^(\(?10[\^\{])/.test(r);){var d,I,E;if("("==r[0]&&(r=r.substring(1)),"^"==r[2])d=v=r.substring(2).search(/[^\^]/),w=v+2;else{v=r.indexOf("}");var M=r.substring(3,v).split(",");d=Number("!"==M[0]?1/0:M[0]),I=Number(null!==(g="!"==M[1]?1/0:M[1])&&void 0!==g?g:1),E=Number(null!==(y=M[2])&&void 0!==y?y: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==d&&1==I&&1==E?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=N:p.array.splice(1,0,o(N,1,I,E)):2==d&&1==I&&1==E?(v=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(w=p.array[0].repeat)>=1e10&&++v,w>=10&&++v,p.array[0].repeat=v,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+=N:p.array.splice(Math.ceil(b),0,o(N,2,I,E))):isFinite(d)?(v=p.getOperator(d-1),(w=p.getOperator(d-2))>=10&&++v,b=p.getOperatorIndex(d),p.array.splice(1,Math.ceil(b)-1),p.array[0].repeat=v,Number.isInteger(b)?p.array[1].repeat+=N:p.array.splice(1,0,o(N,d,I,E))):p.array.splice(1,0,o(N,d,I,E))}v=r.split(/[Ee]/),w=[p.array[0].repeat,0],N=1;for(var O=v.length-1;O>=0;--O){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 x=v[O].indexOf("."),k=-1==x?v[O].length:x;0===w[1]?k>=17?(w[0]=Math.log10(w[0])+l(v[O].substring(0,k)),w[1]=1):v[O]&&(w[0]*=Number(v[O])):(b=k>=17?l(v[O].substring(0,k)):v[O]?Math.log10(Number(v[O])):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]>t&&(w[0]=Math.log10(w[0]),w[1]++)}p.array[0].repeat=w[0],w[1]&&(p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=w[1]:p.array.splice(1,0,o(w[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.TETRATED_MSI=new p({array:[{arrow:0,expans:1,megota:1,repeat:t},{arrow:1,expans:1,megota:1,repeat:t}],small:!1,layer:0,sign:1}),p.PENTATED_MSI=new p({array:[{arrow:0,expans:1,megota:1,repeat:t},{arrow:1,expans:1,megota:1,repeat:t},{arrow:2,expans:1,megota:1,repeat:t}],small:!1,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
@@ -71,6 +71,7 @@ export default class PowiainaNum implements IPowiainaNum {
71
71
  */
72
72
  lambertw(princ?: boolean): PowiainaNum;
73
73
  static lambertw(x: PowiainaNumSource, principal?: boolean): PowiainaNum;
74
+ static tetrate_10(other2: PowiainaNumSource): PowiainaNum;
74
75
  max(x: PowiainaNumSource): PowiainaNum;
75
76
  min(x: PowiainaNumSource): PowiainaNum;
76
77
  maxabs(x: PowiainaNumSource): PowiainaNum;
@@ -81,6 +82,7 @@ export default class PowiainaNum implements IPowiainaNum {
81
82
  floor(): PowiainaNum;
82
83
  ceil(): PowiainaNum;
83
84
  round(): PowiainaNum;
85
+ trunc(): PowiainaNum;
84
86
  /**
85
87
  * @returns if this<other, return -1, if this=other, return 0, if this>other, return 1, if this!<=>, return 2
86
88
  */
@@ -140,6 +142,7 @@ export default class PowiainaNum implements IPowiainaNum {
140
142
  static readonly E_MSI: PowiainaNum;
141
143
  static readonly E_MSI_REC: PowiainaNum;
142
144
  static readonly TETRATED_MSI: PowiainaNum;
145
+ static readonly PENTATED_MSI: PowiainaNum;
143
146
  static readonly TRITRI: PowiainaNum;
144
147
  static readonly GRAHAMS_NUMBER: PowiainaNum;
145
148
  static readonly POSITIVE_INFINITY: PowiainaNum;
package/package.json CHANGED
@@ -1,47 +1,47 @@
1
- {
2
- "name": "powiaina_num.js",
3
- "version": "0.2.0-alpha.2.6",
4
- "description": "A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.",
5
- "type": "module",
6
- "main": "dist/PowiainaNum.js",
7
- "module": "dist/PowiainaNum.esm.js",
8
- "exports": {
9
- "import": "./dist/PowiainaNum.esm.js",
10
- "require": "./dist/PowiainaNum.js",
11
- "types": "./dist/index.d.ts"
12
- },
13
- "unpkg": "dist/PowiainaNum.min.js",
14
- "types": "dist/index.d.ts",
15
- "scripts": {
16
- "build": "bili",
17
- "prepublishOnly": "npm run build",
18
- "test": "echo \"Error: no test specified\" && exit 1",
19
- "fix": "prettier --write ."
20
- },
21
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/VeryrrDefine/PowiainaNum.js.git"
24
- },
25
- "keywords": [
26
- "bignum",
27
- "bignumber",
28
- "bigdecimal",
29
- "number",
30
- "decimal"
31
- ],
32
- "files": [
33
- "dist"
34
- ],
35
- "author": "VeryrrDefine",
36
- "license": "MIT",
37
- "bugs": {
38
- "url": "https://github.com/VeryrrDefine/PowiainaNum.js/issues"
39
- },
40
- "homepage": "https://github.com/VeryrrDefine/PowiainaNum.js#readme",
41
- "devDependencies": {
42
- "prettier": "^3.6.2",
43
- "rollup-plugin-typescript2": "^0.36.0",
44
- "typescript": "^5.8.3",
45
- "bili": "^5.0.5"
46
- }
47
- }
1
+ {
2
+ "name": "powiaina_num.js",
3
+ "version": "0.2.0-alpha.2.7",
4
+ "description": "A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.",
5
+ "type": "module",
6
+ "main": "dist/PowiainaNum.js",
7
+ "module": "dist/PowiainaNum.esm.js",
8
+ "exports": {
9
+ "import": "./dist/PowiainaNum.esm.js",
10
+ "require": "./dist/PowiainaNum.js",
11
+ "types": "./dist/index.d.ts"
12
+ },
13
+ "unpkg": "dist/PowiainaNum.min.js",
14
+ "types": "dist/index.d.ts",
15
+ "scripts": {
16
+ "build": "bili",
17
+ "prepublishOnly": "npm run build",
18
+ "test": "echo \"Error: no test specified\" && exit 1",
19
+ "fix": "prettier --write ."
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/VeryrrDefine/PowiainaNum.js.git"
24
+ },
25
+ "keywords": [
26
+ "bignum",
27
+ "bignumber",
28
+ "bigdecimal",
29
+ "number",
30
+ "decimal"
31
+ ],
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "author": "VeryrrDefine",
36
+ "license": "MIT",
37
+ "bugs": {
38
+ "url": "https://github.com/VeryrrDefine/PowiainaNum.js/issues"
39
+ },
40
+ "homepage": "https://github.com/VeryrrDefine/PowiainaNum.js#readme",
41
+ "devDependencies": {
42
+ "prettier": "^3.6.2",
43
+ "rollup-plugin-typescript2": "^0.36.0",
44
+ "typescript": "^5.8.3",
45
+ "bili": "^5.0.5"
46
+ }
47
+ }