powiaina_num.js 0.2.0-alpha.5 → 0.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/PowiainaNum.cjs.js +50 -9
- package/dist/PowiainaNum.esm.js +50 -9
- package/dist/PowiainaNum.js +50 -9
- package/dist/PowiainaNum.min.js +1 -1
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.
|
|
6
6
|
|
|
7
|
-
This reaches level f<sub>ω<sup>3</sup>+1</sub
|
|
7
|
+
This reaches level f<sub>ω<sup>3</sup>+1</sub>, which the operation [powiaination](https://googology.fandom.com/wiki/Powiaination) also is at, hence the name.
|
|
8
8
|
|
|
9
9
|
Internally, it is represented as an sign, array, small, and layer. Sign is 1 or -1. . Layer is a non-negative integer.
|
|
10
10
|
|
|
@@ -24,7 +24,7 @@ If arrow count or expans count is Infinite, the count replaces to the next opera
|
|
|
24
24
|
|
|
25
25
|
Some codes snippet from [ExpantaNum.js by Naruyoko](https://github.com/Naruyoko/ExpantaNum.js)
|
|
26
26
|
|
|
27
|
-
Functions are as follows `abs, neg, add, sub, mul, div, rec, pow, pow10, pow_base, sqrt, cbrt, root, log10, log, cmp, rec, gamma, mod, exp, ln, slog, factorial, tetrate_10, isFinite, isInfinite, isNaN, tetrate, lambertw, toString, toJSON, floor, ceil, round, trunc, clampMax, clampMin, arrow, expansion, expansionArrow, multiExpansion, powerExpansion, explosion, megotion, BEAF`
|
|
27
|
+
Functions are as follows `abs, neg, add, sub, mul, div, rec, pow, pow10, pow_base, sqrt, cbrt, root, log10, log, cmp, rec, gamma, mod, exp, ln, slog, factorial, tetrate_10, isFinite, isInfinite, isNaN, tetrate, lambertw, toString, toJSON, floor, ceil, round, trunc, clampMax, clampMin, arrow, expansion, expansionArrow, multiExpansion, powerExpansion, explosion, megotion, BEAF, powiaination`
|
|
28
28
|
|
|
29
29
|
## Using
|
|
30
30
|
|
package/dist/PowiainaNum.cjs.js
CHANGED
|
@@ -72,7 +72,7 @@ var MSI_LOG10 = 15.954589770191003;
|
|
|
72
72
|
var MSI_REC = 1.1102230246251568e-16;
|
|
73
73
|
var LONG_STRING_MIN_LENGTH = 17;
|
|
74
74
|
var EXP_E_REC = 1.444667861009766;
|
|
75
|
-
var isPowiainaNum = /^(PN)?[\/\-\+]*(Infinity|NaN|(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;
|
|
75
|
+
var isPowiainaNum = /^(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+))$/;
|
|
76
76
|
//#region some useful functions
|
|
77
77
|
function newOperator(r) {
|
|
78
78
|
var a = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
@@ -1175,6 +1175,11 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1175
1175
|
value: function megotion(other) {
|
|
1176
1176
|
return PowiainaNum.BEAF(this, other, 1, 1, 2);
|
|
1177
1177
|
}
|
|
1178
|
+
}, {
|
|
1179
|
+
key: "powiaination",
|
|
1180
|
+
value: function powiaination(other) {
|
|
1181
|
+
return PowiainaNum.BEAF(this, other, 1, 1, 1, 2);
|
|
1182
|
+
}
|
|
1178
1183
|
}, {
|
|
1179
1184
|
key: "abs",
|
|
1180
1185
|
value:
|
|
@@ -1568,6 +1573,15 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1568
1573
|
this.setOperator(Math.log10(this.getOperator(0)), 0);
|
|
1569
1574
|
renormalize = true;
|
|
1570
1575
|
}
|
|
1576
|
+
if (this.array[this.array.length - 1].megota > MSI) {
|
|
1577
|
+
this.layer++;
|
|
1578
|
+
this.array = [newOperator(this.array[this.array.length - 1].megota)];
|
|
1579
|
+
renormalize = true;
|
|
1580
|
+
} else if (this.layer && this.array.length == 1 && this.array[0].arrow === 0) {
|
|
1581
|
+
this.layer--;
|
|
1582
|
+
this.array = [newOperator(10), newOperator(1, 10, 10, this.array[0].repeat)];
|
|
1583
|
+
renormalize = true;
|
|
1584
|
+
}
|
|
1571
1585
|
// for a<1, turn into reciprocate
|
|
1572
1586
|
if (this.array.length == 1 && this.array[0].repeat < 1) {
|
|
1573
1587
|
this.array[0].repeat = 1 / this.array[0].repeat;
|
|
@@ -1729,8 +1743,9 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1729
1743
|
return "/".concat(this.rec().toString());
|
|
1730
1744
|
}
|
|
1731
1745
|
if (this.isInfi()) return "Infinity";
|
|
1732
|
-
//
|
|
1746
|
+
// P^a (10{arrow,expans,megota})^repeation base
|
|
1733
1747
|
var res = "";
|
|
1748
|
+
if (!this.layer) res += "";else if (this.layer < 3) res += "P".repeat(this.layer);else res += "P^" + this.layer + " ";
|
|
1734
1749
|
for (var i = this.array.length - 1; i >= 0; i--) {
|
|
1735
1750
|
var oper = this.array[i];
|
|
1736
1751
|
var calc = "10{".concat(oper.arrow === Infinity ? "!" : oper.arrow).concat(oper.expans > 1 || oper.megota > 1 ? ",".concat(oper.expans === Infinity ? "!" : oper.expans) : "").concat(oper.megota > 1 ? ",".concat(oper.megota) : "", "}");
|
|
@@ -1935,21 +1950,33 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1935
1950
|
// if (sufpowiaina.filter((f) => new PowiainaNum(f).gte(2)).length > 0) {
|
|
1936
1951
|
// return PowiainaNum.POSITIVE_INFINITY;
|
|
1937
1952
|
// }
|
|
1953
|
+
if (new PowiainaNum(powiaina2).gte(3)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1938
1954
|
if (readArg(0).eq(1) && readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1939
1955
|
return base.pow(power);
|
|
1940
1956
|
}
|
|
1941
|
-
if (readArg(0).eq(2) && readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1957
|
+
if (readArg(0).eq(2) && readArg(1).eq(1) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1942
1958
|
return base.tetrate(power);
|
|
1943
1959
|
}
|
|
1944
|
-
if (readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1960
|
+
if (readArg(1).eq(1) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1945
1961
|
return base.arrow(readArg(0))(power);
|
|
1946
1962
|
}
|
|
1947
|
-
if (readArg(1).eq(2) && readArg(2).eq(1)) {
|
|
1963
|
+
if (readArg(1).eq(2) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1948
1964
|
return base.expansionArrow(readArg(0))(power);
|
|
1949
1965
|
}
|
|
1950
|
-
readArg(0).toNumber();
|
|
1966
|
+
var arrow = readArg(0).toNumber();
|
|
1951
1967
|
var expans = readArg(1);
|
|
1952
1968
|
var megota = readArg(2);
|
|
1969
|
+
var powiaina = readArg(3);
|
|
1970
|
+
if (powiaina.eq(2)) {
|
|
1971
|
+
if (arrow != 1) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1972
|
+
if (expans.neq(1)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1973
|
+
if (megota.neq(1)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1974
|
+
if (power.gte(MSI)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1975
|
+
var r = new PowiainaNum(10);
|
|
1976
|
+
r.layer = power.toNumber();
|
|
1977
|
+
r.normalize();
|
|
1978
|
+
return r;
|
|
1979
|
+
}
|
|
1953
1980
|
function convertOperator(arrows, expans, megota) {
|
|
1954
1981
|
var a = arrows;
|
|
1955
1982
|
var e = expans;
|
|
@@ -1963,7 +1990,10 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1963
1990
|
return [a, e, m];
|
|
1964
1991
|
}
|
|
1965
1992
|
if (megota.gt(MSI)) {
|
|
1966
|
-
|
|
1993
|
+
var temp = new PowiainaNum(megota);
|
|
1994
|
+
temp.layer++;
|
|
1995
|
+
temp.normalize();
|
|
1996
|
+
return temp;
|
|
1967
1997
|
}
|
|
1968
1998
|
function infToBang(x) {
|
|
1969
1999
|
if (!isFinite(x)) return "!";
|
|
@@ -1993,8 +2023,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1993
2023
|
return PowiainaNum.BEAF(t, t, power, expans.sub(1), megota, powiaina2, depth + 1);
|
|
1994
2024
|
// {this, this, power, expans-1, megota}
|
|
1995
2025
|
}
|
|
1996
|
-
if (
|
|
1997
|
-
return PowiainaNum.BEAF(t, t, t,
|
|
2026
|
+
if (megota.eq(0)) {
|
|
2027
|
+
return PowiainaNum.BEAF(t, t, t, t, expans, new PowiainaNum(powiaina2).sub(1), depth + 1);
|
|
1998
2028
|
}
|
|
1999
2029
|
// expans > 9e15, that using 10{?, x}, x=expans;
|
|
2000
2030
|
if (expans.gt(MSI)) {
|
|
@@ -2227,6 +2257,17 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2227
2257
|
x.sign = 1;
|
|
2228
2258
|
x.array = [newOperator(0)];
|
|
2229
2259
|
var a, b, c, d;
|
|
2260
|
+
if (input[0] == "P") {
|
|
2261
|
+
if (input[1] == "^") {
|
|
2262
|
+
a = input.substring(2).search(/[^0-9]/) + 2;
|
|
2263
|
+
x.layer = Number(input.substring(2, a));
|
|
2264
|
+
input = input.substring(a + 1);
|
|
2265
|
+
} else {
|
|
2266
|
+
a = input.search(/[^P]/);
|
|
2267
|
+
x.layer = a;
|
|
2268
|
+
input = input.substring(a);
|
|
2269
|
+
}
|
|
2270
|
+
}
|
|
2230
2271
|
while (input) {
|
|
2231
2272
|
if (/^(\(?10[\^\{])/.test(input)) {
|
|
2232
2273
|
/*
|
package/dist/PowiainaNum.esm.js
CHANGED
|
@@ -68,7 +68,7 @@ var MSI_LOG10 = 15.954589770191003;
|
|
|
68
68
|
var MSI_REC = 1.1102230246251568e-16;
|
|
69
69
|
var LONG_STRING_MIN_LENGTH = 17;
|
|
70
70
|
var EXP_E_REC = 1.444667861009766;
|
|
71
|
-
var isPowiainaNum = /^(PN)?[\/\-\+]*(Infinity|NaN|(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;
|
|
71
|
+
var isPowiainaNum = /^(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+))$/;
|
|
72
72
|
//#region some useful functions
|
|
73
73
|
function newOperator(r) {
|
|
74
74
|
var a = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
@@ -1171,6 +1171,11 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1171
1171
|
value: function megotion(other) {
|
|
1172
1172
|
return PowiainaNum.BEAF(this, other, 1, 1, 2);
|
|
1173
1173
|
}
|
|
1174
|
+
}, {
|
|
1175
|
+
key: "powiaination",
|
|
1176
|
+
value: function powiaination(other) {
|
|
1177
|
+
return PowiainaNum.BEAF(this, other, 1, 1, 1, 2);
|
|
1178
|
+
}
|
|
1174
1179
|
}, {
|
|
1175
1180
|
key: "abs",
|
|
1176
1181
|
value:
|
|
@@ -1564,6 +1569,15 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1564
1569
|
this.setOperator(Math.log10(this.getOperator(0)), 0);
|
|
1565
1570
|
renormalize = true;
|
|
1566
1571
|
}
|
|
1572
|
+
if (this.array[this.array.length - 1].megota > MSI) {
|
|
1573
|
+
this.layer++;
|
|
1574
|
+
this.array = [newOperator(this.array[this.array.length - 1].megota)];
|
|
1575
|
+
renormalize = true;
|
|
1576
|
+
} else if (this.layer && this.array.length == 1 && this.array[0].arrow === 0) {
|
|
1577
|
+
this.layer--;
|
|
1578
|
+
this.array = [newOperator(10), newOperator(1, 10, 10, this.array[0].repeat)];
|
|
1579
|
+
renormalize = true;
|
|
1580
|
+
}
|
|
1567
1581
|
// for a<1, turn into reciprocate
|
|
1568
1582
|
if (this.array.length == 1 && this.array[0].repeat < 1) {
|
|
1569
1583
|
this.array[0].repeat = 1 / this.array[0].repeat;
|
|
@@ -1725,8 +1739,9 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1725
1739
|
return "/".concat(this.rec().toString());
|
|
1726
1740
|
}
|
|
1727
1741
|
if (this.isInfi()) return "Infinity";
|
|
1728
|
-
//
|
|
1742
|
+
// P^a (10{arrow,expans,megota})^repeation base
|
|
1729
1743
|
var res = "";
|
|
1744
|
+
if (!this.layer) res += "";else if (this.layer < 3) res += "P".repeat(this.layer);else res += "P^" + this.layer + " ";
|
|
1730
1745
|
for (var i = this.array.length - 1; i >= 0; i--) {
|
|
1731
1746
|
var oper = this.array[i];
|
|
1732
1747
|
var calc = "10{".concat(oper.arrow === Infinity ? "!" : oper.arrow).concat(oper.expans > 1 || oper.megota > 1 ? ",".concat(oper.expans === Infinity ? "!" : oper.expans) : "").concat(oper.megota > 1 ? ",".concat(oper.megota) : "", "}");
|
|
@@ -1931,21 +1946,33 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1931
1946
|
// if (sufpowiaina.filter((f) => new PowiainaNum(f).gte(2)).length > 0) {
|
|
1932
1947
|
// return PowiainaNum.POSITIVE_INFINITY;
|
|
1933
1948
|
// }
|
|
1949
|
+
if (new PowiainaNum(powiaina2).gte(3)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1934
1950
|
if (readArg(0).eq(1) && readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1935
1951
|
return base.pow(power);
|
|
1936
1952
|
}
|
|
1937
|
-
if (readArg(0).eq(2) && readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1953
|
+
if (readArg(0).eq(2) && readArg(1).eq(1) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1938
1954
|
return base.tetrate(power);
|
|
1939
1955
|
}
|
|
1940
|
-
if (readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1956
|
+
if (readArg(1).eq(1) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1941
1957
|
return base.arrow(readArg(0))(power);
|
|
1942
1958
|
}
|
|
1943
|
-
if (readArg(1).eq(2) && readArg(2).eq(1)) {
|
|
1959
|
+
if (readArg(1).eq(2) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1944
1960
|
return base.expansionArrow(readArg(0))(power);
|
|
1945
1961
|
}
|
|
1946
|
-
readArg(0).toNumber();
|
|
1962
|
+
var arrow = readArg(0).toNumber();
|
|
1947
1963
|
var expans = readArg(1);
|
|
1948
1964
|
var megota = readArg(2);
|
|
1965
|
+
var powiaina = readArg(3);
|
|
1966
|
+
if (powiaina.eq(2)) {
|
|
1967
|
+
if (arrow != 1) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1968
|
+
if (expans.neq(1)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1969
|
+
if (megota.neq(1)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1970
|
+
if (power.gte(MSI)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1971
|
+
var r = new PowiainaNum(10);
|
|
1972
|
+
r.layer = power.toNumber();
|
|
1973
|
+
r.normalize();
|
|
1974
|
+
return r;
|
|
1975
|
+
}
|
|
1949
1976
|
function convertOperator(arrows, expans, megota) {
|
|
1950
1977
|
var a = arrows;
|
|
1951
1978
|
var e = expans;
|
|
@@ -1959,7 +1986,10 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1959
1986
|
return [a, e, m];
|
|
1960
1987
|
}
|
|
1961
1988
|
if (megota.gt(MSI)) {
|
|
1962
|
-
|
|
1989
|
+
var temp = new PowiainaNum(megota);
|
|
1990
|
+
temp.layer++;
|
|
1991
|
+
temp.normalize();
|
|
1992
|
+
return temp;
|
|
1963
1993
|
}
|
|
1964
1994
|
function infToBang(x) {
|
|
1965
1995
|
if (!isFinite(x)) return "!";
|
|
@@ -1989,8 +2019,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1989
2019
|
return PowiainaNum.BEAF(t, t, power, expans.sub(1), megota, powiaina2, depth + 1);
|
|
1990
2020
|
// {this, this, power, expans-1, megota}
|
|
1991
2021
|
}
|
|
1992
|
-
if (
|
|
1993
|
-
return PowiainaNum.BEAF(t, t, t,
|
|
2022
|
+
if (megota.eq(0)) {
|
|
2023
|
+
return PowiainaNum.BEAF(t, t, t, t, expans, new PowiainaNum(powiaina2).sub(1), depth + 1);
|
|
1994
2024
|
}
|
|
1995
2025
|
// expans > 9e15, that using 10{?, x}, x=expans;
|
|
1996
2026
|
if (expans.gt(MSI)) {
|
|
@@ -2223,6 +2253,17 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2223
2253
|
x.sign = 1;
|
|
2224
2254
|
x.array = [newOperator(0)];
|
|
2225
2255
|
var a, b, c, d;
|
|
2256
|
+
if (input[0] == "P") {
|
|
2257
|
+
if (input[1] == "^") {
|
|
2258
|
+
a = input.substring(2).search(/[^0-9]/) + 2;
|
|
2259
|
+
x.layer = Number(input.substring(2, a));
|
|
2260
|
+
input = input.substring(a + 1);
|
|
2261
|
+
} else {
|
|
2262
|
+
a = input.search(/[^P]/);
|
|
2263
|
+
x.layer = a;
|
|
2264
|
+
input = input.substring(a);
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2226
2267
|
while (input) {
|
|
2227
2268
|
if (/^(\(?10[\^\{])/.test(input)) {
|
|
2228
2269
|
/*
|
package/dist/PowiainaNum.js
CHANGED
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
var MSI_REC = 1.1102230246251568e-16;
|
|
75
75
|
var LONG_STRING_MIN_LENGTH = 17;
|
|
76
76
|
var EXP_E_REC = 1.444667861009766;
|
|
77
|
-
var isPowiainaNum = /^(PN)?[\/\-\+]*(Infinity|NaN|(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;
|
|
77
|
+
var isPowiainaNum = /^(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+))$/;
|
|
78
78
|
//#region some useful functions
|
|
79
79
|
function newOperator(r) {
|
|
80
80
|
var a = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
@@ -1177,6 +1177,11 @@
|
|
|
1177
1177
|
value: function megotion(other) {
|
|
1178
1178
|
return PowiainaNum.BEAF(this, other, 1, 1, 2);
|
|
1179
1179
|
}
|
|
1180
|
+
}, {
|
|
1181
|
+
key: "powiaination",
|
|
1182
|
+
value: function powiaination(other) {
|
|
1183
|
+
return PowiainaNum.BEAF(this, other, 1, 1, 1, 2);
|
|
1184
|
+
}
|
|
1180
1185
|
}, {
|
|
1181
1186
|
key: "abs",
|
|
1182
1187
|
value:
|
|
@@ -1570,6 +1575,15 @@
|
|
|
1570
1575
|
this.setOperator(Math.log10(this.getOperator(0)), 0);
|
|
1571
1576
|
renormalize = true;
|
|
1572
1577
|
}
|
|
1578
|
+
if (this.array[this.array.length - 1].megota > MSI) {
|
|
1579
|
+
this.layer++;
|
|
1580
|
+
this.array = [newOperator(this.array[this.array.length - 1].megota)];
|
|
1581
|
+
renormalize = true;
|
|
1582
|
+
} else if (this.layer && this.array.length == 1 && this.array[0].arrow === 0) {
|
|
1583
|
+
this.layer--;
|
|
1584
|
+
this.array = [newOperator(10), newOperator(1, 10, 10, this.array[0].repeat)];
|
|
1585
|
+
renormalize = true;
|
|
1586
|
+
}
|
|
1573
1587
|
// for a<1, turn into reciprocate
|
|
1574
1588
|
if (this.array.length == 1 && this.array[0].repeat < 1) {
|
|
1575
1589
|
this.array[0].repeat = 1 / this.array[0].repeat;
|
|
@@ -1731,8 +1745,9 @@
|
|
|
1731
1745
|
return "/".concat(this.rec().toString());
|
|
1732
1746
|
}
|
|
1733
1747
|
if (this.isInfi()) return "Infinity";
|
|
1734
|
-
//
|
|
1748
|
+
// P^a (10{arrow,expans,megota})^repeation base
|
|
1735
1749
|
var res = "";
|
|
1750
|
+
if (!this.layer) res += "";else if (this.layer < 3) res += "P".repeat(this.layer);else res += "P^" + this.layer + " ";
|
|
1736
1751
|
for (var i = this.array.length - 1; i >= 0; i--) {
|
|
1737
1752
|
var oper = this.array[i];
|
|
1738
1753
|
var calc = "10{".concat(oper.arrow === Infinity ? "!" : oper.arrow).concat(oper.expans > 1 || oper.megota > 1 ? ",".concat(oper.expans === Infinity ? "!" : oper.expans) : "").concat(oper.megota > 1 ? ",".concat(oper.megota) : "", "}");
|
|
@@ -1937,21 +1952,33 @@
|
|
|
1937
1952
|
// if (sufpowiaina.filter((f) => new PowiainaNum(f).gte(2)).length > 0) {
|
|
1938
1953
|
// return PowiainaNum.POSITIVE_INFINITY;
|
|
1939
1954
|
// }
|
|
1955
|
+
if (new PowiainaNum(powiaina2).gte(3)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1940
1956
|
if (readArg(0).eq(1) && readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1941
1957
|
return base.pow(power);
|
|
1942
1958
|
}
|
|
1943
|
-
if (readArg(0).eq(2) && readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1959
|
+
if (readArg(0).eq(2) && readArg(1).eq(1) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1944
1960
|
return base.tetrate(power);
|
|
1945
1961
|
}
|
|
1946
|
-
if (readArg(1).eq(1) && readArg(2).eq(1)) {
|
|
1962
|
+
if (readArg(1).eq(1) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1947
1963
|
return base.arrow(readArg(0))(power);
|
|
1948
1964
|
}
|
|
1949
|
-
if (readArg(1).eq(2) && readArg(2).eq(1)) {
|
|
1965
|
+
if (readArg(1).eq(2) && readArg(2).eq(1) && readArg(3).eq(1)) {
|
|
1950
1966
|
return base.expansionArrow(readArg(0))(power);
|
|
1951
1967
|
}
|
|
1952
|
-
readArg(0).toNumber();
|
|
1968
|
+
var arrow = readArg(0).toNumber();
|
|
1953
1969
|
var expans = readArg(1);
|
|
1954
1970
|
var megota = readArg(2);
|
|
1971
|
+
var powiaina = readArg(3);
|
|
1972
|
+
if (powiaina.eq(2)) {
|
|
1973
|
+
if (arrow != 1) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1974
|
+
if (expans.neq(1)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1975
|
+
if (megota.neq(1)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1976
|
+
if (power.gte(MSI)) return PowiainaNum.POSITIVE_INFINITY.clone();
|
|
1977
|
+
var r = new PowiainaNum(10);
|
|
1978
|
+
r.layer = power.toNumber();
|
|
1979
|
+
r.normalize();
|
|
1980
|
+
return r;
|
|
1981
|
+
}
|
|
1955
1982
|
function convertOperator(arrows, expans, megota) {
|
|
1956
1983
|
var a = arrows;
|
|
1957
1984
|
var e = expans;
|
|
@@ -1965,7 +1992,10 @@
|
|
|
1965
1992
|
return [a, e, m];
|
|
1966
1993
|
}
|
|
1967
1994
|
if (megota.gt(MSI)) {
|
|
1968
|
-
|
|
1995
|
+
var temp = new PowiainaNum(megota);
|
|
1996
|
+
temp.layer++;
|
|
1997
|
+
temp.normalize();
|
|
1998
|
+
return temp;
|
|
1969
1999
|
}
|
|
1970
2000
|
function infToBang(x) {
|
|
1971
2001
|
if (!isFinite(x)) return "!";
|
|
@@ -1995,8 +2025,8 @@
|
|
|
1995
2025
|
return PowiainaNum.BEAF(t, t, power, expans.sub(1), megota, powiaina2, depth + 1);
|
|
1996
2026
|
// {this, this, power, expans-1, megota}
|
|
1997
2027
|
}
|
|
1998
|
-
if (
|
|
1999
|
-
return PowiainaNum.BEAF(t, t, t,
|
|
2028
|
+
if (megota.eq(0)) {
|
|
2029
|
+
return PowiainaNum.BEAF(t, t, t, t, expans, new PowiainaNum(powiaina2).sub(1), depth + 1);
|
|
2000
2030
|
}
|
|
2001
2031
|
// expans > 9e15, that using 10{?, x}, x=expans;
|
|
2002
2032
|
if (expans.gt(MSI)) {
|
|
@@ -2229,6 +2259,17 @@
|
|
|
2229
2259
|
x.sign = 1;
|
|
2230
2260
|
x.array = [newOperator(0)];
|
|
2231
2261
|
var a, b, c, d;
|
|
2262
|
+
if (input[0] == "P") {
|
|
2263
|
+
if (input[1] == "^") {
|
|
2264
|
+
a = input.substring(2).search(/[^0-9]/) + 2;
|
|
2265
|
+
x.layer = Number(input.substring(2, a));
|
|
2266
|
+
input = input.substring(a + 1);
|
|
2267
|
+
} else {
|
|
2268
|
+
a = input.search(/[^P]/);
|
|
2269
|
+
x.layer = a;
|
|
2270
|
+
input = input.substring(a);
|
|
2271
|
+
}
|
|
2272
|
+
}
|
|
2232
2273
|
while (input) {
|
|
2233
2274
|
if (/^(\(?10[\^\{])/.test(input)) {
|
|
2234
2275
|
/*
|
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|(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function f(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:a,valuereplaced:e==1/0?0:t==1/0?1:-1}}function g(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var a=0;a<Math.min(e[0].length,e[1].length);a++){var n=e[0][a],i=e[1][a];if(n<i)return-1;if(n>i)return 1}return 0}function h(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var p=.5671432904097838;function y(r){var e,t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!Number.isFinite(r))return r;if(n){if(0===r)return r;if(1===r)return p;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var i=0;i<100;++i){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<a*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function m(r){return 2==r.length}function N(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function v(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new O(r)).isFinite())return r;if(a){if(r.eq(O.ZERO))return r;if(r.eq(O.ONE))return new O(p);e=O.log(r)}else{if(r.eq(O.ZERO))return O.NEGATIVE_INFINITY.clone();e=O.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(O.ONE).sub(e.add(2).mul(o).div(O.mul(2,e).add(2)));if(u.eq(O.ZERO))return e;var l=e.sub(o.div(u));if(O.abs(l.sub(e)).lt(O.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function w(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var b,O=function(){function r(e){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[o]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==i(e)){var a=r.fromObject(e);this.resetFromObject(a)}else if("string"==typeof e){var n=r.fromString(e);this.resetFromObject(n)}}return function(r,e,a){return e&&t(r.prototype,e),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,a,n,i,o,s,c=this.clone(),g=new r(e);if(c.eq(r.POSITIVE_INFINITY)&&g.eq(r.NEGATIVE_INFINITY)||c.eq(r.NEGATIVE_INFINITY)&&g.eq(r.POSITIVE_INFINITY))return r.NaN.clone();if(!c.isFinite())return c.clone();if(!g.isFinite())return g.clone();if(c.isZero())return g.clone();if(g.isZero())return c.clone();if(c.sign==-g.sign&&function(){var r=c.abs(),e=g.abs();return r.eq(e)}())return r.ZERO.clone();if(c.abs().lt(u)&&g.abs().lt(u))return r.fromNumber(c.toNumber()+g.toNumber());if(c.abs().lt(r.E_MSI_REC)||c.abs().gt(r.E_MSI)||g.abs().lt(r.E_MSI_REC)||g.abs().gt(r.E_MSI))return c.maxabs(g);if(-1==c.sign)return c.neg().add(g.neg()).neg();c.cmpabs(g)>0?(o=c,s=g):(s=c,o=g);var h=o.toNumber()+s.toNumber();if(isFinite(h)&&0!==h)return r.fromNumber(h);var p=1;if(!(o.small||s.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(a=s.array[1])||void 0===a?void 0:a.repeat)||o.sign!=s.sign))return new r((o.array[0].repeat+s.array[0].repeat)*o.sign);var y=(o.small?-1:1)*((null===(n=o.array[1])||void 0===n?void 0:n.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),m=(s.small?-1:1)*((null===(i=s.array[1])||void 0===i?void 0:i.repeat)?s.array[0].repeat:Math.log10(s.array[0].repeat));if(y-m>l)return o;var N,v,w=-Math.floor(y),b=0;if((v=o.sign*Math.pow(10,y+w)+s.sign*Math.pow(10,m+w))>0&&(b=Math.log10(v)-w),v<0&&(b=Math.log10(-v)-w,p*=-1),0==v)throw Error("Encounter a calculate error");return(N=new r).sign=1,N.array=b>l||b<-l?[f(b,0),f(1,1)]:[f(Math.pow(10,Math.abs(b)),0)],N.small=b<0,N.sign*=p,N}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"mul",value:function(e){var t=this.clone(),a=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY)||a.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&a.isZero()||a.isInfiNaN()&&t.isZero())return r.NaN.clone();if(t.eq(r.NEGATIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!a.isFinite())return a.clone();if(t.isZero()||a.isZero())return r.ZERO.clone();var n,i=t.toNumber()*a.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((n=t.abs().log10().add(a.abs().log10()).pow10()).sign=t.sign*a.sign,n)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"mod",value:function(e){var t=new r(e),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"pow10",value:function(){var e,t,a=this.clone();return this.isFinite()?a.isneg()?(a.sign*=-1,a.pow10().rec()):a.lte(308.25471555991675)?r.fromNumber(Math.pow(10,a.toNumber())):a.small?a.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(a.array[0].repeat,-1))):(a.gt(r.TETRATED_MSI)||(a.setOperator((null!==(t=null===(e=a.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),a.normalize()),a):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(this.isneg()){if(!t.isInt())return r.NaN.clone();var a=this.abs().pow(t);return a.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),a}var n=this.toNumber(),i=t.toNumber(),o=Math.pow(n,i);return isFinite(o)&&0!==o?r.fromNumber(o):this.isZero()&&t.isZero()?r.ONE.clone():this.isZero()?r.ZERO.clone():t.isZero()?r.ONE.clone():this.gt(0)?this.log10().mul(t).pow10():t.rec().mod(2).eq(1)?this.neg().log10().mul(t).pow10().neg():r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg())return r.NaN.clone();if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"ln",value:function(){return this.log()}},{key:"plog10",value:function(){return this.max(1).log10()}},{key:"plog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.plog10().div(t.plog10())}},{key:"pln",value:function(){return this.plog()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(u)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(u)){if(this.lt(24))return r.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var t=.9189385332046727;t+=((r-=1)+.5)*Math.log(r),t-=r;var a=r*r,n=r;return t+=1/(12*n),t-=1/(360*(n*=a)),t+=1/(1260*(n*=a)),t-=1/(1680*(n*=a)),t+=1/(1188*(n*=a)),t-=691/(360360*(n*=a)),t+=7/(1092*(n*=a)),t-=3617/(122400*(n*=a)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var a=e*e,n=e,i=12*n,o=1/i,l=(t-=e)+o;if(l===t)return r.exp(t);if((l=(t=l)-(o=1/(i=360*(n*=a))))===t)return r.exp(t);t=l;var s=1/(i=1260*(n*=a));return t+=s,t-=s=1/(i=1680*(n*=a)),r.exp(t)}return this.gt(u)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?r.NaN.clone():e?this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(y(this.toNumber())):this.lt(u)?r.fromNumber(y(this.sign*this.getOperator(0))):this.lt("eee15")?v(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(y(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?v(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.clone(),i=new r(e),o=new r(a);if(n.isNaN()||i.isNaN()||o.isNaN())return r.NaN.clone();if(n.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&(i=i.add(o.slog(n))),i.isInfi()&&i.sign>0)return n.gte(s)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2))return r.NaN.clone();if(n.isZero())return i.isZero()?r.NaN.clone():i.gte(u/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone();if(n.eq(r.ONE))return i.eq(r.ONE.neg())?r.NaN.clone():r.ONE.clone();if(i.eq(r.ONE.neg()))return r.ZERO.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return n;if(i.eq(2))return n.pow(n);if(n.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var l=n.max(i);if(l.gt(r.PENTATED_MSI))return l;if(l.gt(r.TETRATED_MSI)||i.gt(u)){if(this.lt(s))return(t=n.ln().neg()).lambertw().div(t);var c=n.slog(10).add(i);return c.setOperator(c.getOperator(2)+1,2),c.normalize(),c}for(var f=i.toNumber(),g=Math.floor(f),h=n.pow(f-g),p=r.NaN,y=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&y<100;++y)if(g>0){if(h=n.pow(h),p.eq(h)){g=0;break}p=h,--g}else{if(h=h.log(n),p.eq(h)){g=0;break}p=h,++g}return(100==y||this.lt(s))&&(g=0),h.setOperator(h.getOperator(1)+g,1),h.normalize(),h}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),a=new r(e);if(t.isInfiNaN())return t;if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(a.lt(s)){var n=a.tetrate(1/0);if(t.eq(n))return r.POSITIVE_INFINITY.clone();if(t.gt(n))return r.NaN.clone()}if(t.max(a).gt(r.PENTATED_MSI))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.TETRATED_MSI)&&t.gt(a))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return a.pow(t).sub(2);var i=0,o=t.getOperator(1)-a.getOperator(1);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(1)-u,1)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=r.pow(e,t),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=r.log(t,e)}return t.gt(10)?new r(i):r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/s))return r.NaN.clone();if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"arrow",value:function(e){var t=this.clone(),a=new r(e);return!a.isInt()||a.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){return r.NaN.clone()}):a.eq(0)?function(r){return t.mul(r)}:a.eq(1)?function(r){return t.pow(r)}:a.eq(2)?function(r){return t.tetrate(r)}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e),o=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n));if(o)return o.clone();var l=function(){var e;if(t.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return i.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(t.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return t.clone();if(a.gt(r.MSI))return(e=a.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var o=a.toNumber();if(i.eq(2))return t.arrow(o-1)(t,n+1);if(t.max(i).gt(r.arrowMSI(o+1)))return t.max(i);if(t.gt(r.arrowMSI(o))||i.gt(u)){t.gt(r.arrowMSI(o))?((e=t.clone()).setOperator(e.getOperator(o)-1,o),e.normalize()):e=t.gt(r.arrowMSI(o-1))?new r(t.getOperator(o-1)):r.ZERO;var l=e.add(i);return l.setOperator(l.getOperator(o)+1,o),l.normalize(),l}if(n>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,o)]});var s=i.toNumber(),c=Math.floor(s),g=a.sub(r.ONE);e=t.arrow(g)(s-c,n+1);for(var h=0,p=r.arrowMSI(o-1);0!==c&&e.lt(p)&&h<100;h++)c>0&&(e=t.arrow(g)(e,n+1),--c);return 100==h&&(c=0),e.setOperator(e.getOperator(o-1)+c,o-1),e.normalize(),e}();return n<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n),l.clone()),l}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(u))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=new r(e);if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(t.max(a).gt(r.arrowMSI(n+1)))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.arrowMSI(n))&&t.gt(a))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone()))return r.NaN.clone();var i=0,o=t.getOperator(n)-a.getOperator(n);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(n)-u,n)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=t.anyarrow_log(n-1)(e)}return t.gt(10)?new r(i):r.NaN.clone()}}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r){return this.arrow(3)(r)}},{key:"hexate",value:function(r){return this.arrow(4)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt())return r.NaN.clone();if(this.eq(2))return new r(4);if(a.eq(0))return r.ONE.clone();if(n.gt("10{1,2}".concat(u))||a.gt(u)){n.gt("10{1,2}".concat(u))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(u,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var i=t.add(a);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,l=a.toNumber()-1;for(t=n.clone(),o=0;0!==l&&t.lt(u)&&o<100;++o)l>0&&(t=n.arrow(t)(n),--l);return 100==o&&(l=0),t.setOperator(t.getOperator(1/0)+l,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),a=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){return r.NaN.clone()};if(t.eq(0))return function(r){return a.arrow(r)(a)};if(t.eq(1))return function(r){return a.expansion(r)};var n=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(a.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(a.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(a.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return a.clone();if(n.gt(r.MSI))return(t=n.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var l=n.toNumber();if(o.eq(2))return a.expansionArrow(l-1)(a,i+1);if(a.max(o).gt("10{".concat(l+1,",2}").concat(u)))return a.max(o);if(a.gt("10{".concat(l,",2}").concat(u))||o.gt(u)){a.gt("10{".concat(l,",2}").concat(u))?((t=a.clone()).setOperator(t.getOperator(l,2)-1,l,2),t.normalize()):t=a.gt("10{".concat(l-1,",2}").concat(u))?new r(a.getOperator(l-1,2)):r.ZERO;var s=t.add(o);return s.setOperator(s.getOperator(l,2)+1,l,2),s.normalize(),s}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,l,2)]});var c=o.toNumber(),g=Math.floor(c),h=n.sub(r.ONE);t=a.expansionArrow(h)(c-g,i+1);for(var p=0,y=new r("10{".concat(l-1,",2}").concat(u));0!==g&&t.lt(y)&&p<100;p++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==p&&(g=0),t.setOperator(t.getOperator(l-1,2)+g,l-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(i)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(i)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);if(this.isNaN()||t.isNaN())return 2;if(this.sign<t.sign)return-1;if(this.sign>t.sign)return 1;var a=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(a?-1:1);if(t.small&&!this.small)return 1*(a?-1:1);var n=1;this.small&&t.small&&(n*=-1),a&&(n*=-1);for(var i=0,o=0;this.array.length-1-o>=0&&t.array.length-1-o>=0;o++){var u=this.array[this.array.length-1-o],l=t.array[t.array.length-1-o],s=g([u.megota,u.expans,u.arrow,u.repeat],[l.megota,l.expans,l.arrow,l.repeat]);if(1==s){i=1;break}if(-1==s){i=-1;break}}return i*n+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(u/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"normalize",value:function(){for(var e=!0,t=this,a=0;a<this.array.length;a++)if(this.array[a].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var n=1;n<t.array.length;++n){var i=t.array[n];if(null!==i.arrow&&void 0!==i.arrow||(i.arrow=0),null!==i.expans&&void 0!==i.expans||(i.expans=1),null!==i.megota&&void 0!==i.megota||(i.megota=1),isNaN(i.arrow)||isNaN(i.repeat)||isNaN(i.expans)||isNaN(i.megota))return t.array=[f(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[f(1/0,0,1,1)],t;Number.isInteger(i.arrow)||(i.arrow=Math.floor(i.arrow)),Number.isInteger(i.repeat)||(i.repeat=Math.floor(i.repeat)),Number.isInteger(i.expans)||(i.expans=Math.floor(i.expans)),Number.isInteger(i.megota)||(i.megota=Math.floor(i.megota))}t.array.length||(t.small=!t.small,t.array=[f(1/0)]);do{for(e=!1,this.array.sort(w),n=1;n<t.array.length-1;++n)t.array[n].arrow==t.array[n+1].arrow&&t.array[n].expans==t.array[n+1].expans&&t.array[n].megota==t.array[n+1].megota&&(t.array[n].repeat+=t.array[n+1].repeat,t.array.splice(n+1,1),--n,e=!0);for(n=1;n<t.array.length;++n)0===t.array[n].arrow||0!==t.array[n].repeat&&null!==t.array[n].repeat&&void 0!==t.array[n].repeat?0==t.array[n].arrow&&t.array[n].expans>=2&&(t.array[n].arrow=1/0,t.array[n].valuereplaced=0,t.array[n].expans=t.array[n].expans-1):(t.array.splice(n,1),--n);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<l&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>u&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!0);t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array[0].repeat<u&&t.array[1].arrow>=2&&1==t.array[1].repeat&&isFinite(t.array[1].arrow)&&(t.array.splice(1,1,f(t.array[0].repeat,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);return this}},{key:"getOperatorIndex",value:function(r){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=0;a<this.array.length;a++){var n=g([this.array[a].megota,this.array[a].expans,this.array[a].arrow],[t,e,r]);if(0==n)return a;if(1==n)return a-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=this.getOperatorIndex(r,e,t);return this.array[a]?this.array[a].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getOperatorIndex(e,t,a);return this.array[n]?(this.array[n].repeat=r,!1):(this.array.splice(Math.ceil(n),0,{arrow:e,expans:t,megota:a,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";for(var r="",e=this.array.length-1;e>=0;e--){var t=this.array[e],a="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");a=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(a,")^").concat(t.repeat," "):"".concat(a),r+="".concat(a)}return r}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}}],[{key:"add",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"plog10",value:function(e){return new r(e).plog10()}},{key:"plog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).plog(t)}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(u))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,a){return new r(e).arrow(t.sub(2))(a)}}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),g=new r(t);function h(e){var t;return new r(null!==(t=[n,i,o,l][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(g.eq(1))return new r(c);if(g.isZero())return new r(1);if(c.lt(0))return r.NaN.clone();if(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))return c.tetrate(g);if(h(1).eq(1)&&h(2).eq(1))return c.arrow(h(0))(g);if(h(1).eq(2)&&h(2).eq(1))return c.expansionArrow(h(0))(g);h(0).toNumber();var p=h(1),y=h(2);function m(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(y.gt(u))throw new Error("Not implemented megota > MSI");function N(r){return isFinite(r)?r.toString():"!"}function v(r,e,t){return"10{".concat(N(r),",").concat(N(e),",").concat(t,"}").concat(u)}var w=c.clone(),b=new r(h(0)),O=function(s){var h,N,O=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(O)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var E,d=new r(s);if(w.isNaN()||d.isNaN())return r.NaN.clone();if(d.lt(r.ZERO))return r.NaN.clone();if(w.eq(r.ZERO))return d.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(w.eq(r.ONE))return r.ONE.clone();if(d.eq(r.ZERO))return r.ONE.clone();if(d.eq(r.ONE))return w.clone();if(b.eq(0))return r.BEAF(w,w,g,p.sub(1),y,l,O+1);if(p.eq(0))return r.BEAF(w,w,w,n,y.sub(1),l,O+1);if(p.gt(u))return(E=new r(p)).setOperator(E.getOperator(1,1/0,y.toNumber())+1,1,1/0,y.toNumber()),E;if(b.gt(r.MSI))return(E=b.clone()).setOperator(E.getOperator(1/0,p.toNumber(),y.toNumber())+1,1/0,p.toNumber(),y.toNumber()),E;var I=b.toNumber();if(d.eq(2))return r.BEAF(w,w,I-1,p,y,l,O+1);if(w.max(d).gt(v(I+1,p.toNumber(),y.toNumber())))return w.max(d);if(w.gt(v(I,p.toNumber(),y.toNumber()))||d.gt(u)){w.gt(v(I,p.toNumber(),y.toNumber()))?((E=w.clone()).setOperator(E.getOperator(I,p.toNumber(),y.toNumber())-1,I,p.toNumber(),y.toNumber()),E.normalize()):E=w.gt(v.apply(void 0,a(m(I-1,p.toNumber(),y.toNumber()))))?new r(w.getOperator.apply(w,a(m(I-1,p.toNumber(),y.toNumber())))):r.ZERO;var M=E.add(d);return M.setOperator(M.getOperator(I,p.toNumber(),y.toNumber())+1,I,p.toNumber(),y.toNumber()),M.normalize(),M}if(O>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,I,p.toNumber(),y.toNumber())]});var x=d.toNumber(),k=Math.floor(x),q=b.sub(r.ONE);E=r.BEAF(w,x-k,q.toNumber(),p,y,l,O+1);for(var S=0,T=new r(v.apply(void 0,a(m(I-1,p.toNumber(),y.toNumber()))));0!==k&&E.lt(T)&&S<100;S++)k>0&&(E=r.BEAF(c,E,q.toNumber(),p,y,l,O+1),--k);return 100==S&&(k=0),(h=E).setOperator.apply(h,[(N=E).getOperator.apply(N,a(m(I-1,p.toNumber(),y.toNumber())))+k].concat(a(m(I-1,p.toNumber(),y.toNumber())))),E.normalize(),E}(g,s);return console.log("".concat("-".repeat(s)," = ").concat(O)),O}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.lt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.gt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromNumber",value:function(e){var t=new r;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[f(1/0,0)],t;e>0&&(t.sign=1)}var a=Math.abs(e);return a==1/0?t.array=[f(1/0,0)]:a>=11102230246251568e-32&&a<1?(t.small=!0,t.array=[f(1/a,0)]):a<11102230246251568e-32?(t.small=!0,t.array=[f(-Math.log10(a),0),f(1,1)]):a<=u?t.array=[f(a,0)]:(t.setOperator(Math.log10(a),0),t.array=[f(Math.log10(a),0),f(1,1)]),t}},{key:"fromString",value:function(e){var t,a,n,i,o,s,g,p=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var y=Number(e),m=!1;if(0==y?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var N=e.search(/e/),v=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var O=w.length>=17?h(w):Math.log10(Number(w)),E=O-(Math.floor(O)-1);b[0]=Math.pow(10,E),b[1]+=E}else{var d=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),d+=1,b[0]=Number(w),b[1]+=-d}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(y)&&m)return p=r.fromNumber(Number(e))}if(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)\x20*PT/g,"(10^)^$1 "),!c.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var I=!1,M=!1;if("-"==e[0]||"+"==e[0]){var x=e.search(/[^-\+]/);I=(null!==(a=null===(t=e.substring(0,x).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(x)}if("/"==e[0]){x=e.search(/[^\/]/);M=(null!==(i=null===(n=e.substring(0,x).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==i?i:0)%2==1,e=e.substring(x)}if("NaN"==e)p.array=[f(NaN)];else if("Infinity"==e)p.array=[f(1/0)];else{var k,q,S,T;for(p.sign=1,p.array=[f(0)];e&&/^(\(?10[\^\{])/.test(e);){var F,Z,R;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])F=k=e.substring(2).search(/[^\^]/),q=k+2;else{k=e.indexOf("}");var _=e.substring(3,k).split(",");F=Number("!"==_[0]?1/0:_[0]),Z=Number(null!==(o="!"==_[1]?1/0:_[1])&&void 0!==o?o:1),R=Number(null!==(s=_[2])&&void 0!==s?s:1),q=k+1}")"==(e=e.substring(q))[0]?(k=e.indexOf(" "),S=Number(e.substring(2,k)),e=e.substring(k+1)):S=1,1==F&&1==Z&&1==R?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=S:p.array.splice(1,0,f(S,1,Z,R)):2==F&&1==Z&&1==R?(k=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(q=p.array[0].repeat)>=1e10&&++k,q>=10&&++k,p.array[0].repeat=k,p.array.length>=2&&1==p.array[1].arrow&&p.array.splice(1,1),T=p.getOperatorIndex(2),Number.isInteger(T)?p.array[T].repeat+=S:p.array.splice(Math.ceil(T),0,f(S,2,Z,R))):isFinite(F)?(k=p.getOperator(F-1),(q=p.getOperator(F-2))>=10&&++k,T=p.getOperatorIndex(F),p.array.splice(1,Math.ceil(T)-1),p.array[0].repeat=k,Number.isInteger(T)?p.array[1].repeat+=S:p.array.splice(1,0,f(S,F,Z,R))):p.array.splice(1,0,f(S,F,Z,R))}k=e.split(/[Ee]/),q=[p.array[0].repeat,0],S=1;for(var A=k.length-1;A>=0;--A){q[0]<l&&0===q[1]?q[0]=Math.pow(10,S*q[0]):-1==S?(0===q[1]?q[0]=Math.pow(10,S*q[0]):1==q[1]&&q[0]<=Math.log10(Number.MAX_VALUE)?q[0]=Math.pow(10,S*Math.pow(10,q[0])):q[0]=0,q[1]=0):q[1]++;var P=k[A].indexOf("."),z=-1==P?k[A].length:P;0===q[1]?z>=17?(q[0]=Math.log10(q[0])+h(k[A].substring(0,z)),q[1]=1):k[A]&&(q[0]*=Number(k[A])):(T=z>=17?h(k[A].substring(0,z)):k[A]?Math.log10(Number(k[A])):0,1==q[1]?q[0]+=T:2==q[1]&&q[0]<l+Math.log10(T)&&(q[0]+=Math.log10(1+Math.pow(10,Math.log10(T)-q[0])))),q[0]<l&&q[1]?(q[0]=Math.pow(10,q[0]),q[1]--):q[0]>u&&(q[0]=Math.log10(q[0]),q[1]++)}p.array[0].repeat=q[0],q[1]&&(p.array.length>=2&&1==p.array[1].arrow&&1==p.array[1].expans&&1==p.array[1].megota?p.array[1].repeat+=q[1]:p.array.splice(1,0,f(q[1],1,1,1)))}return I&&(p.sign*=-1),M&&(p.small=!p.small),p.normalize(),p.normalize(),p}},{key:"fromObject",value:function(e){var t=new r;if(t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!m(t))return!1;if(!N(t))return!1}return!0}(e)){for(var a=0;a<e.length;a++)t.array[a]={arrow:e[a][0],expans:1,megota:1,repeat:e[a][1]};return t.small=!1,t.sign=1,t.layer=0,t}for(var n=0;n<e.array.length;n++)t.array[n]={arrow:e.array[n].arrow,expans:e.array[n].expans,megota:e.array[n].megota,repeat:e.array[n].repeat,valuereplaced:e.array[n].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,O.ZERO=new O({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),O.ONE=new O({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.MSI=new O(u),O.MSI_REC=((b=new O(u)).small=!0,b),O.E_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.EE_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),O.E_MSI_REC=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),O.TETRATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),O.PENTATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),O.TRITRI=new O({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),O.GRAHAMS_NUMBER=new O("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),O.POSITIVE_INFINITY=new O(1/0),O.NEGATIVE_INFINITY=new O(-1/0),O.NaN=new O({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),O.E=new O(Math.E),O.LN2=new O(Math.LN2),O.LN10=new O(Math.LN10),O.LOG2E=new O(Math.LOG2E),O.LOG10E=new O(Math.LOG10E),O.PI=new O(Math.PI),O.SQRT1_2=new O(Math.SQRT1_2),O.SQRT2=new O(Math.SQRT2),O.maxOps=100,O.POW_2_44_MOD_PI=1.701173079953,O.arrowFuncMap=new Map,r.arraySortFunction=w,r.default=O,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
|
|
1
|
+
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum={})}(this,(function(r){"use strict";function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t<e;t++)a[t]=r[t];return a}function t(r,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,n(a.key),a)}}function a(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function(r,t){if(r){if("string"==typeof r)return e(r,t);var a={}.toString.call(r).slice(8,-1);return"Object"===a&&r.constructor&&(a=r.constructor.name),"Map"===a||"Set"===a?Array.from(r):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?e(r,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var a=t.call(r,e||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function i(r){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var o,u=9007199254740991,l=15.954589770191003,s=1.444667861009766,c=/^(PN)?[\/\-\+]*(Infinity|NaN|(P+|P\^\d+ )?(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function f(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:a,valuereplaced:e==1/0?0:t==1/0?1:-1}}function g(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var a=0;a<Math.min(e[0].length,e[1].length);a++){var n=e[0][a],i=e[1][a];if(n<i)return-1;if(n>i)return 1}return 0}function h(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var p=.5671432904097838;function y(r){var e,t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!Number.isFinite(r))return r;if(n){if(0===r)return r;if(1===r)return p;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var i=0;i<100;++i){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<a*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function m(r){return 2==r.length}function N(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function v(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new O(r)).isFinite())return r;if(a){if(r.eq(O.ZERO))return r;if(r.eq(O.ONE))return new O(p);e=O.log(r)}else{if(r.eq(O.ZERO))return O.NEGATIVE_INFINITY.clone();e=O.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(O.ONE).sub(e.add(2).mul(o).div(O.mul(2,e).add(2)));if(u.eq(O.ZERO))return e;var l=e.sub(o.div(u));if(O.abs(l.sub(e)).lt(O.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function w(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var b,O=function(){function r(e){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[o]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==i(e)){var a=r.fromObject(e);this.resetFromObject(a)}else if("string"==typeof e){var n=r.fromString(e);this.resetFromObject(n)}}return function(r,e,a){return e&&t(r.prototype,e),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,a,n,i,o,s,c=this.clone(),g=new r(e);if(c.eq(r.POSITIVE_INFINITY)&&g.eq(r.NEGATIVE_INFINITY)||c.eq(r.NEGATIVE_INFINITY)&&g.eq(r.POSITIVE_INFINITY))return r.NaN.clone();if(!c.isFinite())return c.clone();if(!g.isFinite())return g.clone();if(c.isZero())return g.clone();if(g.isZero())return c.clone();if(c.sign==-g.sign&&function(){var r=c.abs(),e=g.abs();return r.eq(e)}())return r.ZERO.clone();if(c.abs().lt(u)&&g.abs().lt(u))return r.fromNumber(c.toNumber()+g.toNumber());if(c.abs().lt(r.E_MSI_REC)||c.abs().gt(r.E_MSI)||g.abs().lt(r.E_MSI_REC)||g.abs().gt(r.E_MSI))return c.maxabs(g);if(-1==c.sign)return c.neg().add(g.neg()).neg();c.cmpabs(g)>0?(o=c,s=g):(s=c,o=g);var h=o.toNumber()+s.toNumber();if(isFinite(h)&&0!==h)return r.fromNumber(h);var p=1;if(!(o.small||s.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(a=s.array[1])||void 0===a?void 0:a.repeat)||o.sign!=s.sign))return new r((o.array[0].repeat+s.array[0].repeat)*o.sign);var y=(o.small?-1:1)*((null===(n=o.array[1])||void 0===n?void 0:n.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),m=(s.small?-1:1)*((null===(i=s.array[1])||void 0===i?void 0:i.repeat)?s.array[0].repeat:Math.log10(s.array[0].repeat));if(y-m>l)return o;var N,v,w=-Math.floor(y),b=0;if((v=o.sign*Math.pow(10,y+w)+s.sign*Math.pow(10,m+w))>0&&(b=Math.log10(v)-w),v<0&&(b=Math.log10(-v)-w,p*=-1),0==v)throw Error("Encounter a calculate error");return(N=new r).sign=1,N.array=b>l||b<-l?[f(b,0),f(1,1)]:[f(Math.pow(10,Math.abs(b)),0)],N.small=b<0,N.sign*=p,N}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"mul",value:function(e){var t=this.clone(),a=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY)||a.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&a.isZero()||a.isInfiNaN()&&t.isZero())return r.NaN.clone();if(t.eq(r.NEGATIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!a.isFinite())return a.clone();if(t.isZero()||a.isZero())return r.ZERO.clone();var n,i=t.toNumber()*a.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((n=t.abs().log10().add(a.abs().log10()).pow10()).sign=t.sign*a.sign,n)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"mod",value:function(e){var t=new r(e),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"pow10",value:function(){var e,t,a=this.clone();return this.isFinite()?a.isneg()?(a.sign*=-1,a.pow10().rec()):a.lte(308.25471555991675)?r.fromNumber(Math.pow(10,a.toNumber())):a.small?a.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(a.array[0].repeat,-1))):(a.gt(r.TETRATED_MSI)||(a.setOperator((null!==(t=null===(e=a.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),a.normalize()),a):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(this.isneg()){if(!t.isInt())return r.NaN.clone();var a=this.abs().pow(t);return a.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),a}var n=this.toNumber(),i=t.toNumber(),o=Math.pow(n,i);return isFinite(o)&&0!==o?r.fromNumber(o):this.isZero()&&t.isZero()?r.ONE.clone():this.isZero()?r.ZERO.clone():t.isZero()?r.ONE.clone():this.gt(0)?this.log10().mul(t).pow10():t.rec().mod(2).eq(1)?this.neg().log10().mul(t).pow10().neg():r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg())return r.NaN.clone();if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"ln",value:function(){return this.log()}},{key:"plog10",value:function(){return this.max(1).log10()}},{key:"plog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.plog10().div(t.plog10())}},{key:"pln",value:function(){return this.plog()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(u)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(u)){if(this.lt(24))return r.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var t=.9189385332046727;t+=((r-=1)+.5)*Math.log(r),t-=r;var a=r*r,n=r;return t+=1/(12*n),t-=1/(360*(n*=a)),t+=1/(1260*(n*=a)),t-=1/(1680*(n*=a)),t+=1/(1188*(n*=a)),t-=691/(360360*(n*=a)),t+=7/(1092*(n*=a)),t-=3617/(122400*(n*=a)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var a=e*e,n=e,i=12*n,o=1/i,l=(t-=e)+o;if(l===t)return r.exp(t);if((l=(t=l)-(o=1/(i=360*(n*=a))))===t)return r.exp(t);t=l;var s=1/(i=1260*(n*=a));return t+=s,t-=s=1/(i=1680*(n*=a)),r.exp(t)}return this.gt(u)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?r.NaN.clone():e?this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(y(this.toNumber())):this.lt(u)?r.fromNumber(y(this.sign*this.getOperator(0))):this.lt("eee15")?v(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(y(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?v(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.clone(),i=new r(e),o=new r(a);if(n.isNaN()||i.isNaN()||o.isNaN())return r.NaN.clone();if(n.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&(i=i.add(o.slog(n))),i.isInfi()&&i.sign>0)return n.gte(s)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2))return r.NaN.clone();if(n.isZero())return i.isZero()?r.NaN.clone():i.gte(u/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone();if(n.eq(r.ONE))return i.eq(r.ONE.neg())?r.NaN.clone():r.ONE.clone();if(i.eq(r.ONE.neg()))return r.ZERO.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return n;if(i.eq(2))return n.pow(n);if(n.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var l=n.max(i);if(l.gt(r.PENTATED_MSI))return l;if(l.gt(r.TETRATED_MSI)||i.gt(u)){if(this.lt(s))return(t=n.ln().neg()).lambertw().div(t);var c=n.slog(10).add(i);return c.setOperator(c.getOperator(2)+1,2),c.normalize(),c}for(var f=i.toNumber(),g=Math.floor(f),h=n.pow(f-g),p=r.NaN,y=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&y<100;++y)if(g>0){if(h=n.pow(h),p.eq(h)){g=0;break}p=h,--g}else{if(h=h.log(n),p.eq(h)){g=0;break}p=h,++g}return(100==y||this.lt(s))&&(g=0),h.setOperator(h.getOperator(1)+g,1),h.normalize(),h}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),a=new r(e);if(t.isInfiNaN())return t;if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(a.lt(s)){var n=a.tetrate(1/0);if(t.eq(n))return r.POSITIVE_INFINITY.clone();if(t.gt(n))return r.NaN.clone()}if(t.max(a).gt(r.PENTATED_MSI))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.TETRATED_MSI)&&t.gt(a))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return a.pow(t).sub(2);var i=0,o=t.getOperator(1)-a.getOperator(1);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(1)-u,1)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=r.pow(e,t),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=r.log(t,e)}return t.gt(10)?new r(i):r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/s))return r.NaN.clone();if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"arrow",value:function(e){var t=this.clone(),a=new r(e);return!a.isInt()||a.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){return r.NaN.clone()}):a.eq(0)?function(r){return t.mul(r)}:a.eq(1)?function(r){return t.pow(r)}:a.eq(2)?function(r){return t.tetrate(r)}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e),o=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n));if(o)return o.clone();var l=function(){var e;if(t.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return i.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(t.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return t.clone();if(a.gt(r.MSI))return(e=a.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var o=a.toNumber();if(i.eq(2))return t.arrow(o-1)(t,n+1);if(t.max(i).gt(r.arrowMSI(o+1)))return t.max(i);if(t.gt(r.arrowMSI(o))||i.gt(u)){t.gt(r.arrowMSI(o))?((e=t.clone()).setOperator(e.getOperator(o)-1,o),e.normalize()):e=t.gt(r.arrowMSI(o-1))?new r(t.getOperator(o-1)):r.ZERO;var l=e.add(i);return l.setOperator(l.getOperator(o)+1,o),l.normalize(),l}if(n>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,o)]});var s=i.toNumber(),c=Math.floor(s),g=a.sub(r.ONE);e=t.arrow(g)(s-c,n+1);for(var h=0,p=r.arrowMSI(o-1);0!==c&&e.lt(p)&&h<100;h++)c>0&&(e=t.arrow(g)(e,n+1),--c);return 100==h&&(c=0),e.setOperator(e.getOperator(o-1)+c,o-1),e.normalize(),e}();return n<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n),l.clone()),l}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(u))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=new r(e);if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(t.max(a).gt(r.arrowMSI(n+1)))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.arrowMSI(n))&&t.gt(a))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone()))return r.NaN.clone();var i=0,o=t.getOperator(n)-a.getOperator(n);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(n)-u,n)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=t.anyarrow_log(n-1)(e)}return t.gt(10)?new r(i):r.NaN.clone()}}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r){return this.arrow(3)(r)}},{key:"hexate",value:function(r){return this.arrow(4)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt())return r.NaN.clone();if(this.eq(2))return new r(4);if(a.eq(0))return r.ONE.clone();if(n.gt("10{1,2}".concat(u))||a.gt(u)){n.gt("10{1,2}".concat(u))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(u,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var i=t.add(a);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,l=a.toNumber()-1;for(t=n.clone(),o=0;0!==l&&t.lt(u)&&o<100;++o)l>0&&(t=n.arrow(t)(n),--l);return 100==o&&(l=0),t.setOperator(t.getOperator(1/0)+l,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),a=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){return r.NaN.clone()};if(t.eq(0))return function(r){return a.arrow(r)(a)};if(t.eq(1))return function(r){return a.expansion(r)};var n=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(a.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(a.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(a.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return a.clone();if(n.gt(r.MSI))return(t=n.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var l=n.toNumber();if(o.eq(2))return a.expansionArrow(l-1)(a,i+1);if(a.max(o).gt("10{".concat(l+1,",2}").concat(u)))return a.max(o);if(a.gt("10{".concat(l,",2}").concat(u))||o.gt(u)){a.gt("10{".concat(l,",2}").concat(u))?((t=a.clone()).setOperator(t.getOperator(l,2)-1,l,2),t.normalize()):t=a.gt("10{".concat(l-1,",2}").concat(u))?new r(a.getOperator(l-1,2)):r.ZERO;var s=t.add(o);return s.setOperator(s.getOperator(l,2)+1,l,2),s.normalize(),s}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,l,2)]});var c=o.toNumber(),g=Math.floor(c),h=n.sub(r.ONE);t=a.expansionArrow(h)(c-g,i+1);for(var p=0,y=new r("10{".concat(l-1,",2}").concat(u));0!==g&&t.lt(y)&&p<100;p++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==p&&(g=0),t.setOperator(t.getOperator(l-1,2)+g,l-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(i)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(i)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);if(this.isNaN()||t.isNaN())return 2;if(this.sign<t.sign)return-1;if(this.sign>t.sign)return 1;var a=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(a?-1:1);if(t.small&&!this.small)return 1*(a?-1:1);var n=1;this.small&&t.small&&(n*=-1),a&&(n*=-1);for(var i=0,o=0;this.array.length-1-o>=0&&t.array.length-1-o>=0;o++){var u=this.array[this.array.length-1-o],l=t.array[t.array.length-1-o],s=g([u.megota,u.expans,u.arrow,u.repeat],[l.megota,l.expans,l.arrow,l.repeat]);if(1==s){i=1;break}if(-1==s){i=-1;break}}return i*n+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(u/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"normalize",value:function(){for(var e=!0,t=this,a=0;a<this.array.length;a++)if(this.array[a].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var n=1;n<t.array.length;++n){var i=t.array[n];if(null!==i.arrow&&void 0!==i.arrow||(i.arrow=0),null!==i.expans&&void 0!==i.expans||(i.expans=1),null!==i.megota&&void 0!==i.megota||(i.megota=1),isNaN(i.arrow)||isNaN(i.repeat)||isNaN(i.expans)||isNaN(i.megota))return t.array=[f(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[f(1/0,0,1,1)],t;Number.isInteger(i.arrow)||(i.arrow=Math.floor(i.arrow)),Number.isInteger(i.repeat)||(i.repeat=Math.floor(i.repeat)),Number.isInteger(i.expans)||(i.expans=Math.floor(i.expans)),Number.isInteger(i.megota)||(i.megota=Math.floor(i.megota))}t.array.length||(t.small=!t.small,t.array=[f(1/0)]);do{for(e=!1,this.array.sort(w),n=1;n<t.array.length-1;++n)t.array[n].arrow==t.array[n+1].arrow&&t.array[n].expans==t.array[n+1].expans&&t.array[n].megota==t.array[n+1].megota&&(t.array[n].repeat+=t.array[n+1].repeat,t.array.splice(n+1,1),--n,e=!0);for(n=1;n<t.array.length;++n)0===t.array[n].arrow||0!==t.array[n].repeat&&null!==t.array[n].repeat&&void 0!==t.array[n].repeat?0==t.array[n].arrow&&t.array[n].expans>=2&&(t.array[n].arrow=1/0,t.array[n].valuereplaced=0,t.array[n].expans=t.array[n].expans-1):(t.array.splice(n,1),--n);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<l&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>u&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),this.array[this.array.length-1].megota>u?(this.layer++,this.array=[f(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[f(10),f(1,10,10,this.array[0].repeat)],e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!0);t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array[0].repeat<u&&t.array[1].arrow>=2&&1==t.array[1].repeat&&isFinite(t.array[1].arrow)&&(t.array.splice(1,1,f(t.array[0].repeat,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);return this}},{key:"getOperatorIndex",value:function(r){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=0;a<this.array.length;a++){var n=g([this.array[a].megota,this.array[a].expans,this.array[a].arrow],[t,e,r]);if(0==n)return a;if(1==n)return a-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=this.getOperatorIndex(r,e,t);return this.array[a]?this.array[a].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getOperatorIndex(e,t,a);return this.array[n]?(this.array[n].repeat=r,!1):(this.array.splice(Math.ceil(n),0,{arrow:e,expans:t,megota:a,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],a="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");a=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(a,")^").concat(t.repeat," "):"".concat(a),r+="".concat(a)}return r}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}}],[{key:"add",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"plog10",value:function(e){return new r(e).plog10()}},{key:"plog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).plog(t)}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(u))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,a){return new r(e).arrow(t.sub(2))(a)}}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),g=new r(t);function h(e){var t;return new r(null!==(t=[n,i,o,l][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(g.eq(1))return new r(c);if(g.isZero())return new r(1);if(c.lt(0))return r.NaN.clone();if(new r(l).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(g);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(g);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(g);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(g);var p=h(0).toNumber(),y=h(1),m=h(2),N=h(3);if(N.eq(2)){if(1!=p)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(m.neq(1))return r.POSITIVE_INFINITY.clone();if(g.gte(u))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=g.toNumber(),v.normalize(),v}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(m.gt(u)){var b=new r(m);return b.layer++,b.normalize(),b}function O(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){return"10{".concat(O(r),",").concat(O(e),",").concat(t,"}").concat(u)}var I=c.clone(),d=new r(h(0)),M=function(s){var h,p,N=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(N)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var v,b=new r(s);if(I.isNaN()||b.isNaN())return r.NaN.clone();if(b.lt(r.ZERO))return r.NaN.clone();if(I.eq(r.ZERO))return b.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(I.eq(r.ONE))return r.ONE.clone();if(b.eq(r.ZERO))return r.ONE.clone();if(b.eq(r.ONE))return I.clone();if(d.eq(0))return r.BEAF(I,I,g,y.sub(1),m,l,N+1);if(m.eq(0))return r.BEAF(I,I,I,I,y,new r(l).sub(1),N+1);if(y.gt(u))return(v=new r(y)).setOperator(v.getOperator(1,1/0,m.toNumber())+1,1,1/0,m.toNumber()),v;if(d.gt(r.MSI))return(v=d.clone()).setOperator(v.getOperator(1/0,y.toNumber(),m.toNumber())+1,1/0,y.toNumber(),m.toNumber()),v;var O=d.toNumber();if(b.eq(2))return r.BEAF(I,I,O-1,y,m,l,N+1);if(I.max(b).gt(E(O+1,y.toNumber(),m.toNumber())))return I.max(b);if(I.gt(E(O,y.toNumber(),m.toNumber()))||b.gt(u)){I.gt(E(O,y.toNumber(),m.toNumber()))?((v=I.clone()).setOperator(v.getOperator(O,y.toNumber(),m.toNumber())-1,O,y.toNumber(),m.toNumber()),v.normalize()):v=I.gt(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))))?new r(I.getOperator.apply(I,a(w(O-1,y.toNumber(),m.toNumber())))):r.ZERO;var M=v.add(b);return M.setOperator(M.getOperator(O,y.toNumber(),m.toNumber())+1,O,y.toNumber(),m.toNumber()),M.normalize(),M}if(N>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,O,y.toNumber(),m.toNumber())]});var x=b.toNumber(),k=Math.floor(x),q=d.sub(r.ONE);v=r.BEAF(I,x-k,q.toNumber(),y,m,l,N+1);for(var T=0,S=new r(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))));0!==k&&v.lt(S)&&T<100;T++)k>0&&(v=r.BEAF(c,v,q.toNumber(),y,m,l,N+1),--k);return 100==T&&(k=0),(h=v).setOperator.apply(h,[(p=v).getOperator.apply(p,a(w(O-1,y.toNumber(),m.toNumber())))+k].concat(a(w(O-1,y.toNumber(),m.toNumber())))),v.normalize(),v}(g,s);return console.log("".concat("-".repeat(s)," = ").concat(M)),M}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.lt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.gt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromNumber",value:function(e){var t=new r;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[f(1/0,0)],t;e>0&&(t.sign=1)}var a=Math.abs(e);return a==1/0?t.array=[f(1/0,0)]:a>=11102230246251568e-32&&a<1?(t.small=!0,t.array=[f(1/a,0)]):a<11102230246251568e-32?(t.small=!0,t.array=[f(-Math.log10(a),0),f(1,1)]):a<=u?t.array=[f(a,0)]:(t.setOperator(Math.log10(a),0),t.array=[f(Math.log10(a),0),f(1,1)]),t}},{key:"fromString",value:function(e){var t,a,n,i,o,s,g,p=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var y=Number(e),m=!1;if(0==y?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var N=e.search(/e/),v=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var O=w.length>=17?h(w):Math.log10(Number(w)),E=O-(Math.floor(O)-1);b[0]=Math.pow(10,E),b[1]+=E}else{var I=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(y)&&m)return p=r.fromNumber(Number(e))}if(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)\x20*PT/g,"(10^)^$1 "),!c.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var d=!1,M=!1;if("-"==e[0]||"+"==e[0]){var x=e.search(/[^-\+]/);d=(null!==(a=null===(t=e.substring(0,x).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(x)}if("/"==e[0]){x=e.search(/[^\/]/);M=(null!==(i=null===(n=e.substring(0,x).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==i?i:0)%2==1,e=e.substring(x)}if("NaN"==e)p.array=[f(NaN)];else if("Infinity"==e)p.array=[f(1/0)];else{var k,q,T,S;for(p.sign=1,p.array=[f(0)],"P"==e[0]&&("^"==e[1]?(k=e.substring(2).search(/[^0-9]/)+2,p.layer=Number(e.substring(2,k)),e=e.substring(k+1)):(k=e.search(/[^P]/),p.layer=k,e=e.substring(k)));e&&/^(\(?10[\^\{])/.test(e);){var F,_,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])F=k=e.substring(2).search(/[^\^]/),q=k+2;else{k=e.indexOf("}");var A=e.substring(3,k).split(",");F=Number("!"==A[0]?1/0:A[0]),_=Number(null!==(o="!"==A[1]?1/0:A[1])&&void 0!==o?o:1),Z=Number(null!==(s=A[2])&&void 0!==s?s:1),q=k+1}")"==(e=e.substring(q))[0]?(k=e.indexOf(" "),T=Number(e.substring(2,k)),e=e.substring(k+1)):T=1,1==F&&1==_&&1==Z?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=T:p.array.splice(1,0,f(T,1,_,Z)):2==F&&1==_&&1==Z?(k=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(q=p.array[0].repeat)>=1e10&&++k,q>=10&&++k,p.array[0].repeat=k,p.array.length>=2&&1==p.array[1].arrow&&p.array.splice(1,1),S=p.getOperatorIndex(2),Number.isInteger(S)?p.array[S].repeat+=T:p.array.splice(Math.ceil(S),0,f(T,2,_,Z))):isFinite(F)?(k=p.getOperator(F-1),(q=p.getOperator(F-2))>=10&&++k,S=p.getOperatorIndex(F),p.array.splice(1,Math.ceil(S)-1),p.array[0].repeat=k,Number.isInteger(S)?p.array[1].repeat+=T:p.array.splice(1,0,f(T,F,_,Z))):p.array.splice(1,0,f(T,F,_,Z))}k=e.split(/[Ee]/),q=[p.array[0].repeat,0],T=1;for(var R=k.length-1;R>=0;--R){q[0]<l&&0===q[1]?q[0]=Math.pow(10,T*q[0]):-1==T?(0===q[1]?q[0]=Math.pow(10,T*q[0]):1==q[1]&&q[0]<=Math.log10(Number.MAX_VALUE)?q[0]=Math.pow(10,T*Math.pow(10,q[0])):q[0]=0,q[1]=0):q[1]++;var P=k[R].indexOf("."),V=-1==P?k[R].length:P;0===q[1]?V>=17?(q[0]=Math.log10(q[0])+h(k[R].substring(0,V)),q[1]=1):k[R]&&(q[0]*=Number(k[R])):(S=V>=17?h(k[R].substring(0,V)):k[R]?Math.log10(Number(k[R])):0,1==q[1]?q[0]+=S:2==q[1]&&q[0]<l+Math.log10(S)&&(q[0]+=Math.log10(1+Math.pow(10,Math.log10(S)-q[0])))),q[0]<l&&q[1]?(q[0]=Math.pow(10,q[0]),q[1]--):q[0]>u&&(q[0]=Math.log10(q[0]),q[1]++)}p.array[0].repeat=q[0],q[1]&&(p.array.length>=2&&1==p.array[1].arrow&&1==p.array[1].expans&&1==p.array[1].megota?p.array[1].repeat+=q[1]:p.array.splice(1,0,f(q[1],1,1,1)))}return d&&(p.sign*=-1),M&&(p.small=!p.small),p.normalize(),p.normalize(),p}},{key:"fromObject",value:function(e){var t=new r;if(t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!m(t))return!1;if(!N(t))return!1}return!0}(e)){for(var a=0;a<e.length;a++)t.array[a]={arrow:e[a][0],expans:1,megota:1,repeat:e[a][1]};return t.small=!1,t.sign=1,t.layer=0,t}for(var n=0;n<e.array.length;n++)t.array[n]={arrow:e.array[n].arrow,expans:e.array[n].expans,megota:e.array[n].megota,repeat:e.array[n].repeat,valuereplaced:e.array[n].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,O.ZERO=new O({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),O.ONE=new O({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.MSI=new O(u),O.MSI_REC=((b=new O(u)).small=!0,b),O.E_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.EE_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),O.E_MSI_REC=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),O.TETRATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),O.PENTATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),O.TRITRI=new O({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),O.GRAHAMS_NUMBER=new O("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),O.POSITIVE_INFINITY=new O(1/0),O.NEGATIVE_INFINITY=new O(-1/0),O.NaN=new O({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),O.E=new O(Math.E),O.LN2=new O(Math.LN2),O.LN10=new O(Math.LN10),O.LOG2E=new O(Math.LOG2E),O.LOG10E=new O(Math.LOG10E),O.PI=new O(Math.PI),O.SQRT1_2=new O(Math.SQRT1_2),O.SQRT2=new O(Math.SQRT2),O.maxOps=100,O.POW_2_44_MOD_PI=1.701173079953,O.arrowFuncMap=new Map,r.arraySortFunction=w,r.default=O,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
|
package/dist/index.d.ts
CHANGED
|
@@ -135,6 +135,7 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
135
135
|
static powerExpansion(t: PowiainaNumSource, other: PowiainaNumSource): PowiainaNum;
|
|
136
136
|
explosion(other: PowiainaNumSource): PowiainaNum;
|
|
137
137
|
megotion(other: PowiainaNumSource): PowiainaNum;
|
|
138
|
+
powiaination(other: PowiainaNumSource): PowiainaNum;
|
|
138
139
|
static BEAF(base2: PowiainaNumSource, power2: PowiainaNumSource, arrow2?: PowiainaNumSource, expans2?: PowiainaNumSource, megota2?: PowiainaNumSource, powiaina2?: PowiainaNumSource, depth?: number): PowiainaNum;
|
|
139
140
|
abs(): PowiainaNum;
|
|
140
141
|
static abs(x: PowiainaNumSource): PowiainaNum;
|
package/package.json
CHANGED