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