powiaina_num.js 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PowiainaNum.cjs.js +127 -10
- package/dist/PowiainaNum.esm.js +127 -10
- package/dist/PowiainaNum.js +127 -10
- package/dist/PowiainaNum.min.js +1 -1
- package/dist/index.d.ts +38 -1
- package/package.json +1 -1
package/dist/PowiainaNum.cjs.js
CHANGED
|
@@ -379,8 +379,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
379
379
|
// calculate anything > e9e15 or <e-9e15, take absval bigger.
|
|
380
380
|
if (x.abs().lt(PowiainaNum.E_MSI_REC) || x.abs().gt(PowiainaNum.E_MSI) || y.abs().lt(PowiainaNum.E_MSI_REC) || y.abs().gt(PowiainaNum.E_MSI)) {
|
|
381
381
|
var _a2 = x.maxabs(y);
|
|
382
|
-
if (
|
|
383
|
-
if (
|
|
382
|
+
if (x.abs().eq(_a2)) return x;
|
|
383
|
+
if (y.abs().eq(_a2)) return y;
|
|
384
384
|
return y;
|
|
385
385
|
}
|
|
386
386
|
if (x.sign == -1) {
|
|
@@ -1081,14 +1081,18 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1081
1081
|
return PowiainaNum.NaN.clone();
|
|
1082
1082
|
};
|
|
1083
1083
|
}
|
|
1084
|
+
/**
|
|
1085
|
+
* base{height}base
|
|
1086
|
+
*/
|
|
1087
|
+
}, {
|
|
1088
|
+
key: "arrow_height_inverse",
|
|
1089
|
+
value:
|
|
1084
1090
|
/**
|
|
1085
1091
|
* Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
|
|
1086
1092
|
* @param arrows
|
|
1087
1093
|
* @returns
|
|
1088
1094
|
*/
|
|
1089
|
-
|
|
1090
|
-
key: "arrow_height_inverse",
|
|
1091
|
-
value: function arrow_height_inverse(arrows) {
|
|
1095
|
+
function arrow_height_inverse(arrows) {
|
|
1092
1096
|
return this.anyarrow_log(arrows);
|
|
1093
1097
|
}
|
|
1094
1098
|
}, {
|
|
@@ -2027,6 +2031,82 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2027
2031
|
var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
2028
2032
|
return new PowiainaNum(x).lambertw(principal);
|
|
2029
2033
|
}
|
|
2034
|
+
//#endregion
|
|
2035
|
+
//#region Commonly used functions by game
|
|
2036
|
+
// All of these are from break_eternity.js
|
|
2037
|
+
/**
|
|
2038
|
+
* If you're willing to spend 'resourcesAvailable' and want to buy something
|
|
2039
|
+
* with exponentially increasing cost each purchase (start at priceStart,
|
|
2040
|
+
* multiply by priceRatio, already own currentOwned), how much of it can you buy?
|
|
2041
|
+
* Adapted from Trimps source code.
|
|
2042
|
+
*
|
|
2043
|
+
* currentOwned >= priceStart*priceRatio^(return value)
|
|
2044
|
+
*/
|
|
2045
|
+
}, {
|
|
2046
|
+
key: "affordGeometricSeries",
|
|
2047
|
+
value: function affordGeometricSeries(resourcesAvailable, priceStart, priceRatio, currentOwned) {
|
|
2048
|
+
return this.affordGeometricSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
|
|
2049
|
+
}
|
|
2050
|
+
}, {
|
|
2051
|
+
key: "affordGeometricSeries_core",
|
|
2052
|
+
value: function affordGeometricSeries_core(resourcesAvailable, priceStart, priceRatio, currentOwned) {
|
|
2053
|
+
var withNaNProtect = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
|
|
2054
|
+
var actualStart = priceStart.mul(priceRatio.pow(currentOwned));
|
|
2055
|
+
return resourcesAvailable.div(actualStart).mul(priceRatio.sub(1)).add(1).clampMin(withNaNProtect ? 1 : -Infinity).log10().div(priceRatio.log10()).floor();
|
|
2056
|
+
}
|
|
2057
|
+
/**
|
|
2058
|
+
* How much resource would it cost to buy (numItems) items if you already have currentOwned,
|
|
2059
|
+
* the initial price is priceStart and it multiplies by priceRatio each purchase?
|
|
2060
|
+
*
|
|
2061
|
+
* return value = priceStart*priceRatio^(numItems)
|
|
2062
|
+
*/
|
|
2063
|
+
}, {
|
|
2064
|
+
key: "sumGeometricSeries",
|
|
2065
|
+
value: function sumGeometricSeries(numItems, priceStart, priceRatio, currentOwned) {
|
|
2066
|
+
return this.sumGeometricSeries_core(numItems, new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
|
|
2067
|
+
}
|
|
2068
|
+
}, {
|
|
2069
|
+
key: "sumGeometricSeries_core",
|
|
2070
|
+
value: function sumGeometricSeries_core(numItems, priceStart, priceRatio, currentOwned) {
|
|
2071
|
+
return priceStart.mul(priceRatio.pow(currentOwned)).mul(PowiainaNum.sub(1, priceRatio.pow(numItems))).div(PowiainaNum.sub(1, priceRatio));
|
|
2072
|
+
}
|
|
2073
|
+
/**
|
|
2074
|
+
* If you're willing to spend 'resourcesAvailable' and want to buy something with additively
|
|
2075
|
+
* increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),
|
|
2076
|
+
* how much of it can you buy?
|
|
2077
|
+
*/
|
|
2078
|
+
}, {
|
|
2079
|
+
key: "affordArithmeticSeries",
|
|
2080
|
+
value: function affordArithmeticSeries(resourcesAvailable, priceStart, priceAdd, currentOwned) {
|
|
2081
|
+
return this.affordArithmeticSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
|
|
2082
|
+
}
|
|
2083
|
+
}, {
|
|
2084
|
+
key: "affordArithmeticSeries_core",
|
|
2085
|
+
value: function affordArithmeticSeries_core(resourcesAvailable, priceStart, priceAdd, currentOwned) {
|
|
2086
|
+
// n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d
|
|
2087
|
+
// where a is actualStart, d is priceAdd and S is resourcesAvailable
|
|
2088
|
+
// then floor it and you're done!
|
|
2089
|
+
var actualStart = priceStart.add(currentOwned.mul(priceAdd));
|
|
2090
|
+
var b = actualStart.sub(priceAdd.div(2));
|
|
2091
|
+
var b2 = b.pow(2);
|
|
2092
|
+
return b.neg().add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt()).div(priceAdd).floor();
|
|
2093
|
+
}
|
|
2094
|
+
/**
|
|
2095
|
+
* How much resource would it cost to buy (numItems) items if you already have currentOwned,
|
|
2096
|
+
* the initial price is priceStart and it adds priceAdd each purchase?
|
|
2097
|
+
* Adapted from http://www.mathwords.com/a/arithmetic_series.htm
|
|
2098
|
+
*/
|
|
2099
|
+
}, {
|
|
2100
|
+
key: "sumArithmeticSeries",
|
|
2101
|
+
value: function sumArithmeticSeries(numItems, priceStart, priceAdd, currentOwned) {
|
|
2102
|
+
return this.sumArithmeticSeries_core(new PowiainaNum(numItems), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
|
|
2103
|
+
}
|
|
2104
|
+
}, {
|
|
2105
|
+
key: "sumArithmeticSeries_core",
|
|
2106
|
+
value: function sumArithmeticSeries_core(numItems, priceStart, priceAdd, currentOwned) {
|
|
2107
|
+
var actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)
|
|
2108
|
+
return numItems.div(2).mul(actualStart.mul(2).add(numItems.sub(1).mul(priceAdd)));
|
|
2109
|
+
}
|
|
2030
2110
|
}, {
|
|
2031
2111
|
key: "tetrate",
|
|
2032
2112
|
value: function tetrate(t, other2) {
|
|
@@ -2038,6 +2118,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2038
2118
|
value: function tetrate_10(other2) {
|
|
2039
2119
|
return PowiainaNum.fromNumber(10).tetrate(other2);
|
|
2040
2120
|
}
|
|
2121
|
+
}, {
|
|
2122
|
+
key: "arrFrac",
|
|
2123
|
+
value: function arrFrac(base, height) {
|
|
2124
|
+
var b = new PowiainaNum(base).clone();
|
|
2125
|
+
var h = new PowiainaNum(height).clone();
|
|
2126
|
+
return new PowiainaNum(b).arrow(h.floor().add(1))(b.div(2).pow(h.sub(h.floor())).mul(2));
|
|
2127
|
+
}
|
|
2041
2128
|
}, {
|
|
2042
2129
|
key: "arrowMSI",
|
|
2043
2130
|
value: function arrowMSI(arrowsNum) {
|
|
@@ -2073,7 +2160,27 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2073
2160
|
}
|
|
2074
2161
|
}, {
|
|
2075
2162
|
key: "BEAF",
|
|
2076
|
-
value: function BEAF(
|
|
2163
|
+
value: function BEAF() {
|
|
2164
|
+
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
2165
|
+
args[_key8] = arguments[_key8];
|
|
2166
|
+
}
|
|
2167
|
+
function getArgs(x) {
|
|
2168
|
+
if (args[x]) return new PowiainaNum(args[x]);
|
|
2169
|
+
return new PowiainaNum(1);
|
|
2170
|
+
}
|
|
2171
|
+
if (getArgs(0).eq(1)) return new PowiainaNum(1);
|
|
2172
|
+
if (getArgs(1).eq(1)) return new PowiainaNum(getArgs(0));
|
|
2173
|
+
if (getArgs(5).eq(2) && (getArgs(4).gte(2) || getArgs(3).gte(2) || getArgs(2).gte(2))) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
2174
|
+
if (args.slice(6).map(function (x) {
|
|
2175
|
+
return new PowiainaNum(x);
|
|
2176
|
+
}).filter(function (x) {
|
|
2177
|
+
return x.gt(1);
|
|
2178
|
+
}).length !== 0) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
2179
|
+
return PowiainaNum.BEAF_core(getArgs(0), getArgs(1), getArgs(2), getArgs(3), getArgs(4), getArgs(5));
|
|
2180
|
+
}
|
|
2181
|
+
}, {
|
|
2182
|
+
key: "BEAF_core",
|
|
2183
|
+
value: function BEAF_core(base2, power2) {
|
|
2077
2184
|
var arrow2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
2078
2185
|
var expans2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
2079
2186
|
var megota2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
@@ -2244,8 +2351,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2244
2351
|
key: "max",
|
|
2245
2352
|
value: function max() {
|
|
2246
2353
|
var max = PowiainaNum.NEGATIVE_INFINITY;
|
|
2247
|
-
for (var
|
|
2248
|
-
args[
|
|
2354
|
+
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
2355
|
+
args[_key9] = arguments[_key9];
|
|
2249
2356
|
}
|
|
2250
2357
|
for (var i = 0; i < args.length; i++) {
|
|
2251
2358
|
if (max.lt(args[i])) {
|
|
@@ -2261,8 +2368,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2261
2368
|
key: "min",
|
|
2262
2369
|
value: function min() {
|
|
2263
2370
|
var max = PowiainaNum.POSITIVE_INFINITY;
|
|
2264
|
-
for (var
|
|
2265
|
-
args[
|
|
2371
|
+
for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
|
|
2372
|
+
args[_key0] = arguments[_key0];
|
|
2266
2373
|
}
|
|
2267
2374
|
for (var i = 0; i < args.length; i++) {
|
|
2268
2375
|
if (max.gt(args[i])) {
|
|
@@ -2332,6 +2439,16 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2332
2439
|
var x = new PowiainaNum();
|
|
2333
2440
|
// Judge the string was a number
|
|
2334
2441
|
if (input.startsWith("PN")) input = input.substring(2);
|
|
2442
|
+
input = input.replace(/J\^(\d+)/g, "(10{!})^$1");
|
|
2443
|
+
input = input.replace(/J/g, "10{!}");
|
|
2444
|
+
input = input.replace(/K\^(\d+)/g, "(10{1,2})^$1");
|
|
2445
|
+
input = input.replace(/K/g, "10{1,2}");
|
|
2446
|
+
input = input.replace(/L\^(\d+)/g, "(10{2,2})^$1");
|
|
2447
|
+
input = input.replace(/L/g, "10{2,2}");
|
|
2448
|
+
input = input.replace(/M\^(\d+)/g, "(10{!,2})^$1");
|
|
2449
|
+
input = input.replace(/M/g, "10{!,2}");
|
|
2450
|
+
input = input.replace(/N\^(\d+)/g, "(10{1,!})^$1");
|
|
2451
|
+
input = input.replace(/N/g, "10{1,!}");
|
|
2335
2452
|
if (!isNaN(Number(input))) {
|
|
2336
2453
|
var res = Number(input);
|
|
2337
2454
|
var _a3 = false;
|
package/dist/PowiainaNum.esm.js
CHANGED
|
@@ -375,8 +375,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
375
375
|
// calculate anything > e9e15 or <e-9e15, take absval bigger.
|
|
376
376
|
if (x.abs().lt(PowiainaNum.E_MSI_REC) || x.abs().gt(PowiainaNum.E_MSI) || y.abs().lt(PowiainaNum.E_MSI_REC) || y.abs().gt(PowiainaNum.E_MSI)) {
|
|
377
377
|
var _a2 = x.maxabs(y);
|
|
378
|
-
if (
|
|
379
|
-
if (
|
|
378
|
+
if (x.abs().eq(_a2)) return x;
|
|
379
|
+
if (y.abs().eq(_a2)) return y;
|
|
380
380
|
return y;
|
|
381
381
|
}
|
|
382
382
|
if (x.sign == -1) {
|
|
@@ -1077,14 +1077,18 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1077
1077
|
return PowiainaNum.NaN.clone();
|
|
1078
1078
|
};
|
|
1079
1079
|
}
|
|
1080
|
+
/**
|
|
1081
|
+
* base{height}base
|
|
1082
|
+
*/
|
|
1083
|
+
}, {
|
|
1084
|
+
key: "arrow_height_inverse",
|
|
1085
|
+
value:
|
|
1080
1086
|
/**
|
|
1081
1087
|
* Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
|
|
1082
1088
|
* @param arrows
|
|
1083
1089
|
* @returns
|
|
1084
1090
|
*/
|
|
1085
|
-
|
|
1086
|
-
key: "arrow_height_inverse",
|
|
1087
|
-
value: function arrow_height_inverse(arrows) {
|
|
1091
|
+
function arrow_height_inverse(arrows) {
|
|
1088
1092
|
return this.anyarrow_log(arrows);
|
|
1089
1093
|
}
|
|
1090
1094
|
}, {
|
|
@@ -2023,6 +2027,82 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2023
2027
|
var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
2024
2028
|
return new PowiainaNum(x).lambertw(principal);
|
|
2025
2029
|
}
|
|
2030
|
+
//#endregion
|
|
2031
|
+
//#region Commonly used functions by game
|
|
2032
|
+
// All of these are from break_eternity.js
|
|
2033
|
+
/**
|
|
2034
|
+
* If you're willing to spend 'resourcesAvailable' and want to buy something
|
|
2035
|
+
* with exponentially increasing cost each purchase (start at priceStart,
|
|
2036
|
+
* multiply by priceRatio, already own currentOwned), how much of it can you buy?
|
|
2037
|
+
* Adapted from Trimps source code.
|
|
2038
|
+
*
|
|
2039
|
+
* currentOwned >= priceStart*priceRatio^(return value)
|
|
2040
|
+
*/
|
|
2041
|
+
}, {
|
|
2042
|
+
key: "affordGeometricSeries",
|
|
2043
|
+
value: function affordGeometricSeries(resourcesAvailable, priceStart, priceRatio, currentOwned) {
|
|
2044
|
+
return this.affordGeometricSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
|
|
2045
|
+
}
|
|
2046
|
+
}, {
|
|
2047
|
+
key: "affordGeometricSeries_core",
|
|
2048
|
+
value: function affordGeometricSeries_core(resourcesAvailable, priceStart, priceRatio, currentOwned) {
|
|
2049
|
+
var withNaNProtect = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
|
|
2050
|
+
var actualStart = priceStart.mul(priceRatio.pow(currentOwned));
|
|
2051
|
+
return resourcesAvailable.div(actualStart).mul(priceRatio.sub(1)).add(1).clampMin(withNaNProtect ? 1 : -Infinity).log10().div(priceRatio.log10()).floor();
|
|
2052
|
+
}
|
|
2053
|
+
/**
|
|
2054
|
+
* How much resource would it cost to buy (numItems) items if you already have currentOwned,
|
|
2055
|
+
* the initial price is priceStart and it multiplies by priceRatio each purchase?
|
|
2056
|
+
*
|
|
2057
|
+
* return value = priceStart*priceRatio^(numItems)
|
|
2058
|
+
*/
|
|
2059
|
+
}, {
|
|
2060
|
+
key: "sumGeometricSeries",
|
|
2061
|
+
value: function sumGeometricSeries(numItems, priceStart, priceRatio, currentOwned) {
|
|
2062
|
+
return this.sumGeometricSeries_core(numItems, new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
|
|
2063
|
+
}
|
|
2064
|
+
}, {
|
|
2065
|
+
key: "sumGeometricSeries_core",
|
|
2066
|
+
value: function sumGeometricSeries_core(numItems, priceStart, priceRatio, currentOwned) {
|
|
2067
|
+
return priceStart.mul(priceRatio.pow(currentOwned)).mul(PowiainaNum.sub(1, priceRatio.pow(numItems))).div(PowiainaNum.sub(1, priceRatio));
|
|
2068
|
+
}
|
|
2069
|
+
/**
|
|
2070
|
+
* If you're willing to spend 'resourcesAvailable' and want to buy something with additively
|
|
2071
|
+
* increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),
|
|
2072
|
+
* how much of it can you buy?
|
|
2073
|
+
*/
|
|
2074
|
+
}, {
|
|
2075
|
+
key: "affordArithmeticSeries",
|
|
2076
|
+
value: function affordArithmeticSeries(resourcesAvailable, priceStart, priceAdd, currentOwned) {
|
|
2077
|
+
return this.affordArithmeticSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
|
|
2078
|
+
}
|
|
2079
|
+
}, {
|
|
2080
|
+
key: "affordArithmeticSeries_core",
|
|
2081
|
+
value: function affordArithmeticSeries_core(resourcesAvailable, priceStart, priceAdd, currentOwned) {
|
|
2082
|
+
// n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d
|
|
2083
|
+
// where a is actualStart, d is priceAdd and S is resourcesAvailable
|
|
2084
|
+
// then floor it and you're done!
|
|
2085
|
+
var actualStart = priceStart.add(currentOwned.mul(priceAdd));
|
|
2086
|
+
var b = actualStart.sub(priceAdd.div(2));
|
|
2087
|
+
var b2 = b.pow(2);
|
|
2088
|
+
return b.neg().add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt()).div(priceAdd).floor();
|
|
2089
|
+
}
|
|
2090
|
+
/**
|
|
2091
|
+
* How much resource would it cost to buy (numItems) items if you already have currentOwned,
|
|
2092
|
+
* the initial price is priceStart and it adds priceAdd each purchase?
|
|
2093
|
+
* Adapted from http://www.mathwords.com/a/arithmetic_series.htm
|
|
2094
|
+
*/
|
|
2095
|
+
}, {
|
|
2096
|
+
key: "sumArithmeticSeries",
|
|
2097
|
+
value: function sumArithmeticSeries(numItems, priceStart, priceAdd, currentOwned) {
|
|
2098
|
+
return this.sumArithmeticSeries_core(new PowiainaNum(numItems), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
|
|
2099
|
+
}
|
|
2100
|
+
}, {
|
|
2101
|
+
key: "sumArithmeticSeries_core",
|
|
2102
|
+
value: function sumArithmeticSeries_core(numItems, priceStart, priceAdd, currentOwned) {
|
|
2103
|
+
var actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)
|
|
2104
|
+
return numItems.div(2).mul(actualStart.mul(2).add(numItems.sub(1).mul(priceAdd)));
|
|
2105
|
+
}
|
|
2026
2106
|
}, {
|
|
2027
2107
|
key: "tetrate",
|
|
2028
2108
|
value: function tetrate(t, other2) {
|
|
@@ -2034,6 +2114,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2034
2114
|
value: function tetrate_10(other2) {
|
|
2035
2115
|
return PowiainaNum.fromNumber(10).tetrate(other2);
|
|
2036
2116
|
}
|
|
2117
|
+
}, {
|
|
2118
|
+
key: "arrFrac",
|
|
2119
|
+
value: function arrFrac(base, height) {
|
|
2120
|
+
var b = new PowiainaNum(base).clone();
|
|
2121
|
+
var h = new PowiainaNum(height).clone();
|
|
2122
|
+
return new PowiainaNum(b).arrow(h.floor().add(1))(b.div(2).pow(h.sub(h.floor())).mul(2));
|
|
2123
|
+
}
|
|
2037
2124
|
}, {
|
|
2038
2125
|
key: "arrowMSI",
|
|
2039
2126
|
value: function arrowMSI(arrowsNum) {
|
|
@@ -2069,7 +2156,27 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2069
2156
|
}
|
|
2070
2157
|
}, {
|
|
2071
2158
|
key: "BEAF",
|
|
2072
|
-
value: function BEAF(
|
|
2159
|
+
value: function BEAF() {
|
|
2160
|
+
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
2161
|
+
args[_key8] = arguments[_key8];
|
|
2162
|
+
}
|
|
2163
|
+
function getArgs(x) {
|
|
2164
|
+
if (args[x]) return new PowiainaNum(args[x]);
|
|
2165
|
+
return new PowiainaNum(1);
|
|
2166
|
+
}
|
|
2167
|
+
if (getArgs(0).eq(1)) return new PowiainaNum(1);
|
|
2168
|
+
if (getArgs(1).eq(1)) return new PowiainaNum(getArgs(0));
|
|
2169
|
+
if (getArgs(5).eq(2) && (getArgs(4).gte(2) || getArgs(3).gte(2) || getArgs(2).gte(2))) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
2170
|
+
if (args.slice(6).map(function (x) {
|
|
2171
|
+
return new PowiainaNum(x);
|
|
2172
|
+
}).filter(function (x) {
|
|
2173
|
+
return x.gt(1);
|
|
2174
|
+
}).length !== 0) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
2175
|
+
return PowiainaNum.BEAF_core(getArgs(0), getArgs(1), getArgs(2), getArgs(3), getArgs(4), getArgs(5));
|
|
2176
|
+
}
|
|
2177
|
+
}, {
|
|
2178
|
+
key: "BEAF_core",
|
|
2179
|
+
value: function BEAF_core(base2, power2) {
|
|
2073
2180
|
var arrow2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
2074
2181
|
var expans2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
2075
2182
|
var megota2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
@@ -2240,8 +2347,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2240
2347
|
key: "max",
|
|
2241
2348
|
value: function max() {
|
|
2242
2349
|
var max = PowiainaNum.NEGATIVE_INFINITY;
|
|
2243
|
-
for (var
|
|
2244
|
-
args[
|
|
2350
|
+
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
2351
|
+
args[_key9] = arguments[_key9];
|
|
2245
2352
|
}
|
|
2246
2353
|
for (var i = 0; i < args.length; i++) {
|
|
2247
2354
|
if (max.lt(args[i])) {
|
|
@@ -2257,8 +2364,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2257
2364
|
key: "min",
|
|
2258
2365
|
value: function min() {
|
|
2259
2366
|
var max = PowiainaNum.POSITIVE_INFINITY;
|
|
2260
|
-
for (var
|
|
2261
|
-
args[
|
|
2367
|
+
for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
|
|
2368
|
+
args[_key0] = arguments[_key0];
|
|
2262
2369
|
}
|
|
2263
2370
|
for (var i = 0; i < args.length; i++) {
|
|
2264
2371
|
if (max.gt(args[i])) {
|
|
@@ -2328,6 +2435,16 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2328
2435
|
var x = new PowiainaNum();
|
|
2329
2436
|
// Judge the string was a number
|
|
2330
2437
|
if (input.startsWith("PN")) input = input.substring(2);
|
|
2438
|
+
input = input.replace(/J\^(\d+)/g, "(10{!})^$1");
|
|
2439
|
+
input = input.replace(/J/g, "10{!}");
|
|
2440
|
+
input = input.replace(/K\^(\d+)/g, "(10{1,2})^$1");
|
|
2441
|
+
input = input.replace(/K/g, "10{1,2}");
|
|
2442
|
+
input = input.replace(/L\^(\d+)/g, "(10{2,2})^$1");
|
|
2443
|
+
input = input.replace(/L/g, "10{2,2}");
|
|
2444
|
+
input = input.replace(/M\^(\d+)/g, "(10{!,2})^$1");
|
|
2445
|
+
input = input.replace(/M/g, "10{!,2}");
|
|
2446
|
+
input = input.replace(/N\^(\d+)/g, "(10{1,!})^$1");
|
|
2447
|
+
input = input.replace(/N/g, "10{1,!}");
|
|
2331
2448
|
if (!isNaN(Number(input))) {
|
|
2332
2449
|
var res = Number(input);
|
|
2333
2450
|
var _a3 = false;
|
package/dist/PowiainaNum.js
CHANGED
|
@@ -381,8 +381,8 @@
|
|
|
381
381
|
// calculate anything > e9e15 or <e-9e15, take absval bigger.
|
|
382
382
|
if (x.abs().lt(PowiainaNum.E_MSI_REC) || x.abs().gt(PowiainaNum.E_MSI) || y.abs().lt(PowiainaNum.E_MSI_REC) || y.abs().gt(PowiainaNum.E_MSI)) {
|
|
383
383
|
var _a2 = x.maxabs(y);
|
|
384
|
-
if (
|
|
385
|
-
if (
|
|
384
|
+
if (x.abs().eq(_a2)) return x;
|
|
385
|
+
if (y.abs().eq(_a2)) return y;
|
|
386
386
|
return y;
|
|
387
387
|
}
|
|
388
388
|
if (x.sign == -1) {
|
|
@@ -1083,14 +1083,18 @@
|
|
|
1083
1083
|
return PowiainaNum.NaN.clone();
|
|
1084
1084
|
};
|
|
1085
1085
|
}
|
|
1086
|
+
/**
|
|
1087
|
+
* base{height}base
|
|
1088
|
+
*/
|
|
1089
|
+
}, {
|
|
1090
|
+
key: "arrow_height_inverse",
|
|
1091
|
+
value:
|
|
1086
1092
|
/**
|
|
1087
1093
|
* Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
|
|
1088
1094
|
* @param arrows
|
|
1089
1095
|
* @returns
|
|
1090
1096
|
*/
|
|
1091
|
-
|
|
1092
|
-
key: "arrow_height_inverse",
|
|
1093
|
-
value: function arrow_height_inverse(arrows) {
|
|
1097
|
+
function arrow_height_inverse(arrows) {
|
|
1094
1098
|
return this.anyarrow_log(arrows);
|
|
1095
1099
|
}
|
|
1096
1100
|
}, {
|
|
@@ -2029,6 +2033,82 @@
|
|
|
2029
2033
|
var principal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
2030
2034
|
return new PowiainaNum(x).lambertw(principal);
|
|
2031
2035
|
}
|
|
2036
|
+
//#endregion
|
|
2037
|
+
//#region Commonly used functions by game
|
|
2038
|
+
// All of these are from break_eternity.js
|
|
2039
|
+
/**
|
|
2040
|
+
* If you're willing to spend 'resourcesAvailable' and want to buy something
|
|
2041
|
+
* with exponentially increasing cost each purchase (start at priceStart,
|
|
2042
|
+
* multiply by priceRatio, already own currentOwned), how much of it can you buy?
|
|
2043
|
+
* Adapted from Trimps source code.
|
|
2044
|
+
*
|
|
2045
|
+
* currentOwned >= priceStart*priceRatio^(return value)
|
|
2046
|
+
*/
|
|
2047
|
+
}, {
|
|
2048
|
+
key: "affordGeometricSeries",
|
|
2049
|
+
value: function affordGeometricSeries(resourcesAvailable, priceStart, priceRatio, currentOwned) {
|
|
2050
|
+
return this.affordGeometricSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
|
|
2051
|
+
}
|
|
2052
|
+
}, {
|
|
2053
|
+
key: "affordGeometricSeries_core",
|
|
2054
|
+
value: function affordGeometricSeries_core(resourcesAvailable, priceStart, priceRatio, currentOwned) {
|
|
2055
|
+
var withNaNProtect = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
|
|
2056
|
+
var actualStart = priceStart.mul(priceRatio.pow(currentOwned));
|
|
2057
|
+
return resourcesAvailable.div(actualStart).mul(priceRatio.sub(1)).add(1).clampMin(withNaNProtect ? 1 : -Infinity).log10().div(priceRatio.log10()).floor();
|
|
2058
|
+
}
|
|
2059
|
+
/**
|
|
2060
|
+
* How much resource would it cost to buy (numItems) items if you already have currentOwned,
|
|
2061
|
+
* the initial price is priceStart and it multiplies by priceRatio each purchase?
|
|
2062
|
+
*
|
|
2063
|
+
* return value = priceStart*priceRatio^(numItems)
|
|
2064
|
+
*/
|
|
2065
|
+
}, {
|
|
2066
|
+
key: "sumGeometricSeries",
|
|
2067
|
+
value: function sumGeometricSeries(numItems, priceStart, priceRatio, currentOwned) {
|
|
2068
|
+
return this.sumGeometricSeries_core(numItems, new PowiainaNum(priceStart), new PowiainaNum(priceRatio), currentOwned);
|
|
2069
|
+
}
|
|
2070
|
+
}, {
|
|
2071
|
+
key: "sumGeometricSeries_core",
|
|
2072
|
+
value: function sumGeometricSeries_core(numItems, priceStart, priceRatio, currentOwned) {
|
|
2073
|
+
return priceStart.mul(priceRatio.pow(currentOwned)).mul(PowiainaNum.sub(1, priceRatio.pow(numItems))).div(PowiainaNum.sub(1, priceRatio));
|
|
2074
|
+
}
|
|
2075
|
+
/**
|
|
2076
|
+
* If you're willing to spend 'resourcesAvailable' and want to buy something with additively
|
|
2077
|
+
* increasing cost each purchase (start at priceStart, add by priceAdd, already own currentOwned),
|
|
2078
|
+
* how much of it can you buy?
|
|
2079
|
+
*/
|
|
2080
|
+
}, {
|
|
2081
|
+
key: "affordArithmeticSeries",
|
|
2082
|
+
value: function affordArithmeticSeries(resourcesAvailable, priceStart, priceAdd, currentOwned) {
|
|
2083
|
+
return this.affordArithmeticSeries_core(new PowiainaNum(resourcesAvailable), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
|
|
2084
|
+
}
|
|
2085
|
+
}, {
|
|
2086
|
+
key: "affordArithmeticSeries_core",
|
|
2087
|
+
value: function affordArithmeticSeries_core(resourcesAvailable, priceStart, priceAdd, currentOwned) {
|
|
2088
|
+
// n = (-(a-d/2) + sqrt((a-d/2)^2+2dS))/d
|
|
2089
|
+
// where a is actualStart, d is priceAdd and S is resourcesAvailable
|
|
2090
|
+
// then floor it and you're done!
|
|
2091
|
+
var actualStart = priceStart.add(currentOwned.mul(priceAdd));
|
|
2092
|
+
var b = actualStart.sub(priceAdd.div(2));
|
|
2093
|
+
var b2 = b.pow(2);
|
|
2094
|
+
return b.neg().add(b2.add(priceAdd.mul(resourcesAvailable).mul(2)).sqrt()).div(priceAdd).floor();
|
|
2095
|
+
}
|
|
2096
|
+
/**
|
|
2097
|
+
* How much resource would it cost to buy (numItems) items if you already have currentOwned,
|
|
2098
|
+
* the initial price is priceStart and it adds priceAdd each purchase?
|
|
2099
|
+
* Adapted from http://www.mathwords.com/a/arithmetic_series.htm
|
|
2100
|
+
*/
|
|
2101
|
+
}, {
|
|
2102
|
+
key: "sumArithmeticSeries",
|
|
2103
|
+
value: function sumArithmeticSeries(numItems, priceStart, priceAdd, currentOwned) {
|
|
2104
|
+
return this.sumArithmeticSeries_core(new PowiainaNum(numItems), new PowiainaNum(priceStart), new PowiainaNum(priceAdd), new PowiainaNum(currentOwned));
|
|
2105
|
+
}
|
|
2106
|
+
}, {
|
|
2107
|
+
key: "sumArithmeticSeries_core",
|
|
2108
|
+
value: function sumArithmeticSeries_core(numItems, priceStart, priceAdd, currentOwned) {
|
|
2109
|
+
var actualStart = priceStart.add(currentOwned.mul(priceAdd)); // (n/2)*(2*a+(n-1)*d)
|
|
2110
|
+
return numItems.div(2).mul(actualStart.mul(2).add(numItems.sub(1).mul(priceAdd)));
|
|
2111
|
+
}
|
|
2032
2112
|
}, {
|
|
2033
2113
|
key: "tetrate",
|
|
2034
2114
|
value: function tetrate(t, other2) {
|
|
@@ -2040,6 +2120,13 @@
|
|
|
2040
2120
|
value: function tetrate_10(other2) {
|
|
2041
2121
|
return PowiainaNum.fromNumber(10).tetrate(other2);
|
|
2042
2122
|
}
|
|
2123
|
+
}, {
|
|
2124
|
+
key: "arrFrac",
|
|
2125
|
+
value: function arrFrac(base, height) {
|
|
2126
|
+
var b = new PowiainaNum(base).clone();
|
|
2127
|
+
var h = new PowiainaNum(height).clone();
|
|
2128
|
+
return new PowiainaNum(b).arrow(h.floor().add(1))(b.div(2).pow(h.sub(h.floor())).mul(2));
|
|
2129
|
+
}
|
|
2043
2130
|
}, {
|
|
2044
2131
|
key: "arrowMSI",
|
|
2045
2132
|
value: function arrowMSI(arrowsNum) {
|
|
@@ -2075,7 +2162,27 @@
|
|
|
2075
2162
|
}
|
|
2076
2163
|
}, {
|
|
2077
2164
|
key: "BEAF",
|
|
2078
|
-
value: function BEAF(
|
|
2165
|
+
value: function BEAF() {
|
|
2166
|
+
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
2167
|
+
args[_key8] = arguments[_key8];
|
|
2168
|
+
}
|
|
2169
|
+
function getArgs(x) {
|
|
2170
|
+
if (args[x]) return new PowiainaNum(args[x]);
|
|
2171
|
+
return new PowiainaNum(1);
|
|
2172
|
+
}
|
|
2173
|
+
if (getArgs(0).eq(1)) return new PowiainaNum(1);
|
|
2174
|
+
if (getArgs(1).eq(1)) return new PowiainaNum(getArgs(0));
|
|
2175
|
+
if (getArgs(5).eq(2) && (getArgs(4).gte(2) || getArgs(3).gte(2) || getArgs(2).gte(2))) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
2176
|
+
if (args.slice(6).map(function (x) {
|
|
2177
|
+
return new PowiainaNum(x);
|
|
2178
|
+
}).filter(function (x) {
|
|
2179
|
+
return x.gt(1);
|
|
2180
|
+
}).length !== 0) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
2181
|
+
return PowiainaNum.BEAF_core(getArgs(0), getArgs(1), getArgs(2), getArgs(3), getArgs(4), getArgs(5));
|
|
2182
|
+
}
|
|
2183
|
+
}, {
|
|
2184
|
+
key: "BEAF_core",
|
|
2185
|
+
value: function BEAF_core(base2, power2) {
|
|
2079
2186
|
var arrow2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
2080
2187
|
var expans2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
2081
2188
|
var megota2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
@@ -2246,8 +2353,8 @@
|
|
|
2246
2353
|
key: "max",
|
|
2247
2354
|
value: function max() {
|
|
2248
2355
|
var max = PowiainaNum.NEGATIVE_INFINITY;
|
|
2249
|
-
for (var
|
|
2250
|
-
args[
|
|
2356
|
+
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
2357
|
+
args[_key9] = arguments[_key9];
|
|
2251
2358
|
}
|
|
2252
2359
|
for (var i = 0; i < args.length; i++) {
|
|
2253
2360
|
if (max.lt(args[i])) {
|
|
@@ -2263,8 +2370,8 @@
|
|
|
2263
2370
|
key: "min",
|
|
2264
2371
|
value: function min() {
|
|
2265
2372
|
var max = PowiainaNum.POSITIVE_INFINITY;
|
|
2266
|
-
for (var
|
|
2267
|
-
args[
|
|
2373
|
+
for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
|
|
2374
|
+
args[_key0] = arguments[_key0];
|
|
2268
2375
|
}
|
|
2269
2376
|
for (var i = 0; i < args.length; i++) {
|
|
2270
2377
|
if (max.gt(args[i])) {
|
|
@@ -2334,6 +2441,16 @@
|
|
|
2334
2441
|
var x = new PowiainaNum();
|
|
2335
2442
|
// Judge the string was a number
|
|
2336
2443
|
if (input.startsWith("PN")) input = input.substring(2);
|
|
2444
|
+
input = input.replace(/J\^(\d+)/g, "(10{!})^$1");
|
|
2445
|
+
input = input.replace(/J/g, "10{!}");
|
|
2446
|
+
input = input.replace(/K\^(\d+)/g, "(10{1,2})^$1");
|
|
2447
|
+
input = input.replace(/K/g, "10{1,2}");
|
|
2448
|
+
input = input.replace(/L\^(\d+)/g, "(10{2,2})^$1");
|
|
2449
|
+
input = input.replace(/L/g, "10{2,2}");
|
|
2450
|
+
input = input.replace(/M\^(\d+)/g, "(10{!,2})^$1");
|
|
2451
|
+
input = input.replace(/M/g, "10{!,2}");
|
|
2452
|
+
input = input.replace(/N\^(\d+)/g, "(10{1,!})^$1");
|
|
2453
|
+
input = input.replace(/N/g, "10{1,!}");
|
|
2337
2454
|
if (!isNaN(Number(input))) {
|
|
2338
2455
|
var res = Number(input);
|
|
2339
2456
|
var _a3 = false;
|
package/dist/PowiainaNum.min.js
CHANGED
|
@@ -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 h.abs().eq(c)?c:(h.abs().eq(g),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 O(r){return"x"===r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function d(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 k(r)).isFinite())return r;if(a){if(r.eq(k.ZERO))return r;if(r.eq(k.ONE))return new k(y);e=k.log(r)}else{if(r.eq(k.ZERO))return k.NEGATIVE_INFINITY.clone();e=k.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(k.ONE).sub(e.add(2).mul(o).div(k.mul(2,e).add(2)));if(u.eq(k.ZERO))return e;var l=e.sub(o.div(u));if(k.abs(l.sub(e)).lt(k.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 x,k=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),O=0;if((w=o.sign*Math.pow(10,m+b)+s.sign*Math.pow(10,v+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(N=new r).sign=1,N.array=O>l||O<-l?[f(O,0),f(1,1)]:[f(Math.pow(10,Math.abs(O)),0)],N.small=O<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:"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(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:"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 O(r){return isFinite(r)?r.toString():"!"}function d(r,e,t){return"10{".concat(O(r),",").concat(O(e),",").concat(t,"}").concat(u)}var E=c.clone(),I=new r(h(0)),x=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 O=I.toNumber();if(b.eq(2))return r.BEAF(E,E,O-1,p,m,l,v+1);if(E.max(b).gt(d(O+1,p.toNumber(),m.toNumber())))return E.max(b);if(E.gt(d(O,p.toNumber(),m.toNumber()))||b.gt(u)){E.gt(d(O,p.toNumber(),m.toNumber()))?((N=E.clone()).setOperator(N.getOperator(O,p.toNumber(),m.toNumber())-1,O,p.toNumber(),m.toNumber()),N.normalize()):N=E.gt(d.apply(void 0,a(w(O-1,p.toNumber(),m.toNumber()))))?new r(E.getOperator.apply(E,a(w(O-1,p.toNumber(),m.toNumber())))):r.ZERO;var x=N.add(b);return x.setOperator(x.getOperator(O,p.toNumber(),m.toNumber())+1,O,p.toNumber(),m.toNumber()),x.normalize(),x}if(v>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,O,p.toNumber(),m.toNumber())]});var k=b.toNumber(),M=Math.floor(k),q=I.sub(r.ONE);N=r.BEAF(E,k-M,q.toNumber(),p,m,l,v+1);for(var S=0,T=new r(d.apply(void 0,a(w(O-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(O-1,p.toNumber(),m.toNumber())))+M].concat(a(w(O-1,p.toNumber(),m.toNumber())))),N.normalize(),N}(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)),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 O=w.length>=17?h(w):Math.log10(Number(w)),d=O-(Math.floor(O)-1);b[0]=Math.pow(10,d),b[1]+=d}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 x=!1,k=!1;if("-"==e[0]||"+"==e[0]){var M=e.search(/[^-\+]/);x=(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(/[^\/]/);k=(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 x&&(y.sign*=-1),k&&(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)&&!O(t)&&!d(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,k.ZERO=new k({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),k.ONE=new k({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),k.MSI=new k(u),k.MSI_REC=((x=new k(u)).small=!0,x),k.E_MSI=new k({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),k.EE_MSI=new k({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),k.E_MSI_REC=new k({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),k.TETRATED_MSI=new k({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),k.PENTATED_MSI=new k({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),k.TRITRI=new k({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),k.GRAHAMS_NUMBER=new k("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),k.POSITIVE_INFINITY=new k(1/0),k.NEGATIVE_INFINITY=new k(-1/0),k.NaN=new k({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),k.E=new k(Math.E),k.LN2=new k(Math.LN2),k.LN10=new k(Math.LN10),k.LOG2E=new k(Math.LOG2E),k.LOG10E=new k(Math.LOG10E),k.PI=new k(Math.PI),k.SQRT1_2=new k(Math.SQRT1_2),k.SQRT2=new k(Math.SQRT2),k.maxOps=100,k.POW_2_44_MOD_PI=1.701173079953,k.arrowFuncMap=new Map,r.arraySortFunction=I,r.default=k,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,6 +99,38 @@ 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;
|
|
103
135
|
slog(base?: PowiainaNumSource): PowiainaNum;
|
|
104
136
|
static tetrate(t: PowiainaNumSource, other2: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum;
|
|
@@ -125,6 +157,10 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
125
157
|
* @returns
|
|
126
158
|
*/
|
|
127
159
|
anyarrow_log(arrow2: PowiainaNumSource): (base: PowiainaNumSource, depth?: number) => PowiainaNum;
|
|
160
|
+
/**
|
|
161
|
+
* base{height}base
|
|
162
|
+
*/
|
|
163
|
+
static arrFrac(base: PowiainaNumSource, height: PowiainaNumSource): PowiainaNum;
|
|
128
164
|
/**
|
|
129
165
|
* Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
|
|
130
166
|
* @param arrows
|
|
@@ -154,7 +190,8 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
154
190
|
explosion(other: PowiainaNumSource): PowiainaNum;
|
|
155
191
|
megotion(other: PowiainaNumSource): PowiainaNum;
|
|
156
192
|
powiaination(other: PowiainaNumSource): PowiainaNum;
|
|
157
|
-
static BEAF(
|
|
193
|
+
static BEAF(...args: PowiainaNumSource[]): PowiainaNum;
|
|
194
|
+
static BEAF_core(base2: PowiainaNumSource, power2: PowiainaNumSource, arrow2?: PowiainaNumSource, expans2?: PowiainaNumSource, megota2?: PowiainaNumSource, powiaina2?: PowiainaNumSource, depth?: number): PowiainaNum;
|
|
158
195
|
abs(): PowiainaNum;
|
|
159
196
|
static abs(x: PowiainaNumSource): PowiainaNum;
|
|
160
197
|
/**
|
package/package.json
CHANGED