powiaina_num.js 0.2.4 → 0.2.6

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.
@@ -808,6 +808,12 @@ var PowiainaNum = /*#__PURE__*/function () {
808
808
  r.normalize();
809
809
  return r;
810
810
  }
811
+ }, {
812
+ key: "tetr",
813
+ value: function tetr(other2) {
814
+ var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
815
+ return this.tetrate(other2, payload);
816
+ }
811
817
  // Code from ExpantaNum.js
812
818
  }, {
813
819
  key: "slog",
@@ -885,6 +891,11 @@ var PowiainaNum = /*#__PURE__*/function () {
885
891
  var l = x.ln();
886
892
  return l.div(l.lambertw());
887
893
  }
894
+ }, {
895
+ key: "tetrate_10",
896
+ value: function tetrate_10() {
897
+ return PowiainaNum.tetrate(10, this);
898
+ }
888
899
  }, {
889
900
  key: "iteratedlog",
890
901
  value:
@@ -903,6 +914,9 @@ var PowiainaNum = /*#__PURE__*/function () {
903
914
  if (other.eq(PowiainaNum.ONE)) return t.log(base);
904
915
  return base.tetrate(t.slog(base).sub(other));
905
916
  }
917
+ }, {
918
+ key: "arrow",
919
+ value:
906
920
  //#endregion
907
921
  /**
908
922
  * Arrow operation, return a function
@@ -911,9 +925,7 @@ var PowiainaNum = /*#__PURE__*/function () {
911
925
  * @param arrows2 arrow count
912
926
  * @returns A function
913
927
  */
914
- }, {
915
- key: "arrow",
916
- value: function arrow(arrows2) {
928
+ function arrow(arrows2) {
917
929
  var t = this.clone();
918
930
  var arrows = new PowiainaNum(arrows2);
919
931
  if (!arrows.isInt() || arrows.lt(PowiainaNum.ZERO)) {
@@ -931,7 +943,8 @@ var PowiainaNum = /*#__PURE__*/function () {
931
943
  if (arrows.eq(2)) return function (other) {
932
944
  return t.tetrate(other);
933
945
  };
934
- return function (other2, payload2) {
946
+ return function (other2) {
947
+ var payload2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
935
948
  var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
936
949
  var other = new PowiainaNum(other2);
937
950
  var payload = new PowiainaNum(payload2);
@@ -1005,15 +1018,16 @@ var PowiainaNum = /*#__PURE__*/function () {
1005
1018
  return res;
1006
1019
  };
1007
1020
  }
1021
+ }, {
1022
+ key: "anyarrow_log",
1023
+ value:
1008
1024
  /**
1009
1025
  * return `base`{`arrow2`}`x` = `this` which `x` is.
1010
1026
  *
1011
1027
  * @param arrow2
1012
1028
  * @returns
1013
1029
  */
1014
- }, {
1015
- key: "anyarrow_log",
1016
- value: function anyarrow_log(arrow2) {
1030
+ function anyarrow_log(arrow2) {
1017
1031
  var x = this.clone();
1018
1032
  var arrow = new PowiainaNum(arrow2);
1019
1033
  var arrowsNum = arrow.toNumber();
@@ -1081,14 +1095,18 @@ var PowiainaNum = /*#__PURE__*/function () {
1081
1095
  return PowiainaNum.NaN.clone();
1082
1096
  };
1083
1097
  }
1098
+ /**
1099
+ * base{height}base
1100
+ */
1101
+ }, {
1102
+ key: "arrow_height_inverse",
1103
+ value:
1084
1104
  /**
1085
1105
  * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
1086
1106
  * @param arrows
1087
1107
  * @returns
1088
1108
  */
1089
- }, {
1090
- key: "arrow_height_inverse",
1091
- value: function arrow_height_inverse(arrows) {
1109
+ function arrow_height_inverse(arrows) {
1092
1110
  return this.anyarrow_log(arrows);
1093
1111
  }
1094
1112
  }, {
@@ -1106,6 +1124,11 @@ var PowiainaNum = /*#__PURE__*/function () {
1106
1124
  value: function hexate(other) {
1107
1125
  return this.arrow(4)(other);
1108
1126
  }
1127
+ }, {
1128
+ key: "pent",
1129
+ value: function pent(other) {
1130
+ return this.arrow(3)(other);
1131
+ }
1109
1132
  }, {
1110
1133
  key: "penta_log",
1111
1134
  value: function penta_log() {
@@ -2027,6 +2050,82 @@ var PowiainaNum = /*#__PURE__*/function () {
2027
2050
  var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2028
2051
  return new PowiainaNum(x).lambertw(principal);
2029
2052
  }
2053
+ //#endregion
2054
+ //#region Commonly used functions by game
2055
+ // All of these are from break_eternity.js
2056
+ /**
2057
+ * If you're willing to spend 'resourcesAvailable' and want to buy something
2058
+ * with exponentially increasing cost each purchase (start at priceStart,
2059
+ * multiply by priceRatio, already own currentOwned), how much of it can you buy?
2060
+ * Adapted from Trimps source code.
2061
+ *
2062
+ * currentOwned >= priceStart*priceRatio^(return value)
2063
+ */
2064
+ }, {
2065
+ key: "affordGeometricSeries",
2066
+ value: function affordGeometricSeries(resourcesAvailable, priceStart, priceRatio, currentOwned) {
2067
+ return this.affordGeometricSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
2068
+ }
2069
+ }, {
2070
+ key: "affordGeometricSeries_core",
2071
+ value: function affordGeometricSeries_core(resourcesAvailable, priceStart, priceRatio, currentOwned) {
2072
+ var withNaNProtect = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
2073
+ var actualStart = priceStart.mul(priceRatio.pow(currentOwned));
2074
+ return resourcesAvailable.div(actualStart).mul(priceRatio.sub(1)).add(1).clampMin(withNaNProtect ? 1 : -Infinity).log10().div(priceRatio.log10()).floor();
2075
+ }
2076
+ /**
2077
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
2078
+ * the initial price is priceStart and it multiplies by priceRatio each purchase?
2079
+ *
2080
+ * return value = priceStart*priceRatio^(numItems)
2081
+ */
2082
+ }, {
2083
+ key: "sumGeometricSeries",
2084
+ value: function sumGeometricSeries(numItems, priceStart, priceRatio, currentOwned) {
2085
+ return this.sumGeometricSeries_core(numItems, new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
2086
+ }
2087
+ }, {
2088
+ key: "sumGeometricSeries_core",
2089
+ value: function sumGeometricSeries_core(numItems, priceStart, priceRatio, currentOwned) {
2090
+ return priceStart.mul(priceRatio.pow(currentOwned)).mul(PowiainaNum.sub(1, priceRatio.pow(numItems))).div(PowiainaNum.sub(1, priceRatio));
2091
+ }
2092
+ /**
2093
+ * If you're willing to spend 'resourcesAvailable' and want to buy something with additively
2094
+ * increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),
2095
+ * how much of it can you buy?
2096
+ */
2097
+ }, {
2098
+ key: "affordArithmeticSeries",
2099
+ value: function affordArithmeticSeries(resourcesAvailable, priceStart, priceAdd, currentOwned) {
2100
+ return this.affordArithmeticSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
2101
+ }
2102
+ }, {
2103
+ key: "affordArithmeticSeries_core",
2104
+ value: function affordArithmeticSeries_core(resourcesAvailable, priceStart, priceAdd, currentOwned) {
2105
+ // n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d
2106
+ // where a is actualStart, d is priceAdd and S is resourcesAvailable
2107
+ // then floor it and you're done!
2108
+ var actualStart = priceStart.add(currentOwned.mul(priceAdd));
2109
+ var b = actualStart.sub(priceAdd.div(2));
2110
+ var b2 = b.pow(2);
2111
+ return b.neg().add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt()).div(priceAdd).floor();
2112
+ }
2113
+ /**
2114
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
2115
+ * the initial price is priceStart and it adds priceAdd each purchase?
2116
+ * Adapted from http://www.mathwords.com/a/arithmetic_series.htm
2117
+ */
2118
+ }, {
2119
+ key: "sumArithmeticSeries",
2120
+ value: function sumArithmeticSeries(numItems, priceStart, priceAdd, currentOwned) {
2121
+ return this.sumArithmeticSeries_core(new PowiainaNum(numItems), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
2122
+ }
2123
+ }, {
2124
+ key: "sumArithmeticSeries_core",
2125
+ value: function sumArithmeticSeries_core(numItems, priceStart, priceAdd, currentOwned) {
2126
+ var actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)
2127
+ return numItems.div(2).mul(actualStart.mul(2).add(numItems.sub(1).mul(priceAdd)));
2128
+ }
2030
2129
  }, {
2031
2130
  key: "tetrate",
2032
2131
  value: function tetrate(t, other2) {
@@ -2038,6 +2137,25 @@ var PowiainaNum = /*#__PURE__*/function () {
2038
2137
  value: function tetrate_10(other2) {
2039
2138
  return PowiainaNum.fromNumber(10).tetrate(other2);
2040
2139
  }
2140
+ }, {
2141
+ key: "iteratedlog",
2142
+ value: function iteratedlog(t) {
2143
+ var other2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
2144
+ var base2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
2145
+ return new PowiainaNum(t).iteratedlog(other2, base2);
2146
+ }
2147
+ }, {
2148
+ key: "arrow",
2149
+ value: function arrow(x, z, y) {
2150
+ return new PowiainaNum(x).arrow(z)(y);
2151
+ }
2152
+ }, {
2153
+ key: "arrFrac",
2154
+ value: function arrFrac(base, height) {
2155
+ var b = new PowiainaNum(base).clone();
2156
+ var h = new PowiainaNum(height).clone();
2157
+ return new PowiainaNum(b).arrow(h.floor().add(1))(b.div(2).pow(h.sub(h.floor())).mul(2));
2158
+ }
2041
2159
  }, {
2042
2160
  key: "arrowMSI",
2043
2161
  value: function arrowMSI(arrowsNum) {
@@ -2073,7 +2191,27 @@ var PowiainaNum = /*#__PURE__*/function () {
2073
2191
  }
2074
2192
  }, {
2075
2193
  key: "BEAF",
2076
- value: function BEAF(base2, power2) {
2194
+ value: function BEAF() {
2195
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2196
+ args[_key8] = arguments[_key8];
2197
+ }
2198
+ function getArgs(x) {
2199
+ if (args[x]) return new PowiainaNum(args[x]);
2200
+ return new PowiainaNum(1);
2201
+ }
2202
+ if (getArgs(0).eq(1)) return new PowiainaNum(1);
2203
+ if (getArgs(1).eq(1)) return new PowiainaNum(getArgs(0));
2204
+ if (getArgs(5).eq(2) && (getArgs(4).gte(2) || getArgs(3).gte(2) || getArgs(2).gte(2))) return PowiainaNum.POSITIVE_INFINITY.clone();
2205
+ if (args.slice(6).map(function (x) {
2206
+ return new PowiainaNum(x);
2207
+ }).filter(function (x) {
2208
+ return x.gt(1);
2209
+ }).length !== 0) return PowiainaNum.POSITIVE_INFINITY.clone();
2210
+ return PowiainaNum.BEAF_core(getArgs(0), getArgs(1), getArgs(2), getArgs(3), getArgs(4), getArgs(5));
2211
+ }
2212
+ }, {
2213
+ key: "BEAF_core",
2214
+ value: function BEAF_core(base2, power2) {
2077
2215
  var arrow2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2078
2216
  var expans2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2079
2217
  var megota2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
@@ -2244,8 +2382,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2244
2382
  key: "max",
2245
2383
  value: function max() {
2246
2384
  var max = PowiainaNum.NEGATIVE_INFINITY;
2247
- for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2248
- args[_key8] = arguments[_key8];
2385
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2386
+ args[_key9] = arguments[_key9];
2249
2387
  }
2250
2388
  for (var i = 0; i < args.length; i++) {
2251
2389
  if (max.lt(args[i])) {
@@ -2261,8 +2399,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2261
2399
  key: "min",
2262
2400
  value: function min() {
2263
2401
  var max = PowiainaNum.POSITIVE_INFINITY;
2264
- for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2265
- args[_key9] = arguments[_key9];
2402
+ for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
2403
+ args[_key0] = arguments[_key0];
2266
2404
  }
2267
2405
  for (var i = 0; i < args.length; i++) {
2268
2406
  if (max.gt(args[i])) {
@@ -2332,6 +2470,16 @@ var PowiainaNum = /*#__PURE__*/function () {
2332
2470
  var x = new PowiainaNum();
2333
2471
  // Judge the string was a number
2334
2472
  if (input.startsWith("PN")) input = input.substring(2);
2473
+ input = input.replace(/J\^(\d+)/g, "(10{!})^$1");
2474
+ input = input.replace(/J/g, "10{!}");
2475
+ input = input.replace(/K\^(\d+)/g, "(10{1,2})^$1");
2476
+ input = input.replace(/K/g, "10{1,2}");
2477
+ input = input.replace(/L\^(\d+)/g, "(10{2,2})^$1");
2478
+ input = input.replace(/L/g, "10{2,2}");
2479
+ input = input.replace(/M\^(\d+)/g, "(10{!,2})^$1");
2480
+ input = input.replace(/M/g, "10{!,2}");
2481
+ input = input.replace(/N\^(\d+)/g, "(10{1,!})^$1");
2482
+ input = input.replace(/N/g, "10{1,!}");
2335
2483
  if (!isNaN(Number(input))) {
2336
2484
  var res = Number(input);
2337
2485
  var _a3 = false;
@@ -804,6 +804,12 @@ var PowiainaNum = /*#__PURE__*/function () {
804
804
  r.normalize();
805
805
  return r;
806
806
  }
807
+ }, {
808
+ key: "tetr",
809
+ value: function tetr(other2) {
810
+ var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
811
+ return this.tetrate(other2, payload);
812
+ }
807
813
  // Code from ExpantaNum.js
808
814
  }, {
809
815
  key: "slog",
@@ -881,6 +887,11 @@ var PowiainaNum = /*#__PURE__*/function () {
881
887
  var l = x.ln();
882
888
  return l.div(l.lambertw());
883
889
  }
890
+ }, {
891
+ key: "tetrate_10",
892
+ value: function tetrate_10() {
893
+ return PowiainaNum.tetrate(10, this);
894
+ }
884
895
  }, {
885
896
  key: "iteratedlog",
886
897
  value:
@@ -899,6 +910,9 @@ var PowiainaNum = /*#__PURE__*/function () {
899
910
  if (other.eq(PowiainaNum.ONE)) return t.log(base);
900
911
  return base.tetrate(t.slog(base).sub(other));
901
912
  }
913
+ }, {
914
+ key: "arrow",
915
+ value:
902
916
  //#endregion
903
917
  /**
904
918
  * Arrow operation, return a function
@@ -907,9 +921,7 @@ var PowiainaNum = /*#__PURE__*/function () {
907
921
  * @param arrows2 arrow count
908
922
  * @returns A function
909
923
  */
910
- }, {
911
- key: "arrow",
912
- value: function arrow(arrows2) {
924
+ function arrow(arrows2) {
913
925
  var t = this.clone();
914
926
  var arrows = new PowiainaNum(arrows2);
915
927
  if (!arrows.isInt() || arrows.lt(PowiainaNum.ZERO)) {
@@ -927,7 +939,8 @@ var PowiainaNum = /*#__PURE__*/function () {
927
939
  if (arrows.eq(2)) return function (other) {
928
940
  return t.tetrate(other);
929
941
  };
930
- return function (other2, payload2) {
942
+ return function (other2) {
943
+ var payload2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
931
944
  var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
932
945
  var other = new PowiainaNum(other2);
933
946
  var payload = new PowiainaNum(payload2);
@@ -1001,15 +1014,16 @@ var PowiainaNum = /*#__PURE__*/function () {
1001
1014
  return res;
1002
1015
  };
1003
1016
  }
1017
+ }, {
1018
+ key: "anyarrow_log",
1019
+ value:
1004
1020
  /**
1005
1021
  * return `base`{`arrow2`}`x` = `this` which `x` is.
1006
1022
  *
1007
1023
  * @param arrow2
1008
1024
  * @returns
1009
1025
  */
1010
- }, {
1011
- key: "anyarrow_log",
1012
- value: function anyarrow_log(arrow2) {
1026
+ function anyarrow_log(arrow2) {
1013
1027
  var x = this.clone();
1014
1028
  var arrow = new PowiainaNum(arrow2);
1015
1029
  var arrowsNum = arrow.toNumber();
@@ -1077,14 +1091,18 @@ var PowiainaNum = /*#__PURE__*/function () {
1077
1091
  return PowiainaNum.NaN.clone();
1078
1092
  };
1079
1093
  }
1094
+ /**
1095
+ * base{height}base
1096
+ */
1097
+ }, {
1098
+ key: "arrow_height_inverse",
1099
+ value:
1080
1100
  /**
1081
1101
  * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
1082
1102
  * @param arrows
1083
1103
  * @returns
1084
1104
  */
1085
- }, {
1086
- key: "arrow_height_inverse",
1087
- value: function arrow_height_inverse(arrows) {
1105
+ function arrow_height_inverse(arrows) {
1088
1106
  return this.anyarrow_log(arrows);
1089
1107
  }
1090
1108
  }, {
@@ -1102,6 +1120,11 @@ var PowiainaNum = /*#__PURE__*/function () {
1102
1120
  value: function hexate(other) {
1103
1121
  return this.arrow(4)(other);
1104
1122
  }
1123
+ }, {
1124
+ key: "pent",
1125
+ value: function pent(other) {
1126
+ return this.arrow(3)(other);
1127
+ }
1105
1128
  }, {
1106
1129
  key: "penta_log",
1107
1130
  value: function penta_log() {
@@ -2023,6 +2046,82 @@ var PowiainaNum = /*#__PURE__*/function () {
2023
2046
  var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2024
2047
  return new PowiainaNum(x).lambertw(principal);
2025
2048
  }
2049
+ //#endregion
2050
+ //#region Commonly used functions by game
2051
+ // All of these are from break_eternity.js
2052
+ /**
2053
+ * If you're willing to spend 'resourcesAvailable' and want to buy something
2054
+ * with exponentially increasing cost each purchase (start at priceStart,
2055
+ * multiply by priceRatio, already own currentOwned), how much of it can you buy?
2056
+ * Adapted from Trimps source code.
2057
+ *
2058
+ * currentOwned >= priceStart*priceRatio^(return value)
2059
+ */
2060
+ }, {
2061
+ key: "affordGeometricSeries",
2062
+ value: function affordGeometricSeries(resourcesAvailable, priceStart, priceRatio, currentOwned) {
2063
+ return this.affordGeometricSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
2064
+ }
2065
+ }, {
2066
+ key: "affordGeometricSeries_core",
2067
+ value: function affordGeometricSeries_core(resourcesAvailable, priceStart, priceRatio, currentOwned) {
2068
+ var withNaNProtect = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
2069
+ var actualStart = priceStart.mul(priceRatio.pow(currentOwned));
2070
+ return resourcesAvailable.div(actualStart).mul(priceRatio.sub(1)).add(1).clampMin(withNaNProtect ? 1 : -Infinity).log10().div(priceRatio.log10()).floor();
2071
+ }
2072
+ /**
2073
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
2074
+ * the initial price is priceStart and it multiplies by priceRatio each purchase?
2075
+ *
2076
+ * return value = priceStart*priceRatio^(numItems)
2077
+ */
2078
+ }, {
2079
+ key: "sumGeometricSeries",
2080
+ value: function sumGeometricSeries(numItems, priceStart, priceRatio, currentOwned) {
2081
+ return this.sumGeometricSeries_core(numItems, new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
2082
+ }
2083
+ }, {
2084
+ key: "sumGeometricSeries_core",
2085
+ value: function sumGeometricSeries_core(numItems, priceStart, priceRatio, currentOwned) {
2086
+ return priceStart.mul(priceRatio.pow(currentOwned)).mul(PowiainaNum.sub(1, priceRatio.pow(numItems))).div(PowiainaNum.sub(1, priceRatio));
2087
+ }
2088
+ /**
2089
+ * If you're willing to spend 'resourcesAvailable' and want to buy something with additively
2090
+ * increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),
2091
+ * how much of it can you buy?
2092
+ */
2093
+ }, {
2094
+ key: "affordArithmeticSeries",
2095
+ value: function affordArithmeticSeries(resourcesAvailable, priceStart, priceAdd, currentOwned) {
2096
+ return this.affordArithmeticSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
2097
+ }
2098
+ }, {
2099
+ key: "affordArithmeticSeries_core",
2100
+ value: function affordArithmeticSeries_core(resourcesAvailable, priceStart, priceAdd, currentOwned) {
2101
+ // n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d
2102
+ // where a is actualStart, d is priceAdd and S is resourcesAvailable
2103
+ // then floor it and you're done!
2104
+ var actualStart = priceStart.add(currentOwned.mul(priceAdd));
2105
+ var b = actualStart.sub(priceAdd.div(2));
2106
+ var b2 = b.pow(2);
2107
+ return b.neg().add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt()).div(priceAdd).floor();
2108
+ }
2109
+ /**
2110
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
2111
+ * the initial price is priceStart and it adds priceAdd each purchase?
2112
+ * Adapted from http://www.mathwords.com/a/arithmetic_series.htm
2113
+ */
2114
+ }, {
2115
+ key: "sumArithmeticSeries",
2116
+ value: function sumArithmeticSeries(numItems, priceStart, priceAdd, currentOwned) {
2117
+ return this.sumArithmeticSeries_core(new PowiainaNum(numItems), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
2118
+ }
2119
+ }, {
2120
+ key: "sumArithmeticSeries_core",
2121
+ value: function sumArithmeticSeries_core(numItems, priceStart, priceAdd, currentOwned) {
2122
+ var actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)
2123
+ return numItems.div(2).mul(actualStart.mul(2).add(numItems.sub(1).mul(priceAdd)));
2124
+ }
2026
2125
  }, {
2027
2126
  key: "tetrate",
2028
2127
  value: function tetrate(t, other2) {
@@ -2034,6 +2133,25 @@ var PowiainaNum = /*#__PURE__*/function () {
2034
2133
  value: function tetrate_10(other2) {
2035
2134
  return PowiainaNum.fromNumber(10).tetrate(other2);
2036
2135
  }
2136
+ }, {
2137
+ key: "iteratedlog",
2138
+ value: function iteratedlog(t) {
2139
+ var other2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
2140
+ var base2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
2141
+ return new PowiainaNum(t).iteratedlog(other2, base2);
2142
+ }
2143
+ }, {
2144
+ key: "arrow",
2145
+ value: function arrow(x, z, y) {
2146
+ return new PowiainaNum(x).arrow(z)(y);
2147
+ }
2148
+ }, {
2149
+ key: "arrFrac",
2150
+ value: function arrFrac(base, height) {
2151
+ var b = new PowiainaNum(base).clone();
2152
+ var h = new PowiainaNum(height).clone();
2153
+ return new PowiainaNum(b).arrow(h.floor().add(1))(b.div(2).pow(h.sub(h.floor())).mul(2));
2154
+ }
2037
2155
  }, {
2038
2156
  key: "arrowMSI",
2039
2157
  value: function arrowMSI(arrowsNum) {
@@ -2069,7 +2187,27 @@ var PowiainaNum = /*#__PURE__*/function () {
2069
2187
  }
2070
2188
  }, {
2071
2189
  key: "BEAF",
2072
- value: function BEAF(base2, power2) {
2190
+ value: function BEAF() {
2191
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2192
+ args[_key8] = arguments[_key8];
2193
+ }
2194
+ function getArgs(x) {
2195
+ if (args[x]) return new PowiainaNum(args[x]);
2196
+ return new PowiainaNum(1);
2197
+ }
2198
+ if (getArgs(0).eq(1)) return new PowiainaNum(1);
2199
+ if (getArgs(1).eq(1)) return new PowiainaNum(getArgs(0));
2200
+ if (getArgs(5).eq(2) && (getArgs(4).gte(2) || getArgs(3).gte(2) || getArgs(2).gte(2))) return PowiainaNum.POSITIVE_INFINITY.clone();
2201
+ if (args.slice(6).map(function (x) {
2202
+ return new PowiainaNum(x);
2203
+ }).filter(function (x) {
2204
+ return x.gt(1);
2205
+ }).length !== 0) return PowiainaNum.POSITIVE_INFINITY.clone();
2206
+ return PowiainaNum.BEAF_core(getArgs(0), getArgs(1), getArgs(2), getArgs(3), getArgs(4), getArgs(5));
2207
+ }
2208
+ }, {
2209
+ key: "BEAF_core",
2210
+ value: function BEAF_core(base2, power2) {
2073
2211
  var arrow2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2074
2212
  var expans2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2075
2213
  var megota2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
@@ -2240,8 +2378,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2240
2378
  key: "max",
2241
2379
  value: function max() {
2242
2380
  var max = PowiainaNum.NEGATIVE_INFINITY;
2243
- for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2244
- args[_key8] = arguments[_key8];
2381
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2382
+ args[_key9] = arguments[_key9];
2245
2383
  }
2246
2384
  for (var i = 0; i < args.length; i++) {
2247
2385
  if (max.lt(args[i])) {
@@ -2257,8 +2395,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2257
2395
  key: "min",
2258
2396
  value: function min() {
2259
2397
  var max = PowiainaNum.POSITIVE_INFINITY;
2260
- for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2261
- args[_key9] = arguments[_key9];
2398
+ for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
2399
+ args[_key0] = arguments[_key0];
2262
2400
  }
2263
2401
  for (var i = 0; i < args.length; i++) {
2264
2402
  if (max.gt(args[i])) {
@@ -2328,6 +2466,16 @@ var PowiainaNum = /*#__PURE__*/function () {
2328
2466
  var x = new PowiainaNum();
2329
2467
  // Judge the string was a number
2330
2468
  if (input.startsWith("PN")) input = input.substring(2);
2469
+ input = input.replace(/J\^(\d+)/g, "(10{!})^$1");
2470
+ input = input.replace(/J/g, "10{!}");
2471
+ input = input.replace(/K\^(\d+)/g, "(10{1,2})^$1");
2472
+ input = input.replace(/K/g, "10{1,2}");
2473
+ input = input.replace(/L\^(\d+)/g, "(10{2,2})^$1");
2474
+ input = input.replace(/L/g, "10{2,2}");
2475
+ input = input.replace(/M\^(\d+)/g, "(10{!,2})^$1");
2476
+ input = input.replace(/M/g, "10{!,2}");
2477
+ input = input.replace(/N\^(\d+)/g, "(10{1,!})^$1");
2478
+ input = input.replace(/N/g, "10{1,!}");
2331
2479
  if (!isNaN(Number(input))) {
2332
2480
  var res = Number(input);
2333
2481
  var _a3 = false;
@@ -810,6 +810,12 @@
810
810
  r.normalize();
811
811
  return r;
812
812
  }
813
+ }, {
814
+ key: "tetr",
815
+ value: function tetr(other2) {
816
+ var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
817
+ return this.tetrate(other2, payload);
818
+ }
813
819
  // Code from ExpantaNum.js
814
820
  }, {
815
821
  key: "slog",
@@ -887,6 +893,11 @@
887
893
  var l = x.ln();
888
894
  return l.div(l.lambertw());
889
895
  }
896
+ }, {
897
+ key: "tetrate_10",
898
+ value: function tetrate_10() {
899
+ return PowiainaNum.tetrate(10, this);
900
+ }
890
901
  }, {
891
902
  key: "iteratedlog",
892
903
  value:
@@ -905,6 +916,9 @@
905
916
  if (other.eq(PowiainaNum.ONE)) return t.log(base);
906
917
  return base.tetrate(t.slog(base).sub(other));
907
918
  }
919
+ }, {
920
+ key: "arrow",
921
+ value:
908
922
  //#endregion
909
923
  /**
910
924
  * Arrow operation, return a function
@@ -913,9 +927,7 @@
913
927
  * @param arrows2 arrow count
914
928
  * @returns A function
915
929
  */
916
- }, {
917
- key: "arrow",
918
- value: function arrow(arrows2) {
930
+ function arrow(arrows2) {
919
931
  var t = this.clone();
920
932
  var arrows = new PowiainaNum(arrows2);
921
933
  if (!arrows.isInt() || arrows.lt(PowiainaNum.ZERO)) {
@@ -933,7 +945,8 @@
933
945
  if (arrows.eq(2)) return function (other) {
934
946
  return t.tetrate(other);
935
947
  };
936
- return function (other2, payload2) {
948
+ return function (other2) {
949
+ var payload2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
937
950
  var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
938
951
  var other = new PowiainaNum(other2);
939
952
  var payload = new PowiainaNum(payload2);
@@ -1007,15 +1020,16 @@
1007
1020
  return res;
1008
1021
  };
1009
1022
  }
1023
+ }, {
1024
+ key: "anyarrow_log",
1025
+ value:
1010
1026
  /**
1011
1027
  * return `base`{`arrow2`}`x` = `this` which `x` is.
1012
1028
  *
1013
1029
  * @param arrow2
1014
1030
  * @returns
1015
1031
  */
1016
- }, {
1017
- key: "anyarrow_log",
1018
- value: function anyarrow_log(arrow2) {
1032
+ function anyarrow_log(arrow2) {
1019
1033
  var x = this.clone();
1020
1034
  var arrow = new PowiainaNum(arrow2);
1021
1035
  var arrowsNum = arrow.toNumber();
@@ -1083,14 +1097,18 @@
1083
1097
  return PowiainaNum.NaN.clone();
1084
1098
  };
1085
1099
  }
1100
+ /**
1101
+ * base{height}base
1102
+ */
1103
+ }, {
1104
+ key: "arrow_height_inverse",
1105
+ value:
1086
1106
  /**
1087
1107
  * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
1088
1108
  * @param arrows
1089
1109
  * @returns
1090
1110
  */
1091
- }, {
1092
- key: "arrow_height_inverse",
1093
- value: function arrow_height_inverse(arrows) {
1111
+ function arrow_height_inverse(arrows) {
1094
1112
  return this.anyarrow_log(arrows);
1095
1113
  }
1096
1114
  }, {
@@ -1108,6 +1126,11 @@
1108
1126
  value: function hexate(other) {
1109
1127
  return this.arrow(4)(other);
1110
1128
  }
1129
+ }, {
1130
+ key: "pent",
1131
+ value: function pent(other) {
1132
+ return this.arrow(3)(other);
1133
+ }
1111
1134
  }, {
1112
1135
  key: "penta_log",
1113
1136
  value: function penta_log() {
@@ -2029,6 +2052,82 @@
2029
2052
  var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2030
2053
  return new PowiainaNum(x).lambertw(principal);
2031
2054
  }
2055
+ //#endregion
2056
+ //#region Commonly used functions by game
2057
+ // All of these are from break_eternity.js
2058
+ /**
2059
+ * If you're willing to spend 'resourcesAvailable' and want to buy something
2060
+ * with exponentially increasing cost each purchase (start at priceStart,
2061
+ * multiply by priceRatio, already own currentOwned), how much of it can you buy?
2062
+ * Adapted from Trimps source code.
2063
+ *
2064
+ * currentOwned >= priceStart*priceRatio^(return value)
2065
+ */
2066
+ }, {
2067
+ key: "affordGeometricSeries",
2068
+ value: function affordGeometricSeries(resourcesAvailable, priceStart, priceRatio, currentOwned) {
2069
+ return this.affordGeometricSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
2070
+ }
2071
+ }, {
2072
+ key: "affordGeometricSeries_core",
2073
+ value: function affordGeometricSeries_core(resourcesAvailable, priceStart, priceRatio, currentOwned) {
2074
+ var withNaNProtect = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
2075
+ var actualStart = priceStart.mul(priceRatio.pow(currentOwned));
2076
+ return resourcesAvailable.div(actualStart).mul(priceRatio.sub(1)).add(1).clampMin(withNaNProtect ? 1 : -Infinity).log10().div(priceRatio.log10()).floor();
2077
+ }
2078
+ /**
2079
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
2080
+ * the initial price is priceStart and it multiplies by priceRatio each purchase?
2081
+ *
2082
+ * return value = priceStart*priceRatio^(numItems)
2083
+ */
2084
+ }, {
2085
+ key: "sumGeometricSeries",
2086
+ value: function sumGeometricSeries(numItems, priceStart, priceRatio, currentOwned) {
2087
+ return this.sumGeometricSeries_core(numItems, new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
2088
+ }
2089
+ }, {
2090
+ key: "sumGeometricSeries_core",
2091
+ value: function sumGeometricSeries_core(numItems, priceStart, priceRatio, currentOwned) {
2092
+ return priceStart.mul(priceRatio.pow(currentOwned)).mul(PowiainaNum.sub(1, priceRatio.pow(numItems))).div(PowiainaNum.sub(1, priceRatio));
2093
+ }
2094
+ /**
2095
+ * If you're willing to spend 'resourcesAvailable' and want to buy something with additively
2096
+ * increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),
2097
+ * how much of it can you buy?
2098
+ */
2099
+ }, {
2100
+ key: "affordArithmeticSeries",
2101
+ value: function affordArithmeticSeries(resourcesAvailable, priceStart, priceAdd, currentOwned) {
2102
+ return this.affordArithmeticSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
2103
+ }
2104
+ }, {
2105
+ key: "affordArithmeticSeries_core",
2106
+ value: function affordArithmeticSeries_core(resourcesAvailable, priceStart, priceAdd, currentOwned) {
2107
+ // n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d
2108
+ // where a is actualStart, d is priceAdd and S is resourcesAvailable
2109
+ // then floor it and you're done!
2110
+ var actualStart = priceStart.add(currentOwned.mul(priceAdd));
2111
+ var b = actualStart.sub(priceAdd.div(2));
2112
+ var b2 = b.pow(2);
2113
+ return b.neg().add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt()).div(priceAdd).floor();
2114
+ }
2115
+ /**
2116
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
2117
+ * the initial price is priceStart and it adds priceAdd each purchase?
2118
+ * Adapted from http://www.mathwords.com/a/arithmetic_series.htm
2119
+ */
2120
+ }, {
2121
+ key: "sumArithmeticSeries",
2122
+ value: function sumArithmeticSeries(numItems, priceStart, priceAdd, currentOwned) {
2123
+ return this.sumArithmeticSeries_core(new PowiainaNum(numItems), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
2124
+ }
2125
+ }, {
2126
+ key: "sumArithmeticSeries_core",
2127
+ value: function sumArithmeticSeries_core(numItems, priceStart, priceAdd, currentOwned) {
2128
+ var actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)
2129
+ return numItems.div(2).mul(actualStart.mul(2).add(numItems.sub(1).mul(priceAdd)));
2130
+ }
2032
2131
  }, {
2033
2132
  key: "tetrate",
2034
2133
  value: function tetrate(t, other2) {
@@ -2040,6 +2139,25 @@
2040
2139
  value: function tetrate_10(other2) {
2041
2140
  return PowiainaNum.fromNumber(10).tetrate(other2);
2042
2141
  }
2142
+ }, {
2143
+ key: "iteratedlog",
2144
+ value: function iteratedlog(t) {
2145
+ var other2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
2146
+ var base2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
2147
+ return new PowiainaNum(t).iteratedlog(other2, base2);
2148
+ }
2149
+ }, {
2150
+ key: "arrow",
2151
+ value: function arrow(x, z, y) {
2152
+ return new PowiainaNum(x).arrow(z)(y);
2153
+ }
2154
+ }, {
2155
+ key: "arrFrac",
2156
+ value: function arrFrac(base, height) {
2157
+ var b = new PowiainaNum(base).clone();
2158
+ var h = new PowiainaNum(height).clone();
2159
+ return new PowiainaNum(b).arrow(h.floor().add(1))(b.div(2).pow(h.sub(h.floor())).mul(2));
2160
+ }
2043
2161
  }, {
2044
2162
  key: "arrowMSI",
2045
2163
  value: function arrowMSI(arrowsNum) {
@@ -2075,7 +2193,27 @@
2075
2193
  }
2076
2194
  }, {
2077
2195
  key: "BEAF",
2078
- value: function BEAF(base2, power2) {
2196
+ value: function BEAF() {
2197
+ for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2198
+ args[_key8] = arguments[_key8];
2199
+ }
2200
+ function getArgs(x) {
2201
+ if (args[x]) return new PowiainaNum(args[x]);
2202
+ return new PowiainaNum(1);
2203
+ }
2204
+ if (getArgs(0).eq(1)) return new PowiainaNum(1);
2205
+ if (getArgs(1).eq(1)) return new PowiainaNum(getArgs(0));
2206
+ if (getArgs(5).eq(2) && (getArgs(4).gte(2) || getArgs(3).gte(2) || getArgs(2).gte(2))) return PowiainaNum.POSITIVE_INFINITY.clone();
2207
+ if (args.slice(6).map(function (x) {
2208
+ return new PowiainaNum(x);
2209
+ }).filter(function (x) {
2210
+ return x.gt(1);
2211
+ }).length !== 0) return PowiainaNum.POSITIVE_INFINITY.clone();
2212
+ return PowiainaNum.BEAF_core(getArgs(0), getArgs(1), getArgs(2), getArgs(3), getArgs(4), getArgs(5));
2213
+ }
2214
+ }, {
2215
+ key: "BEAF_core",
2216
+ value: function BEAF_core(base2, power2) {
2079
2217
  var arrow2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2080
2218
  var expans2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2081
2219
  var megota2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
@@ -2246,8 +2384,8 @@
2246
2384
  key: "max",
2247
2385
  value: function max() {
2248
2386
  var max = PowiainaNum.NEGATIVE_INFINITY;
2249
- for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
2250
- args[_key8] = arguments[_key8];
2387
+ for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2388
+ args[_key9] = arguments[_key9];
2251
2389
  }
2252
2390
  for (var i = 0; i < args.length; i++) {
2253
2391
  if (max.lt(args[i])) {
@@ -2263,8 +2401,8 @@
2263
2401
  key: "min",
2264
2402
  value: function min() {
2265
2403
  var max = PowiainaNum.POSITIVE_INFINITY;
2266
- for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
2267
- args[_key9] = arguments[_key9];
2404
+ for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
2405
+ args[_key0] = arguments[_key0];
2268
2406
  }
2269
2407
  for (var i = 0; i < args.length; i++) {
2270
2408
  if (max.gt(args[i])) {
@@ -2334,6 +2472,16 @@
2334
2472
  var x = new PowiainaNum();
2335
2473
  // Judge the string was a number
2336
2474
  if (input.startsWith("PN")) input = input.substring(2);
2475
+ input = input.replace(/J\^(\d+)/g, "(10{!})^$1");
2476
+ input = input.replace(/J/g, "10{!}");
2477
+ input = input.replace(/K\^(\d+)/g, "(10{1,2})^$1");
2478
+ input = input.replace(/K/g, "10{1,2}");
2479
+ input = input.replace(/L\^(\d+)/g, "(10{2,2})^$1");
2480
+ input = input.replace(/L/g, "10{2,2}");
2481
+ input = input.replace(/M\^(\d+)/g, "(10{!,2})^$1");
2482
+ input = input.replace(/M/g, "10{!,2}");
2483
+ input = input.replace(/N\^(\d+)/g, "(10{1,!})^$1");
2484
+ input = input.replace(/N/g, "10{1,!}");
2337
2485
  if (!isNaN(Number(input))) {
2338
2486
  var res = Number(input);
2339
2487
  var _a3 = false;
@@ -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 y=.5671432904097838;function p(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 y;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){return"x"===r?1/0:r}function w(r){return 4==r.length}function b(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function O(r){return"x"===r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function E(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"x"==r[2]&&"number"==typeof r[3]}function I(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 M(r)).isFinite())return r;if(a){if(r.eq(M.ZERO))return r;if(r.eq(M.ONE))return new M(y);e=M.log(r)}else{if(r.eq(M.ZERO))return M.NEGATIVE_INFINITY.clone();e=M.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(M.ONE).sub(e.add(2).mul(o).div(M.mul(2,e).add(2)));if(u.eq(M.ZERO))return e;var l=e.sub(o.div(u));if(M.abs(l.sub(e)).lt(M.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function d(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var x,M=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)){var h=c.maxabs(g);return c.abs().eq(h)?c:(g.abs().eq(h),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 y=o.toNumber()+s.toNumber();if(isFinite(y)&&0!==y)return r.fromNumber(y);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 m=(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)),N=(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(m-N>l)return o;var v,w,b=-Math.floor(m),O=0;if((w=o.sign*Math.pow(10,m+b)+s.sign*Math.pow(10,N+b))>0&&(O=Math.log10(w)-b),w<0&&(O=Math.log10(-w)-b,p*=-1),0==w)throw Error("Encounter a calculate error");return(v=new r).sign=1,v.array=O>l||O<-l?[f(O,0),f(1,1)]:[f(Math.pow(10,Math.abs(O)),0)],v.small=O<0,v.sign*=p,v}},{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,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(p(this.toNumber())):this.lt(u)?r.fromNumber(p(this.sign*this.getOperator(0))):this.lt("eee15")?I(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(p(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?I(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),y=r.NaN,p=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&p<100;++p)if(g>0){if(h=n.pow(h),y.eq(h)){g=0;break}y=h,--g}else{if(h=h.log(n),y.eq(h)){g=0;break}y=h,++g}return(100==p||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:"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,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=new r(e),l=new r(n),s=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(o.toString()," ").concat(i));if(s)return s.clone();var c=function(){var e;if(t.isNaN()||o.isNaN()||l.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(l.neq(r.ONE)&&(o=o.add(l.anyarrow_log(a)(t))),t.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.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 n=a.toNumber();if(o.eq(2))return t.arrow(n-1)(t,l,i+1);if(t.max(o).gt(r.arrowMSI(n+1)))return t.max(o);if(t.gt(r.arrowMSI(n))||o.gt(u)){t.gt(r.arrowMSI(n))?((e=t.clone()).setOperator(e.getOperator(n)-1,n),e.normalize()):e=t.gt(r.arrowMSI(n-1))?new r(t.getOperator(n-1)):r.ZERO;var s=e.add(o);return s.setOperator(s.getOperator(n)+1,n),s.normalize(),s}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,n)]});var c=o.toNumber(),g=Math.floor(c),h=a.sub(r.ONE);e=t.arrow(h)(c-g,l,i+1);for(var y=0,p=r.arrowMSI(n-1);0!==g&&e.lt(p)&&y<100;y++)g>0&&(e=t.arrow(h)(e,l,i+1),--g);return 100==y&&(g=0),e.setOperator(e.getOperator(n-1)+g,n-1),e.normalize(),e}();return i<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(o.toString()," ").concat(i),c.clone()),c}}},{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=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e);if(i.isNaN())return i;if(i.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(i))return r.ONE.clone();if(t.max(i).gt(r.arrowMSI(n+1)))return t.gt(i)?t:r.ZERO.clone();if(t.max(i).gt(r.arrowMSI(n))&&t.gt(i))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 o=0,u=t.getOperator(n)-i.getOperator(n);if(u>3){var l=u-3;o+=l,t.setOperator(t.getOperator(n)-l,n)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--o;else{if(t.lte(1))return new r(o+t.toNumber()-1);++o,t=t.anyarrow_log(n-1)(e,a+1)}return t.gt(10)?new r(o):r.NaN.clone()}}},{key:"arrow_height_inverse",value:function(r){return this.anyarrow_log(r)}},{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:"penta_log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this.anyarrow_log(3)(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 y=0,p=new r("10{".concat(l-1,",2}").concat(u));0!==g&&t.lt(p)&&y<100;y++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==y&&(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:"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],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:"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(d),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),this.array.length>=2&&this.array[1].arrow>=u&&(this.array[0].repeat=this.array[1].arrow,this.array[1]=f(1,1/0,this.array[1].expans,this.array[1].megota));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.length<r.maxOps&&t.array[0].repeat<u&&t.array[1].arrow>=2&&t.array[1].repeat>1&&isFinite(t.array[1].arrow)&&(t.array[1].repeat--,t.array.splice(1,0,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[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,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 y=h(0).toNumber(),p=h(1),m=h(2),N=h(3);if(N.eq(2)){if(1!=y)return r.POSITIVE_INFINITY.clone();if(p.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(s){var h,y,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,p.sub(1),m,l,N+1);if(m.eq(0))return r.BEAF(I,I,I,I,p,new r(l).sub(1),N+1);if(p.gt(u))return(v=new r(p)).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,p.toNumber(),m.toNumber())+1,1/0,p.toNumber(),m.toNumber()),v;var O=d.toNumber();if(b.eq(2))return r.BEAF(I,I,O-1,p,m,l,N+1);if(I.max(b).gt(E(O+1,p.toNumber(),m.toNumber())))return I.max(b);if(I.gt(E(O,p.toNumber(),m.toNumber()))||b.gt(u)){I.gt(E(O,p.toNumber(),m.toNumber()))?((v=I.clone()).setOperator(v.getOperator(O,p.toNumber(),m.toNumber())-1,O,p.toNumber(),m.toNumber()),v.normalize()):v=I.gt(E.apply(void 0,a(w(O-1,p.toNumber(),m.toNumber()))))?new r(I.getOperator.apply(I,a(w(O-1,p.toNumber(),m.toNumber())))):r.ZERO;var x=v.add(b);return x.setOperator(x.getOperator(O,p.toNumber(),m.toNumber())+1,O,p.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,p.toNumber(),m.toNumber())]});var M=b.toNumber(),k=Math.floor(M),q=d.sub(r.ONE);v=r.BEAF(I,M-k,q.toNumber(),p,m,l,N+1);for(var T=0,S=new r(E.apply(void 0,a(w(O-1,p.toNumber(),m.toNumber()))));0!==k&&v.lt(S)&&T<100;T++)k>0&&(v=r.BEAF(c,v,q.toNumber(),p,m,l,N+1),--k);return 100==T&&(k=0),(h=v).setOperator.apply(h,[(y=v).getOperator.apply(y,a(w(O-1,p.toNumber(),m.toNumber())))+k].concat(a(w(O-1,p.toNumber(),m.toNumber())))),v.normalize(),v}(g,s);return console.log("".concat("-".repeat(s)," = ").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,s,g,y=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var p=Number(e),m=!1;if(0==p?/^((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(p)&&m)return y=r.fromNumber(Number(e))}if(-1!==e.indexOf("l")&&-1!==e.indexOf("s")&&-1!==e.indexOf("a")){var d=function(r){var e=r.match(/l(\d+)\s+s(\d+)\s+a(\[.*\])/);try{if(e)return{lValue:parseInt(e[1]),sValue:parseInt(e[2]),array:JSON.parse(e[3])}}catch(r){return null}return null}(e);if(!d||0!==d.sValue&&1!==d.sValue&&-1!==d.sValue)throw"[PowiainaNum 0.2 error]malformed input: "+e;return(y=r.fromObject(d.array)).layer=d.lValue,y.sign=d.sValue,y.small=!1,y.normalize(),y}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 x=!1,M=!1;if("-"==e[0]||"+"==e[0]){var k=e.search(/[^-\+]/);x=(null!==(a=null===(t=e.substring(0,k).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(k)}if("/"==e[0]){k=e.search(/[^\/]/);M=(null!==(i=null===(n=e.substring(0,k).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==i?i:0)%2==1,e=e.substring(k)}if("NaN"==e)y.array=[f(NaN)];else if("Infinity"==e)y.array=[f(1/0)];else{var q,T,S,_;for(y.sign=1,y.array=[f(0)],"P"==e[0]&&("^"==e[1]?(q=e.substring(2).search(/[^0-9]/)+2,y.layer=Number(e.substring(2,q)),e=e.substring(q+1)):(q=e.search(/[^P]/),y.layer=q,e=e.substring(q)));e&&/^(\(?10[\^\{])/.test(e);){var F,A,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])F=q=e.substring(2).search(/[^\^]/),T=q+2;else{q=e.indexOf("}");var R=e.substring(3,q).split(",");F=Number("!"==R[0]?1/0:R[0]),A=Number(null!==(o="!"==R[1]?1/0:R[1])&&void 0!==o?o:1),Z=Number(null!==(s=R[2])&&void 0!==s?s:1),T=q+1}")"==(e=e.substring(T))[0]?(q=e.indexOf(" "),S=Number(e.substring(2,q)),e=e.substring(q+1)):S=1,1==F&&1==A&&1==Z?y.array.length>=2&&1==y.array[1].arrow?y.array[1].repeat+=S:y.array.splice(1,0,f(S,1,A,Z)):2==F&&1==A&&1==Z?(q=y.array.length>=2&&1==y.array[1].arrow?y.array[1].repeat:0,(T=y.array[0].repeat)>=1e10&&++q,T>=10&&++q,y.array[0].repeat=q,y.array.length>=2&&1==y.array[1].arrow&&y.array.splice(1,1),_=y.getOperatorIndex(2),Number.isInteger(_)?y.array[_].repeat+=S:y.array.splice(Math.ceil(_),0,f(S,2,A,Z))):isFinite(F)?(q=y.getOperator(F-1),(T=y.getOperator(F-2))>=10&&++q,_=y.getOperatorIndex(F),y.array.splice(1,Math.ceil(_)-1),y.array[0].repeat=q,Number.isInteger(_)?y.array[1].repeat+=S:y.array.splice(1,0,f(S,F,A,Z))):y.array.splice(1,0,f(S,F,A,Z))}q=e.split(/[Ee]/),T=[y.array[0].repeat,0],S=1;for(var P=q.length-1;P>=0;--P){T[0]<l&&0===T[1]?T[0]=Math.pow(10,S*T[0]):-1==S?(0===T[1]?T[0]=Math.pow(10,S*T[0]):1==T[1]&&T[0]<=Math.log10(Number.MAX_VALUE)?T[0]=Math.pow(10,S*Math.pow(10,T[0])):T[0]=0,T[1]=0):T[1]++;var V=q[P].indexOf("."),Y=-1==V?q[P].length:V;0===T[1]?Y>=17?(T[0]=Math.log10(T[0])+h(q[P].substring(0,Y)),T[1]=1):q[P]&&(T[0]*=Number(q[P])):(_=Y>=17?h(q[P].substring(0,Y)):q[P]?Math.log10(Number(q[P])):0,1==T[1]?T[0]+=_:2==T[1]&&T[0]<l+Math.log10(_)&&(T[0]+=Math.log10(1+Math.pow(10,Math.log10(_)-T[0])))),T[0]<l&&T[1]?(T[0]=Math.pow(10,T[0]),T[1]--):T[0]>u&&(T[0]=Math.log10(T[0]),T[1]++)}y.array[0].repeat=T[0],T[1]&&(y.array.length>=2&&1==y.array[1].arrow&&1==y.array[1].expans&&1==y.array[1].megota?y.array[1].repeat+=T[1]:y.array.splice(1,0,f(T[1],1,1,1)))}return x&&(y.sign*=-1),M&&(y.small=!y.small),y.normalize(),y.normalize(),y}},{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}if(function(r){if(!Array.isArray(r))return!1;if("number"!=typeof r[0])return!1;for(var e=1;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!w(t))return!1;if(!b(t)&&!O(t)&&!E(t))return!1}return!0}(e)){var n=e;t.array[0]=f(n[0]);for(var i=1;i<n.length;i++){var o=n[i];t.array[1]=f(o[1],v(o[0]),v(o[2]),o[3])}return t.small=!1,t.sign=1,t.layer=0,t}for(var u=0;u<e.array.length;u++)t.array[u]={arrow:e.array[u].arrow,expans:e.array[u].expans,megota:e.array[u].megota,repeat:e.array[u].repeat,valuereplaced:e.array[u].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,M.ZERO=new M({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),M.ONE=new M({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),M.MSI=new M(u),M.MSI_REC=((x=new M(u)).small=!0,x),M.E_MSI=new M({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),M.EE_MSI=new M({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),M.E_MSI_REC=new M({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),M.TETRATED_MSI=new M({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),M.PENTATED_MSI=new M({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),M.TRITRI=new M({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),M.GRAHAMS_NUMBER=new M("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),M.POSITIVE_INFINITY=new M(1/0),M.NEGATIVE_INFINITY=new M(-1/0),M.NaN=new M({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),M.E=new M(Math.E),M.LN2=new M(Math.LN2),M.LN10=new M(Math.LN10),M.LOG2E=new M(Math.LOG2E),M.LOG10E=new M(Math.LOG10E),M.PI=new M(Math.PI),M.SQRT1_2=new M(Math.SQRT1_2),M.SQRT2=new M(Math.SQRT2),M.maxOps=100,M.POW_2_44_MOD_PI=1.701173079953,M.arrowFuncMap=new Map,r.arraySortFunction=d,r.default=M,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,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 y=.5671432904097838;function p(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 y;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 v(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function N(r){return"x"===r?1/0:r}function w(r){return 4==r.length}function b(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function d(r){return"x"===r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function O(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"x"==r[2]&&"number"==typeof r[3]}function E(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 x(r)).isFinite())return r;if(a){if(r.eq(x.ZERO))return r;if(r.eq(x.ONE))return new x(y);e=x.log(r)}else{if(r.eq(x.ZERO))return x.NEGATIVE_INFINITY.clone();e=x.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(x.ONE).sub(e.add(2).mul(o).div(x.mul(2,e).add(2)));if(u.eq(x.ZERO))return e;var l=e.sub(o.div(u));if(x.abs(l.sub(e)).lt(x.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function I(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var k,x=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)){var h=c.maxabs(g);return c.abs().eq(h)?c:(g.abs().eq(h),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 y=o.toNumber()+s.toNumber();if(isFinite(y)&&0!==y)return r.fromNumber(y);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 m=(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)),v=(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(m-v>l)return o;var N,w,b=-Math.floor(m),d=0;if((w=o.sign*Math.pow(10,m+b)+s.sign*Math.pow(10,v+b))>0&&(d=Math.log10(w)-b),w<0&&(d=Math.log10(-w)-b,p*=-1),0==w)throw Error("Encounter a calculate error");return(N=new r).sign=1,N.array=d>l||d<-l?[f(d,0),f(1,1)]:[f(Math.pow(10,Math.abs(d)),0)],N.small=d<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,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(p(this.toNumber())):this.lt(u)?r.fromNumber(p(this.sign*this.getOperator(0))):this.lt("eee15")?E(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(p(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?E(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),y=r.NaN,p=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&p<100;++p)if(g>0){if(h=n.pow(h),y.eq(h)){g=0;break}y=h,--g}else{if(h=h.log(n),y.eq(h)){g=0;break}y=h,++g}return(100==p||this.lt(s))&&(g=0),h.setOperator(h.getOperator(1)+g,1),h.normalize(),h}},{key:"tetr",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.tetrate(r,e)}},{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:"tetrate_10",value:function(){return r.tetrate(10,this)}},{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]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=new r(e),l=new r(n),s=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(o.toString()," ").concat(i));if(s)return s.clone();var c=function(){var e;if(t.isNaN()||o.isNaN()||l.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(l.neq(r.ONE)&&(o=o.add(l.anyarrow_log(a)(t))),t.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.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 n=a.toNumber();if(o.eq(2))return t.arrow(n-1)(t,l,i+1);if(t.max(o).gt(r.arrowMSI(n+1)))return t.max(o);if(t.gt(r.arrowMSI(n))||o.gt(u)){t.gt(r.arrowMSI(n))?((e=t.clone()).setOperator(e.getOperator(n)-1,n),e.normalize()):e=t.gt(r.arrowMSI(n-1))?new r(t.getOperator(n-1)):r.ZERO;var s=e.add(o);return s.setOperator(s.getOperator(n)+1,n),s.normalize(),s}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,n)]});var c=o.toNumber(),g=Math.floor(c),h=a.sub(r.ONE);e=t.arrow(h)(c-g,l,i+1);for(var y=0,p=r.arrowMSI(n-1);0!==g&&e.lt(p)&&y<100;y++)g>0&&(e=t.arrow(h)(e,l,i+1),--g);return 100==y&&(g=0),e.setOperator(e.getOperator(n-1)+g,n-1),e.normalize(),e}();return i<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(o.toString()," ").concat(i),c.clone()),c}}},{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=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e);if(i.isNaN())return i;if(i.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(i))return r.ONE.clone();if(t.max(i).gt(r.arrowMSI(n+1)))return t.gt(i)?t:r.ZERO.clone();if(t.max(i).gt(r.arrowMSI(n))&&t.gt(i))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 o=0,u=t.getOperator(n)-i.getOperator(n);if(u>3){var l=u-3;o+=l,t.setOperator(t.getOperator(n)-l,n)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--o;else{if(t.lte(1))return new r(o+t.toNumber()-1);++o,t=t.anyarrow_log(n-1)(e,a+1)}return t.gt(10)?new r(o):r.NaN.clone()}}},{key:"arrow_height_inverse",value:function(r){return this.anyarrow_log(r)}},{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:"pent",value:function(r){return this.arrow(3)(r)}},{key:"penta_log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this.anyarrow_log(3)(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 y=0,p=new r("10{".concat(l-1,",2}").concat(u));0!==g&&t.lt(p)&&y<100;y++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==y&&(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:"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],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:"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(I),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),this.array.length>=2&&this.array[1].arrow>=u&&(this.array[0].repeat=this.array[1].arrow,this.array[1]=f(1,1/0,this.array[1].expans,this.array[1].megota));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.length<r.maxOps&&t.array[0].repeat<u&&t.array[1].arrow>=2&&t.array[1].repeat>1&&isFinite(t.array[1].arrow)&&(t.array[1].repeat--,t.array.splice(1,0,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[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:"affordGeometricSeries",value:function(e,t,a,n){return this.affordGeometricSeries_core(new r(e),new r(t),new r(a),n)}},{key:"affordGeometricSeries_core",value:function(r,e,t,a){var n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=e.mul(t.pow(a));return r.div(i).mul(t.sub(1)).add(1).clampMin(n?1:-1/0).log10().div(t.log10()).floor()}},{key:"sumGeometricSeries",value:function(e,t,a,n){return this.sumGeometricSeries_core(e,new r(t),new r(a),n)}},{key:"sumGeometricSeries_core",value:function(e,t,a,n){return t.mul(a.pow(n)).mul(r.sub(1,a.pow(e))).div(r.sub(1,a))}},{key:"affordArithmeticSeries",value:function(e,t,a,n){return this.affordArithmeticSeries_core(new r(e),new r(t),new r(a),new r(n))}},{key:"affordArithmeticSeries_core",value:function(r,e,t,a){var n=e.add(a.mul(t)).sub(t.div(2)),i=n.pow(2);return n.neg().add(i.add(t.mul(r).mul(2)).sqrt()).div(t).floor()}},{key:"sumArithmeticSeries",value:function(e,t,a,n){return this.sumArithmeticSeries_core(new r(e),new r(t),new r(a),new r(n))}},{key:"sumArithmeticSeries_core",value:function(r,e,t,a){var n=e.add(a.mul(t));return r.div(2).mul(n.mul(2).add(r.sub(1).mul(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:"iteratedlog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return new r(e).iteratedlog(t,a)}},{key:"arrow",value:function(e,t,a){return new r(e).arrow(t)(a)}},{key:"arrFrac",value:function(e,t){var a=new r(e).clone(),n=new r(t).clone();return new r(a).arrow(n.floor().add(1))(a.div(2).pow(n.sub(n.floor())).mul(2))}},{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(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];function n(e){return t[e]?new r(t[e]):new r(1)}return n(0).eq(1)?new r(1):n(1).eq(1)?new r(n(0)):n(5).eq(2)&&(n(4).gte(2)||n(3).gte(2)||n(2).gte(2))||0!==t.slice(6).map((function(e){return new r(e)})).filter((function(r){return r.gt(1)})).length?r.POSITIVE_INFINITY.clone():r.BEAF_core(n(0),n(1),n(2),n(3),n(4),n(5))}},{key:"BEAF_core",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 y=h(0).toNumber(),p=h(1),m=h(2),v=h(3);if(v.eq(2)){if(1!=y)return r.POSITIVE_INFINITY.clone();if(p.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 N=new r(10);return N.layer=g.toNumber(),N.normalize(),N}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 d(r){return isFinite(r)?r.toString():"!"}function O(r,e,t){return"10{".concat(d(r),",").concat(d(e),",").concat(t,"}").concat(u)}var E=c.clone(),I=new r(h(0)),k=function(s){var h,y,v=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(v)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var N,b=new r(s);if(E.isNaN()||b.isNaN())return r.NaN.clone();if(b.lt(r.ZERO))return r.NaN.clone();if(E.eq(r.ZERO))return b.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(E.eq(r.ONE))return r.ONE.clone();if(b.eq(r.ZERO))return r.ONE.clone();if(b.eq(r.ONE))return E.clone();if(I.eq(0))return r.BEAF(E,E,g,p.sub(1),m,l,v+1);if(m.eq(0))return r.BEAF(E,E,E,E,p,new r(l).sub(1),v+1);if(p.gt(u))return(N=new r(p)).setOperator(N.getOperator(1,1/0,m.toNumber())+1,1,1/0,m.toNumber()),N;if(I.gt(r.MSI))return(N=I.clone()).setOperator(N.getOperator(1/0,p.toNumber(),m.toNumber())+1,1/0,p.toNumber(),m.toNumber()),N;var d=I.toNumber();if(b.eq(2))return r.BEAF(E,E,d-1,p,m,l,v+1);if(E.max(b).gt(O(d+1,p.toNumber(),m.toNumber())))return E.max(b);if(E.gt(O(d,p.toNumber(),m.toNumber()))||b.gt(u)){E.gt(O(d,p.toNumber(),m.toNumber()))?((N=E.clone()).setOperator(N.getOperator(d,p.toNumber(),m.toNumber())-1,d,p.toNumber(),m.toNumber()),N.normalize()):N=E.gt(O.apply(void 0,a(w(d-1,p.toNumber(),m.toNumber()))))?new r(E.getOperator.apply(E,a(w(d-1,p.toNumber(),m.toNumber())))):r.ZERO;var k=N.add(b);return k.setOperator(k.getOperator(d,p.toNumber(),m.toNumber())+1,d,p.toNumber(),m.toNumber()),k.normalize(),k}if(v>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,d,p.toNumber(),m.toNumber())]});var x=b.toNumber(),M=Math.floor(x),q=I.sub(r.ONE);N=r.BEAF(E,x-M,q.toNumber(),p,m,l,v+1);for(var S=0,T=new r(O.apply(void 0,a(w(d-1,p.toNumber(),m.toNumber()))));0!==M&&N.lt(T)&&S<100;S++)M>0&&(N=r.BEAF(c,N,q.toNumber(),p,m,l,v+1),--M);return 100==S&&(M=0),(h=N).setOperator.apply(h,[(y=N).getOperator.apply(y,a(w(d-1,p.toNumber(),m.toNumber())))+M].concat(a(w(d-1,p.toNumber(),m.toNumber())))),N.normalize(),N}(g,s);return console.log("".concat("-".repeat(s)," = ").concat(k)),k}},{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,y=new r;if(e.startsWith("PN")&&(e=e.substring(2)),e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/J\^(\d+)/g,"(10{!})^$1")).replace(/J/g,"10{!}")).replace(/K\^(\d+)/g,"(10{1,2})^$1")).replace(/K/g,"10{1,2}")).replace(/L\^(\d+)/g,"(10{2,2})^$1")).replace(/L/g,"10{2,2}")).replace(/M\^(\d+)/g,"(10{!,2})^$1")).replace(/M/g,"10{!,2}")).replace(/N\^(\d+)/g,"(10{1,!})^$1")).replace(/N/g,"10{1,!}"),!isNaN(Number(e))){var p=Number(e),m=!1;if(0==p?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var v=e.search(/e/),N=e.substring((-1==v?e.length:v)+1),w=e.substring(0,-1==v?void 0:v),b=[0,0];if(b[1]=Number(N||"0"),Number(w)>=1){var d=w.length>=17?h(w):Math.log10(Number(w)),O=d-(Math.floor(d)-1);b[0]=Math.pow(10,O),b[1]+=O}else{var E=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),E+=1,b[0]=Number(w),b[1]+=-E}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(p)&&m)return y=r.fromNumber(Number(e))}if(-1!==e.indexOf("l")&&-1!==e.indexOf("s")&&-1!==e.indexOf("a")){var I=function(r){var e=r.match(/l(\d+)\s+s(\d+)\s+a(\[.*\])/);try{if(e)return{lValue:parseInt(e[1]),sValue:parseInt(e[2]),array:JSON.parse(e[3])}}catch(r){return null}return null}(e);if(!I||0!==I.sValue&&1!==I.sValue&&-1!==I.sValue)throw"[PowiainaNum 0.2 error]malformed input: "+e;return(y=r.fromObject(I.array)).layer=I.lValue,y.sign=I.sValue,y.small=!1,y.normalize(),y}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 k=!1,x=!1;if("-"==e[0]||"+"==e[0]){var M=e.search(/[^-\+]/);k=(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)y.array=[f(NaN)];else if("Infinity"==e)y.array=[f(1/0)];else{var q,S,T,_;for(y.sign=1,y.array=[f(0)],"P"==e[0]&&("^"==e[1]?(q=e.substring(2).search(/[^0-9]/)+2,y.layer=Number(e.substring(2,q)),e=e.substring(q+1)):(q=e.search(/[^P]/),y.layer=q,e=e.substring(q)));e&&/^(\(?10[\^\{])/.test(e);){var A,F,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])A=q=e.substring(2).search(/[^\^]/),S=q+2;else{q=e.indexOf("}");var R=e.substring(3,q).split(",");A=Number("!"==R[0]?1/0:R[0]),F=Number(null!==(o="!"==R[1]?1/0:R[1])&&void 0!==o?o:1),Z=Number(null!==(s=R[2])&&void 0!==s?s:1),S=q+1}")"==(e=e.substring(S))[0]?(q=e.indexOf(" "),T=Number(e.substring(2,q)),e=e.substring(q+1)):T=1,1==A&&1==F&&1==Z?y.array.length>=2&&1==y.array[1].arrow?y.array[1].repeat+=T:y.array.splice(1,0,f(T,1,F,Z)):2==A&&1==F&&1==Z?(q=y.array.length>=2&&1==y.array[1].arrow?y.array[1].repeat:0,(S=y.array[0].repeat)>=1e10&&++q,S>=10&&++q,y.array[0].repeat=q,y.array.length>=2&&1==y.array[1].arrow&&y.array.splice(1,1),_=y.getOperatorIndex(2),Number.isInteger(_)?y.array[_].repeat+=T:y.array.splice(Math.ceil(_),0,f(T,2,F,Z))):isFinite(A)?(q=y.getOperator(A-1),(S=y.getOperator(A-2))>=10&&++q,_=y.getOperatorIndex(A),y.array.splice(1,Math.ceil(_)-1),y.array[0].repeat=q,Number.isInteger(_)?y.array[1].repeat+=T:y.array.splice(1,0,f(T,A,F,Z))):y.array.splice(1,0,f(T,A,F,Z))}q=e.split(/[Ee]/),S=[y.array[0].repeat,0],T=1;for(var P=q.length-1;P>=0;--P){S[0]<l&&0===S[1]?S[0]=Math.pow(10,T*S[0]):-1==T?(0===S[1]?S[0]=Math.pow(10,T*S[0]):1==S[1]&&S[0]<=Math.log10(Number.MAX_VALUE)?S[0]=Math.pow(10,T*Math.pow(10,S[0])):S[0]=0,S[1]=0):S[1]++;var V=q[P].indexOf("."),Y=-1==V?q[P].length:V;0===S[1]?Y>=17?(S[0]=Math.log10(S[0])+h(q[P].substring(0,Y)),S[1]=1):q[P]&&(S[0]*=Number(q[P])):(_=Y>=17?h(q[P].substring(0,Y)):q[P]?Math.log10(Number(q[P])):0,1==S[1]?S[0]+=_:2==S[1]&&S[0]<l+Math.log10(_)&&(S[0]+=Math.log10(1+Math.pow(10,Math.log10(_)-S[0])))),S[0]<l&&S[1]?(S[0]=Math.pow(10,S[0]),S[1]--):S[0]>u&&(S[0]=Math.log10(S[0]),S[1]++)}y.array[0].repeat=S[0],S[1]&&(y.array.length>=2&&1==y.array[1].arrow&&1==y.array[1].expans&&1==y.array[1].megota?y.array[1].repeat+=S[1]:y.array.splice(1,0,f(S[1],1,1,1)))}return k&&(y.sign*=-1),x&&(y.small=!y.small),y.normalize(),y.normalize(),y}},{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(!v(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}if(function(r){if(!Array.isArray(r))return!1;if("number"!=typeof r[0])return!1;for(var e=1;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!w(t))return!1;if(!b(t)&&!d(t)&&!O(t))return!1}return!0}(e)){var n=e;t.array[0]=f(n[0]);for(var i=1;i<n.length;i++){var o=n[i];t.array[1]=f(o[1],N(o[0]),N(o[2]),o[3])}return t.small=!1,t.sign=1,t.layer=0,t}for(var u=0;u<e.array.length;u++)t.array[u]={arrow:e.array[u].arrow,expans:e.array[u].expans,megota:e.array[u].megota,repeat:e.array[u].repeat,valuereplaced:e.array[u].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,x.ZERO=new x({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),x.ONE=new x({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),x.MSI=new x(u),x.MSI_REC=((k=new x(u)).small=!0,k),x.E_MSI=new x({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),x.EE_MSI=new x({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),x.E_MSI_REC=new x({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),x.TETRATED_MSI=new x({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),x.PENTATED_MSI=new x({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),x.TRITRI=new x({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),x.GRAHAMS_NUMBER=new x("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),x.POSITIVE_INFINITY=new x(1/0),x.NEGATIVE_INFINITY=new x(-1/0),x.NaN=new x({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),x.E=new x(Math.E),x.LN2=new x(Math.LN2),x.LN10=new x(Math.LN10),x.LOG2E=new x(Math.LOG2E),x.LOG10E=new x(Math.LOG10E),x.PI=new x(Math.PI),x.SQRT1_2=new x(Math.SQRT1_2),x.SQRT2=new x(Math.SQRT2),x.maxOps=100,x.POW_2_44_MOD_PI=1.701173079953,x.arrowFuncMap=new Map,r.arraySortFunction=I,r.default=x,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
@@ -99,10 +99,44 @@ export default class PowiainaNum implements IPowiainaNum {
99
99
  */
100
100
  lambertw(princ?: boolean): PowiainaNum;
101
101
  static lambertw(x: PowiainaNumSource, principal?: boolean): PowiainaNum;
102
+ /**
103
+ * If you're willing to spend 'resourcesAvailable' and want to buy something
104
+ * with exponentially increasing cost each purchase (start at priceStart,
105
+ * multiply by priceRatio, already own currentOwned), how much of it can you buy?
106
+ * Adapted from Trimps source code.
107
+ *
108
+ * currentOwned >= priceStart*priceRatio^(return value)
109
+ */
110
+ static affordGeometricSeries(resourcesAvailable: PowiainaNumSource, priceStart: PowiainaNumSource, priceRatio: PowiainaNumSource, currentOwned: PowiainaNumSource): PowiainaNum;
111
+ static affordGeometricSeries_core(resourcesAvailable: PowiainaNum, priceStart: PowiainaNum, priceRatio: PowiainaNum, currentOwned: PowiainaNumSource, withNaNProtect?: boolean): PowiainaNum;
112
+ /**
113
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
114
+ * the initial price is priceStart and it multiplies by priceRatio each purchase?
115
+ *
116
+ * return value = priceStart*priceRatio^(numItems)
117
+ */
118
+ static sumGeometricSeries(numItems: PowiainaNumSource, priceStart: PowiainaNumSource, priceRatio: PowiainaNumSource, currentOwned: PowiainaNumSource): PowiainaNum;
119
+ static sumGeometricSeries_core(numItems: PowiainaNumSource, priceStart: PowiainaNum, priceRatio: PowiainaNum, currentOwned: PowiainaNumSource): PowiainaNum;
120
+ /**
121
+ * If you're willing to spend 'resourcesAvailable' and want to buy something with additively
122
+ * increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),
123
+ * how much of it can you buy?
124
+ */
125
+ static affordArithmeticSeries(resourcesAvailable: PowiainaNumSource, priceStart: PowiainaNumSource, priceAdd: PowiainaNumSource, currentOwned: PowiainaNumSource): PowiainaNum;
126
+ static affordArithmeticSeries_core(resourcesAvailable: PowiainaNum, priceStart: PowiainaNum, priceAdd: PowiainaNum, currentOwned: PowiainaNum): PowiainaNum;
127
+ /**
128
+ * How much resource would it cost to buy (numItems) items if you already have currentOwned,
129
+ * the initial price is priceStart and it adds priceAdd each purchase?
130
+ * Adapted from http://www.mathwords.com/a/arithmetic_series.htm
131
+ */
132
+ static sumArithmeticSeries(numItems: PowiainaNumSource, priceStart: PowiainaNumSource, priceAdd: PowiainaNumSource, currentOwned: PowiainaNumSource): PowiainaNum;
133
+ static sumArithmeticSeries_core(numItems: PowiainaNum, priceStart: PowiainaNum, priceAdd: PowiainaNum, currentOwned: PowiainaNum): PowiainaNum;
102
134
  tetrate(other2: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum;
135
+ tetr(other2: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum;
103
136
  slog(base?: PowiainaNumSource): PowiainaNum;
104
137
  static tetrate(t: PowiainaNumSource, other2: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum;
105
138
  ssqrt(): PowiainaNum;
139
+ tetrate_10(): PowiainaNum;
106
140
  static tetrate_10(other2: PowiainaNumSource): PowiainaNum;
107
141
  /**
108
142
  * iterated-log
@@ -110,6 +144,7 @@ export default class PowiainaNum implements IPowiainaNum {
110
144
  * @example new P("10^10^3").iteratedlog(2,10) == 3
111
145
  */
112
146
  iteratedlog(other2?: PowiainaNumSource, base2?: PowiainaNumSource): PowiainaNum;
147
+ static iteratedlog(t: PowiainaNumSource, other2?: PowiainaNumSource, base2?: PowiainaNumSource): PowiainaNum;
113
148
  /**
114
149
  * Arrow operation, return a function
115
150
  * The function has a parameter `other`
@@ -118,6 +153,7 @@ export default class PowiainaNum implements IPowiainaNum {
118
153
  * @returns A function
119
154
  */
120
155
  arrow(arrows2: PowiainaNumSource): (other: PowiainaNumSource, payload?: PowiainaNumSource, depth?: number) => PowiainaNum;
156
+ static arrow(x: PowiainaNumSource, z: PowiainaNumSource, y: PowiainaNumSource): PowiainaNum;
121
157
  /**
122
158
  * return `base`{`arrow2`}`x` = `this` which `x` is.
123
159
  *
@@ -125,6 +161,10 @@ export default class PowiainaNum implements IPowiainaNum {
125
161
  * @returns
126
162
  */
127
163
  anyarrow_log(arrow2: PowiainaNumSource): (base: PowiainaNumSource, depth?: number) => PowiainaNum;
164
+ /**
165
+ * base{height}base
166
+ */
167
+ static arrFrac(base: PowiainaNumSource, height: PowiainaNumSource): PowiainaNum;
128
168
  /**
129
169
  * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
130
170
  * @param arrows
@@ -136,6 +176,7 @@ export default class PowiainaNum implements IPowiainaNum {
136
176
  static hyper(arr: PowiainaNumSource): typeof PowiainaNum.mul;
137
177
  pentate(other: PowiainaNumSource): PowiainaNum;
138
178
  hexate(other: PowiainaNumSource): PowiainaNum;
179
+ pent(other: PowiainaNumSource): PowiainaNum;
139
180
  penta_log(base?: PowiainaNumSource): PowiainaNum;
140
181
  /**
141
182
  * Expansion, which is `this`{{1}}`other2`.
@@ -154,7 +195,8 @@ export default class PowiainaNum implements IPowiainaNum {
154
195
  explosion(other: PowiainaNumSource): PowiainaNum;
155
196
  megotion(other: PowiainaNumSource): PowiainaNum;
156
197
  powiaination(other: PowiainaNumSource): PowiainaNum;
157
- static BEAF(base2: PowiainaNumSource, power2: PowiainaNumSource, arrow2?: PowiainaNumSource, expans2?: PowiainaNumSource, megota2?: PowiainaNumSource, powiaina2?: PowiainaNumSource, depth?: number): PowiainaNum;
198
+ static BEAF(...args: PowiainaNumSource[]): PowiainaNum;
199
+ static BEAF_core(base2: PowiainaNumSource, power2: PowiainaNumSource, arrow2?: PowiainaNumSource, expans2?: PowiainaNumSource, megota2?: PowiainaNumSource, powiaina2?: PowiainaNumSource, depth?: number): PowiainaNum;
158
200
  abs(): PowiainaNum;
159
201
  static abs(x: PowiainaNumSource): PowiainaNum;
160
202
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powiaina_num.js",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
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",