powiaina_num.js 0.2.0-beta.1 → 0.2.0-beta.1.1

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 VeryrrDefine
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -64,7 +64,7 @@ function _unsupportedIterableToArray(r, a) {
64
64
  }
65
65
  }
66
66
 
67
- /* Author: VeryrrDefine 0.2.0-alpha.4.3*/
67
+ /* Author: VeryrrDefine 0.2.0-beta.1.1*/
68
68
  var _a;
69
69
  var powiainaNumError = "[PowiainaNum 0.2 error]";
70
70
  var MSI = 9007199254740991;
@@ -544,40 +544,17 @@ var PowiainaNum = /*#__PURE__*/function () {
544
544
  return this.log();
545
545
  }
546
546
  /**
547
- * plog10, beware unexpected errors.
547
+ * positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
548
548
  */
549
549
  }, {
550
- key: "plog10",
551
- value: function plog10() {
552
- return this.max(1).log10();
550
+ key: "pLog10",
551
+ value: function pLog10() {
552
+ if (this.isneg()) return PowiainaNum.ZERO;
553
+ return this.log10();
553
554
  }
554
555
  /**
555
- * plog10, beware unexpected errors.
556
+ * positive-Log10
556
557
  */
557
- }, {
558
- key: "plog",
559
- value:
560
- /**
561
- * plog, beware unexpected errors.
562
- */
563
- function plog() {
564
- var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math.E;
565
- // log_a b = log_x b / log_x a;
566
- var other = new PowiainaNum(base);
567
- return this.plog10().div(other.plog10());
568
- }
569
- /**
570
- * plog, beware unexpected errors.
571
- */
572
- }, {
573
- key: "pln",
574
- value:
575
- /**
576
- * pln, beware unexpected errors.
577
- */
578
- function pln() {
579
- return this.plog();
580
- }
581
558
  }, {
582
559
  key: "exp",
583
560
  value: function exp() {
@@ -700,6 +677,7 @@ var PowiainaNum = /*#__PURE__*/function () {
700
677
  value:
701
678
  //#endregion
702
679
  //#region higher calculates
680
+ //#region Tetration
703
681
  // Code from ExpantaNum.js
704
682
  function tetrate(other2) {
705
683
  var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -851,6 +829,25 @@ var PowiainaNum = /*#__PURE__*/function () {
851
829
  var l = x.ln();
852
830
  return l.div(l.lambertw());
853
831
  }
832
+ }, {
833
+ key: "iteratedlog",
834
+ value:
835
+ /**
836
+ * iterated-log
837
+ *
838
+ * @example new P("10^10^3").iteratedlog(2,10) == 3
839
+ */
840
+ function iteratedlog() {
841
+ var other2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
842
+ var base2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
843
+ var t = this.clone();
844
+ var base = new PowiainaNum(base2);
845
+ var other = new PowiainaNum(other2);
846
+ if (other.isZero()) return t;
847
+ if (other.eq(PowiainaNum.ONE)) return t.log(base);
848
+ return base.tetrate(t.slog(base).sub(other));
849
+ }
850
+ //#endregion
854
851
  }, {
855
852
  key: "arrow",
856
853
  value: function arrow(arrows2) {
@@ -1191,21 +1188,66 @@ var PowiainaNum = /*#__PURE__*/function () {
1191
1188
  return obj;
1192
1189
  }
1193
1190
  }, {
1194
- key: "max",
1195
- value: function max() {
1191
+ key: "clampMin",
1192
+ value:
1193
+ /**
1194
+ * Restrict a number be not lower than a number
1195
+ *
1196
+ * It's also an alias of `PowiainaNum.max`.
1197
+ * @returns restricted number
1198
+ */
1199
+ function clampMin() {
1196
1200
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1197
1201
  args[_key2] = arguments[_key2];
1198
1202
  }
1199
1203
  return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
1200
1204
  }
1205
+ /**
1206
+ * Restrict a number be not higher than a number
1207
+ *
1208
+ * It's also an alias of `PowiainaNum.min`.
1209
+ * @returns restricted number
1210
+ */
1201
1211
  }, {
1202
- key: "min",
1203
- value: function min() {
1212
+ key: "clampMax",
1213
+ value:
1214
+ /**
1215
+ * Restrict a number be not higher than a number
1216
+ *
1217
+ * It's also an alias of `PowiainaNum.min`.
1218
+ * @returns restricted number
1219
+ */
1220
+ function clampMax() {
1204
1221
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1205
1222
  args[_key3] = arguments[_key3];
1206
1223
  }
1207
1224
  return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
1208
1225
  }
1226
+ /**
1227
+ * A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
1228
+ * Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
1229
+ */
1230
+ }, {
1231
+ key: "clamp",
1232
+ value: function clamp(min, max) {
1233
+ return this.max(min).min(max);
1234
+ }
1235
+ }, {
1236
+ key: "max",
1237
+ value: function max() {
1238
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1239
+ args[_key4] = arguments[_key4];
1240
+ }
1241
+ return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
1242
+ }
1243
+ }, {
1244
+ key: "min",
1245
+ value: function min() {
1246
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1247
+ args[_key5] = arguments[_key5];
1248
+ }
1249
+ return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
1250
+ }
1209
1251
  /**
1210
1252
  * Compare what PowiainaNum's absolute value is max
1211
1253
  * @param args
@@ -1214,8 +1256,8 @@ var PowiainaNum = /*#__PURE__*/function () {
1214
1256
  }, {
1215
1257
  key: "maxabs",
1216
1258
  value: function maxabs() {
1217
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1218
- args[_key4] = arguments[_key4];
1259
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1260
+ args[_key6] = arguments[_key6];
1219
1261
  }
1220
1262
  var other = args.map(function (x) {
1221
1263
  return new PowiainaNum(x).abs();
@@ -1225,8 +1267,8 @@ var PowiainaNum = /*#__PURE__*/function () {
1225
1267
  }, {
1226
1268
  key: "minabs",
1227
1269
  value: function minabs() {
1228
- for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1229
- args[_key5] = arguments[_key5];
1270
+ for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1271
+ args[_key7] = arguments[_key7];
1230
1272
  }
1231
1273
  var other = args.map(function (x) {
1232
1274
  return new PowiainaNum(x).abs();
@@ -1304,6 +1346,13 @@ var PowiainaNum = /*#__PURE__*/function () {
1304
1346
  var t = this.cmp(other);
1305
1347
  return t == 0 || t == 1;
1306
1348
  }
1349
+ }, {
1350
+ key: "eq_tolerance",
1351
+ value: function eq_tolerance(value) {
1352
+ var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e-7;
1353
+ var dec = new PowiainaNum(value);
1354
+ return this.sub(dec).lte(this.max(dec).mul(tolerance));
1355
+ }
1307
1356
  //#endregion
1308
1357
  //#region geometry
1309
1358
  }, {
@@ -1605,7 +1654,7 @@ var PowiainaNum = /*#__PURE__*/function () {
1605
1654
  // for any 10{A sample=2}1e9, turn into (10{A-1})^1e9-1 10
1606
1655
  // But dont convert when a is infinite
1607
1656
  // [1e9, [R=1, A=2, sth, sth]]
1608
- x.array.splice(1, 1, newOperator(x.array[0].repeat, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1657
+ x.array.splice(1, 1, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1609
1658
  x.array[0].repeat = 10;
1610
1659
  renormalize = true;
1611
1660
  }
@@ -1848,15 +1897,9 @@ var PowiainaNum = /*#__PURE__*/function () {
1848
1897
  return new PowiainaNum(t).log(base);
1849
1898
  }
1850
1899
  }, {
1851
- key: "plog10",
1852
- value: function plog10(t) {
1853
- return new PowiainaNum(t).plog10();
1854
- }
1855
- }, {
1856
- key: "plog",
1857
- value: function plog(t) {
1858
- var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Math.E;
1859
- return new PowiainaNum(t).plog(base);
1900
+ key: "pLog10",
1901
+ value: function pLog10(t) {
1902
+ return new PowiainaNum(t).pLog10();
1860
1903
  }
1861
1904
  }, {
1862
1905
  key: "exp",
@@ -2097,8 +2140,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2097
2140
  key: "max",
2098
2141
  value: function max() {
2099
2142
  var max = PowiainaNum.NEGATIVE_INFINITY;
2100
- for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
2101
- args[_key6] = arguments[_key6];
2143
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2144
+ args[_key8] = arguments[_key8];
2102
2145
  }
2103
2146
  for (var i = 0; i < args.length; i++) {
2104
2147
  if (max.lt(args[i])) {
@@ -2114,8 +2157,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2114
2157
  key: "min",
2115
2158
  value: function min() {
2116
2159
  var max = PowiainaNum.POSITIVE_INFINITY;
2117
- for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
2118
- args[_key7] = arguments[_key7];
2160
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2161
+ args[_key9] = arguments[_key9];
2119
2162
  }
2120
2163
  for (var i = 0; i < args.length; i++) {
2121
2164
  if (max.gt(args[i])) {
@@ -2135,12 +2178,6 @@ var PowiainaNum = /*#__PURE__*/function () {
2135
2178
  value: function clampMin() {
2136
2179
  return PowiainaNum.max.apply(PowiainaNum, arguments);
2137
2180
  }
2138
- /**
2139
- * Restrict a number be not higher than a number
2140
- *
2141
- * It's also an alias of `PowiainaNum.min`.
2142
- * @returns restricted number
2143
- */
2144
2181
  }, {
2145
2182
  key: "clampMax",
2146
2183
  value: function clampMax() {
@@ -60,7 +60,7 @@ function _unsupportedIterableToArray(r, a) {
60
60
  }
61
61
  }
62
62
 
63
- /* Author: VeryrrDefine 0.2.0-alpha.4.3*/
63
+ /* Author: VeryrrDefine 0.2.0-beta.1.1*/
64
64
  var _a;
65
65
  var powiainaNumError = "[PowiainaNum 0.2 error]";
66
66
  var MSI = 9007199254740991;
@@ -540,40 +540,17 @@ var PowiainaNum = /*#__PURE__*/function () {
540
540
  return this.log();
541
541
  }
542
542
  /**
543
- * plog10, beware unexpected errors.
543
+ * positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
544
544
  */
545
545
  }, {
546
- key: "plog10",
547
- value: function plog10() {
548
- return this.max(1).log10();
546
+ key: "pLog10",
547
+ value: function pLog10() {
548
+ if (this.isneg()) return PowiainaNum.ZERO;
549
+ return this.log10();
549
550
  }
550
551
  /**
551
- * plog10, beware unexpected errors.
552
+ * positive-Log10
552
553
  */
553
- }, {
554
- key: "plog",
555
- value:
556
- /**
557
- * plog, beware unexpected errors.
558
- */
559
- function plog() {
560
- var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math.E;
561
- // log_a b = log_x b / log_x a;
562
- var other = new PowiainaNum(base);
563
- return this.plog10().div(other.plog10());
564
- }
565
- /**
566
- * plog, beware unexpected errors.
567
- */
568
- }, {
569
- key: "pln",
570
- value:
571
- /**
572
- * pln, beware unexpected errors.
573
- */
574
- function pln() {
575
- return this.plog();
576
- }
577
554
  }, {
578
555
  key: "exp",
579
556
  value: function exp() {
@@ -696,6 +673,7 @@ var PowiainaNum = /*#__PURE__*/function () {
696
673
  value:
697
674
  //#endregion
698
675
  //#region higher calculates
676
+ //#region Tetration
699
677
  // Code from ExpantaNum.js
700
678
  function tetrate(other2) {
701
679
  var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -847,6 +825,25 @@ var PowiainaNum = /*#__PURE__*/function () {
847
825
  var l = x.ln();
848
826
  return l.div(l.lambertw());
849
827
  }
828
+ }, {
829
+ key: "iteratedlog",
830
+ value:
831
+ /**
832
+ * iterated-log
833
+ *
834
+ * @example new P("10^10^3").iteratedlog(2,10) == 3
835
+ */
836
+ function iteratedlog() {
837
+ var other2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
838
+ var base2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
839
+ var t = this.clone();
840
+ var base = new PowiainaNum(base2);
841
+ var other = new PowiainaNum(other2);
842
+ if (other.isZero()) return t;
843
+ if (other.eq(PowiainaNum.ONE)) return t.log(base);
844
+ return base.tetrate(t.slog(base).sub(other));
845
+ }
846
+ //#endregion
850
847
  }, {
851
848
  key: "arrow",
852
849
  value: function arrow(arrows2) {
@@ -1187,21 +1184,66 @@ var PowiainaNum = /*#__PURE__*/function () {
1187
1184
  return obj;
1188
1185
  }
1189
1186
  }, {
1190
- key: "max",
1191
- value: function max() {
1187
+ key: "clampMin",
1188
+ value:
1189
+ /**
1190
+ * Restrict a number be not lower than a number
1191
+ *
1192
+ * It's also an alias of `PowiainaNum.max`.
1193
+ * @returns restricted number
1194
+ */
1195
+ function clampMin() {
1192
1196
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1193
1197
  args[_key2] = arguments[_key2];
1194
1198
  }
1195
1199
  return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
1196
1200
  }
1201
+ /**
1202
+ * Restrict a number be not higher than a number
1203
+ *
1204
+ * It's also an alias of `PowiainaNum.min`.
1205
+ * @returns restricted number
1206
+ */
1197
1207
  }, {
1198
- key: "min",
1199
- value: function min() {
1208
+ key: "clampMax",
1209
+ value:
1210
+ /**
1211
+ * Restrict a number be not higher than a number
1212
+ *
1213
+ * It's also an alias of `PowiainaNum.min`.
1214
+ * @returns restricted number
1215
+ */
1216
+ function clampMax() {
1200
1217
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1201
1218
  args[_key3] = arguments[_key3];
1202
1219
  }
1203
1220
  return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
1204
1221
  }
1222
+ /**
1223
+ * A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
1224
+ * Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
1225
+ */
1226
+ }, {
1227
+ key: "clamp",
1228
+ value: function clamp(min, max) {
1229
+ return this.max(min).min(max);
1230
+ }
1231
+ }, {
1232
+ key: "max",
1233
+ value: function max() {
1234
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1235
+ args[_key4] = arguments[_key4];
1236
+ }
1237
+ return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
1238
+ }
1239
+ }, {
1240
+ key: "min",
1241
+ value: function min() {
1242
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1243
+ args[_key5] = arguments[_key5];
1244
+ }
1245
+ return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
1246
+ }
1205
1247
  /**
1206
1248
  * Compare what PowiainaNum's absolute value is max
1207
1249
  * @param args
@@ -1210,8 +1252,8 @@ var PowiainaNum = /*#__PURE__*/function () {
1210
1252
  }, {
1211
1253
  key: "maxabs",
1212
1254
  value: function maxabs() {
1213
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1214
- args[_key4] = arguments[_key4];
1255
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1256
+ args[_key6] = arguments[_key6];
1215
1257
  }
1216
1258
  var other = args.map(function (x) {
1217
1259
  return new PowiainaNum(x).abs();
@@ -1221,8 +1263,8 @@ var PowiainaNum = /*#__PURE__*/function () {
1221
1263
  }, {
1222
1264
  key: "minabs",
1223
1265
  value: function minabs() {
1224
- for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1225
- args[_key5] = arguments[_key5];
1266
+ for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1267
+ args[_key7] = arguments[_key7];
1226
1268
  }
1227
1269
  var other = args.map(function (x) {
1228
1270
  return new PowiainaNum(x).abs();
@@ -1300,6 +1342,13 @@ var PowiainaNum = /*#__PURE__*/function () {
1300
1342
  var t = this.cmp(other);
1301
1343
  return t == 0 || t == 1;
1302
1344
  }
1345
+ }, {
1346
+ key: "eq_tolerance",
1347
+ value: function eq_tolerance(value) {
1348
+ var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e-7;
1349
+ var dec = new PowiainaNum(value);
1350
+ return this.sub(dec).lte(this.max(dec).mul(tolerance));
1351
+ }
1303
1352
  //#endregion
1304
1353
  //#region geometry
1305
1354
  }, {
@@ -1601,7 +1650,7 @@ var PowiainaNum = /*#__PURE__*/function () {
1601
1650
  // for any 10{A sample=2}1e9, turn into (10{A-1})^1e9-1 10
1602
1651
  // But dont convert when a is infinite
1603
1652
  // [1e9, [R=1, A=2, sth, sth]]
1604
- x.array.splice(1, 1, newOperator(x.array[0].repeat, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1653
+ x.array.splice(1, 1, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1605
1654
  x.array[0].repeat = 10;
1606
1655
  renormalize = true;
1607
1656
  }
@@ -1844,15 +1893,9 @@ var PowiainaNum = /*#__PURE__*/function () {
1844
1893
  return new PowiainaNum(t).log(base);
1845
1894
  }
1846
1895
  }, {
1847
- key: "plog10",
1848
- value: function plog10(t) {
1849
- return new PowiainaNum(t).plog10();
1850
- }
1851
- }, {
1852
- key: "plog",
1853
- value: function plog(t) {
1854
- var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Math.E;
1855
- return new PowiainaNum(t).plog(base);
1896
+ key: "pLog10",
1897
+ value: function pLog10(t) {
1898
+ return new PowiainaNum(t).pLog10();
1856
1899
  }
1857
1900
  }, {
1858
1901
  key: "exp",
@@ -2093,8 +2136,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2093
2136
  key: "max",
2094
2137
  value: function max() {
2095
2138
  var max = PowiainaNum.NEGATIVE_INFINITY;
2096
- for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
2097
- args[_key6] = arguments[_key6];
2139
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2140
+ args[_key8] = arguments[_key8];
2098
2141
  }
2099
2142
  for (var i = 0; i < args.length; i++) {
2100
2143
  if (max.lt(args[i])) {
@@ -2110,8 +2153,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2110
2153
  key: "min",
2111
2154
  value: function min() {
2112
2155
  var max = PowiainaNum.POSITIVE_INFINITY;
2113
- for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
2114
- args[_key7] = arguments[_key7];
2156
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2157
+ args[_key9] = arguments[_key9];
2115
2158
  }
2116
2159
  for (var i = 0; i < args.length; i++) {
2117
2160
  if (max.gt(args[i])) {
@@ -2131,12 +2174,6 @@ var PowiainaNum = /*#__PURE__*/function () {
2131
2174
  value: function clampMin() {
2132
2175
  return PowiainaNum.max.apply(PowiainaNum, arguments);
2133
2176
  }
2134
- /**
2135
- * Restrict a number be not higher than a number
2136
- *
2137
- * It's also an alias of `PowiainaNum.min`.
2138
- * @returns restricted number
2139
- */
2140
2177
  }, {
2141
2178
  key: "clampMax",
2142
2179
  value: function clampMax() {
@@ -66,7 +66,7 @@
66
66
  }
67
67
  }
68
68
 
69
- /* Author: VeryrrDefine 0.2.0-alpha.4.3*/
69
+ /* Author: VeryrrDefine 0.2.0-beta.1.1*/
70
70
  var _a;
71
71
  var powiainaNumError = "[PowiainaNum 0.2 error]";
72
72
  var MSI = 9007199254740991;
@@ -546,40 +546,17 @@
546
546
  return this.log();
547
547
  }
548
548
  /**
549
- * plog10, beware unexpected errors.
549
+ * positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
550
550
  */
551
551
  }, {
552
- key: "plog10",
553
- value: function plog10() {
554
- return this.max(1).log10();
552
+ key: "pLog10",
553
+ value: function pLog10() {
554
+ if (this.isneg()) return PowiainaNum.ZERO;
555
+ return this.log10();
555
556
  }
556
557
  /**
557
- * plog10, beware unexpected errors.
558
+ * positive-Log10
558
559
  */
559
- }, {
560
- key: "plog",
561
- value:
562
- /**
563
- * plog, beware unexpected errors.
564
- */
565
- function plog() {
566
- var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math.E;
567
- // log_a b = log_x b / log_x a;
568
- var other = new PowiainaNum(base);
569
- return this.plog10().div(other.plog10());
570
- }
571
- /**
572
- * plog, beware unexpected errors.
573
- */
574
- }, {
575
- key: "pln",
576
- value:
577
- /**
578
- * pln, beware unexpected errors.
579
- */
580
- function pln() {
581
- return this.plog();
582
- }
583
560
  }, {
584
561
  key: "exp",
585
562
  value: function exp() {
@@ -702,6 +679,7 @@
702
679
  value:
703
680
  //#endregion
704
681
  //#region higher calculates
682
+ //#region Tetration
705
683
  // Code from ExpantaNum.js
706
684
  function tetrate(other2) {
707
685
  var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -853,6 +831,25 @@
853
831
  var l = x.ln();
854
832
  return l.div(l.lambertw());
855
833
  }
834
+ }, {
835
+ key: "iteratedlog",
836
+ value:
837
+ /**
838
+ * iterated-log
839
+ *
840
+ * @example new P("10^10^3").iteratedlog(2,10) == 3
841
+ */
842
+ function iteratedlog() {
843
+ var other2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
844
+ var base2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
845
+ var t = this.clone();
846
+ var base = new PowiainaNum(base2);
847
+ var other = new PowiainaNum(other2);
848
+ if (other.isZero()) return t;
849
+ if (other.eq(PowiainaNum.ONE)) return t.log(base);
850
+ return base.tetrate(t.slog(base).sub(other));
851
+ }
852
+ //#endregion
856
853
  }, {
857
854
  key: "arrow",
858
855
  value: function arrow(arrows2) {
@@ -1193,21 +1190,66 @@
1193
1190
  return obj;
1194
1191
  }
1195
1192
  }, {
1196
- key: "max",
1197
- value: function max() {
1193
+ key: "clampMin",
1194
+ value:
1195
+ /**
1196
+ * Restrict a number be not lower than a number
1197
+ *
1198
+ * It's also an alias of `PowiainaNum.max`.
1199
+ * @returns restricted number
1200
+ */
1201
+ function clampMin() {
1198
1202
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1199
1203
  args[_key2] = arguments[_key2];
1200
1204
  }
1201
1205
  return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
1202
1206
  }
1207
+ /**
1208
+ * Restrict a number be not higher than a number
1209
+ *
1210
+ * It's also an alias of `PowiainaNum.min`.
1211
+ * @returns restricted number
1212
+ */
1203
1213
  }, {
1204
- key: "min",
1205
- value: function min() {
1214
+ key: "clampMax",
1215
+ value:
1216
+ /**
1217
+ * Restrict a number be not higher than a number
1218
+ *
1219
+ * It's also an alias of `PowiainaNum.min`.
1220
+ * @returns restricted number
1221
+ */
1222
+ function clampMax() {
1206
1223
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1207
1224
  args[_key3] = arguments[_key3];
1208
1225
  }
1209
1226
  return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
1210
1227
  }
1228
+ /**
1229
+ * A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
1230
+ * Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
1231
+ */
1232
+ }, {
1233
+ key: "clamp",
1234
+ value: function clamp(min, max) {
1235
+ return this.max(min).min(max);
1236
+ }
1237
+ }, {
1238
+ key: "max",
1239
+ value: function max() {
1240
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1241
+ args[_key4] = arguments[_key4];
1242
+ }
1243
+ return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
1244
+ }
1245
+ }, {
1246
+ key: "min",
1247
+ value: function min() {
1248
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1249
+ args[_key5] = arguments[_key5];
1250
+ }
1251
+ return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
1252
+ }
1211
1253
  /**
1212
1254
  * Compare what PowiainaNum's absolute value is max
1213
1255
  * @param args
@@ -1216,8 +1258,8 @@
1216
1258
  }, {
1217
1259
  key: "maxabs",
1218
1260
  value: function maxabs() {
1219
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1220
- args[_key4] = arguments[_key4];
1261
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1262
+ args[_key6] = arguments[_key6];
1221
1263
  }
1222
1264
  var other = args.map(function (x) {
1223
1265
  return new PowiainaNum(x).abs();
@@ -1227,8 +1269,8 @@
1227
1269
  }, {
1228
1270
  key: "minabs",
1229
1271
  value: function minabs() {
1230
- for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1231
- args[_key5] = arguments[_key5];
1272
+ for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1273
+ args[_key7] = arguments[_key7];
1232
1274
  }
1233
1275
  var other = args.map(function (x) {
1234
1276
  return new PowiainaNum(x).abs();
@@ -1306,6 +1348,13 @@
1306
1348
  var t = this.cmp(other);
1307
1349
  return t == 0 || t == 1;
1308
1350
  }
1351
+ }, {
1352
+ key: "eq_tolerance",
1353
+ value: function eq_tolerance(value) {
1354
+ var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e-7;
1355
+ var dec = new PowiainaNum(value);
1356
+ return this.sub(dec).lte(this.max(dec).mul(tolerance));
1357
+ }
1309
1358
  //#endregion
1310
1359
  //#region geometry
1311
1360
  }, {
@@ -1607,7 +1656,7 @@
1607
1656
  // for any 10{A sample=2}1e9, turn into (10{A-1})^1e9-1 10
1608
1657
  // But dont convert when a is infinite
1609
1658
  // [1e9, [R=1, A=2, sth, sth]]
1610
- x.array.splice(1, 1, newOperator(x.array[0].repeat, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1659
+ x.array.splice(1, 1, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1611
1660
  x.array[0].repeat = 10;
1612
1661
  renormalize = true;
1613
1662
  }
@@ -1850,15 +1899,9 @@
1850
1899
  return new PowiainaNum(t).log(base);
1851
1900
  }
1852
1901
  }, {
1853
- key: "plog10",
1854
- value: function plog10(t) {
1855
- return new PowiainaNum(t).plog10();
1856
- }
1857
- }, {
1858
- key: "plog",
1859
- value: function plog(t) {
1860
- var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Math.E;
1861
- return new PowiainaNum(t).plog(base);
1902
+ key: "pLog10",
1903
+ value: function pLog10(t) {
1904
+ return new PowiainaNum(t).pLog10();
1862
1905
  }
1863
1906
  }, {
1864
1907
  key: "exp",
@@ -2099,8 +2142,8 @@
2099
2142
  key: "max",
2100
2143
  value: function max() {
2101
2144
  var max = PowiainaNum.NEGATIVE_INFINITY;
2102
- for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
2103
- args[_key6] = arguments[_key6];
2145
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2146
+ args[_key8] = arguments[_key8];
2104
2147
  }
2105
2148
  for (var i = 0; i < args.length; i++) {
2106
2149
  if (max.lt(args[i])) {
@@ -2116,8 +2159,8 @@
2116
2159
  key: "min",
2117
2160
  value: function min() {
2118
2161
  var max = PowiainaNum.POSITIVE_INFINITY;
2119
- for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
2120
- args[_key7] = arguments[_key7];
2162
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2163
+ args[_key9] = arguments[_key9];
2121
2164
  }
2122
2165
  for (var i = 0; i < args.length; i++) {
2123
2166
  if (max.gt(args[i])) {
@@ -2137,12 +2180,6 @@
2137
2180
  value: function clampMin() {
2138
2181
  return PowiainaNum.max.apply(PowiainaNum, arguments);
2139
2182
  }
2140
- /**
2141
- * Restrict a number be not higher than a number
2142
- *
2143
- * It's also an alias of `PowiainaNum.min`.
2144
- * @returns restricted number
2145
- */
2146
2183
  }, {
2147
2184
  key: "clampMax",
2148
2185
  value: function clampMax() {
@@ -1 +1 @@
1
- !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum={})}(this,(function(r){"use strict";function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t<e;t++)a[t]=r[t];return a}function t(r,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,n(a.key),a)}}function a(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function(r,t){if(r){if("string"==typeof r)return e(r,t);var a={}.toString.call(r).slice(8,-1);return"Object"===a&&r.constructor&&(a=r.constructor.name),"Map"===a||"Set"===a?Array.from(r):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?e(r,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(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 i(r){return(i="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 o,u=9007199254740991,l=15.954589770191003,s=1.444667861009766,c=/^(PN)?[\/\-\+]*(Infinity|NaN|(P+|P\^\d+ )?(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function f(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 g(){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 h(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var p=.5671432904097838;function y(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 p;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 m(r){return 2==r.length}function N(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function v(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new O(r)).isFinite())return r;if(a){if(r.eq(O.ZERO))return r;if(r.eq(O.ONE))return new O(p);e=O.log(r)}else{if(r.eq(O.ZERO))return O.NEGATIVE_INFINITY.clone();e=O.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(O.ONE).sub(e.add(2).mul(o).div(O.mul(2,e).add(2)));if(u.eq(O.ZERO))return e;var l=e.sub(o.div(u));if(O.abs(l.sub(e)).lt(O.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function w(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var b,O=function(){function r(e){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[o]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==i(e)){var a=r.fromObject(e);this.resetFromObject(a)}else if("string"==typeof e){var n=r.fromString(e);this.resetFromObject(n)}}return function(r,e,a){return e&&t(r.prototype,e),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,a,n,i,o,s,c=this.clone(),g=new r(e);if(c.eq(r.POSITIVE_INFINITY)&&g.eq(r.NEGATIVE_INFINITY)||c.eq(r.NEGATIVE_INFINITY)&&g.eq(r.POSITIVE_INFINITY))return r.NaN.clone();if(!c.isFinite())return c.clone();if(!g.isFinite())return g.clone();if(c.isZero())return g.clone();if(g.isZero())return c.clone();if(c.sign==-g.sign&&function(){var r=c.abs(),e=g.abs();return r.eq(e)}())return r.ZERO.clone();if(c.abs().lt(u)&&g.abs().lt(u))return r.fromNumber(c.toNumber()+g.toNumber());if(c.abs().lt(r.E_MSI_REC)||c.abs().gt(r.E_MSI)||g.abs().lt(r.E_MSI_REC)||g.abs().gt(r.E_MSI))return c.maxabs(g);if(-1==c.sign)return c.neg().add(g.neg()).neg();c.cmpabs(g)>0?(o=c,s=g):(s=c,o=g);var h=o.toNumber()+s.toNumber();if(isFinite(h)&&0!==h)return r.fromNumber(h);var p=1;if(!(o.small||s.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(a=s.array[1])||void 0===a?void 0:a.repeat)||o.sign!=s.sign))return new r((o.array[0].repeat+s.array[0].repeat)*o.sign);var y=(o.small?-1:1)*((null===(n=o.array[1])||void 0===n?void 0:n.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),m=(s.small?-1:1)*((null===(i=s.array[1])||void 0===i?void 0:i.repeat)?s.array[0].repeat:Math.log10(s.array[0].repeat));if(y-m>l)return o;var N,v,w=-Math.floor(y),b=0;if((v=o.sign*Math.pow(10,y+w)+s.sign*Math.pow(10,m+w))>0&&(b=Math.log10(v)-w),v<0&&(b=Math.log10(-v)-w,p*=-1),0==v)throw Error("Encounter a calculate error");return(N=new r).sign=1,N.array=b>l||b<-l?[f(b,0),f(1,1)]:[f(Math.pow(10,Math.abs(b)),0)],N.small=b<0,N.sign*=p,N}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"mul",value:function(e){var t=this.clone(),a=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY)||a.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&a.isZero()||a.isInfiNaN()&&t.isZero())return r.NaN.clone();if(t.eq(r.NEGATIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!a.isFinite())return a.clone();if(t.isZero()||a.isZero())return r.ZERO.clone();var n,i=t.toNumber()*a.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((n=t.abs().log10().add(a.abs().log10()).pow10()).sign=t.sign*a.sign,n)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"mod",value:function(e){var t=new r(e),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"pow10",value:function(){var e,t,a=this.clone();return this.isFinite()?a.isneg()?(a.sign*=-1,a.pow10().rec()):a.lte(308.25471555991675)?r.fromNumber(Math.pow(10,a.toNumber())):a.small?a.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(a.array[0].repeat,-1))):(a.gt(r.TETRATED_MSI)||(a.setOperator((null!==(t=null===(e=a.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),a.normalize()),a):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(this.isneg()){if(!t.isInt())return r.NaN.clone();var a=this.abs().pow(t);return a.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),a}var n=this.toNumber(),i=t.toNumber(),o=Math.pow(n,i);return isFinite(o)&&0!==o?r.fromNumber(o):this.isZero()&&t.isZero()?r.ONE.clone():this.isZero()?r.ZERO.clone():t.isZero()?r.ONE.clone():this.gt(0)?this.log10().mul(t).pow10():t.rec().mod(2).eq(1)?this.neg().log10().mul(t).pow10().neg():r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg())return r.NaN.clone();if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"ln",value:function(){return this.log()}},{key:"plog10",value:function(){return this.max(1).log10()}},{key:"plog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.plog10().div(t.plog10())}},{key:"pln",value:function(){return this.plog()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(u)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(u)){if(this.lt(24))return r.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 e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var a=e*e,n=e,i=12*n,o=1/i,l=(t-=e)+o;if(l===t)return r.exp(t);if((l=(t=l)-(o=1/(i=360*(n*=a))))===t)return r.exp(t);t=l;var s=1/(i=1260*(n*=a));return t+=s,t-=s=1/(i=1680*(n*=a)),r.exp(t)}return this.gt(u)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?r.NaN.clone():e?this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(y(this.toNumber())):this.lt(u)?r.fromNumber(y(this.sign*this.getOperator(0))):this.lt("eee15")?v(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(y(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?v(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.clone(),i=new r(e),o=new r(a);if(n.isNaN()||i.isNaN()||o.isNaN())return r.NaN.clone();if(n.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&(i=i.add(o.slog(n))),i.isInfi()&&i.sign>0)return n.gte(s)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2))return r.NaN.clone();if(n.isZero())return i.isZero()?r.NaN.clone():i.gte(u/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone();if(n.eq(r.ONE))return i.eq(r.ONE.neg())?r.NaN.clone():r.ONE.clone();if(i.eq(r.ONE.neg()))return r.ZERO.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return n;if(i.eq(2))return n.pow(n);if(n.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var l=n.max(i);if(l.gt(r.PENTATED_MSI))return l;if(l.gt(r.TETRATED_MSI)||i.gt(u)){if(this.lt(s))return(t=n.ln().neg()).lambertw().div(t);var c=n.slog(10).add(i);return c.setOperator(c.getOperator(2)+1,2),c.normalize(),c}for(var f=i.toNumber(),g=Math.floor(f),h=n.pow(f-g),p=r.NaN,y=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&y<100;++y)if(g>0){if(h=n.pow(h),p.eq(h)){g=0;break}p=h,--g}else{if(h=h.log(n),p.eq(h)){g=0;break}p=h,++g}return(100==y||this.lt(s))&&(g=0),h.setOperator(h.getOperator(1)+g,1),h.normalize(),h}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),a=new r(e);if(t.isInfiNaN())return t;if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(a.lt(s)){var n=a.tetrate(1/0);if(t.eq(n))return r.POSITIVE_INFINITY.clone();if(t.gt(n))return r.NaN.clone()}if(t.max(a).gt(r.PENTATED_MSI))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.TETRATED_MSI)&&t.gt(a))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return a.pow(t).sub(2);var i=0,o=t.getOperator(1)-a.getOperator(1);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(1)-u,1)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=r.pow(e,t),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=r.log(t,e)}return t.gt(10)?new r(i):r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/s))return r.NaN.clone();if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"arrow",value:function(e){var t=this.clone(),a=new r(e);return!a.isInt()||a.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){return r.NaN.clone()}):a.eq(0)?function(r){return t.mul(r)}:a.eq(1)?function(r){return t.pow(r)}:a.eq(2)?function(r){return t.tetrate(r)}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e),o=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n));if(o)return o.clone();var l=function(){var e;if(t.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return i.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(t.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return t.clone();if(a.gt(r.MSI))return(e=a.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var o=a.toNumber();if(i.eq(2))return t.arrow(o-1)(t,n+1);if(t.max(i).gt(r.arrowMSI(o+1)))return t.max(i);if(t.gt(r.arrowMSI(o))||i.gt(u)){t.gt(r.arrowMSI(o))?((e=t.clone()).setOperator(e.getOperator(o)-1,o),e.normalize()):e=t.gt(r.arrowMSI(o-1))?new r(t.getOperator(o-1)):r.ZERO;var l=e.add(i);return l.setOperator(l.getOperator(o)+1,o),l.normalize(),l}if(n>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,o)]});var s=i.toNumber(),c=Math.floor(s),g=a.sub(r.ONE);e=t.arrow(g)(s-c,n+1);for(var h=0,p=r.arrowMSI(o-1);0!==c&&e.lt(p)&&h<100;h++)c>0&&(e=t.arrow(g)(e,n+1),--c);return 100==h&&(c=0),e.setOperator(e.getOperator(o-1)+c,o-1),e.normalize(),e}();return n<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n),l.clone()),l}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(u))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=new r(e);if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(t.max(a).gt(r.arrowMSI(n+1)))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.arrowMSI(n))&&t.gt(a))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone()))return r.NaN.clone();var i=0,o=t.getOperator(n)-a.getOperator(n);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(n)-u,n)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=t.anyarrow_log(n-1)(e)}return t.gt(10)?new r(i):r.NaN.clone()}}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r){return this.arrow(3)(r)}},{key:"hexate",value:function(r){return this.arrow(4)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt())return r.NaN.clone();if(this.eq(2))return new r(4);if(a.eq(0))return r.ONE.clone();if(n.gt("10{1,2}".concat(u))||a.gt(u)){n.gt("10{1,2}".concat(u))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(u,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var i=t.add(a);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,l=a.toNumber()-1;for(t=n.clone(),o=0;0!==l&&t.lt(u)&&o<100;++o)l>0&&(t=n.arrow(t)(n),--l);return 100==o&&(l=0),t.setOperator(t.getOperator(1/0)+l,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),a=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){return r.NaN.clone()};if(t.eq(0))return function(r){return a.arrow(r)(a)};if(t.eq(1))return function(r){return a.expansion(r)};var n=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(a.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(a.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(a.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return a.clone();if(n.gt(r.MSI))return(t=n.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var l=n.toNumber();if(o.eq(2))return a.expansionArrow(l-1)(a,i+1);if(a.max(o).gt("10{".concat(l+1,",2}").concat(u)))return a.max(o);if(a.gt("10{".concat(l,",2}").concat(u))||o.gt(u)){a.gt("10{".concat(l,",2}").concat(u))?((t=a.clone()).setOperator(t.getOperator(l,2)-1,l,2),t.normalize()):t=a.gt("10{".concat(l-1,",2}").concat(u))?new r(a.getOperator(l-1,2)):r.ZERO;var s=t.add(o);return s.setOperator(s.getOperator(l,2)+1,l,2),s.normalize(),s}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,l,2)]});var c=o.toNumber(),g=Math.floor(c),h=n.sub(r.ONE);t=a.expansionArrow(h)(c-g,i+1);for(var p=0,y=new r("10{".concat(l-1,",2}").concat(u));0!==g&&t.lt(y)&&p<100;p++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==p&&(g=0),t.setOperator(t.getOperator(l-1,2)+g,l-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(i)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(i)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);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 u=this.array[this.array.length-1-o],l=t.array[t.array.length-1-o],s=g([u.megota,u.expans,u.arrow,u.repeat],[l.megota,l.expans,l.arrow,l.repeat]);if(1==s){i=1;break}if(-1==s){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:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{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?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{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:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(u/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"normalize",value:function(){for(var e=!0,t=this,a=0;a<this.array.length;a++)if(this.array[a].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var n=1;n<t.array.length;++n){var i=t.array[n];if(null!==i.arrow&&void 0!==i.arrow||(i.arrow=0),null!==i.expans&&void 0!==i.expans||(i.expans=1),null!==i.megota&&void 0!==i.megota||(i.megota=1),isNaN(i.arrow)||isNaN(i.repeat)||isNaN(i.expans)||isNaN(i.megota))return t.array=[f(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[f(1/0,0,1,1)],t;Number.isInteger(i.arrow)||(i.arrow=Math.floor(i.arrow)),Number.isInteger(i.repeat)||(i.repeat=Math.floor(i.repeat)),Number.isInteger(i.expans)||(i.expans=Math.floor(i.expans)),Number.isInteger(i.megota)||(i.megota=Math.floor(i.megota))}t.array.length||(t.small=!t.small,t.array=[f(1/0)]);do{for(e=!1,this.array.sort(w),n=1;n<t.array.length-1;++n)t.array[n].arrow==t.array[n+1].arrow&&t.array[n].expans==t.array[n+1].expans&&t.array[n].megota==t.array[n+1].megota&&(t.array[n].repeat+=t.array[n+1].repeat,t.array.splice(n+1,1),--n,e=!0);for(n=1;n<t.array.length;++n)0===t.array[n].arrow||0!==t.array[n].repeat&&null!==t.array[n].repeat&&void 0!==t.array[n].repeat?0==t.array[n].arrow&&t.array[n].expans>=2&&(t.array[n].arrow=1/0,t.array[n].valuereplaced=0,t.array[n].expans=t.array[n].expans-1):(t.array.splice(n,1),--n);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<l&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>u&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),this.array[this.array.length-1].megota>u?(this.layer++,this.array=[f(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[f(10),f(1,10,10,this.array[0].repeat)],e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!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,e=!0;t.array.length>=2&&t.array[0].repeat<u&&t.array[1].arrow>=2&&1==t.array[1].repeat&&isFinite(t.array[1].arrow)&&(t.array.splice(1,1,f(t.array[0].repeat,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);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=g([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 e=new r;return e.resetFromObject(this),e}},{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.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],a="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):"","}");a=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(a,")^").concat(t.repeat," "):"".concat(a),r+="".concat(a)}return r}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{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(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"plog10",value:function(e){return new r(e).plog10()}},{key:"plog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).plog(t)}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(u))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,a){return new r(e).arrow(t.sub(2))(a)}}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),g=new r(t);function h(e){var t;return new r(null!==(t=[n,i,o,l][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(g.eq(1))return new r(c);if(g.isZero())return new r(1);if(c.lt(0))return r.NaN.clone();if(new r(l).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(g);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(g);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(g);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(g);var p=h(0).toNumber(),y=h(1),m=h(2),N=h(3);if(N.eq(2)){if(1!=p)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(m.neq(1))return r.POSITIVE_INFINITY.clone();if(g.gte(u))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=g.toNumber(),v.normalize(),v}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(m.gt(u)){var b=new r(m);return b.layer++,b.normalize(),b}function O(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){return"10{".concat(O(r),",").concat(O(e),",").concat(t,"}").concat(u)}var I=c.clone(),d=new r(h(0)),M=function(s){var h,p,N=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(N)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var v,b=new r(s);if(I.isNaN()||b.isNaN())return r.NaN.clone();if(b.lt(r.ZERO))return r.NaN.clone();if(I.eq(r.ZERO))return b.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(I.eq(r.ONE))return r.ONE.clone();if(b.eq(r.ZERO))return r.ONE.clone();if(b.eq(r.ONE))return I.clone();if(d.eq(0))return r.BEAF(I,I,g,y.sub(1),m,l,N+1);if(m.eq(0))return r.BEAF(I,I,I,I,y,new r(l).sub(1),N+1);if(y.gt(u))return(v=new r(y)).setOperator(v.getOperator(1,1/0,m.toNumber())+1,1,1/0,m.toNumber()),v;if(d.gt(r.MSI))return(v=d.clone()).setOperator(v.getOperator(1/0,y.toNumber(),m.toNumber())+1,1/0,y.toNumber(),m.toNumber()),v;var O=d.toNumber();if(b.eq(2))return r.BEAF(I,I,O-1,y,m,l,N+1);if(I.max(b).gt(E(O+1,y.toNumber(),m.toNumber())))return I.max(b);if(I.gt(E(O,y.toNumber(),m.toNumber()))||b.gt(u)){I.gt(E(O,y.toNumber(),m.toNumber()))?((v=I.clone()).setOperator(v.getOperator(O,y.toNumber(),m.toNumber())-1,O,y.toNumber(),m.toNumber()),v.normalize()):v=I.gt(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))))?new r(I.getOperator.apply(I,a(w(O-1,y.toNumber(),m.toNumber())))):r.ZERO;var M=v.add(b);return M.setOperator(M.getOperator(O,y.toNumber(),m.toNumber())+1,O,y.toNumber(),m.toNumber()),M.normalize(),M}if(N>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,O,y.toNumber(),m.toNumber())]});var x=b.toNumber(),k=Math.floor(x),q=d.sub(r.ONE);v=r.BEAF(I,x-k,q.toNumber(),y,m,l,N+1);for(var T=0,S=new r(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))));0!==k&&v.lt(S)&&T<100;T++)k>0&&(v=r.BEAF(c,v,q.toNumber(),y,m,l,N+1),--k);return 100==T&&(k=0),(h=v).setOperator.apply(h,[(p=v).getOperator.apply(p,a(w(O-1,y.toNumber(),m.toNumber())))+k].concat(a(w(O-1,y.toNumber(),m.toNumber())))),v.normalize(),v}(g,s);return console.log("".concat("-".repeat(s)," = ").concat(M)),M}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.lt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.gt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromNumber",value:function(e){var t=new r;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[f(1/0,0)],t;e>0&&(t.sign=1)}var a=Math.abs(e);return a==1/0?t.array=[f(1/0,0)]:a>=11102230246251568e-32&&a<1?(t.small=!0,t.array=[f(1/a,0)]):a<11102230246251568e-32?(t.small=!0,t.array=[f(-Math.log10(a),0),f(1,1)]):a<=u?t.array=[f(a,0)]:(t.setOperator(Math.log10(a),0),t.array=[f(Math.log10(a),0),f(1,1)]),t}},{key:"fromString",value:function(e){var t,a,n,i,o,s,g,p=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var y=Number(e),m=!1;if(0==y?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var N=e.search(/e/),v=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var O=w.length>=17?h(w):Math.log10(Number(w)),E=O-(Math.floor(O)-1);b[0]=Math.pow(10,E),b[1]+=E}else{var I=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(y)&&m)return p=r.fromNumber(Number(e))}if(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)\x20*PT/g,"(10^)^$1 "),!c.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var d=!1,M=!1;if("-"==e[0]||"+"==e[0]){var x=e.search(/[^-\+]/);d=(null!==(a=null===(t=e.substring(0,x).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(x)}if("/"==e[0]){x=e.search(/[^\/]/);M=(null!==(i=null===(n=e.substring(0,x).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==i?i:0)%2==1,e=e.substring(x)}if("NaN"==e)p.array=[f(NaN)];else if("Infinity"==e)p.array=[f(1/0)];else{var k,q,T,S;for(p.sign=1,p.array=[f(0)],"P"==e[0]&&("^"==e[1]?(k=e.substring(2).search(/[^0-9]/)+2,p.layer=Number(e.substring(2,k)),e=e.substring(k+1)):(k=e.search(/[^P]/),p.layer=k,e=e.substring(k)));e&&/^(\(?10[\^\{])/.test(e);){var F,_,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])F=k=e.substring(2).search(/[^\^]/),q=k+2;else{k=e.indexOf("}");var A=e.substring(3,k).split(",");F=Number("!"==A[0]?1/0:A[0]),_=Number(null!==(o="!"==A[1]?1/0:A[1])&&void 0!==o?o:1),Z=Number(null!==(s=A[2])&&void 0!==s?s:1),q=k+1}")"==(e=e.substring(q))[0]?(k=e.indexOf(" "),T=Number(e.substring(2,k)),e=e.substring(k+1)):T=1,1==F&&1==_&&1==Z?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=T:p.array.splice(1,0,f(T,1,_,Z)):2==F&&1==_&&1==Z?(k=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(q=p.array[0].repeat)>=1e10&&++k,q>=10&&++k,p.array[0].repeat=k,p.array.length>=2&&1==p.array[1].arrow&&p.array.splice(1,1),S=p.getOperatorIndex(2),Number.isInteger(S)?p.array[S].repeat+=T:p.array.splice(Math.ceil(S),0,f(T,2,_,Z))):isFinite(F)?(k=p.getOperator(F-1),(q=p.getOperator(F-2))>=10&&++k,S=p.getOperatorIndex(F),p.array.splice(1,Math.ceil(S)-1),p.array[0].repeat=k,Number.isInteger(S)?p.array[1].repeat+=T:p.array.splice(1,0,f(T,F,_,Z))):p.array.splice(1,0,f(T,F,_,Z))}k=e.split(/[Ee]/),q=[p.array[0].repeat,0],T=1;for(var R=k.length-1;R>=0;--R){q[0]<l&&0===q[1]?q[0]=Math.pow(10,T*q[0]):-1==T?(0===q[1]?q[0]=Math.pow(10,T*q[0]):1==q[1]&&q[0]<=Math.log10(Number.MAX_VALUE)?q[0]=Math.pow(10,T*Math.pow(10,q[0])):q[0]=0,q[1]=0):q[1]++;var P=k[R].indexOf("."),V=-1==P?k[R].length:P;0===q[1]?V>=17?(q[0]=Math.log10(q[0])+h(k[R].substring(0,V)),q[1]=1):k[R]&&(q[0]*=Number(k[R])):(S=V>=17?h(k[R].substring(0,V)):k[R]?Math.log10(Number(k[R])):0,1==q[1]?q[0]+=S:2==q[1]&&q[0]<l+Math.log10(S)&&(q[0]+=Math.log10(1+Math.pow(10,Math.log10(S)-q[0])))),q[0]<l&&q[1]?(q[0]=Math.pow(10,q[0]),q[1]--):q[0]>u&&(q[0]=Math.log10(q[0]),q[1]++)}p.array[0].repeat=q[0],q[1]&&(p.array.length>=2&&1==p.array[1].arrow&&1==p.array[1].expans&&1==p.array[1].megota?p.array[1].repeat+=q[1]:p.array.splice(1,0,f(q[1],1,1,1)))}return d&&(p.sign*=-1),M&&(p.small=!p.small),p.normalize(),p.normalize(),p}},{key:"fromObject",value:function(e){var t=new r;if(t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!m(t))return!1;if(!N(t))return!1}return!0}(e)){for(var a=0;a<e.length;a++)t.array[a]={arrow:e[a][0],expans:1,megota:1,repeat:e[a][1]};return t.small=!1,t.sign=1,t.layer=0,t}for(var n=0;n<e.array.length;n++)t.array[n]={arrow:e.array[n].arrow,expans:e.array[n].expans,megota:e.array[n].megota,repeat:e.array[n].repeat,valuereplaced:e.array[n].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,O.ZERO=new O({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),O.ONE=new O({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.MSI=new O(u),O.MSI_REC=((b=new O(u)).small=!0,b),O.E_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.EE_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),O.E_MSI_REC=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),O.TETRATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),O.PENTATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),O.TRITRI=new O({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),O.GRAHAMS_NUMBER=new O("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),O.POSITIVE_INFINITY=new O(1/0),O.NEGATIVE_INFINITY=new O(-1/0),O.NaN=new O({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),O.E=new O(Math.E),O.LN2=new O(Math.LN2),O.LN10=new O(Math.LN10),O.LOG2E=new O(Math.LOG2E),O.LOG10E=new O(Math.LOG10E),O.PI=new O(Math.PI),O.SQRT1_2=new O(Math.SQRT1_2),O.SQRT2=new O(Math.SQRT2),O.maxOps=100,O.POW_2_44_MOD_PI=1.701173079953,O.arrowFuncMap=new Map,r.arraySortFunction=w,r.default=O,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
1
+ !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum={})}(this,(function(r){"use strict";function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t<e;t++)a[t]=r[t];return a}function t(r,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,n(a.key),a)}}function a(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function(r,t){if(r){if("string"==typeof r)return e(r,t);var a={}.toString.call(r).slice(8,-1);return"Object"===a&&r.constructor&&(a=r.constructor.name),"Map"===a||"Set"===a?Array.from(r):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?e(r,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(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 i(r){return(i="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 o,u=9007199254740991,s=15.954589770191003,l=1.444667861009766,c=/^(PN)?[\/\-\+]*(Infinity|NaN|(P+|P\^\d+ )?(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function f(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 g(){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 h(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var p=.5671432904097838;function y(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 p;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 m(r){return 2==r.length}function N(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function v(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new O(r)).isFinite())return r;if(a){if(r.eq(O.ZERO))return r;if(r.eq(O.ONE))return new O(p);e=O.log(r)}else{if(r.eq(O.ZERO))return O.NEGATIVE_INFINITY.clone();e=O.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(O.ONE).sub(e.add(2).mul(o).div(O.mul(2,e).add(2)));if(u.eq(O.ZERO))return e;var s=e.sub(o.div(u));if(O.abs(s.sub(e)).lt(O.abs(s).mul(t)))return s;e=s}throw Error("Iteration failed to converge: "+r)}function w(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var b,O=function(){function r(e){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[o]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==i(e)){var a=r.fromObject(e);this.resetFromObject(a)}else if("string"==typeof e){var n=r.fromString(e);this.resetFromObject(n)}}return function(r,e,a){return e&&t(r.prototype,e),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,a,n,i,o,l,c=this.clone(),g=new r(e);if(c.eq(r.POSITIVE_INFINITY)&&g.eq(r.NEGATIVE_INFINITY)||c.eq(r.NEGATIVE_INFINITY)&&g.eq(r.POSITIVE_INFINITY))return r.NaN.clone();if(!c.isFinite())return c.clone();if(!g.isFinite())return g.clone();if(c.isZero())return g.clone();if(g.isZero())return c.clone();if(c.sign==-g.sign&&function(){var r=c.abs(),e=g.abs();return r.eq(e)}())return r.ZERO.clone();if(c.abs().lt(u)&&g.abs().lt(u))return r.fromNumber(c.toNumber()+g.toNumber());if(c.abs().lt(r.E_MSI_REC)||c.abs().gt(r.E_MSI)||g.abs().lt(r.E_MSI_REC)||g.abs().gt(r.E_MSI))return c.maxabs(g);if(-1==c.sign)return c.neg().add(g.neg()).neg();c.cmpabs(g)>0?(o=c,l=g):(l=c,o=g);var h=o.toNumber()+l.toNumber();if(isFinite(h)&&0!==h)return r.fromNumber(h);var p=1;if(!(o.small||l.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(a=l.array[1])||void 0===a?void 0:a.repeat)||o.sign!=l.sign))return new r((o.array[0].repeat+l.array[0].repeat)*o.sign);var y=(o.small?-1:1)*((null===(n=o.array[1])||void 0===n?void 0:n.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),m=(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));if(y-m>s)return o;var N,v,w=-Math.floor(y),b=0;if((v=o.sign*Math.pow(10,y+w)+l.sign*Math.pow(10,m+w))>0&&(b=Math.log10(v)-w),v<0&&(b=Math.log10(-v)-w,p*=-1),0==v)throw Error("Encounter a calculate error");return(N=new r).sign=1,N.array=b>s||b<-s?[f(b,0),f(1,1)]:[f(Math.pow(10,Math.abs(b)),0)],N.small=b<0,N.sign*=p,N}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"mul",value:function(e){var t=this.clone(),a=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY)||a.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&a.isZero()||a.isInfiNaN()&&t.isZero())return r.NaN.clone();if(t.eq(r.NEGATIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!a.isFinite())return a.clone();if(t.isZero()||a.isZero())return r.ZERO.clone();var n,i=t.toNumber()*a.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((n=t.abs().log10().add(a.abs().log10()).pow10()).sign=t.sign*a.sign,n)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"mod",value:function(e){var t=new r(e),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"pow10",value:function(){var e,t,a=this.clone();return this.isFinite()?a.isneg()?(a.sign*=-1,a.pow10().rec()):a.lte(308.25471555991675)?r.fromNumber(Math.pow(10,a.toNumber())):a.small?a.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(a.array[0].repeat,-1))):(a.gt(r.TETRATED_MSI)||(a.setOperator((null!==(t=null===(e=a.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),a.normalize()),a):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(this.isneg()){if(!t.isInt())return r.NaN.clone();var a=this.abs().pow(t);return a.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),a}var n=this.toNumber(),i=t.toNumber(),o=Math.pow(n,i);return isFinite(o)&&0!==o?r.fromNumber(o):this.isZero()&&t.isZero()?r.ONE.clone():this.isZero()?r.ZERO.clone():t.isZero()?r.ONE.clone():this.gt(0)?this.log10().mul(t).pow10():t.rec().mod(2).eq(1)?this.neg().log10().mul(t).pow10().neg():r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg())return r.NaN.clone();if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"ln",value:function(){return this.log()}},{key:"pLog10",value:function(){return this.isneg()?r.ZERO:this.log10()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(u)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(u)){if(this.lt(24))return r.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 e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var a=e*e,n=e,i=12*n,o=1/i,s=(t-=e)+o;if(s===t)return r.exp(t);if((s=(t=s)-(o=1/(i=360*(n*=a))))===t)return r.exp(t);t=s;var l=1/(i=1260*(n*=a));return t+=l,t-=l=1/(i=1680*(n*=a)),r.exp(t)}return this.gt(u)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?r.NaN.clone():e?this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(y(this.toNumber())):this.lt(u)?r.fromNumber(y(this.sign*this.getOperator(0))):this.lt("eee15")?v(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(y(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?v(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.clone(),i=new r(e),o=new r(a);if(n.isNaN()||i.isNaN()||o.isNaN())return r.NaN.clone();if(n.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&(i=i.add(o.slog(n))),i.isInfi()&&i.sign>0)return n.gte(l)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2))return r.NaN.clone();if(n.isZero())return i.isZero()?r.NaN.clone():i.gte(u/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone();if(n.eq(r.ONE))return i.eq(r.ONE.neg())?r.NaN.clone():r.ONE.clone();if(i.eq(r.ONE.neg()))return r.ZERO.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return n;if(i.eq(2))return n.pow(n);if(n.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var s=n.max(i);if(s.gt(r.PENTATED_MSI))return s;if(s.gt(r.TETRATED_MSI)||i.gt(u)){if(this.lt(l))return(t=n.ln().neg()).lambertw().div(t);var c=n.slog(10).add(i);return c.setOperator(c.getOperator(2)+1,2),c.normalize(),c}for(var f=i.toNumber(),g=Math.floor(f),h=n.pow(f-g),p=r.NaN,y=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&y<100;++y)if(g>0){if(h=n.pow(h),p.eq(h)){g=0;break}p=h,--g}else{if(h=h.log(n),p.eq(h)){g=0;break}p=h,++g}return(100==y||this.lt(l))&&(g=0),h.setOperator(h.getOperator(1)+g,1),h.normalize(),h}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),a=new r(e);if(t.isInfiNaN())return t;if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(a.lt(l)){var n=a.tetrate(1/0);if(t.eq(n))return r.POSITIVE_INFINITY.clone();if(t.gt(n))return r.NaN.clone()}if(t.max(a).gt(r.PENTATED_MSI))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.TETRATED_MSI)&&t.gt(a))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return a.pow(t).sub(2);var i=0,o=t.getOperator(1)-a.getOperator(1);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(1)-u,1)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=r.pow(e,t),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=r.log(t,e)}return t.gt(10)?new r(i):r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/l))return r.NaN.clone();if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"iteratedlog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,a=this.clone(),n=new r(t),i=new r(e);return i.isZero()?a:i.eq(r.ONE)?a.log(n):n.tetrate(a.slog(n).sub(i))}},{key:"arrow",value:function(e){var t=this.clone(),a=new r(e);return!a.isInt()||a.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){return r.NaN.clone()}):a.eq(0)?function(r){return t.mul(r)}:a.eq(1)?function(r){return t.pow(r)}:a.eq(2)?function(r){return t.tetrate(r)}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e),o=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n));if(o)return o.clone();var s=function(){var e;if(t.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return i.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(t.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return t.clone();if(a.gt(r.MSI))return(e=a.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var o=a.toNumber();if(i.eq(2))return t.arrow(o-1)(t,n+1);if(t.max(i).gt(r.arrowMSI(o+1)))return t.max(i);if(t.gt(r.arrowMSI(o))||i.gt(u)){t.gt(r.arrowMSI(o))?((e=t.clone()).setOperator(e.getOperator(o)-1,o),e.normalize()):e=t.gt(r.arrowMSI(o-1))?new r(t.getOperator(o-1)):r.ZERO;var s=e.add(i);return s.setOperator(s.getOperator(o)+1,o),s.normalize(),s}if(n>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,o)]});var l=i.toNumber(),c=Math.floor(l),g=a.sub(r.ONE);e=t.arrow(g)(l-c,n+1);for(var h=0,p=r.arrowMSI(o-1);0!==c&&e.lt(p)&&h<100;h++)c>0&&(e=t.arrow(g)(e,n+1),--c);return 100==h&&(c=0),e.setOperator(e.getOperator(o-1)+c,o-1),e.normalize(),e}();return n<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n),s.clone()),s}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(u))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=new r(e);if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(t.max(a).gt(r.arrowMSI(n+1)))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.arrowMSI(n))&&t.gt(a))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone()))return r.NaN.clone();var i=0,o=t.getOperator(n)-a.getOperator(n);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(n)-u,n)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=t.anyarrow_log(n-1)(e)}return t.gt(10)?new r(i):r.NaN.clone()}}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r){return this.arrow(3)(r)}},{key:"hexate",value:function(r){return this.arrow(4)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt())return r.NaN.clone();if(this.eq(2))return new r(4);if(a.eq(0))return r.ONE.clone();if(n.gt("10{1,2}".concat(u))||a.gt(u)){n.gt("10{1,2}".concat(u))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(u,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var i=t.add(a);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,s=a.toNumber()-1;for(t=n.clone(),o=0;0!==s&&t.lt(u)&&o<100;++o)s>0&&(t=n.arrow(t)(n),--s);return 100==o&&(s=0),t.setOperator(t.getOperator(1/0)+s,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),a=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){return r.NaN.clone()};if(t.eq(0))return function(r){return a.arrow(r)(a)};if(t.eq(1))return function(r){return a.expansion(r)};var n=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(a.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(a.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(a.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return a.clone();if(n.gt(r.MSI))return(t=n.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var s=n.toNumber();if(o.eq(2))return a.expansionArrow(s-1)(a,i+1);if(a.max(o).gt("10{".concat(s+1,",2}").concat(u)))return a.max(o);if(a.gt("10{".concat(s,",2}").concat(u))||o.gt(u)){a.gt("10{".concat(s,",2}").concat(u))?((t=a.clone()).setOperator(t.getOperator(s,2)-1,s,2),t.normalize()):t=a.gt("10{".concat(s-1,",2}").concat(u))?new r(a.getOperator(s-1,2)):r.ZERO;var l=t.add(o);return l.setOperator(l.getOperator(s,2)+1,s,2),l.normalize(),l}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,s,2)]});var c=o.toNumber(),g=Math.floor(c),h=n.sub(r.ONE);t=a.expansionArrow(h)(c-g,i+1);for(var p=0,y=new r("10{".concat(s-1,",2}").concat(u));0!==g&&t.lt(y)&&p<100;p++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==p&&(g=0),t.setOperator(t.getOperator(s-1,2)+g,s-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"clampMin",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"clampMax",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"clamp",value:function(r,e){return this.max(r).min(e)}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(i)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(i)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);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 u=this.array[this.array.length-1-o],s=t.array[t.array.length-1-o],l=g([u.megota,u.expans,u.arrow,u.repeat],[s.megota,s.expans,s.arrow,s.repeat]);if(1==l){i=1;break}if(-1==l){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:"eq_tolerance",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-7,a=new r(e);return this.sub(a).lte(this.max(a).mul(t))}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{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?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{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:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(u/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"normalize",value:function(){for(var e=!0,t=this,a=0;a<this.array.length;a++)if(this.array[a].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var n=1;n<t.array.length;++n){var i=t.array[n];if(null!==i.arrow&&void 0!==i.arrow||(i.arrow=0),null!==i.expans&&void 0!==i.expans||(i.expans=1),null!==i.megota&&void 0!==i.megota||(i.megota=1),isNaN(i.arrow)||isNaN(i.repeat)||isNaN(i.expans)||isNaN(i.megota))return t.array=[f(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[f(1/0,0,1,1)],t;Number.isInteger(i.arrow)||(i.arrow=Math.floor(i.arrow)),Number.isInteger(i.repeat)||(i.repeat=Math.floor(i.repeat)),Number.isInteger(i.expans)||(i.expans=Math.floor(i.expans)),Number.isInteger(i.megota)||(i.megota=Math.floor(i.megota))}t.array.length||(t.small=!t.small,t.array=[f(1/0)]);do{for(e=!1,this.array.sort(w),n=1;n<t.array.length-1;++n)t.array[n].arrow==t.array[n+1].arrow&&t.array[n].expans==t.array[n+1].expans&&t.array[n].megota==t.array[n+1].megota&&(t.array[n].repeat+=t.array[n+1].repeat,t.array.splice(n+1,1),--n,e=!0);for(n=1;n<t.array.length;++n)0===t.array[n].arrow||0!==t.array[n].repeat&&null!==t.array[n].repeat&&void 0!==t.array[n].repeat?0==t.array[n].arrow&&t.array[n].expans>=2&&(t.array[n].arrow=1/0,t.array[n].valuereplaced=0,t.array[n].expans=t.array[n].expans-1):(t.array.splice(n,1),--n);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<s&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>u&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),this.array[this.array.length-1].megota>u?(this.layer++,this.array=[f(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[f(10),f(1,10,10,this.array[0].repeat)],e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!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,e=!0;t.array.length>=2&&t.array[0].repeat<u&&t.array[1].arrow>=2&&1==t.array[1].repeat&&isFinite(t.array[1].arrow)&&(t.array.splice(1,1,f(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);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=g([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 e=new r;return e.resetFromObject(this),e}},{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.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],a="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):"","}");a=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(a,")^").concat(t.repeat," "):"".concat(a),r+="".concat(a)}return r}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{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(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"pLog10",value:function(e){return new r(e).pLog10()}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(u))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,a){return new r(e).arrow(t.sub(2))(a)}}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),g=new r(t);function h(e){var t;return new r(null!==(t=[n,i,o,s][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(g.eq(1))return new r(c);if(g.isZero())return new r(1);if(c.lt(0))return r.NaN.clone();if(new r(s).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(g);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(g);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(g);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(g);var p=h(0).toNumber(),y=h(1),m=h(2),N=h(3);if(N.eq(2)){if(1!=p)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(m.neq(1))return r.POSITIVE_INFINITY.clone();if(g.gte(u))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=g.toNumber(),v.normalize(),v}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(m.gt(u)){var b=new r(m);return b.layer++,b.normalize(),b}function O(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){return"10{".concat(O(r),",").concat(O(e),",").concat(t,"}").concat(u)}var I=c.clone(),d=new r(h(0)),x=function(l){var h,p,N=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(N)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var v,b=new r(l);if(I.isNaN()||b.isNaN())return r.NaN.clone();if(b.lt(r.ZERO))return r.NaN.clone();if(I.eq(r.ZERO))return b.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(I.eq(r.ONE))return r.ONE.clone();if(b.eq(r.ZERO))return r.ONE.clone();if(b.eq(r.ONE))return I.clone();if(d.eq(0))return r.BEAF(I,I,g,y.sub(1),m,s,N+1);if(m.eq(0))return r.BEAF(I,I,I,I,y,new r(s).sub(1),N+1);if(y.gt(u))return(v=new r(y)).setOperator(v.getOperator(1,1/0,m.toNumber())+1,1,1/0,m.toNumber()),v;if(d.gt(r.MSI))return(v=d.clone()).setOperator(v.getOperator(1/0,y.toNumber(),m.toNumber())+1,1/0,y.toNumber(),m.toNumber()),v;var O=d.toNumber();if(b.eq(2))return r.BEAF(I,I,O-1,y,m,s,N+1);if(I.max(b).gt(E(O+1,y.toNumber(),m.toNumber())))return I.max(b);if(I.gt(E(O,y.toNumber(),m.toNumber()))||b.gt(u)){I.gt(E(O,y.toNumber(),m.toNumber()))?((v=I.clone()).setOperator(v.getOperator(O,y.toNumber(),m.toNumber())-1,O,y.toNumber(),m.toNumber()),v.normalize()):v=I.gt(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))))?new r(I.getOperator.apply(I,a(w(O-1,y.toNumber(),m.toNumber())))):r.ZERO;var x=v.add(b);return x.setOperator(x.getOperator(O,y.toNumber(),m.toNumber())+1,O,y.toNumber(),m.toNumber()),x.normalize(),x}if(N>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,O,y.toNumber(),m.toNumber())]});var M=b.toNumber(),k=Math.floor(M),q=d.sub(r.ONE);v=r.BEAF(I,M-k,q.toNumber(),y,m,s,N+1);for(var T=0,S=new r(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))));0!==k&&v.lt(S)&&T<100;T++)k>0&&(v=r.BEAF(c,v,q.toNumber(),y,m,s,N+1),--k);return 100==T&&(k=0),(h=v).setOperator.apply(h,[(p=v).getOperator.apply(p,a(w(O-1,y.toNumber(),m.toNumber())))+k].concat(a(w(O-1,y.toNumber(),m.toNumber())))),v.normalize(),v}(g,l);return console.log("".concat("-".repeat(l)," = ").concat(x)),x}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.lt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.gt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromNumber",value:function(e){var t=new r;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[f(1/0,0)],t;e>0&&(t.sign=1)}var a=Math.abs(e);return a==1/0?t.array=[f(1/0,0)]:a>=11102230246251568e-32&&a<1?(t.small=!0,t.array=[f(1/a,0)]):a<11102230246251568e-32?(t.small=!0,t.array=[f(-Math.log10(a),0),f(1,1)]):a<=u?t.array=[f(a,0)]:(t.setOperator(Math.log10(a),0),t.array=[f(Math.log10(a),0),f(1,1)]),t}},{key:"fromString",value:function(e){var t,a,n,i,o,l,g,p=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var y=Number(e),m=!1;if(0==y?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var N=e.search(/e/),v=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var O=w.length>=17?h(w):Math.log10(Number(w)),E=O-(Math.floor(O)-1);b[0]=Math.pow(10,E),b[1]+=E}else{var I=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(y)&&m)return p=r.fromNumber(Number(e))}if(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)\x20*PT/g,"(10^)^$1 "),!c.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var d=!1,x=!1;if("-"==e[0]||"+"==e[0]){var M=e.search(/[^-\+]/);d=(null!==(a=null===(t=e.substring(0,M).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(M)}if("/"==e[0]){M=e.search(/[^\/]/);x=(null!==(i=null===(n=e.substring(0,M).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==i?i:0)%2==1,e=e.substring(M)}if("NaN"==e)p.array=[f(NaN)];else if("Infinity"==e)p.array=[f(1/0)];else{var k,q,T,S;for(p.sign=1,p.array=[f(0)],"P"==e[0]&&("^"==e[1]?(k=e.substring(2).search(/[^0-9]/)+2,p.layer=Number(e.substring(2,k)),e=e.substring(k+1)):(k=e.search(/[^P]/),p.layer=k,e=e.substring(k)));e&&/^(\(?10[\^\{])/.test(e);){var F,_,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])F=k=e.substring(2).search(/[^\^]/),q=k+2;else{k=e.indexOf("}");var A=e.substring(3,k).split(",");F=Number("!"==A[0]?1/0:A[0]),_=Number(null!==(o="!"==A[1]?1/0:A[1])&&void 0!==o?o:1),Z=Number(null!==(l=A[2])&&void 0!==l?l:1),q=k+1}")"==(e=e.substring(q))[0]?(k=e.indexOf(" "),T=Number(e.substring(2,k)),e=e.substring(k+1)):T=1,1==F&&1==_&&1==Z?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=T:p.array.splice(1,0,f(T,1,_,Z)):2==F&&1==_&&1==Z?(k=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(q=p.array[0].repeat)>=1e10&&++k,q>=10&&++k,p.array[0].repeat=k,p.array.length>=2&&1==p.array[1].arrow&&p.array.splice(1,1),S=p.getOperatorIndex(2),Number.isInteger(S)?p.array[S].repeat+=T:p.array.splice(Math.ceil(S),0,f(T,2,_,Z))):isFinite(F)?(k=p.getOperator(F-1),(q=p.getOperator(F-2))>=10&&++k,S=p.getOperatorIndex(F),p.array.splice(1,Math.ceil(S)-1),p.array[0].repeat=k,Number.isInteger(S)?p.array[1].repeat+=T:p.array.splice(1,0,f(T,F,_,Z))):p.array.splice(1,0,f(T,F,_,Z))}k=e.split(/[Ee]/),q=[p.array[0].repeat,0],T=1;for(var R=k.length-1;R>=0;--R){q[0]<s&&0===q[1]?q[0]=Math.pow(10,T*q[0]):-1==T?(0===q[1]?q[0]=Math.pow(10,T*q[0]):1==q[1]&&q[0]<=Math.log10(Number.MAX_VALUE)?q[0]=Math.pow(10,T*Math.pow(10,q[0])):q[0]=0,q[1]=0):q[1]++;var P=k[R].indexOf("."),V=-1==P?k[R].length:P;0===q[1]?V>=17?(q[0]=Math.log10(q[0])+h(k[R].substring(0,V)),q[1]=1):k[R]&&(q[0]*=Number(k[R])):(S=V>=17?h(k[R].substring(0,V)):k[R]?Math.log10(Number(k[R])):0,1==q[1]?q[0]+=S:2==q[1]&&q[0]<s+Math.log10(S)&&(q[0]+=Math.log10(1+Math.pow(10,Math.log10(S)-q[0])))),q[0]<s&&q[1]?(q[0]=Math.pow(10,q[0]),q[1]--):q[0]>u&&(q[0]=Math.log10(q[0]),q[1]++)}p.array[0].repeat=q[0],q[1]&&(p.array.length>=2&&1==p.array[1].arrow&&1==p.array[1].expans&&1==p.array[1].megota?p.array[1].repeat+=q[1]:p.array.splice(1,0,f(q[1],1,1,1)))}return d&&(p.sign*=-1),x&&(p.small=!p.small),p.normalize(),p.normalize(),p}},{key:"fromObject",value:function(e){var t=new r;if(t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!m(t))return!1;if(!N(t))return!1}return!0}(e)){for(var a=0;a<e.length;a++)t.array[a]={arrow:e[a][0],expans:1,megota:1,repeat:e[a][1]};return t.small=!1,t.sign=1,t.layer=0,t}for(var n=0;n<e.array.length;n++)t.array[n]={arrow:e.array[n].arrow,expans:e.array[n].expans,megota:e.array[n].megota,repeat:e.array[n].repeat,valuereplaced:e.array[n].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,O.ZERO=new O({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),O.ONE=new O({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.MSI=new O(u),O.MSI_REC=((b=new O(u)).small=!0,b),O.E_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.EE_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),O.E_MSI_REC=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),O.TETRATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),O.PENTATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),O.TRITRI=new O({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),O.GRAHAMS_NUMBER=new O("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),O.POSITIVE_INFINITY=new O(1/0),O.NEGATIVE_INFINITY=new O(-1/0),O.NaN=new O({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),O.E=new O(Math.E),O.LN2=new O(Math.LN2),O.LN10=new O(Math.LN10),O.LOG2E=new O(Math.LOG2E),O.LOG10E=new O(Math.LOG10E),O.PI=new O(Math.PI),O.SQRT1_2=new O(Math.SQRT1_2),O.SQRT2=new O(Math.SQRT2),O.maxOps=100,O.POW_2_44_MOD_PI=1.701173079953,O.arrowFuncMap=new Map,r.arraySortFunction=w,r.default=O,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
package/dist/index.d.ts CHANGED
@@ -63,25 +63,13 @@ export default class PowiainaNum implements IPowiainaNum {
63
63
  static log(t: PowiainaNumSource, base?: PowiainaNumSource): PowiainaNum;
64
64
  ln(): PowiainaNum;
65
65
  /**
66
- * plog10, beware unexpected errors.
66
+ * positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
67
67
  */
68
- plog10(): PowiainaNum;
68
+ pLog10(): PowiainaNum;
69
69
  /**
70
- * plog10, beware unexpected errors.
70
+ * positive-Log10
71
71
  */
72
- static plog10(t: PowiainaNumSource): PowiainaNum;
73
- /**
74
- * plog, beware unexpected errors.
75
- */
76
- plog(base?: PowiainaNumSource): PowiainaNum;
77
- /**
78
- * plog, beware unexpected errors.
79
- */
80
- static plog(t: PowiainaNumSource, base?: PowiainaNumSource): PowiainaNum;
81
- /**
82
- * pln, beware unexpected errors.
83
- */
84
- pln(): PowiainaNum;
72
+ static pLog10(t: PowiainaNumSource): PowiainaNum;
85
73
  static exp(x: PowiainaNumSource): PowiainaNum;
86
74
  exp(): PowiainaNum;
87
75
  /**
@@ -112,6 +100,12 @@ export default class PowiainaNum implements IPowiainaNum {
112
100
  static tetrate(t: PowiainaNumSource, other2: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum;
113
101
  ssqrt(): PowiainaNum;
114
102
  static tetrate_10(other2: PowiainaNumSource): PowiainaNum;
103
+ /**
104
+ * iterated-log
105
+ *
106
+ * @example new P("10^10^3").iteratedlog(2,10) == 3
107
+ */
108
+ iteratedlog(other2?: PowiainaNumSource, base2?: PowiainaNumSource): PowiainaNum;
115
109
  arrow(arrows2: PowiainaNumSource): (other: PowiainaNumSource, depth?: number) => PowiainaNum;
116
110
  anyarrow_log(arrow2: PowiainaNumSource): (base: PowiainaNumSource) => PowiainaNum;
117
111
  private static arrowMSI;
@@ -154,6 +148,13 @@ export default class PowiainaNum implements IPowiainaNum {
154
148
  * @returns restricted number
155
149
  */
156
150
  static clampMin(...args: PowiainaNumSource[]): PowiainaNum;
151
+ /**
152
+ * Restrict a number be not lower than a number
153
+ *
154
+ * It's also an alias of `PowiainaNum.max`.
155
+ * @returns restricted number
156
+ */
157
+ clampMin(...args: PowiainaNumSource[]): PowiainaNum;
157
158
  /**
158
159
  * Restrict a number be not higher than a number
159
160
  *
@@ -161,6 +162,18 @@ export default class PowiainaNum implements IPowiainaNum {
161
162
  * @returns restricted number
162
163
  */
163
164
  static clampMax(...args: PowiainaNumSource[]): PowiainaNum;
165
+ /**
166
+ * Restrict a number be not higher than a number
167
+ *
168
+ * It's also an alias of `PowiainaNum.min`.
169
+ * @returns restricted number
170
+ */
171
+ clampMax(...args: PowiainaNumSource[]): PowiainaNum;
172
+ /**
173
+ * A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
174
+ * Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
175
+ */
176
+ clamp(min: PowiainaNumSource, max: PowiainaNumSource): PowiainaNum;
164
177
  max(...args: PowiainaNumSource[]): PowiainaNum;
165
178
  min(...args: PowiainaNumSource[]): PowiainaNum;
166
179
  /**
@@ -179,6 +192,7 @@ export default class PowiainaNum implements IPowiainaNum {
179
192
  lte(other: PowiainaNumSource): boolean;
180
193
  gt(other: PowiainaNumSource): boolean;
181
194
  gte(other: PowiainaNumSource): boolean;
195
+ eq_tolerance(value: PowiainaNumSource, tolerance?: number): boolean;
182
196
  sin(): PowiainaNum;
183
197
  cos(): PowiainaNum;
184
198
  tan(): PowiainaNum;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powiaina_num.js",
3
- "version": "0.2.0-beta.1",
3
+ "version": "0.2.0-beta.1.1",
4
4
  "description": "A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.",
5
5
  "type": "module",
6
6
  "main": "dist/PowiainaNum.cjs.js",