powiaina_num.js 0.2.19 → 0.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PowiainaNum.cjs.js +177 -51
- package/dist/PowiainaNum.esm.js +177 -51
- package/dist/PowiainaNum.js +177 -51
- package/dist/PowiainaNum.min.js +1 -1
- package/dist/index.d.ts +23 -1
- package/package.json +1 -1
package/dist/PowiainaNum.cjs.js
CHANGED
|
@@ -1141,15 +1141,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1141
1141
|
}
|
|
1142
1142
|
}, {
|
|
1143
1143
|
key: "omegalog",
|
|
1144
|
-
value:
|
|
1145
|
-
//#endregion
|
|
1146
|
-
function omegalog() {
|
|
1144
|
+
value: function omegalog() {
|
|
1147
1145
|
var bbase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
1148
1146
|
var target = this;
|
|
1149
1147
|
var dis = target.clone();
|
|
1150
1148
|
if (dis.isInfiNaN()) return dis;
|
|
1151
1149
|
if (dis.gte("10{1,2}e15.954589770191003")) return dis;
|
|
1152
|
-
|
|
1150
|
+
new PowiainaNum(bbase).clone();
|
|
1153
1151
|
if (dis.getOperator(1 / 0) >= 1) {
|
|
1154
1152
|
dis.setOperator(dis.getOperator(1 / 0) - 1, 1 / 0, 1, 1);
|
|
1155
1153
|
return dis;
|
|
@@ -1158,24 +1156,53 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1158
1156
|
// dis.layer -= 1
|
|
1159
1157
|
// return dis
|
|
1160
1158
|
// } else
|
|
1161
|
-
// @ts-expect-error
|
|
1162
|
-
if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
} else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1167
|
-
|
|
1168
|
-
} else {
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1159
|
+
// // @ts-expect-error
|
|
1160
|
+
// if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1161
|
+
// // @ts-expect-error
|
|
1162
|
+
// let zero = new PowiainaNum(dis.array[dis.arr01.length - 1][0]);
|
|
1163
|
+
// return zero;
|
|
1164
|
+
// } else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1165
|
+
// return new PowiainaNum(target).anyarrow_log(3)(bbase);
|
|
1166
|
+
// } else {
|
|
1167
|
+
// let addTest = 8;
|
|
1168
|
+
// let target = 0;
|
|
1169
|
+
// while (addTest >= 10 ** -10) {
|
|
1170
|
+
// if (PowiainaNum.arrFrac(base, target + addTest).lte(dis)) {
|
|
1171
|
+
// target += addTest;
|
|
1172
|
+
// }
|
|
1173
|
+
// addTest /= 2;
|
|
1174
|
+
// }
|
|
1175
|
+
// return new PowiainaNum(target);
|
|
1176
|
+
// }
|
|
1177
|
+
var clonedOperators = [];
|
|
1178
|
+
for (var i = 0; i < target.array.length; i++) {
|
|
1179
|
+
clonedOperators[i] = {
|
|
1180
|
+
arrow: target.array[i].arrow,
|
|
1181
|
+
expans: target.array[i].expans,
|
|
1182
|
+
megota: target.array[i].megota,
|
|
1183
|
+
repeat: target.array[i].repeat,
|
|
1184
|
+
valuereplaced: target.array[i].valuereplaced
|
|
1185
|
+
};
|
|
1178
1186
|
}
|
|
1187
|
+
var result = PowiainaNum.omegacollect(clonedOperators);
|
|
1188
|
+
return result[1].arrow - 1 + Math.log(result[0].repeat / 2) / Math.log(5);
|
|
1189
|
+
// if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1190
|
+
// // @ts-expect-error
|
|
1191
|
+
// let zero = new PowiainaNum(dis.array[dis.arr01.length - 1][0]);
|
|
1192
|
+
// return zero;
|
|
1193
|
+
// } else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1194
|
+
// return new PowiainaNum(target).anyarrow_log(3)(bbase);
|
|
1195
|
+
// } else {
|
|
1196
|
+
// let addTest = 8;
|
|
1197
|
+
// let target = 0;
|
|
1198
|
+
// while (addTest >= 10 ** -10) {
|
|
1199
|
+
// if (PowiainaNum.arrFrac(base, target + addTest).lte(dis)) {
|
|
1200
|
+
// target += addTest;
|
|
1201
|
+
// }
|
|
1202
|
+
// addTest /= 2;
|
|
1203
|
+
// }
|
|
1204
|
+
// return new PowiainaNum(target);
|
|
1205
|
+
// }
|
|
1179
1206
|
}
|
|
1180
1207
|
/**
|
|
1181
1208
|
* Arrow operation, return a function
|
|
@@ -1964,58 +1991,45 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1964
1991
|
}, {
|
|
1965
1992
|
key: "getOperatorIndex",
|
|
1966
1993
|
value:
|
|
1967
|
-
//#endregion
|
|
1968
|
-
//#region operators
|
|
1969
1994
|
/**
|
|
1970
1995
|
* @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
|
|
1971
1996
|
*/
|
|
1972
1997
|
function getOperatorIndex(arrow) {
|
|
1973
1998
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
1974
1999
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1975
|
-
|
|
1976
|
-
var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
|
|
1977
|
-
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
1978
|
-
if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
|
|
1979
|
-
}
|
|
1980
|
-
return this.array.length - 0.5;
|
|
2000
|
+
return PowiainaNum.opGetOperatorIndex(this.array, arrow, expans, megota);
|
|
1981
2001
|
}
|
|
1982
2002
|
/**
|
|
1983
2003
|
* @returns number repeats of operators with given arguments.
|
|
1984
2004
|
*/
|
|
1985
2005
|
}, {
|
|
1986
2006
|
key: "getOperator",
|
|
1987
|
-
value:
|
|
2007
|
+
value:
|
|
2008
|
+
/**
|
|
2009
|
+
* @returns number repeats of operators with given arguments.
|
|
2010
|
+
*/
|
|
2011
|
+
function getOperator(arrow) {
|
|
1988
2012
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
1989
2013
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1990
|
-
|
|
1991
|
-
if (!this.array[index]) return 0;
|
|
1992
|
-
return this.array[index].repeat;
|
|
2014
|
+
return PowiainaNum.opGetOperator(this.array, arrow, expans, megota);
|
|
1993
2015
|
}
|
|
1994
2016
|
/**
|
|
1995
|
-
* Modify the repeat of operator
|
|
2017
|
+
* Modify the repeat of operator(argument will modified)
|
|
1996
2018
|
* @param number val the repeat of operator will modify to array.
|
|
1997
2019
|
* @returns bool Is the operators array changed?
|
|
1998
2020
|
*/
|
|
1999
2021
|
}, {
|
|
2000
2022
|
key: "setOperator",
|
|
2001
|
-
value:
|
|
2023
|
+
value:
|
|
2024
|
+
/**
|
|
2025
|
+
* Modify the repeat of operator
|
|
2026
|
+
* @param number val the repeat of operator will modify to array.
|
|
2027
|
+
* @returns bool Is the operators array changed?
|
|
2028
|
+
*/
|
|
2029
|
+
function setOperator(val, arrow) {
|
|
2002
2030
|
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
2003
2031
|
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
2004
|
-
|
|
2005
|
-
var index = this.getOperatorIndex(arrow, expans, megota);
|
|
2006
|
-
if (!this.array[index]) {
|
|
2007
|
-
this.array.splice(Math.ceil(index), 0, {
|
|
2008
|
-
arrow: arrow,
|
|
2009
|
-
expans: expans,
|
|
2010
|
-
megota: megota,
|
|
2011
|
-
valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
|
|
2012
|
-
repeat: val
|
|
2013
|
-
});
|
|
2014
|
-
return true;
|
|
2015
|
-
}
|
|
2016
|
-
this.array[index].repeat = val;
|
|
2017
|
-
// this.normalize()
|
|
2018
|
-
return false;
|
|
2032
|
+
return PowiainaNum.opSetOperator(this.array, val, arrow, expans, megota);
|
|
2019
2033
|
}
|
|
2020
2034
|
//#endregion
|
|
2021
2035
|
//#region converters
|
|
@@ -2029,7 +2043,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2029
2043
|
value: function toNumber() {
|
|
2030
2044
|
if (this.sign == -1) return -this.neg().toNumber();
|
|
2031
2045
|
if (this.small) return 1 / this.rec().toNumber();
|
|
2032
|
-
if (this.
|
|
2046
|
+
if (this.gte("e308.25471555991675")) return Infinity;
|
|
2033
2047
|
if (this.array.length == 1) return this.array[0].repeat;else if (this.array.length == 2 && this.array[1].arrow == 1 && this.array[1].expans == 1 && this.array[1].megota == 1 && this.array[1].repeat == 1) return Math.pow(10, this.getOperator(0));
|
|
2034
2048
|
return NaN;
|
|
2035
2049
|
}
|
|
@@ -2250,6 +2264,15 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2250
2264
|
this.array[0].repeat = this.array[1].arrow;
|
|
2251
2265
|
this.array[1] = newOperator(1, Infinity, this.array[1].expans, this.array[1].megota);
|
|
2252
2266
|
}
|
|
2267
|
+
// for any (10{y=finite>=2})^z x x<9e15, convert to (10{y})^(z-1) (10{y-1}^(x-1) 10)
|
|
2268
|
+
if (this.array.length >= 2 && this.array[1].arrow >= 2 && this.array[0].repeat < MSI && isFinite(this.array[1].arrow)) {
|
|
2269
|
+
var _x2 = this.array[0].repeat;
|
|
2270
|
+
var y = this.array[1].arrow;
|
|
2271
|
+
var z = this.array[1].repeat;
|
|
2272
|
+
this.array[0].repeat = 10;
|
|
2273
|
+
this.array.splice(2, 0, newOperator(z - 1, y, this.array[1].expans, this.array[1].megota));
|
|
2274
|
+
this.array[1] = newOperator(_x2 - 1, y - 1, this.array[1].expans, this.array[1].megota);
|
|
2275
|
+
}
|
|
2253
2276
|
while (x.array.length >= 2 && x.array[0].repeat == 1 && x.array[1].repeat) {
|
|
2254
2277
|
// for any 10{X}10{X} 1, turn into 10{X}10
|
|
2255
2278
|
// [1, [R=sth, A=sth, E=sth, M=sth]]
|
|
@@ -2539,6 +2562,58 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2539
2562
|
var base2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
2540
2563
|
return new PowiainaNum(t).iteratedlog(other2, base2);
|
|
2541
2564
|
}
|
|
2565
|
+
//#endregion
|
|
2566
|
+
/**
|
|
2567
|
+
* Get the base of operators
|
|
2568
|
+
*/
|
|
2569
|
+
}, {
|
|
2570
|
+
key: "oBase",
|
|
2571
|
+
value: function oBase(operators) {
|
|
2572
|
+
return operators[0].repeat;
|
|
2573
|
+
}
|
|
2574
|
+
/**
|
|
2575
|
+
* Only works for operators level < ω.
|
|
2576
|
+
*/
|
|
2577
|
+
}, {
|
|
2578
|
+
key: "omegacollect",
|
|
2579
|
+
value: function omegacollect(operators) {
|
|
2580
|
+
debugger;
|
|
2581
|
+
// const result = {
|
|
2582
|
+
// bottom: NaN,
|
|
2583
|
+
// top: NaN,
|
|
2584
|
+
// };
|
|
2585
|
+
var maxWhile = 1000;
|
|
2586
|
+
while (maxWhile--) {
|
|
2587
|
+
var base = PowiainaNum.oBase(operators);
|
|
2588
|
+
if (base >= 10) {
|
|
2589
|
+
// Bottom upgrade mode: add 10^'s.
|
|
2590
|
+
operators[0].repeat = Math.log10(base);
|
|
2591
|
+
PowiainaNum.opSetOperator(operators, PowiainaNum.opGetOperator(operators, 1, 1, 1) + 1, 1, 1, 1);
|
|
2592
|
+
} else {
|
|
2593
|
+
if (operators.length <= 2 && operators[1].repeat == 1) {
|
|
2594
|
+
return operators;
|
|
2595
|
+
}
|
|
2596
|
+
// Operator upgrade mode:
|
|
2597
|
+
// Check the -2th operator, is repeat >= 2?
|
|
2598
|
+
if (operators[1].repeat >= 2) {
|
|
2599
|
+
operators[1].arrow++;
|
|
2600
|
+
operators[0].repeat = operators[1].repeat + Math.log10(base);
|
|
2601
|
+
operators[1].repeat = 1;
|
|
2602
|
+
} else if (base !== 1) {
|
|
2603
|
+
operators[1].arrow++;
|
|
2604
|
+
operators[0].repeat = operators[1].repeat + Math.log10(base);
|
|
2605
|
+
operators[1].repeat = 1;
|
|
2606
|
+
} else {
|
|
2607
|
+
// -2th repeat = 1, and base = 1;
|
|
2608
|
+
operators[1].arrow = operators[2].arrow;
|
|
2609
|
+
}
|
|
2610
|
+
mergeSameArrays({
|
|
2611
|
+
array: operators
|
|
2612
|
+
});
|
|
2613
|
+
}
|
|
2614
|
+
}
|
|
2615
|
+
return operators;
|
|
2616
|
+
}
|
|
2542
2617
|
}, {
|
|
2543
2618
|
key: "arrow",
|
|
2544
2619
|
value: function arrow(x, z, y) {
|
|
@@ -2958,6 +3033,57 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2958
3033
|
value: function isNaN(x) {
|
|
2959
3034
|
return new PowiainaNum(x).isNaN();
|
|
2960
3035
|
}
|
|
3036
|
+
//#endregion
|
|
3037
|
+
//#region operators
|
|
3038
|
+
/**
|
|
3039
|
+
* @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
|
|
3040
|
+
*/
|
|
3041
|
+
}, {
|
|
3042
|
+
key: "opGetOperatorIndex",
|
|
3043
|
+
value: function opGetOperatorIndex(operators, arrow) {
|
|
3044
|
+
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
3045
|
+
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3046
|
+
for (var i = 0; i < operators.length; i++) {
|
|
3047
|
+
var cmp = compareTuples([operators[i].megota, operators[i].expans, operators[i].arrow], [megota, expans, arrow]);
|
|
3048
|
+
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
3049
|
+
if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
|
|
3050
|
+
}
|
|
3051
|
+
return operators.length - 0.5;
|
|
3052
|
+
}
|
|
3053
|
+
}, {
|
|
3054
|
+
key: "opGetOperator",
|
|
3055
|
+
value: function opGetOperator(operators, arrow) {
|
|
3056
|
+
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
3057
|
+
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3058
|
+
var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
|
|
3059
|
+
if (!operators[index]) return 0;
|
|
3060
|
+
return operators[index].repeat;
|
|
3061
|
+
}
|
|
3062
|
+
}, {
|
|
3063
|
+
key: "opSetOperator",
|
|
3064
|
+
value: function opSetOperator(operators, val, arrow) {
|
|
3065
|
+
var expans = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3066
|
+
var megota = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
3067
|
+
// if (arrow!=0&&val==0) return false;
|
|
3068
|
+
var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
|
|
3069
|
+
if (!operators[index]) {
|
|
3070
|
+
operators.splice(Math.ceil(index), 0, {
|
|
3071
|
+
arrow: arrow,
|
|
3072
|
+
expans: expans,
|
|
3073
|
+
megota: megota,
|
|
3074
|
+
valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
|
|
3075
|
+
repeat: val
|
|
3076
|
+
});
|
|
3077
|
+
return true;
|
|
3078
|
+
}
|
|
3079
|
+
operators[index].repeat = val;
|
|
3080
|
+
if (operators[index].repeat == 0) {
|
|
3081
|
+
operators.splice(index, 1);
|
|
3082
|
+
return true;
|
|
3083
|
+
}
|
|
3084
|
+
// this.normalize()
|
|
3085
|
+
return false;
|
|
3086
|
+
}
|
|
2961
3087
|
}, {
|
|
2962
3088
|
key: "fromBigInt",
|
|
2963
3089
|
value: function fromBigInt(input) {
|
package/dist/PowiainaNum.esm.js
CHANGED
|
@@ -1137,15 +1137,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1137
1137
|
}
|
|
1138
1138
|
}, {
|
|
1139
1139
|
key: "omegalog",
|
|
1140
|
-
value:
|
|
1141
|
-
//#endregion
|
|
1142
|
-
function omegalog() {
|
|
1140
|
+
value: function omegalog() {
|
|
1143
1141
|
var bbase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
1144
1142
|
var target = this;
|
|
1145
1143
|
var dis = target.clone();
|
|
1146
1144
|
if (dis.isInfiNaN()) return dis;
|
|
1147
1145
|
if (dis.gte("10{1,2}e15.954589770191003")) return dis;
|
|
1148
|
-
|
|
1146
|
+
new PowiainaNum(bbase).clone();
|
|
1149
1147
|
if (dis.getOperator(1 / 0) >= 1) {
|
|
1150
1148
|
dis.setOperator(dis.getOperator(1 / 0) - 1, 1 / 0, 1, 1);
|
|
1151
1149
|
return dis;
|
|
@@ -1154,24 +1152,53 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1154
1152
|
// dis.layer -= 1
|
|
1155
1153
|
// return dis
|
|
1156
1154
|
// } else
|
|
1157
|
-
// @ts-expect-error
|
|
1158
|
-
if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
} else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1163
|
-
|
|
1164
|
-
} else {
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1155
|
+
// // @ts-expect-error
|
|
1156
|
+
// if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1157
|
+
// // @ts-expect-error
|
|
1158
|
+
// let zero = new PowiainaNum(dis.array[dis.arr01.length - 1][0]);
|
|
1159
|
+
// return zero;
|
|
1160
|
+
// } else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1161
|
+
// return new PowiainaNum(target).anyarrow_log(3)(bbase);
|
|
1162
|
+
// } else {
|
|
1163
|
+
// let addTest = 8;
|
|
1164
|
+
// let target = 0;
|
|
1165
|
+
// while (addTest >= 10 ** -10) {
|
|
1166
|
+
// if (PowiainaNum.arrFrac(base, target + addTest).lte(dis)) {
|
|
1167
|
+
// target += addTest;
|
|
1168
|
+
// }
|
|
1169
|
+
// addTest /= 2;
|
|
1170
|
+
// }
|
|
1171
|
+
// return new PowiainaNum(target);
|
|
1172
|
+
// }
|
|
1173
|
+
var clonedOperators = [];
|
|
1174
|
+
for (var i = 0; i < target.array.length; i++) {
|
|
1175
|
+
clonedOperators[i] = {
|
|
1176
|
+
arrow: target.array[i].arrow,
|
|
1177
|
+
expans: target.array[i].expans,
|
|
1178
|
+
megota: target.array[i].megota,
|
|
1179
|
+
repeat: target.array[i].repeat,
|
|
1180
|
+
valuereplaced: target.array[i].valuereplaced
|
|
1181
|
+
};
|
|
1174
1182
|
}
|
|
1183
|
+
var result = PowiainaNum.omegacollect(clonedOperators);
|
|
1184
|
+
return result[1].arrow - 1 + Math.log(result[0].repeat / 2) / Math.log(5);
|
|
1185
|
+
// if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1186
|
+
// // @ts-expect-error
|
|
1187
|
+
// let zero = new PowiainaNum(dis.array[dis.arr01.length - 1][0]);
|
|
1188
|
+
// return zero;
|
|
1189
|
+
// } else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1190
|
+
// return new PowiainaNum(target).anyarrow_log(3)(bbase);
|
|
1191
|
+
// } else {
|
|
1192
|
+
// let addTest = 8;
|
|
1193
|
+
// let target = 0;
|
|
1194
|
+
// while (addTest >= 10 ** -10) {
|
|
1195
|
+
// if (PowiainaNum.arrFrac(base, target + addTest).lte(dis)) {
|
|
1196
|
+
// target += addTest;
|
|
1197
|
+
// }
|
|
1198
|
+
// addTest /= 2;
|
|
1199
|
+
// }
|
|
1200
|
+
// return new PowiainaNum(target);
|
|
1201
|
+
// }
|
|
1175
1202
|
}
|
|
1176
1203
|
/**
|
|
1177
1204
|
* Arrow operation, return a function
|
|
@@ -1960,58 +1987,45 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1960
1987
|
}, {
|
|
1961
1988
|
key: "getOperatorIndex",
|
|
1962
1989
|
value:
|
|
1963
|
-
//#endregion
|
|
1964
|
-
//#region operators
|
|
1965
1990
|
/**
|
|
1966
1991
|
* @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
|
|
1967
1992
|
*/
|
|
1968
1993
|
function getOperatorIndex(arrow) {
|
|
1969
1994
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
1970
1995
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1971
|
-
|
|
1972
|
-
var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
|
|
1973
|
-
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
1974
|
-
if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
|
|
1975
|
-
}
|
|
1976
|
-
return this.array.length - 0.5;
|
|
1996
|
+
return PowiainaNum.opGetOperatorIndex(this.array, arrow, expans, megota);
|
|
1977
1997
|
}
|
|
1978
1998
|
/**
|
|
1979
1999
|
* @returns number repeats of operators with given arguments.
|
|
1980
2000
|
*/
|
|
1981
2001
|
}, {
|
|
1982
2002
|
key: "getOperator",
|
|
1983
|
-
value:
|
|
2003
|
+
value:
|
|
2004
|
+
/**
|
|
2005
|
+
* @returns number repeats of operators with given arguments.
|
|
2006
|
+
*/
|
|
2007
|
+
function getOperator(arrow) {
|
|
1984
2008
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
1985
2009
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1986
|
-
|
|
1987
|
-
if (!this.array[index]) return 0;
|
|
1988
|
-
return this.array[index].repeat;
|
|
2010
|
+
return PowiainaNum.opGetOperator(this.array, arrow, expans, megota);
|
|
1989
2011
|
}
|
|
1990
2012
|
/**
|
|
1991
|
-
* Modify the repeat of operator
|
|
2013
|
+
* Modify the repeat of operator(argument will modified)
|
|
1992
2014
|
* @param number val the repeat of operator will modify to array.
|
|
1993
2015
|
* @returns bool Is the operators array changed?
|
|
1994
2016
|
*/
|
|
1995
2017
|
}, {
|
|
1996
2018
|
key: "setOperator",
|
|
1997
|
-
value:
|
|
2019
|
+
value:
|
|
2020
|
+
/**
|
|
2021
|
+
* Modify the repeat of operator
|
|
2022
|
+
* @param number val the repeat of operator will modify to array.
|
|
2023
|
+
* @returns bool Is the operators array changed?
|
|
2024
|
+
*/
|
|
2025
|
+
function setOperator(val, arrow) {
|
|
1998
2026
|
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1999
2027
|
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
2000
|
-
|
|
2001
|
-
var index = this.getOperatorIndex(arrow, expans, megota);
|
|
2002
|
-
if (!this.array[index]) {
|
|
2003
|
-
this.array.splice(Math.ceil(index), 0, {
|
|
2004
|
-
arrow: arrow,
|
|
2005
|
-
expans: expans,
|
|
2006
|
-
megota: megota,
|
|
2007
|
-
valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
|
|
2008
|
-
repeat: val
|
|
2009
|
-
});
|
|
2010
|
-
return true;
|
|
2011
|
-
}
|
|
2012
|
-
this.array[index].repeat = val;
|
|
2013
|
-
// this.normalize()
|
|
2014
|
-
return false;
|
|
2028
|
+
return PowiainaNum.opSetOperator(this.array, val, arrow, expans, megota);
|
|
2015
2029
|
}
|
|
2016
2030
|
//#endregion
|
|
2017
2031
|
//#region converters
|
|
@@ -2025,7 +2039,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2025
2039
|
value: function toNumber() {
|
|
2026
2040
|
if (this.sign == -1) return -this.neg().toNumber();
|
|
2027
2041
|
if (this.small) return 1 / this.rec().toNumber();
|
|
2028
|
-
if (this.
|
|
2042
|
+
if (this.gte("e308.25471555991675")) return Infinity;
|
|
2029
2043
|
if (this.array.length == 1) return this.array[0].repeat;else if (this.array.length == 2 && this.array[1].arrow == 1 && this.array[1].expans == 1 && this.array[1].megota == 1 && this.array[1].repeat == 1) return Math.pow(10, this.getOperator(0));
|
|
2030
2044
|
return NaN;
|
|
2031
2045
|
}
|
|
@@ -2246,6 +2260,15 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2246
2260
|
this.array[0].repeat = this.array[1].arrow;
|
|
2247
2261
|
this.array[1] = newOperator(1, Infinity, this.array[1].expans, this.array[1].megota);
|
|
2248
2262
|
}
|
|
2263
|
+
// for any (10{y=finite>=2})^z x x<9e15, convert to (10{y})^(z-1) (10{y-1}^(x-1) 10)
|
|
2264
|
+
if (this.array.length >= 2 && this.array[1].arrow >= 2 && this.array[0].repeat < MSI && isFinite(this.array[1].arrow)) {
|
|
2265
|
+
var _x2 = this.array[0].repeat;
|
|
2266
|
+
var y = this.array[1].arrow;
|
|
2267
|
+
var z = this.array[1].repeat;
|
|
2268
|
+
this.array[0].repeat = 10;
|
|
2269
|
+
this.array.splice(2, 0, newOperator(z - 1, y, this.array[1].expans, this.array[1].megota));
|
|
2270
|
+
this.array[1] = newOperator(_x2 - 1, y - 1, this.array[1].expans, this.array[1].megota);
|
|
2271
|
+
}
|
|
2249
2272
|
while (x.array.length >= 2 && x.array[0].repeat == 1 && x.array[1].repeat) {
|
|
2250
2273
|
// for any 10{X}10{X} 1, turn into 10{X}10
|
|
2251
2274
|
// [1, [R=sth, A=sth, E=sth, M=sth]]
|
|
@@ -2535,6 +2558,58 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2535
2558
|
var base2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
2536
2559
|
return new PowiainaNum(t).iteratedlog(other2, base2);
|
|
2537
2560
|
}
|
|
2561
|
+
//#endregion
|
|
2562
|
+
/**
|
|
2563
|
+
* Get the base of operators
|
|
2564
|
+
*/
|
|
2565
|
+
}, {
|
|
2566
|
+
key: "oBase",
|
|
2567
|
+
value: function oBase(operators) {
|
|
2568
|
+
return operators[0].repeat;
|
|
2569
|
+
}
|
|
2570
|
+
/**
|
|
2571
|
+
* Only works for operators level < ω.
|
|
2572
|
+
*/
|
|
2573
|
+
}, {
|
|
2574
|
+
key: "omegacollect",
|
|
2575
|
+
value: function omegacollect(operators) {
|
|
2576
|
+
debugger;
|
|
2577
|
+
// const result = {
|
|
2578
|
+
// bottom: NaN,
|
|
2579
|
+
// top: NaN,
|
|
2580
|
+
// };
|
|
2581
|
+
var maxWhile = 1000;
|
|
2582
|
+
while (maxWhile--) {
|
|
2583
|
+
var base = PowiainaNum.oBase(operators);
|
|
2584
|
+
if (base >= 10) {
|
|
2585
|
+
// Bottom upgrade mode: add 10^'s.
|
|
2586
|
+
operators[0].repeat = Math.log10(base);
|
|
2587
|
+
PowiainaNum.opSetOperator(operators, PowiainaNum.opGetOperator(operators, 1, 1, 1) + 1, 1, 1, 1);
|
|
2588
|
+
} else {
|
|
2589
|
+
if (operators.length <= 2 && operators[1].repeat == 1) {
|
|
2590
|
+
return operators;
|
|
2591
|
+
}
|
|
2592
|
+
// Operator upgrade mode:
|
|
2593
|
+
// Check the -2th operator, is repeat >= 2?
|
|
2594
|
+
if (operators[1].repeat >= 2) {
|
|
2595
|
+
operators[1].arrow++;
|
|
2596
|
+
operators[0].repeat = operators[1].repeat + Math.log10(base);
|
|
2597
|
+
operators[1].repeat = 1;
|
|
2598
|
+
} else if (base !== 1) {
|
|
2599
|
+
operators[1].arrow++;
|
|
2600
|
+
operators[0].repeat = operators[1].repeat + Math.log10(base);
|
|
2601
|
+
operators[1].repeat = 1;
|
|
2602
|
+
} else {
|
|
2603
|
+
// -2th repeat = 1, and base = 1;
|
|
2604
|
+
operators[1].arrow = operators[2].arrow;
|
|
2605
|
+
}
|
|
2606
|
+
mergeSameArrays({
|
|
2607
|
+
array: operators
|
|
2608
|
+
});
|
|
2609
|
+
}
|
|
2610
|
+
}
|
|
2611
|
+
return operators;
|
|
2612
|
+
}
|
|
2538
2613
|
}, {
|
|
2539
2614
|
key: "arrow",
|
|
2540
2615
|
value: function arrow(x, z, y) {
|
|
@@ -2954,6 +3029,57 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2954
3029
|
value: function isNaN(x) {
|
|
2955
3030
|
return new PowiainaNum(x).isNaN();
|
|
2956
3031
|
}
|
|
3032
|
+
//#endregion
|
|
3033
|
+
//#region operators
|
|
3034
|
+
/**
|
|
3035
|
+
* @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
|
|
3036
|
+
*/
|
|
3037
|
+
}, {
|
|
3038
|
+
key: "opGetOperatorIndex",
|
|
3039
|
+
value: function opGetOperatorIndex(operators, arrow) {
|
|
3040
|
+
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
3041
|
+
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3042
|
+
for (var i = 0; i < operators.length; i++) {
|
|
3043
|
+
var cmp = compareTuples([operators[i].megota, operators[i].expans, operators[i].arrow], [megota, expans, arrow]);
|
|
3044
|
+
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
3045
|
+
if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
|
|
3046
|
+
}
|
|
3047
|
+
return operators.length - 0.5;
|
|
3048
|
+
}
|
|
3049
|
+
}, {
|
|
3050
|
+
key: "opGetOperator",
|
|
3051
|
+
value: function opGetOperator(operators, arrow) {
|
|
3052
|
+
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
3053
|
+
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3054
|
+
var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
|
|
3055
|
+
if (!operators[index]) return 0;
|
|
3056
|
+
return operators[index].repeat;
|
|
3057
|
+
}
|
|
3058
|
+
}, {
|
|
3059
|
+
key: "opSetOperator",
|
|
3060
|
+
value: function opSetOperator(operators, val, arrow) {
|
|
3061
|
+
var expans = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3062
|
+
var megota = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
3063
|
+
// if (arrow!=0&&val==0) return false;
|
|
3064
|
+
var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
|
|
3065
|
+
if (!operators[index]) {
|
|
3066
|
+
operators.splice(Math.ceil(index), 0, {
|
|
3067
|
+
arrow: arrow,
|
|
3068
|
+
expans: expans,
|
|
3069
|
+
megota: megota,
|
|
3070
|
+
valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
|
|
3071
|
+
repeat: val
|
|
3072
|
+
});
|
|
3073
|
+
return true;
|
|
3074
|
+
}
|
|
3075
|
+
operators[index].repeat = val;
|
|
3076
|
+
if (operators[index].repeat == 0) {
|
|
3077
|
+
operators.splice(index, 1);
|
|
3078
|
+
return true;
|
|
3079
|
+
}
|
|
3080
|
+
// this.normalize()
|
|
3081
|
+
return false;
|
|
3082
|
+
}
|
|
2957
3083
|
}, {
|
|
2958
3084
|
key: "fromBigInt",
|
|
2959
3085
|
value: function fromBigInt(input) {
|
package/dist/PowiainaNum.js
CHANGED
|
@@ -1143,15 +1143,13 @@
|
|
|
1143
1143
|
}
|
|
1144
1144
|
}, {
|
|
1145
1145
|
key: "omegalog",
|
|
1146
|
-
value:
|
|
1147
|
-
//#endregion
|
|
1148
|
-
function omegalog() {
|
|
1146
|
+
value: function omegalog() {
|
|
1149
1147
|
var bbase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
1150
1148
|
var target = this;
|
|
1151
1149
|
var dis = target.clone();
|
|
1152
1150
|
if (dis.isInfiNaN()) return dis;
|
|
1153
1151
|
if (dis.gte("10{1,2}e15.954589770191003")) return dis;
|
|
1154
|
-
|
|
1152
|
+
new PowiainaNum(bbase).clone();
|
|
1155
1153
|
if (dis.getOperator(1 / 0) >= 1) {
|
|
1156
1154
|
dis.setOperator(dis.getOperator(1 / 0) - 1, 1 / 0, 1, 1);
|
|
1157
1155
|
return dis;
|
|
@@ -1160,24 +1158,53 @@
|
|
|
1160
1158
|
// dis.layer -= 1
|
|
1161
1159
|
// return dis
|
|
1162
1160
|
// } else
|
|
1163
|
-
// @ts-expect-error
|
|
1164
|
-
if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
} else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1169
|
-
|
|
1170
|
-
} else {
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1161
|
+
// // @ts-expect-error
|
|
1162
|
+
// if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1163
|
+
// // @ts-expect-error
|
|
1164
|
+
// let zero = new PowiainaNum(dis.array[dis.arr01.length - 1][0]);
|
|
1165
|
+
// return zero;
|
|
1166
|
+
// } else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1167
|
+
// return new PowiainaNum(target).anyarrow_log(3)(bbase);
|
|
1168
|
+
// } else {
|
|
1169
|
+
// let addTest = 8;
|
|
1170
|
+
// let target = 0;
|
|
1171
|
+
// while (addTest >= 10 ** -10) {
|
|
1172
|
+
// if (PowiainaNum.arrFrac(base, target + addTest).lte(dis)) {
|
|
1173
|
+
// target += addTest;
|
|
1174
|
+
// }
|
|
1175
|
+
// addTest /= 2;
|
|
1176
|
+
// }
|
|
1177
|
+
// return new PowiainaNum(target);
|
|
1178
|
+
// }
|
|
1179
|
+
var clonedOperators = [];
|
|
1180
|
+
for (var i = 0; i < target.array.length; i++) {
|
|
1181
|
+
clonedOperators[i] = {
|
|
1182
|
+
arrow: target.array[i].arrow,
|
|
1183
|
+
expans: target.array[i].expans,
|
|
1184
|
+
megota: target.array[i].megota,
|
|
1185
|
+
repeat: target.array[i].repeat,
|
|
1186
|
+
valuereplaced: target.array[i].valuereplaced
|
|
1187
|
+
};
|
|
1180
1188
|
}
|
|
1189
|
+
var result = PowiainaNum.omegacollect(clonedOperators);
|
|
1190
|
+
return result[1].arrow - 1 + Math.log(result[0].repeat / 2) / Math.log(5);
|
|
1191
|
+
// if (dis.arr01[dis.array.length - 1][0] >= 98) {
|
|
1192
|
+
// // @ts-expect-error
|
|
1193
|
+
// let zero = new PowiainaNum(dis.array[dis.arr01.length - 1][0]);
|
|
1194
|
+
// return zero;
|
|
1195
|
+
// } else if (target.lt(PowiainaNum.pentate(bbase, 2))) {
|
|
1196
|
+
// return new PowiainaNum(target).anyarrow_log(3)(bbase);
|
|
1197
|
+
// } else {
|
|
1198
|
+
// let addTest = 8;
|
|
1199
|
+
// let target = 0;
|
|
1200
|
+
// while (addTest >= 10 ** -10) {
|
|
1201
|
+
// if (PowiainaNum.arrFrac(base, target + addTest).lte(dis)) {
|
|
1202
|
+
// target += addTest;
|
|
1203
|
+
// }
|
|
1204
|
+
// addTest /= 2;
|
|
1205
|
+
// }
|
|
1206
|
+
// return new PowiainaNum(target);
|
|
1207
|
+
// }
|
|
1181
1208
|
}
|
|
1182
1209
|
/**
|
|
1183
1210
|
* Arrow operation, return a function
|
|
@@ -1966,58 +1993,45 @@
|
|
|
1966
1993
|
}, {
|
|
1967
1994
|
key: "getOperatorIndex",
|
|
1968
1995
|
value:
|
|
1969
|
-
//#endregion
|
|
1970
|
-
//#region operators
|
|
1971
1996
|
/**
|
|
1972
1997
|
* @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
|
|
1973
1998
|
*/
|
|
1974
1999
|
function getOperatorIndex(arrow) {
|
|
1975
2000
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
1976
2001
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1977
|
-
|
|
1978
|
-
var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
|
|
1979
|
-
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
1980
|
-
if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
|
|
1981
|
-
}
|
|
1982
|
-
return this.array.length - 0.5;
|
|
2002
|
+
return PowiainaNum.opGetOperatorIndex(this.array, arrow, expans, megota);
|
|
1983
2003
|
}
|
|
1984
2004
|
/**
|
|
1985
2005
|
* @returns number repeats of operators with given arguments.
|
|
1986
2006
|
*/
|
|
1987
2007
|
}, {
|
|
1988
2008
|
key: "getOperator",
|
|
1989
|
-
value:
|
|
2009
|
+
value:
|
|
2010
|
+
/**
|
|
2011
|
+
* @returns number repeats of operators with given arguments.
|
|
2012
|
+
*/
|
|
2013
|
+
function getOperator(arrow) {
|
|
1990
2014
|
var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
1991
2015
|
var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1992
|
-
|
|
1993
|
-
if (!this.array[index]) return 0;
|
|
1994
|
-
return this.array[index].repeat;
|
|
2016
|
+
return PowiainaNum.opGetOperator(this.array, arrow, expans, megota);
|
|
1995
2017
|
}
|
|
1996
2018
|
/**
|
|
1997
|
-
* Modify the repeat of operator
|
|
2019
|
+
* Modify the repeat of operator(argument will modified)
|
|
1998
2020
|
* @param number val the repeat of operator will modify to array.
|
|
1999
2021
|
* @returns bool Is the operators array changed?
|
|
2000
2022
|
*/
|
|
2001
2023
|
}, {
|
|
2002
2024
|
key: "setOperator",
|
|
2003
|
-
value:
|
|
2025
|
+
value:
|
|
2026
|
+
/**
|
|
2027
|
+
* Modify the repeat of operator
|
|
2028
|
+
* @param number val the repeat of operator will modify to array.
|
|
2029
|
+
* @returns bool Is the operators array changed?
|
|
2030
|
+
*/
|
|
2031
|
+
function setOperator(val, arrow) {
|
|
2004
2032
|
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
2005
2033
|
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
2006
|
-
|
|
2007
|
-
var index = this.getOperatorIndex(arrow, expans, megota);
|
|
2008
|
-
if (!this.array[index]) {
|
|
2009
|
-
this.array.splice(Math.ceil(index), 0, {
|
|
2010
|
-
arrow: arrow,
|
|
2011
|
-
expans: expans,
|
|
2012
|
-
megota: megota,
|
|
2013
|
-
valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
|
|
2014
|
-
repeat: val
|
|
2015
|
-
});
|
|
2016
|
-
return true;
|
|
2017
|
-
}
|
|
2018
|
-
this.array[index].repeat = val;
|
|
2019
|
-
// this.normalize()
|
|
2020
|
-
return false;
|
|
2034
|
+
return PowiainaNum.opSetOperator(this.array, val, arrow, expans, megota);
|
|
2021
2035
|
}
|
|
2022
2036
|
//#endregion
|
|
2023
2037
|
//#region converters
|
|
@@ -2031,7 +2045,7 @@
|
|
|
2031
2045
|
value: function toNumber() {
|
|
2032
2046
|
if (this.sign == -1) return -this.neg().toNumber();
|
|
2033
2047
|
if (this.small) return 1 / this.rec().toNumber();
|
|
2034
|
-
if (this.
|
|
2048
|
+
if (this.gte("e308.25471555991675")) return Infinity;
|
|
2035
2049
|
if (this.array.length == 1) return this.array[0].repeat;else if (this.array.length == 2 && this.array[1].arrow == 1 && this.array[1].expans == 1 && this.array[1].megota == 1 && this.array[1].repeat == 1) return Math.pow(10, this.getOperator(0));
|
|
2036
2050
|
return NaN;
|
|
2037
2051
|
}
|
|
@@ -2252,6 +2266,15 @@
|
|
|
2252
2266
|
this.array[0].repeat = this.array[1].arrow;
|
|
2253
2267
|
this.array[1] = newOperator(1, Infinity, this.array[1].expans, this.array[1].megota);
|
|
2254
2268
|
}
|
|
2269
|
+
// for any (10{y=finite>=2})^z x x<9e15, convert to (10{y})^(z-1) (10{y-1}^(x-1) 10)
|
|
2270
|
+
if (this.array.length >= 2 && this.array[1].arrow >= 2 && this.array[0].repeat < MSI && isFinite(this.array[1].arrow)) {
|
|
2271
|
+
var _x2 = this.array[0].repeat;
|
|
2272
|
+
var y = this.array[1].arrow;
|
|
2273
|
+
var z = this.array[1].repeat;
|
|
2274
|
+
this.array[0].repeat = 10;
|
|
2275
|
+
this.array.splice(2, 0, newOperator(z - 1, y, this.array[1].expans, this.array[1].megota));
|
|
2276
|
+
this.array[1] = newOperator(_x2 - 1, y - 1, this.array[1].expans, this.array[1].megota);
|
|
2277
|
+
}
|
|
2255
2278
|
while (x.array.length >= 2 && x.array[0].repeat == 1 && x.array[1].repeat) {
|
|
2256
2279
|
// for any 10{X}10{X} 1, turn into 10{X}10
|
|
2257
2280
|
// [1, [R=sth, A=sth, E=sth, M=sth]]
|
|
@@ -2541,6 +2564,58 @@
|
|
|
2541
2564
|
var base2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
2542
2565
|
return new PowiainaNum(t).iteratedlog(other2, base2);
|
|
2543
2566
|
}
|
|
2567
|
+
//#endregion
|
|
2568
|
+
/**
|
|
2569
|
+
* Get the base of operators
|
|
2570
|
+
*/
|
|
2571
|
+
}, {
|
|
2572
|
+
key: "oBase",
|
|
2573
|
+
value: function oBase(operators) {
|
|
2574
|
+
return operators[0].repeat;
|
|
2575
|
+
}
|
|
2576
|
+
/**
|
|
2577
|
+
* Only works for operators level < ω.
|
|
2578
|
+
*/
|
|
2579
|
+
}, {
|
|
2580
|
+
key: "omegacollect",
|
|
2581
|
+
value: function omegacollect(operators) {
|
|
2582
|
+
debugger;
|
|
2583
|
+
// const result = {
|
|
2584
|
+
// bottom: NaN,
|
|
2585
|
+
// top: NaN,
|
|
2586
|
+
// };
|
|
2587
|
+
var maxWhile = 1000;
|
|
2588
|
+
while (maxWhile--) {
|
|
2589
|
+
var base = PowiainaNum.oBase(operators);
|
|
2590
|
+
if (base >= 10) {
|
|
2591
|
+
// Bottom upgrade mode: add 10^'s.
|
|
2592
|
+
operators[0].repeat = Math.log10(base);
|
|
2593
|
+
PowiainaNum.opSetOperator(operators, PowiainaNum.opGetOperator(operators, 1, 1, 1) + 1, 1, 1, 1);
|
|
2594
|
+
} else {
|
|
2595
|
+
if (operators.length <= 2 && operators[1].repeat == 1) {
|
|
2596
|
+
return operators;
|
|
2597
|
+
}
|
|
2598
|
+
// Operator upgrade mode:
|
|
2599
|
+
// Check the -2th operator, is repeat >= 2?
|
|
2600
|
+
if (operators[1].repeat >= 2) {
|
|
2601
|
+
operators[1].arrow++;
|
|
2602
|
+
operators[0].repeat = operators[1].repeat + Math.log10(base);
|
|
2603
|
+
operators[1].repeat = 1;
|
|
2604
|
+
} else if (base !== 1) {
|
|
2605
|
+
operators[1].arrow++;
|
|
2606
|
+
operators[0].repeat = operators[1].repeat + Math.log10(base);
|
|
2607
|
+
operators[1].repeat = 1;
|
|
2608
|
+
} else {
|
|
2609
|
+
// -2th repeat = 1, and base = 1;
|
|
2610
|
+
operators[1].arrow = operators[2].arrow;
|
|
2611
|
+
}
|
|
2612
|
+
mergeSameArrays({
|
|
2613
|
+
array: operators
|
|
2614
|
+
});
|
|
2615
|
+
}
|
|
2616
|
+
}
|
|
2617
|
+
return operators;
|
|
2618
|
+
}
|
|
2544
2619
|
}, {
|
|
2545
2620
|
key: "arrow",
|
|
2546
2621
|
value: function arrow(x, z, y) {
|
|
@@ -2960,6 +3035,57 @@
|
|
|
2960
3035
|
value: function isNaN(x) {
|
|
2961
3036
|
return new PowiainaNum(x).isNaN();
|
|
2962
3037
|
}
|
|
3038
|
+
//#endregion
|
|
3039
|
+
//#region operators
|
|
3040
|
+
/**
|
|
3041
|
+
* @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
|
|
3042
|
+
*/
|
|
3043
|
+
}, {
|
|
3044
|
+
key: "opGetOperatorIndex",
|
|
3045
|
+
value: function opGetOperatorIndex(operators, arrow) {
|
|
3046
|
+
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
3047
|
+
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3048
|
+
for (var i = 0; i < operators.length; i++) {
|
|
3049
|
+
var cmp = compareTuples([operators[i].megota, operators[i].expans, operators[i].arrow], [megota, expans, arrow]);
|
|
3050
|
+
if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
|
|
3051
|
+
if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
|
|
3052
|
+
}
|
|
3053
|
+
return operators.length - 0.5;
|
|
3054
|
+
}
|
|
3055
|
+
}, {
|
|
3056
|
+
key: "opGetOperator",
|
|
3057
|
+
value: function opGetOperator(operators, arrow) {
|
|
3058
|
+
var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
3059
|
+
var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3060
|
+
var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
|
|
3061
|
+
if (!operators[index]) return 0;
|
|
3062
|
+
return operators[index].repeat;
|
|
3063
|
+
}
|
|
3064
|
+
}, {
|
|
3065
|
+
key: "opSetOperator",
|
|
3066
|
+
value: function opSetOperator(operators, val, arrow) {
|
|
3067
|
+
var expans = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
3068
|
+
var megota = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
3069
|
+
// if (arrow!=0&&val==0) return false;
|
|
3070
|
+
var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
|
|
3071
|
+
if (!operators[index]) {
|
|
3072
|
+
operators.splice(Math.ceil(index), 0, {
|
|
3073
|
+
arrow: arrow,
|
|
3074
|
+
expans: expans,
|
|
3075
|
+
megota: megota,
|
|
3076
|
+
valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
|
|
3077
|
+
repeat: val
|
|
3078
|
+
});
|
|
3079
|
+
return true;
|
|
3080
|
+
}
|
|
3081
|
+
operators[index].repeat = val;
|
|
3082
|
+
if (operators[index].repeat == 0) {
|
|
3083
|
+
operators.splice(index, 1);
|
|
3084
|
+
return true;
|
|
3085
|
+
}
|
|
3086
|
+
// this.normalize()
|
|
3087
|
+
return false;
|
|
3088
|
+
}
|
|
2963
3089
|
}, {
|
|
2964
3090
|
key: "fromBigInt",
|
|
2965
3091
|
value: function fromBigInt(input) {
|
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,n=Array(e);t<e;t++)n[t]=r[t];return n}function t(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,i(n.key),n)}}function n(r,e){return function(r){if(Array.isArray(r))return r}(r)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var n,a,i,o,u=[],l=!0,s=!1;try{if(i=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;l=!1}else for(;!(l=(n=i.call(t)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(r){s=!0,a=r}finally{try{if(!l&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(s)throw a}}return u}}(r,e)||u(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}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)||u(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 i(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function o(r){return(o="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)}function u(r,t){if(r){if("string"==typeof r)return e(r,t);var n={}.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(r,t):void 0}}var l,s=9007199254740991,c=15.954589770191003,f=11102230246251568e-32,h=1.444667861009766,g=/^(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+))$/,y=/^((\d+(\.\d*)?|\d*\.\d+)?([EeFf]([-\+]?)))*(0|\d+(\.\d*)?|\d*\.\d+)$/;function N(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:n,valuereplaced:e==1/0?0:t==1/0?1:-1}}function p(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var n=0;n<Math.min(e[0].length,e[1].length);n++){var a=e[0][n],i=e[1][n];if(a<i)return-1;if(a>i)return 1}return 0}function m(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var v=.5671432904097838;function w(r){var e,t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=n,o=a;if(!Number.isFinite(r))return r;if(o){if(0===r)return r;if(1===r)return v;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 u=0;u<100;++u){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<i*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function b(r){return 2==r.length}function d(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function E(r){return"x"===r?1/0:r}function O(r){return 4==r.length}function I(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function k(r){return"x"===r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function M(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"x"==r[2]&&"number"==typeof r[3]}function x(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new F(r)).isFinite())return r;if(n){if(r.eq(F.ZERO))return r;if(r.eq(F.ONE))return new F(v);e=F.log(r)}else{if(r.eq(F.ZERO))return F.NEGATIVE_INFINITY.clone();e=F.log(r.neg())}for(var a=0;a<100;++a){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(F.ONE).sub(e.add(2).mul(o).div(F.mul(2,e).add(2)));if(u.eq(F.ZERO))return e;var l=e.sub(o.div(u));if(F.abs(l.sub(e)).lt(F.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function q(r,e){return p([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}function S(r,e,t){var n=new F(r),a=new F(e),i=new F(t),o=function(r,e,t){return new F(r).pow(new F(t).sub(e).add(1)).mul(new F(2).pow(new F(e).sub(t)))}(n,a,new F(i).omegalog(n.toNumber()));if(i.gt(n)){var u=S(n,a.add(1),i).sub(2),l=S(n,a,n),s=n.clone();return _(n,a,u.pow_base(s.div(l)).mul(l))}return o}function _(r,e,t){var n=new F(r),a=new F(e),i=new F(t);if(a.isInt())return F.arrow(n,a,i);if(i.gt(n)){var o=S(n,a,i),u=S(n,a,n),l=n.clone(),s=o.div(u).logBase(l.div(u));return _(n,a.add(1),F.add(2,s))}return F.arrFrac(n,function(r,e,t){var n=new F(2).logBase(r);return new F(e).sub(1).add(new F(t).logBase(r).sub(n).div(new F(1).sub(n)))}(n,a,i))}function R(r){for(var e=BigInt(64);r>=BigInt(1)<<e;)e*=BigInt(2);for(var t=e/BigInt(2);t>BigInt(0);)r>=BigInt(1)<<e?e+=t:e-=t,t/=BigInt(2);var n=e-BigInt(54),a=r>>n;return Math.log10(Number(a))+Math.LOG10E/Math.LOG2E*Number(n)}var T,F=function(){function r(e){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[l]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,r.blankArgumentConstructorReturnZero&&this.resetFromObject(r.ZERO);try{if(void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==o(e)){var n=r.fromObject(e);this.resetFromObject(n)}else if("string"==typeof e){var a=r.fromString(e);this.resetFromObject(a)}else if("bigint"==typeof e){var i=r.fromBigInt(e);this.resetFromObject(i)}else;}catch(e){if(console.error("Malformed input"),console.error(e),r.throwErrorOnResultNaN&&r.isNaN(this))throw new Error("NaN")}}return function(r,e,n){return e&&t(r.prototype,e),n&&t(r,n),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,n,a,i,o,u,l=this.clone().normalize(),h=new r(e);if(l.eq(r.POSITIVE_INFINITY)&&h.eq(r.NEGATIVE_INFINITY)||l.eq(r.NEGATIVE_INFINITY)&&h.eq(r.POSITIVE_INFINITY)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!l.isFinite())return l.clone();if(!h.isFinite())return h.clone();if(l.isZero())return h.clone();if(h.isZero())return l.clone();if(l.sign==-h.sign&&function(){var r=l.abs(),e=h.abs();return r.eq(e)}())return r.ZERO.clone();if(l.abs().lt(s)&&h.abs().lt(s)&&l.abs().gte(f)&&h.abs().gte(f))return r.fromNumber(l.toNumber()+h.toNumber());if(l.abs().lt(r.E_MSI_REC)||l.abs().gt(r.E_MSI)||h.abs().lt(r.E_MSI_REC)||h.abs().gt(r.E_MSI)){var g=l.maxabs(h);return l.abs().eq(g)?l:(h.abs().eq(g),h)}if(-1==l.sign)return l.neg().add(h.neg()).neg();l.cmpabs(h)>0?(o=l,u=h):(u=l,o=h);var y=o.toNumber()+u.toNumber();if(isFinite(y)&&0!==y)return r.fromNumber(y);var p=1;if(!(o.small||u.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(n=u.array[1])||void 0===n?void 0:n.repeat)||o.sign!=u.sign))return new r((o.array[0].repeat+u.array[0].repeat)*o.sign);var m=(o.small?-1:1)*((null===(a=o.array[1])||void 0===a?void 0:a.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),v=(u.small?-1:1)*((null===(i=u.array[1])||void 0===i?void 0:i.repeat)?u.array[0].repeat:Math.log10(u.array[0].repeat));if(m-v>c)return o;var w=-Math.floor(m),b=0,d=o.sign*Math.pow(10,m+w)+u.sign*Math.pow(10,v+w);if(d>0&&(b=Math.log10(d)-w),d<0&&(b=Math.log10(-d)-w,p*=-1),0==d)return r.ZERO.clone();var E=r.NaN.clone();return E.sign=1,E.array=b>c||b<-c?[N(b,0),N(1,1)]:[N(Math.pow(10,Math.abs(b)),0)],E.small=b<0,E.sign*=p,E}},{key:"plus",value:function(r){return this.add(r)}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"minus",value:function(r){return this.sub(r)}},{key:"mul",value:function(e){var t=this.clone(),n=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&n.eq(r.NEGATIVE_INFINITY)||n.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&n.isZero()||n.isInfiNaN()&&t.isZero()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(t.eq(r.NEGATIVE_INFINITY)&&n.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!n.isFinite())return n.clone();if(t.isZero()||n.isZero())return r.ZERO.clone();var a,i=t.toNumber()*n.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((a=t.abs().log10().add(n.abs().log10()).pow10()).sign=t.sign*n.sign,a)}},{key:"times",value:function(r){return this.mul(r)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"divide",value:function(r){return this.div(r)}},{key:"mod",value:function(e){var t=new r(e),n=this.div(t);return n.sub(n.floor()).mul(t)}},{key:"modulus",value:function(r){return this.mod(r)}},{key:"pow10",value:function(){var e,t,n=this.clone();return this.isFinite()?n.isneg()?(n.sign*=-1,n.pow10().rec()):n.lt(308.25471555991675)?r.fromNumber(Math.pow(10,n.toNumber())):n.small?n.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(n.array[0].repeat,-1))):(n.gt(r.TETRATED_MSI)||(n.setOperator((null!==(t=null===(e=n.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),n.normalize()),n):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(t.isneg())return this.pow(t.neg()).rec();if(this.isneg()){if(!t.isInt()){if(t.small&&t.rec().div(2).eq(1))return this.neg().pow(t).neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}var n=this.abs().pow(t);return n.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),n}var a=this.toNumber(),i=t.toNumber(),o=Math.pow(a,i);if(isFinite(o)&&0!==o)return r.fromNumber(o);if(this.isZero()&&t.isZero())return r.ONE.clone();if(this.isZero())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(this.gt(0))return this.log10().mul(t).pow10();if(t.rec().mod(2).eq(1))return this.neg().log10().mul(t).pow10().neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");return 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()){if(r.throwErrorOnResultNaN)throw new Error("NaN");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:"log2",value:function(){return this.log(2)}},{key:"logBase",value:function(r){return this.log(r)}},{key:"ln",value:function(){return this.log()}},{key:"pLog10",value:function(){return this.isneg()?r.ZERO:this.log10()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(s)?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(s)){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 n=r*r,a=r;return t+=1/(12*a),t-=1/(360*(a*=n)),t+=1/(1260*(a*=n)),t-=1/(1680*(a*=n)),t+=1/(1188*(a*=n)),t-=691/(360360*(a*=n)),t+=7/(1092*(a*=n)),t-=3617/(122400*(a*=n)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var n=e*e,a=e,i=12*a,o=1/i,u=(t-=e)+o;if(u===t)return r.exp(t);if((u=(t=u)-(o=1/(i=360*(a*=n))))===t)return r.exp(t);t=u;var l=1/(i=1260*(a*=n));return t+=l,t-=l=1/(i=1680*(a*=n)),r.exp(t)}return this.gt(s)?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],t=e;if(this.lt(-.3678794411710499)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(t)return this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(w(this.toNumber())):this.lt(s)?r.fromNumber(w(this.sign*this.getOperator(0))):this.lt("eee15")?x(this):this.log();if(-1===this.sign){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return this.lt(9e15)?r.fromNumber(w(this.sign*this.array[0].repeat,1e-10,!1)):this.lt(r.E_MSI)?x(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.clone(),i=new r(e),o=new r(n);if(a.isNaN()||i.isNaN()||o.isNaN()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&a.gte(h)&&(i=i.add(o.slog(a))),i.isInfi()&&i.sign>0)return a.gte(h)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.isZero()){if(i.isZero()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return i.gte(s/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone()}if(a.eq(r.ONE)){if(i.eq(r.ONE.neg())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return 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 a;if(i.eq(2))return a.pow(a);if(a.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var u=a.max(i);if(u.gt(r.PENTATED_MSI))return u;if(u.gt(r.TETRATED_MSI)||i.gt(s)){if(this.lt(h))return(t=a.ln().neg()).lambertw().div(t);var l=a.slog(10).add(i);return l.setOperator(l.getOperator(2)+1,2),l.normalize(),l}for(var c=i.toNumber(),f=Math.floor(c),g=a.pow(c-f),y=r.NaN,N=0,p=r.E_MSI.clone();0!==f&&g.lt(p)&&N<100;++N)if(f>0){if(g=a.pow(g),y.eq(g)){f=0;break}y=g,--f}else{if(g=g.log(a),y.eq(g)){f=0;break}y=g,++f}return(100==N||this.lt(h))&&(f=0),g.setOperator(g.getOperator(1)+f,1),g.normalize(),g}},{key:"tetr",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.tetrate(r,e)}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),n=new r(e);if(t.isInfiNaN())return t;if(n.isNaN())return n;if(n.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(n))return r.ONE.clone();if(n.lt(h)){var a=n.tetrate(1/0);if(t.eq(a))return r.POSITIVE_INFINITY.clone();if(t.gt(a)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}}if(t.max(n).gt(r.PENTATED_MSI))return t.gt(n)?t:r.ZERO.clone();if(t.max(n).gt(r.TETRATED_MSI)&&t.gt(n))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return n.pow(t).sub(2);var i=0,o=t.getOperator(1)-n.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)}if(t.gt(10))return new r(i);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/h)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"tetrate_10",value:function(){return r.tetrate(10,this)}},{key:"iteratedlog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=this.clone(),a=new r(t),i=new r(e);return i.isZero()?n:i.eq(r.ONE)?n.log(a):a.tetrate(n.slog(a).sub(i))}},{key:"omegalog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this,n=t.clone();if(n.isInfiNaN())return n;if(n.gte("10{1,2}e15.954589770191003"))return n;var a=new r(e).clone();if(n.getOperator(1/0)>=1)return n.setOperator(n.getOperator(1/0)-1,1/0,1,1),n;if(n.arr01[n.array.length-1][0]>=98){var i=new r(n.array[n.arr01.length-1][0]);return i}if(t.lt(r.pentate(e,2)))return new r(t).anyarrow_log(3)(e);for(var o=8,u=0;o>=Math.pow(10,-10);)r.arrFrac(a,u+o).lte(n)&&(u+=o),o/=2;return new r(u)}},{key:"arrow",value:function(e){var t=this.clone(),n=new r(e);return n.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}):n.isInt()?n.eq(0)?function(r){return t.mul(r)}:n.eq(1)?function(r){return t.pow(r)}:n.eq(2)?function(r){return t.tetrate(r)}:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=new r(e),u=new r(a),l=r.arrowFuncMap.get("".concat(t.toString()," ").concat(n.toString()," ").concat(o.toString()," ").concat(i));if(l)return l.clone();var c=function(){var e;if(t.isNaN()||o.isNaN()||u.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO)){if(o.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(u.neq(r.ONE)&&(o=o.add(u.anyarrow_log(n)(t))),t.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return t.clone();if(n.gt(r.MSI))return(e=n.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var a=n.toNumber();if(o.eq(2))return t.arrow(a-1)(t,u,i+1);if(t.max(o).gt(r.arrowMSI(a+1)))return t.max(o);if(t.gt(r.arrowMSI(a))||o.gt(s)){t.gt(r.arrowMSI(a))?((e=t.clone()).setOperator(e.getOperator(a)-1,a),e.normalize()):e=t.gt(r.arrowMSI(a-1))?new r(t.getOperator(a-1)):r.ZERO;var l=e.add(o);return l.setOperator(l.getOperator(a)+1,a),l.normalize(),l}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[N(10,0),N(1,a)]});var c=o.toNumber(),f=Math.floor(c),h=n.sub(r.ONE);e=t.arrow(h)(c-f,u,i+1);for(var g=0,y=r.arrowMSI(a-1);0!==f&&e.lt(y)&&g<100;g++)f>0&&(e=t.arrow(h)(e,u,i+1),--f);return 100==g&&(f=0),e.setOperator(e.getOperator(a-1)+f,a-1),e.normalize(),e}();return i<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(n.toString()," ").concat(o.toString()," ").concat(i),c.clone()),c}:function(r){return _(t,n,r)}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),n=new r(e),a=n.toNumber();if(n.gt(s))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!n.isInt()||n.lt(0)?function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}:n.eq(0)?function(r){return t.div(r)}:n.eq(1)?function(r){return t.log(r)}:n.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e);if(i.isNaN())return i;if(i.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(i))return r.ONE.clone();if(t.max(i).gt(r.arrowMSI(a+1)))return t.gt(i)?t:r.ZERO.clone();if(t.max(i).gt(r.arrowMSI(a))&&t.gt(i))return t.setOperator(t.getOperator(a)-1,a),t.normalize(),t.sub(t.getOperator(a-1));if(t.lt(r.ZERO.clone())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}var o=0,u=t.getOperator(a)-i.getOperator(a);if(u>3){var l=u-3;o+=l,t.setOperator(t.getOperator(a)-l,a)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=t.arrow(a-1)(e),--o;else{if(t.lte(1))return new r(o+t.toNumber()-1);++o,t=t.anyarrow_log(a-1)(e,n+1)}if(t.gt(10))return new r(o);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}}},{key:"arrow_height_inverse",value:function(r){return this.anyarrow_log(r)}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r,e){return this.arrow(3)(r,e)}},{key:"hexate",value:function(r,e){return this.arrow(4)(r,e)}},{key:"pent",value:function(r,e){return this.arrow(3)(r,e)}},{key:"penta_log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this.anyarrow_log(3)(r)}},{key:"expansion",value:function(e){var t,n=new r(e),a=this.clone();if(n.lt(r.ZERO)||!n.isInt())return r.NaN.clone();if(n.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(this.eq(2))return new r(4);if(n.eq(0))return r.ONE.clone();if(a.gt("10{1,2}".concat(s))||n.gt(s)){a.gt("10{1,2}".concat(s))?((t=a.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=a.gt("10{".concat(s,"}10"))?new r(a.getOperator(1/0)):r.ZERO;var i=t.add(n);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,u=n.toNumber()-1;for(t=a.clone(),o=0;0!==u&&t.lt(s)&&o<100;++o)u>0&&(t=a.arrow(t)(a),--u);return 100==o&&(u=0),t.setOperator(t.getOperator(1/0)+u,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),n=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()};if(t.eq(0))return function(r){return n.arrow(r)(n)};if(t.eq(1))return function(r){return n.expansion(r)};var a=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(n.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.eq(r.ZERO)){if(o.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return n.clone();if(a.gt(r.MSI))return(t=a.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var u=a.toNumber();if(o.eq(2))return n.expansionArrow(u-1)(n,i+1);if(n.max(o).gt("10{".concat(u+1,",2}").concat(s)))return n.max(o);if(n.gt("10{".concat(u,",2}").concat(s))||o.gt(s)){n.gt("10{".concat(u,",2}").concat(s))?((t=n.clone()).setOperator(t.getOperator(u,2)-1,u,2),t.normalize()):t=n.gt("10{".concat(u-1,",2}").concat(s))?new r(n.getOperator(u-1,2)):r.ZERO;var l=t.add(o);return l.setOperator(l.getOperator(u,2)+1,u,2),l.normalize(),l}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[N(10,0),N(1,u,2)]});var c=o.toNumber(),f=Math.floor(c),h=a.sub(r.ONE);t=n.expansionArrow(h)(c-f,i+1);for(var g=0,y=new r("10{".concat(u-1,",2}").concat(s));0!==f&&t.lt(y)&&g<100;g++)f>0&&(t=n.expansionArrow(h)(t,i+1),--f);return 100==g&&(f=0),t.setOperator(t.getOperator(u-1,2)+f,u-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"clampMin",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.max.apply(r,[this].concat(t))}},{key:"clampMax",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.min.apply(r,[this].concat(t))}},{key:"clamp",value:function(r,e){return this.max(r).min(e)}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];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 n=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(n?-1:1);if(t.small&&!this.small)return 1*(n?-1:1);var a=1;this.small&&t.small&&(a*=-1),n&&(a*=-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];if(u.repeat===1/0&&l.repeat===1/0)return this.small===t.small?0:t.small?1:-1;if(u.repeat===1/0){i=1;break}if(l.repeat===1/0){i=-1;break}var s=p([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*a+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:"equals",value:function(r){return this.eq(r)}},{key:"notEquals",value:function(r){return this.neq(r)}},{key:"eq_tolerance",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-7,n=new r(e);return this.sub(n).lte(this.max(n).mul(t))}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"recip",value:function(){return this.rec()}},{key:"reciprocate",value:function(){return this.rec()}},{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.sign=this.sign,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(s/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{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,n=0;n<this.array.length;n++){var a=p([this.array[n].megota,this.array[n].expans,this.array[n].arrow],[t,e,r]);if(0==a)return n;if(1==a)return n-.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,n=this.getOperatorIndex(r,e,t);return this.array[n]?this.array[n].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=this.getOperatorIndex(e,t,n);return this.array[a]?(this.array[a].repeat=r,!1):(this.array.splice(Math.ceil(a),0,{arrow:e,expans:t,megota:n,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{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_core",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],n="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):"","}");n=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(n,")^").concat(t.repeat," "):"".concat(n),r+="".concat(n)}return r}},{key:"toString",value:function(){try{return this.toString_core()}catch(r){return console.error("Checked error when converting to string"),"NaN"}}},{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:"normalize",value:function(){var e=!0,t=this;void 0===this.array&&(t.array=[N(NaN,0,1,1)]),void 0===this.sign&&(this.sign=0),void 0===this.layer&&(this.layer=0);for(var n=0;n<this.array.length;n++)if(this.array[n].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var a=1;a<t.array.length;++a){var i=t.array[a];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=[N(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[N(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=[N(1/0)]);do{e=!1,this.array.sort(q);for(var o=1;o<t.array.length-1;++o)t.array[o].arrow==t.array[o+1].arrow&&t.array[o].expans==t.array[o+1].expans&&t.array[o].megota==t.array[o+1].megota&&(t.array[o].repeat+=t.array[o+1].repeat,t.array.splice(o+1,1),--o,e=!0);for(var u=1;u<t.array.length;++u)0===t.array[u].arrow||0!==t.array[u].repeat&&null!==t.array[u].repeat&&void 0!==t.array[u].repeat?0==t.array[u].arrow&&t.array[u].expans>=2&&(t.array[u].arrow=1/0,t.array[u].valuereplaced=0,t.array[u].expans=t.array[u].expans-1):(t.array.splice(u,1),--u);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<c&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>s&&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>s?(this.layer++,this.array=[N(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[N(10),N(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),1==this.array.length&&1==this.array[0].repeat&&this.small&&(this.small=!1,e=!0),this.array.length>=2&&!isFinite(this.array[1].arrow)&&(this.array[1].repeat>1?(this.array.push(N(this.array[1].repeat-1,1/0,this.array[1].expans,this.array[1].megota)),this.array[1].repeat=1,this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10):(this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10)),this.array.length>=2&&this.array[1].arrow>=s&&isFinite(this.array[1].arrow)&&(this.array[0].repeat=this.array[1].arrow,this.array[1]=N(1,1/0,this.array[1].expans,this.array[1].megota));t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array.length<r.maxOps&&t.array[0].repeat<s&&t.array[1].arrow>=2&&t.array[1].repeat>1&&isFinite(t.array[1].arrow)&&(t.array[1].repeat--,t.array.splice(1,0,N(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>s&&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>s&&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:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){if(r.array){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:"add",value:function(e,t){return new r(e).add(t)}},{key:"plus",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"minus",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"times",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"divide",value:function(e,t){return new r(e).div(t)}},{key:"mod",value:function(e,t){return new r(e).mod(t)}},{key:"modulus",value:function(e,t){return new r(e).mod(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:"log2",value:function(e){return new r(e).log2()}},{key:"logBase",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"pLog10",value:function(e){return new r(e).pLog10()}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"affordGeometricSeries",value:function(e,t,n,a){return this.affordGeometricSeries_core(new r(e),new r(t),new r(n),a)}},{key:"affordGeometricSeries_core",value:function(r,e,t,n){var a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=e.mul(t.pow(n));return r.div(i).mul(t.sub(1)).add(1).clampMin(a?1:-1/0).log10().div(t.log10()).floor()}},{key:"sumGeometricSeries",value:function(e,t,n,a){return this.sumGeometricSeries_core(e,new r(t),new r(n),a)}},{key:"sumGeometricSeries_core",value:function(e,t,n,a){return t.mul(n.pow(a)).mul(r.sub(1,n.pow(e))).div(r.sub(1,n))}},{key:"affordArithmeticSeries",value:function(e,t,n,a){return this.affordArithmeticSeries_core(new r(e),new r(t),new r(n),new r(a))}},{key:"affordArithmeticSeries_core",value:function(r,e,t,n){var a=e.add(n.mul(t)).sub(t.div(2)),i=a.pow(2);return a.neg().add(i.add(t.mul(r).mul(2)).sqrt()).div(t).floor()}},{key:"sumArithmeticSeries",value:function(e,t,n,a){return this.sumArithmeticSeries_core(new r(e),new r(t),new r(n),new r(a))}},{key:"sumArithmeticSeries_core",value:function(r,e,t,n){var a=e.add(n.mul(t));return r.div(2).mul(a.mul(2).add(r.sub(1).mul(t)))}},{key:"tetrate",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,n)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"iteratedlog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return new r(e).iteratedlog(t,n)}},{key:"arrow",value:function(e,t,n){return new r(e).arrow(t)(n)}},{key:"arrFrac",value:function(e,t){if(new r(t).lt(2))return r.pentate(e,t);var n=new r(e).clone(),a=new r(t).clone();return new r(n).arrow(a.floor().add(1))(n.div(2).pow(a.sub(a.floor())).mul(2))}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(s))}},{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,n){return new r(e).arrow(t.sub(2))(n)}}},{key:"pentate",value:function(e,t,n){return new r(e).arrow(3)(t,n)}},{key:"hexate",value:function(e,t,n){return new r(e).arrow(4)(t,n)}},{key:"pent",value:function(e,t,n){return new r(e).arrow(3)(t,n)}},{key:"penta_log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new r(e).anyarrow_log(3)(t)}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];function a(e){return void 0!==t[e]&&null!==t[e]?new r(t[e]):new r(1)}return a(0).eq(1)?new r(1):a(1).eq(1)?new r(a(0)):a(5).eq(2)&&(a(4).gte(2)||a(3).gte(2)||a(2).gte(2))||0!==t.slice(6).map((function(e){return new r(e)})).filter((function(r){return r.gt(1)})).length?r.POSITIVE_INFINITY.clone():r.BEAF_core(a(0),a(1),a(2),a(3),a(4),a(5))}},{key:"BEAF_core",value:function(e,t){var a=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,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),f=new r(t);function h(e){var t;return new r(null!==(t=[a,i,o,u][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(f.eq(1))return new r(c);if(f.isZero())return new r(1);if(c.lt(0)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(new r(u).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(0)&&h(1).eq(1)&&h(2).eq(1))return c.mul(f);if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(f);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(f);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(f);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(f);var g=h(0).toNumber(),y=h(1),p=h(2),m=h(3);if(m.eq(2)){if(1!=g)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(p.neq(1))return r.POSITIVE_INFINITY.clone();if(f.gte(s))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=f.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(p.gt(s)){var b=new r(p);return b.layer++,b.normalize(),b}function d(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){var a=n(w(r,e,t),3),i=a[0],o=a[1],u=a[2];return"10{".concat(d(i),",").concat(d(o),",").concat(u,"}").concat(s)}var O=c.clone(),I=new r(h(0)),k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=r.beafFuncMap.get("".concat(O.toString()," ").concat(g.toString()," ").concat(y.toString()," ").concat(p.toString()," ").concat(m.toString()," ").concat(e.toString()," ").concat(t));if(n)return n.clone();var a,i=new r(e);if(O.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(O.eq(r.ZERO)){if(i.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(O.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return O.clone();if(I.eq(0))return r.BEAF_core(O,O,f,y.sub(1),p,u,t+1);if(y.eq(0))return r.BEAF_core(O,O,O,f,p.sub(1),u,t+1);if(p.eq(0))return r.BEAF_core(O,O,O,O,y,new r(u).sub(1),t+1);if(p.gt(s))throw new Error("Not implemeneted");if(y.gt(s))return(a=new r(y)).setOperator(a.getOperator(1,1/0,p.toNumber())+1,1,1/0,p.toNumber()),a;if(I.gt(r.MSI))return(a=I.clone()).setOperator(a.getOperator(1/0,y.toNumber(),p.toNumber())+1,1/0,y.toNumber(),p.toNumber()),a;var o=I.toNumber();if(i.eq(2))return r.BEAF_core(O,O,o-1,y,p,u,t+1);if(O.max(i).gt(E(o+1,y.toNumber(),p.toNumber())))return O.max(i);if(O.gt(E(o+1,y.toNumber(),p.toNumber()))||i.gt(s)){O.gt(E(o,y.toNumber(),p.toNumber()))?((a=O.clone()).setOperator(a.getOperator(o,y.toNumber(),p.toNumber())-1,o,y.toNumber(),p.toNumber()),a.normalize()):a=O.gt(E(o-1,y.toNumber(),p.toNumber()))?new r(O.getOperator(o-1,y.toNumber(),p.toNumber())):r.ZERO;var l=a.add(i);return l.setOperator(l.getOperator(o,y.toNumber(),p.toNumber())+1,o,y.toNumber(),p.toNumber()),l.normalize(),l}if(t>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[N(10,0),N(1,o,y.toNumber(),p.toNumber())]});var c=i.toNumber(),h=Math.floor(c),v=I.sub(r.ONE);a=r.BEAF_core(O,c-h,v,y,p,m,t+1);for(var w=0,b=E(o-1,y.toNumber(),p.toNumber());0!==h&&a.lt(b)&&w<100;w++)h>0&&(a=r.BEAF_core(O,a,v,y,p,m,t+1),--h);return 100==w&&(h=0),a.setOperator(a.getOperator(o-1,y.toNumber(),p.toNumber())+h,o-1,y.toNumber(),p.toNumber()),a.normalize(),a}(f,l);return l<r.maxOps+10&&r.beafFuncMap.set("".concat(O.toString()," ").concat(g.toString()," ").concat(y.toString()," ").concat(p.toString()," ").concat(m.toString()," ").concat(f.toString()," ").concat(l),k.clone()),k}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(var i=0;i<n.length;i++)e.lt(n[i])&&(e=new r(n[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(var i=0;i<n.length;i++)e.gt(n[i])&&(e=new r(n[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:"eq",value:function(e,t){return new r(e).eq(t)}},{key:"equals",value:function(e,t){return new r(e).eq(t)}},{key:"neq",value:function(e,t){return new r(e).neq(t)}},{key:"notEquals",value:function(e,t){return new r(e).notEquals(t)}},{key:"lt",value:function(e,t){return new r(e).lt(t)}},{key:"gt",value:function(e,t){return new r(e).gt(t)}},{key:"lte",value:function(e,t){return new r(e).lte(t)}},{key:"gte",value:function(e,t){return new r(e).gte(t)}},{key:"rec",value:function(e){return new r(e).rec()}},{key:"recip",value:function(e){return new r(e).rec()}},{key:"reciprocate",value:function(e){return new r(e).rec()}},{key:"floor",value:function(e){return new r(e).floor()}},{key:"ceil",value:function(e){return new r(e).ceil()}},{key:"round",value:function(e){return new r(e).round()}},{key:"trunc",value:function(e){return new r(e).trunc()}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromBigInt",value:function(e){var t=new r(0),n=e<BigInt(0)?-e:e;return t.sign=e<BigInt(0)?-1:1,t.array=n<=s?[N(Number(n))]:[N(R(n)),N(1,1)],t.normalize(),t}},{key:"fromNumber",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),Number.isNaN(e))return t;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[N(1/0,0)],t;e>0&&(t.sign=1)}var n=Math.abs(e);return n==1/0?t.array=[N(1/0,0)]:n>=f&&n<1?(t.small=!0,t.array=[N(1/n,0)]):n<f?(t.small=!0,t.array=[N(-Math.log10(n),0),N(1,1)]):n<=s?t.array=[N(n,0)]:(t.setOperator(Math.log10(n),0),t.array=[N(Math.log10(n),0),N(1,1)]),t}},{key:"fromString",value:function(e){if(r.usingBreakEternityLikeFromString&&y.test(e)){var t=e.match(/(e+-)(\d+(.\d+)?)/);if(t){var n=t[1].length;e="/"+"e".repeat(n-1)+t[2]}}return this.fromString_core(e)}},{key:"fromString_core",value:function(e){var t,n,a,i,o,u,l,f=new r(NaN);if(e.startsWith("PN")&&(e=e.substring(2)),"NaN"==e)return r.NaN.clone();if(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/J\^(\d+)/g,"(10{!})^$1")).replace(/J/g,"10{!}")).replace(/K\^(\d+)/g,"(10{1,2})^$1")).replace(/K/g,"10{1,2}")).replace(/L\^(\d+)/g,"(10{2,2})^$1")).replace(/L/g,"10{2,2}")).replace(/M\^(\d+)/g,"(10{!,2})^$1")).replace(/M/g,"10{!,2}")).replace(/N\^(\d+)/g,"(10{1,!})^$1")).replace(/N/g,"10{1,!}"),/^.*e-.*(e|\^).*/.test(e)&&(e="/10^"+e.substring(e.indexOf("e-"))),!isNaN(Number(e))){var h=Number(e),y=!1;if(0==h?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(y=!0):y=!0,!y){var p=e.search(/e/),v=e.substring((-1==p?e.length:p)+1),w=e.substring(0,-1==p?void 0:p),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var d=w.length>=17?m(w):Math.log10(Number(w)),E=Math.floor(d),O=d-E;b[0]=Math.pow(10,O),b[1]+=E}else{var I=(l=w.match(/^0\.(0*)[1-9]/))?l[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(h)&&y)return f=r.fromNumber(Number(e))}if(-1!==e.indexOf("l")&&-1!==e.indexOf("s")&&-1!==e.indexOf("a")){var k=function(r){var e=r.match(/l(\d+)\s+s(\d+)\s+a(\[.*\])/);try{if(e)return{lValue:parseInt(e[1]),sValue:parseInt(e[2]),array:JSON.parse(e[3])}}catch(r){return null}return null}(e);if(!k||0!==k.sValue&&1!==k.sValue&&-1!==k.sValue)throw"[PowiainaNum 0.2 error]malformed input: "+e;return(f=r.fromObject(k.array)).layer=k.lValue,f.sign=k.sValue,f.small=!1,f.normalize(),f}if(e=function(r){for(var e="",t=!1,n=0;n<r.length;n++){var a=r[n];"{"===a?(t=!0,e+=a):"}"===a?(t=!1,e+=a):","===a?t&&(e+=a):e+=a}return e}(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)[Pp][Tt]/g,"(10^)^$1 ")),!g.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var M=!1,x=!1;if("-"==e[0]||"+"==e[0]){var q=e.search(/[^-\+]/);M=(null!==(n=null===(t=e.substring(0,q).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==n?n:0)%2==1,e=e.substring(q)}if("/"==e[0]){var S=e.search(/[^\/]/);x=(null!==(i=null===(a=e.substring(0,S).match(/\//g))||void 0===a?void 0:a.length)&&void 0!==i?i:0)%2==1,e=e.substring(S)}if("NaN"==e)f.array=[N(NaN)];else if("Infinity"==e)f.array=[N(1/0)];else{var _,R,T,F;for(f.sign=1,f.array=[N(0)],"P"==e[0]&&("^"==e[1]?(_=e.substring(2).search(/[^0-9]/)+2,f.layer=Number(e.substring(2,_)),e=e.substring(_+1)):(_=e.search(/[^P]/),f.layer=_,e=e.substring(_)));e&&/^(\(?10[\^\{])/.test(e);){var A=void 0,Z=void 0,P=void 0;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])A=_=e.substring(2).search(/[^\^]/),R=_+2;else{_=e.indexOf("}");var B=e.substring(3,_).split(",");A=Number("!"==B[0]?1/0:B[0]),Z=Number(null!==(o="!"==B[1]?1/0:B[1])&&void 0!==o?o:1),P=Number(null!==(u=B[2])&&void 0!==u?u:1),R=_+1}")"==(e=e.substring(R))[0]?(_=e.indexOf(" "),T=Number(e.substring(2,_)),e=e.substring(_+1)):T=1,1==A&&1==Z&&1==P?f.array.length>=2&&1==f.array[1].arrow?f.array[1].repeat+=T:f.array.splice(1,0,N(T,1,Z,P)):2==A&&1==Z&&1==P?(_=f.array.length>=2&&1==f.array[1].arrow?f.array[1].repeat:0,(R=f.array[0].repeat)>=1e10&&++_,R>=10&&++_,f.array[0].repeat=_,f.array.length>=2&&1==f.array[1].arrow&&f.array.splice(1,1),F=f.getOperatorIndex(2),Number.isInteger(F)?f.array[F].repeat+=T:f.array.splice(Math.ceil(F),0,N(T,2,Z,P))):isFinite(A)?(_=f.getOperator(A-1),(R=f.getOperator(A-2))>=10&&++_,F=f.getOperatorIndex(A),f.array.splice(1,Math.ceil(F)-1),f.array[0].repeat=_,Number.isInteger(F)?f.array[1].repeat+=T:f.array.splice(1,0,N(T,A,Z,P))):f.array.splice(1,0,N(T,A,Z,P))}_=e.split(/[Ee]/),R=[f.array[0].repeat,0],T=1;for(var V=_.length-1;V>=0;--V){R[0]<c&&0===R[1]?R[0]=Math.pow(10,T*R[0]):-1==T?(0===R[1]?R[0]=Math.pow(10,T*R[0]):1==R[1]&&R[0]<=Math.log10(Number.MAX_VALUE)?R[0]=Math.pow(10,T*Math.pow(10,R[0])):R[0]=0,R[1]=0):R[1]++;var z=_[V].indexOf("."),Y=-1==z?_[V].length:z;0===R[1]?Y>=17?(R[0]=Math.log10(R[0])+m(_[V].substring(0,Y)),R[1]=1):_[V]&&(R[0]*=Number(_[V])):(F=Y>=17?m(_[V].substring(0,Y)):_[V]?Math.log10(Number(_[V])):0,1==R[1]?R[0]+=F:2==R[1]&&R[0]<c+Math.log10(F)&&(R[0]+=Math.log10(1+Math.pow(10,Math.log10(F)-R[0])))),R[0]<c&&R[1]?(R[0]=Math.pow(10,R[0]),R[1]--):R[0]>s&&(R[0]=Math.log10(R[0]),R[1]++)}f.array[0].repeat=R[0],R[1]&&(f.array.length>=2&&1==f.array[1].arrow&&1==f.array[1].expans&&1==f.array[1].megota?f.array[1].repeat+=R[1]:f.array.splice(1,0,N(R[1],1,1,1)))}return M&&(f.sign*=-1),x&&(f.small=!f.small),f.normalize(),f.normalize(),f}},{key:"fromObject",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),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(!b(t))return!1;if(!d(t))return!1}return!0}(e)){for(var n=0;n<e.length;n++)t.array[n]={arrow:e[n][0],expans:1,megota:1,repeat:e[n][1]};return t.small=!1,t.sign=1,t.layer=0,t}if(function(r){return null!==r&&"object"===o(r)&&("mag"in r&&"number"==typeof r.mag&&("layer"in r&&"number"==typeof r.layer&&("sign"in r&&"number"==typeof r.sign)))}(e)){var a=e,i=a.mag<0,u=new r(1);return a.layer>=s?u.array=[N(Math.log10(a.layer)),N(1,1),N(1,2)]:a.layer>=1?u.array=[N(Math.abs(a.mag)),N(a.layer,1)]:u.array=[N(a.mag)],u.small=i,u.normalize(),u}if(function(r){if(!Array.isArray(r))return!1;if("number"!=typeof r[0])return!1;for(var e=1;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!O(t))return!1;if(!I(t)&&!k(t)&&!M(t))return!1}return!0}(e)){var l=e;t.array[0]=N(l[0]);for(var c=1;c<l.length;c++){var f=l[c];t.array[1]=N(f[1],E(f[0]),E(f[2]),f[3])}return t.small=!1,t.sign=1,t.layer=0,t}return t.resetFromObject(e),t}},{key:"grahalFunction",value:function(e){var t=new r(e);return!t.isInt()||t.lt(0)||t.isNaN()?r.NaN.clone():t.eq(1)?new r("10^^^(10^)^7625597484984 3638334640023.7783"):t.lte(s)?new r("(10{!})^".concat(t.toNumber()," 10^^^(10^)^7625597484984 3638334640023.7783")):r.BEAF(3,t,1,2)}}])}();l=Symbol.toStringTag,F.ZERO=new F({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),F.ONE=new F({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),F.MSI=new F(s),F.MSI_REC=((T=new F(s)).small=!0,T),F.E_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),F.EE_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),F.E_MSI_REC=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),F.TETRATED_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:s-2}],small:!1,layer:0,sign:1}),F.PENTATED_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:s-1}],small:!1,layer:0,sign:1}),F.TRITRI=new F({small:!1,layer:0,sign:1,array:[N(3638334640023.7783,0,1,1),N(7625587484984,1,1,1)]}),F.GRAHAMS_NUMBER=new F("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),F.POSITIVE_INFINITY=new F(1/0),F.NEGATIVE_INFINITY=new F(-1/0),F.NaN=new F({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),F.E=new F(Math.E),F.LN2=new F(Math.LN2),F.LN10=new F(Math.LN10),F.LOG2E=new F(Math.LOG2E),F.LOG10E=new F(Math.LOG10E),F.PI=new F(Math.PI),F.SQRT1_2=new F(Math.SQRT1_2),F.SQRT2=new F(Math.SQRT2),F.maxOps=100,F.POW_2_44_MOD_PI=1.701173079953,F.arrowFuncMap=new Map,F.beafFuncMap=new Map,F.usingBreakEternityLikeFromString=!0,F.blankArgumentConstructorReturnZero=!1,F.throwErrorOnResultNaN=!1,r.arraySortFunction=q,r.default=F,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,o(a.key),a)}}function a(r,e){return function(r){if(Array.isArray(r))return r}(r)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var a,n,o,i,u=[],l=!0,s=!1;try{if(o=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;l=!1}else for(;!(l=(a=o.call(t)).done)&&(u.push(a.value),u.length!==e);l=!0);}catch(r){s=!0,n=r}finally{try{if(!l&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(s)throw n}}return u}}(r,e)||u(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(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)||u(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 o(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)}function u(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}}var l,s=9007199254740991,c=15.954589770191003,f=11102230246251568e-32,h=1.444667861009766,g=/^(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+))$/,y=/^((\d+(\.\d*)?|\d*\.\d+)?([EeFf]([-\+]?)))*(0|\d+(\.\d*)?|\d*\.\d+)$/;function p(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 N(){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],o=e[1][a];if(n<o)return-1;if(n>o)return 1}return 0}function v(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var m=.5671432904097838;function w(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],o=a,i=n;if(!Number.isFinite(r))return r;if(i){if(0===r)return r;if(1===r)return m;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 u=0;u<100;++u){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<o*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function b(r){return 2==r.length}function d(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function O(r){return"x"===r?1/0:r}function E(r){return 4==r.length}function I(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function k(r){return"x"===r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function M(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"x"==r[2]&&"number"==typeof r[3]}function x(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 A(r)).isFinite())return r;if(a){if(r.eq(A.ZERO))return r;if(r.eq(A.ONE))return new A(m);e=A.log(r)}else{if(r.eq(A.ZERO))return A.NEGATIVE_INFINITY.clone();e=A.log(r.neg())}for(var n=0;n<100;++n){var o=e.neg().exp(),i=e.sub(r.mul(o)),u=e.add(A.ONE).sub(e.add(2).mul(i).div(A.mul(2,e).add(2)));if(u.eq(A.ZERO))return e;var l=e.sub(i.div(u));if(A.abs(l.sub(e)).lt(A.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function S(r,e){return N([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}function q(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)}function _(r,e,t){var a=new A(r),n=new A(e),o=new A(t),i=function(r,e,t){return new A(r).pow(new A(t).sub(e).add(1)).mul(new A(2).pow(new A(e).sub(t)))}(a,n,new A(o).omegalog(a.toNumber()));if(o.gt(a)){var u=_(a,n.add(1),o).sub(2),l=_(a,n,a),s=a.clone();return R(a,n,u.pow_base(s.div(l)).mul(l))}return i}function R(r,e,t){var a=new A(r),n=new A(e),o=new A(t);if(n.isInt())return A.arrow(a,n,o);if(o.gt(a)){var i=_(a,n,o),u=_(a,n,a),l=a.clone(),s=i.div(u).logBase(l.div(u));return R(a,n.add(1),A.add(2,s))}return A.arrFrac(a,function(r,e,t){var a=new A(2).logBase(r);return new A(e).sub(1).add(new A(t).logBase(r).sub(a).div(new A(1).sub(a)))}(a,n,o))}function T(r){for(var e=BigInt(64);r>=BigInt(1)<<e;)e*=BigInt(2);for(var t=e/BigInt(2);t>BigInt(0);)r>=BigInt(1)<<e?e+=t:e-=t,t/=BigInt(2);var a=e-BigInt(54),n=r>>a;return Math.log10(Number(n))+Math.LOG10E/Math.LOG2E*Number(a)}var F,A=function(){function r(e){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[l]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,r.blankArgumentConstructorReturnZero&&this.resetFromObject(r.ZERO);try{if(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)}else if("bigint"==typeof e){var o=r.fromBigInt(e);this.resetFromObject(o)}else;}catch(e){if(console.error("Malformed input"),console.error(e),r.throwErrorOnResultNaN&&r.isNaN(this))throw new Error("NaN")}}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,o,i,u,l=this.clone().normalize(),h=new r(e);if(l.eq(r.POSITIVE_INFINITY)&&h.eq(r.NEGATIVE_INFINITY)||l.eq(r.NEGATIVE_INFINITY)&&h.eq(r.POSITIVE_INFINITY)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!l.isFinite())return l.clone();if(!h.isFinite())return h.clone();if(l.isZero())return h.clone();if(h.isZero())return l.clone();if(l.sign==-h.sign&&function(){var r=l.abs(),e=h.abs();return r.eq(e)}())return r.ZERO.clone();if(l.abs().lt(s)&&h.abs().lt(s)&&l.abs().gte(f)&&h.abs().gte(f))return r.fromNumber(l.toNumber()+h.toNumber());if(l.abs().lt(r.E_MSI_REC)||l.abs().gt(r.E_MSI)||h.abs().lt(r.E_MSI_REC)||h.abs().gt(r.E_MSI)){var g=l.maxabs(h);return l.abs().eq(g)?l:(h.abs().eq(g),h)}if(-1==l.sign)return l.neg().add(h.neg()).neg();l.cmpabs(h)>0?(i=l,u=h):(u=l,i=h);var y=i.toNumber()+u.toNumber();if(isFinite(y)&&0!==y)return r.fromNumber(y);var N=1;if(!(i.small||u.small||(null===(t=i.array[1])||void 0===t?void 0:t.repeat)||(null===(a=u.array[1])||void 0===a?void 0:a.repeat)||i.sign!=u.sign))return new r((i.array[0].repeat+u.array[0].repeat)*i.sign);var v=(i.small?-1:1)*((null===(n=i.array[1])||void 0===n?void 0:n.repeat)?i.array[0].repeat:Math.log10(i.array[0].repeat)),m=(u.small?-1:1)*((null===(o=u.array[1])||void 0===o?void 0:o.repeat)?u.array[0].repeat:Math.log10(u.array[0].repeat));if(v-m>c)return i;var w=-Math.floor(v),b=0,d=i.sign*Math.pow(10,v+w)+u.sign*Math.pow(10,m+w);if(d>0&&(b=Math.log10(d)-w),d<0&&(b=Math.log10(-d)-w,N*=-1),0==d)return r.ZERO.clone();var O=r.NaN.clone();return O.sign=1,O.array=b>c||b<-c?[p(b,0),p(1,1)]:[p(Math.pow(10,Math.abs(b)),0)],O.small=b<0,O.sign*=N,O}},{key:"plus",value:function(r){return this.add(r)}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"minus",value:function(r){return this.sub(r)}},{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()){if(r.throwErrorOnResultNaN)throw new Error("NaN");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,o=t.toNumber()*a.toNumber();return isFinite(o)&&0!==o?r.fromNumber(o):((n=t.abs().log10().add(a.abs().log10()).pow10()).sign=t.sign*a.sign,n)}},{key:"times",value:function(r){return this.mul(r)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"divide",value:function(r){return this.div(r)}},{key:"mod",value:function(e){var t=new r(e),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"modulus",value:function(r){return this.mod(r)}},{key:"pow10",value:function(){var e,t,a=this.clone();return this.isFinite()?a.isneg()?(a.sign*=-1,a.pow10().rec()):a.lt(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(t.isneg())return this.pow(t.neg()).rec();if(this.isneg()){if(!t.isInt()){if(t.small&&t.rec().div(2).eq(1))return this.neg().pow(t).neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");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(),o=t.toNumber(),i=Math.pow(n,o);if(isFinite(i)&&0!==i)return r.fromNumber(i);if(this.isZero()&&t.isZero())return r.ONE.clone();if(this.isZero())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(this.gt(0))return this.log10().mul(t).pow10();if(t.rec().mod(2).eq(1))return this.neg().log10().mul(t).pow10().neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");return 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()){if(r.throwErrorOnResultNaN)throw new Error("NaN");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:"log2",value:function(){return this.log(2)}},{key:"logBase",value:function(r){return this.log(r)}},{key:"ln",value:function(){return this.log()}},{key:"pLog10",value:function(){return this.isneg()?r.ZERO:this.log10()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(s)?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(s)){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,o=12*n,i=1/o,u=(t-=e)+i;if(u===t)return r.exp(t);if((u=(t=u)-(i=1/(o=360*(n*=a))))===t)return r.exp(t);t=u;var l=1/(o=1260*(n*=a));return t+=l,t-=l=1/(o=1680*(n*=a)),r.exp(t)}return this.gt(s)?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],t=e;if(this.lt(-.3678794411710499)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(t)return this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(w(this.toNumber())):this.lt(s)?r.fromNumber(w(this.sign*this.getOperator(0))):this.lt("eee15")?x(this):this.log();if(-1===this.sign){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return this.lt(9e15)?r.fromNumber(w(this.sign*this.array[0].repeat,1e-10,!1)):this.lt(r.E_MSI)?x(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(),o=new r(e),i=new r(a);if(n.isNaN()||o.isNaN()||i.isNaN()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.eq(1))return r.ONE.clone();if(i.neq(r.ONE)&&n.gte(h)&&(o=o.add(i.slog(n))),o.isInfi()&&o.sign>0)return n.gte(h)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(o.lte(-2)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.isZero()){if(o.isZero()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return o.gte(s/2)||o.toNumber()%2==0?r.ZERO.clone():r.ONE.clone()}if(n.eq(r.ONE)){if(o.eq(r.ONE.neg())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return r.ONE.clone()}if(o.eq(r.ONE.neg()))return r.ZERO.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return n;if(o.eq(2))return n.pow(n);if(n.eq(2)){if(o.eq(3))return r.fromNumber(16);if(o.eq(4))return r.fromNumber(65536)}var u=n.max(o);if(u.gt(r.PENTATED_MSI))return u;if(u.gt(r.TETRATED_MSI)||o.gt(s)){if(this.lt(h))return(t=n.ln().neg()).lambertw().div(t);var l=n.slog(10).add(o);return l.setOperator(l.getOperator(2)+1,2),l.normalize(),l}for(var c=o.toNumber(),f=Math.floor(c),g=n.pow(c-f),y=r.NaN,p=0,N=r.E_MSI.clone();0!==f&&g.lt(N)&&p<100;++p)if(f>0){if(g=n.pow(g),y.eq(g)){f=0;break}y=g,--f}else{if(g=g.log(n),y.eq(g)){f=0;break}y=g,++f}return(100==p||this.lt(h))&&(f=0),g.setOperator(g.getOperator(1)+f,1),g.normalize(),g}},{key:"tetr",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.tetrate(r,e)}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),a=new r(e);if(t.isInfiNaN())return t;if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(a.lt(h)){var n=a.tetrate(1/0);if(t.eq(n))return r.POSITIVE_INFINITY.clone();if(t.gt(n)){if(r.throwErrorOnResultNaN)throw new Error("NaN");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 o=0,i=t.getOperator(1)-a.getOperator(1);if(i>3){var u=i-3;o+=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),--o;else{if(t.lte(1))return new r(o+t.toNumber()-1);++o,t=r.log(t,e)}if(t.gt(10))return new r(o);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/h)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"tetrate_10",value:function(){return r.tetrate(10,this)}},{key:"iteratedlog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,a=this.clone(),n=new r(t),o=new r(e);return o.isZero()?a:o.eq(r.ONE)?a.log(n):n.tetrate(a.slog(n).sub(o))}},{key:"omegalog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this,a=t.clone();if(a.isInfiNaN())return a;if(a.gte("10{1,2}e15.954589770191003"))return a;if(new r(e).clone(),a.getOperator(1/0)>=1)return a.setOperator(a.getOperator(1/0)-1,1/0,1,1),a;for(var n=[],o=0;o<t.array.length;o++)n[o]={arrow:t.array[o].arrow,expans:t.array[o].expans,megota:t.array[o].megota,repeat:t.array[o].repeat,valuereplaced:t.array[o].valuereplaced};var i=r.omegacollect(n);return i[1].arrow-1+Math.log(i[0].repeat/2)/Math.log(5)}},{key:"arrow",value:function(e){var t=this.clone(),a=new r(e);return a.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}):a.isInt()?a.eq(0)?function(r){return t.mul(r)}:a.eq(1)?function(r){return t.pow(r)}:a.eq(2)?function(r){return t.tetrate(r)}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=new r(e),u=new r(n),l=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(o));if(l)return l.clone();var c=function(){var e;if(t.isNaN()||i.isNaN()||u.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO)){if(i.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(u.neq(r.ONE)&&(i=i.add(u.anyarrow_log(a)(t))),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 n=a.toNumber();if(i.eq(2))return t.arrow(n-1)(t,u,o+1);if(t.max(i).gt(r.arrowMSI(n+1)))return t.max(i);if(t.gt(r.arrowMSI(n))||i.gt(s)){t.gt(r.arrowMSI(n))?((e=t.clone()).setOperator(e.getOperator(n)-1,n),e.normalize()):e=t.gt(r.arrowMSI(n-1))?new r(t.getOperator(n-1)):r.ZERO;var l=e.add(i);return l.setOperator(l.getOperator(n)+1,n),l.normalize(),l}if(o>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[p(10,0),p(1,n)]});var c=i.toNumber(),f=Math.floor(c),h=a.sub(r.ONE);e=t.arrow(h)(c-f,u,o+1);for(var g=0,y=r.arrowMSI(n-1);0!==f&&e.lt(y)&&g<100;g++)f>0&&(e=t.arrow(h)(e,u,o+1),--f);return 100==g&&(f=0),e.setOperator(e.getOperator(n-1)+f,n-1),e.normalize(),e}();return o<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(o),c.clone()),c}:function(r){return R(t,a,r)}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(s))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(o.isNaN())return o;if(o.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(o))return r.ONE.clone();if(t.max(o).gt(r.arrowMSI(n+1)))return t.gt(o)?t:r.ZERO.clone();if(t.max(o).gt(r.arrowMSI(n))&&t.gt(o))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}var i=0,u=t.getOperator(n)-o.getOperator(n);if(u>3){var l=u-3;i+=l,t.setOperator(t.getOperator(n)-l,n)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=t.anyarrow_log(n-1)(e,a+1)}if(t.gt(10))return new r(i);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}}},{key:"arrow_height_inverse",value:function(r){return this.anyarrow_log(r)}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r,e){return this.arrow(3)(r,e)}},{key:"hexate",value:function(r,e){return this.arrow(4)(r,e)}},{key:"pent",value:function(r,e){return this.arrow(3)(r,e)}},{key:"penta_log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this.anyarrow_log(3)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt()){if(r.throwErrorOnResultNaN)throw new Error("NaN");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(s))||a.gt(s)){n.gt("10{1,2}".concat(s))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(s,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var o=t.add(a);return o.setOperator(o.getOperator(1,2)+1,1,2),o.normalize(),o}var i,u=a.toNumber()-1;for(t=n.clone(),i=0;0!==u&&t.lt(s)&&i<100;++i)u>0&&(t=n.arrow(t)(n),--u);return 100==i&&(u=0),t.setOperator(t.getOperator(1/0)+u,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(){if(r.throwErrorOnResultNaN)throw new Error("NaN");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,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e);if(a.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.eq(r.ZERO)){if(i.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.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 u=n.toNumber();if(i.eq(2))return a.expansionArrow(u-1)(a,o+1);if(a.max(i).gt("10{".concat(u+1,",2}").concat(s)))return a.max(i);if(a.gt("10{".concat(u,",2}").concat(s))||i.gt(s)){a.gt("10{".concat(u,",2}").concat(s))?((t=a.clone()).setOperator(t.getOperator(u,2)-1,u,2),t.normalize()):t=a.gt("10{".concat(u-1,",2}").concat(s))?new r(a.getOperator(u-1,2)):r.ZERO;var l=t.add(i);return l.setOperator(l.getOperator(u,2)+1,u,2),l.normalize(),l}if(o>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[p(10,0),p(1,u,2)]});var c=i.toNumber(),f=Math.floor(c),h=n.sub(r.ONE);t=a.expansionArrow(h)(c-f,o+1);for(var g=0,y=new r("10{".concat(u-1,",2}").concat(s));0!==f&&t.lt(y)&&g<100;g++)f>0&&(t=a.expansionArrow(h)(t,o+1),--f);return 100==g&&(f=0),t.setOperator(t.getOperator(u-1,2)+f,u-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"clampMin",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"clampMax",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"clamp",value:function(r,e){return this.max(r).min(e)}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var o=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(n(o)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var o=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(n(o)))}},{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 o=0,i=0;this.array.length-1-i>=0&&t.array.length-1-i>=0;i++){var u=this.array[this.array.length-1-i],l=t.array[t.array.length-1-i];if(u.repeat===1/0&&l.repeat===1/0)return this.small===t.small?0:t.small?1:-1;if(u.repeat===1/0){o=1;break}if(l.repeat===1/0){o=-1;break}var s=N([u.megota,u.expans,u.arrow,u.repeat],[l.megota,l.expans,l.arrow,l.repeat]);if(1==s){o=1;break}if(-1==s){o=-1;break}}return o*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:"equals",value:function(r){return this.eq(r)}},{key:"notEquals",value:function(r){return this.neq(r)}},{key:"eq_tolerance",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-7,a=new r(e);return this.sub(a).lte(this.max(a).mul(t))}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"recip",value:function(){return this.rec()}},{key:"reciprocate",value:function(){return this.rec()}},{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.sign=this.sign,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(s/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"getOperatorIndex",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return r.opGetOperatorIndex(this.array,e,t,a)}},{key:"getOperator",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return r.opGetOperator(this.array,e,t,a)}},{key:"setOperator",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return r.opSetOperator(this.array,e,t,a,n)}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.gte("e308.25471555991675")?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_core",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:"toString",value:function(){try{return this.toString_core()}catch(r){return console.error("Checked error when converting to string"),"NaN"}}},{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:"normalize",value:function(){var e=!0,t=this;void 0===this.array&&(t.array=[p(NaN,0,1,1)]),void 0===this.sign&&(this.sign=0),void 0===this.layer&&(this.layer=0);for(var 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 o=t.array[n];if(null!==o.arrow&&void 0!==o.arrow||(o.arrow=0),null!==o.expans&&void 0!==o.expans||(o.expans=1),null!==o.megota&&void 0!==o.megota||(o.megota=1),isNaN(o.arrow)||isNaN(o.repeat)||isNaN(o.expans)||isNaN(o.megota))return t.array=[p(NaN,0,1,1)],t;if(!isFinite(o.repeat)||!isFinite(o.megota))return t.array=[p(1/0,0,1,1)],t;Number.isInteger(o.arrow)||(o.arrow=Math.floor(o.arrow)),Number.isInteger(o.repeat)||(o.repeat=Math.floor(o.repeat)),Number.isInteger(o.expans)||(o.expans=Math.floor(o.expans)),Number.isInteger(o.megota)||(o.megota=Math.floor(o.megota))}t.array.length||(t.small=!t.small,t.array=[p(1/0)]);do{e=!1,this.array.sort(S);for(var i=1;i<t.array.length-1;++i)t.array[i].arrow==t.array[i+1].arrow&&t.array[i].expans==t.array[i+1].expans&&t.array[i].megota==t.array[i+1].megota&&(t.array[i].repeat+=t.array[i+1].repeat,t.array.splice(i+1,1),--i,e=!0);for(var u=1;u<t.array.length;++u)0===t.array[u].arrow||0!==t.array[u].repeat&&null!==t.array[u].repeat&&void 0!==t.array[u].repeat?0==t.array[u].arrow&&t.array[u].expans>=2&&(t.array[u].arrow=1/0,t.array[u].valuereplaced=0,t.array[u].expans=t.array[u].expans-1):(t.array.splice(u,1),--u);if(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<c&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>s&&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>s?(this.layer++,this.array=[p(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[p(10),p(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),1==this.array.length&&1==this.array[0].repeat&&this.small&&(this.small=!1,e=!0),this.array.length>=2&&!isFinite(this.array[1].arrow)&&(this.array[1].repeat>1?(this.array.push(p(this.array[1].repeat-1,1/0,this.array[1].expans,this.array[1].megota)),this.array[1].repeat=1,this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10):(this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10)),this.array.length>=2&&this.array[1].arrow>=s&&isFinite(this.array[1].arrow)&&(this.array[0].repeat=this.array[1].arrow,this.array[1]=p(1,1/0,this.array[1].expans,this.array[1].megota)),this.array.length>=2&&this.array[1].arrow>=2&&this.array[0].repeat<s&&isFinite(this.array[1].arrow)){var l=this.array[0].repeat,f=this.array[1].arrow,h=this.array[1].repeat;this.array[0].repeat=10,this.array.splice(2,0,p(h-1,f,this.array[1].expans,this.array[1].megota)),this.array[1]=p(l-1,f-1,this.array[1].expans,this.array[1].megota)}for(;t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array.length<r.maxOps&&t.array[0].repeat<s&&t.array[1].arrow>=2&&t.array[1].repeat>1&&isFinite(t.array[1].arrow)&&(t.array[1].repeat--,t.array.splice(1,0,p(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>s&&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>s&&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:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){if(r.array){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:"add",value:function(e,t){return new r(e).add(t)}},{key:"plus",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"minus",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"times",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"divide",value:function(e,t){return new r(e).div(t)}},{key:"mod",value:function(e,t){return new r(e).mod(t)}},{key:"modulus",value:function(e,t){return new r(e).mod(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:"log2",value:function(e){return new r(e).log2()}},{key:"logBase",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"pLog10",value:function(e){return new r(e).pLog10()}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"affordGeometricSeries",value:function(e,t,a,n){return this.affordGeometricSeries_core(new r(e),new r(t),new r(a),n)}},{key:"affordGeometricSeries_core",value:function(r,e,t,a){var n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=e.mul(t.pow(a));return r.div(o).mul(t.sub(1)).add(1).clampMin(n?1:-1/0).log10().div(t.log10()).floor()}},{key:"sumGeometricSeries",value:function(e,t,a,n){return this.sumGeometricSeries_core(e,new r(t),new r(a),n)}},{key:"sumGeometricSeries_core",value:function(e,t,a,n){return t.mul(a.pow(n)).mul(r.sub(1,a.pow(e))).div(r.sub(1,a))}},{key:"affordArithmeticSeries",value:function(e,t,a,n){return this.affordArithmeticSeries_core(new r(e),new r(t),new r(a),new r(n))}},{key:"affordArithmeticSeries_core",value:function(r,e,t,a){var n=e.add(a.mul(t)).sub(t.div(2)),o=n.pow(2);return n.neg().add(o.add(t.mul(r).mul(2)).sqrt()).div(t).floor()}},{key:"sumArithmeticSeries",value:function(e,t,a,n){return this.sumArithmeticSeries_core(new r(e),new r(t),new r(a),new r(n))}},{key:"sumArithmeticSeries_core",value:function(r,e,t,a){var n=e.add(a.mul(t));return r.div(2).mul(n.mul(2).add(r.sub(1).mul(t)))}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"iteratedlog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return new r(e).iteratedlog(t,a)}},{key:"oBase",value:function(r){return r[0].repeat}},{key:"omegacollect",value:function(e){for(var t=1e3;t--;){var a=r.oBase(e);if(a>=10)e[0].repeat=Math.log10(a),r.opSetOperator(e,r.opGetOperator(e,1,1,1)+1,1,1,1);else{if(e.length<=2&&1==e[1].repeat)return e;e[1].repeat>=2||1!==a?(e[1].arrow++,e[0].repeat=e[1].repeat+Math.log10(a),e[1].repeat=1):e[1].arrow=e[2].arrow,q({array:e})}}return e}},{key:"arrow",value:function(e,t,a){return new r(e).arrow(t)(a)}},{key:"arrFrac",value:function(e,t){if(new r(t).lt(2))return r.pentate(e,t);var a=new r(e).clone(),n=new r(t).clone();return new r(a).arrow(n.floor().add(1))(a.div(2).pow(n.sub(n.floor())).mul(2))}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(s))}},{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:"pentate",value:function(e,t,a){return new r(e).arrow(3)(t,a)}},{key:"hexate",value:function(e,t,a){return new r(e).arrow(4)(t,a)}},{key:"pent",value:function(e,t,a){return new r(e).arrow(3)(t,a)}},{key:"penta_log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new r(e).anyarrow_log(3)(t)}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];function n(e){return void 0!==t[e]&&null!==t[e]?new r(t[e]):new r(1)}return n(0).eq(1)?new r(1):n(1).eq(1)?new r(n(0)):n(5).eq(2)&&(n(4).gte(2)||n(3).gte(2)||n(2).gte(2))||0!==t.slice(6).map((function(e){return new r(e)})).filter((function(r){return r.gt(1)})).length?r.POSITIVE_INFINITY.clone():r.BEAF_core(n(0),n(1),n(2),n(3),n(4),n(5))}},{key:"BEAF_core",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),f=new r(t);function h(e){var t;return new r(null!==(t=[n,o,i,u][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(f.eq(1))return new r(c);if(f.isZero())return new r(1);if(c.lt(0)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(new r(u).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(0)&&h(1).eq(1)&&h(2).eq(1))return c.mul(f);if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(f);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(f);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(f);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(f);var g=h(0).toNumber(),y=h(1),N=h(2),v=h(3);if(v.eq(2)){if(1!=g)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(N.neq(1))return r.POSITIVE_INFINITY.clone();if(f.gte(s))return r.POSITIVE_INFINITY.clone();var m=new r(10);return m.layer=f.toNumber(),m.normalize(),m}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(N.gt(s)){var b=new r(N);return b.layer++,b.normalize(),b}function d(r){return isFinite(r)?r.toString():"!"}function O(r,e,t){var n=a(w(r,e,t),3),o=n[0],i=n[1],u=n[2];return"10{".concat(d(o),",").concat(d(i),",").concat(u,"}").concat(s)}var E=c.clone(),I=new r(h(0)),k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=r.beafFuncMap.get("".concat(E.toString()," ").concat(g.toString()," ").concat(y.toString()," ").concat(N.toString()," ").concat(v.toString()," ").concat(e.toString()," ").concat(t));if(a)return a.clone();var n,o=new r(e);if(E.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(E.eq(r.ZERO)){if(o.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(E.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return E.clone();if(I.eq(0))return r.BEAF_core(E,E,f,y.sub(1),N,u,t+1);if(y.eq(0))return r.BEAF_core(E,E,E,f,N.sub(1),u,t+1);if(N.eq(0))return r.BEAF_core(E,E,E,E,y,new r(u).sub(1),t+1);if(N.gt(s))throw new Error("Not implemeneted");if(y.gt(s))return(n=new r(y)).setOperator(n.getOperator(1,1/0,N.toNumber())+1,1,1/0,N.toNumber()),n;if(I.gt(r.MSI))return(n=I.clone()).setOperator(n.getOperator(1/0,y.toNumber(),N.toNumber())+1,1/0,y.toNumber(),N.toNumber()),n;var i=I.toNumber();if(o.eq(2))return r.BEAF_core(E,E,i-1,y,N,u,t+1);if(E.max(o).gt(O(i+1,y.toNumber(),N.toNumber())))return E.max(o);if(E.gt(O(i+1,y.toNumber(),N.toNumber()))||o.gt(s)){E.gt(O(i,y.toNumber(),N.toNumber()))?((n=E.clone()).setOperator(n.getOperator(i,y.toNumber(),N.toNumber())-1,i,y.toNumber(),N.toNumber()),n.normalize()):n=E.gt(O(i-1,y.toNumber(),N.toNumber()))?new r(E.getOperator(i-1,y.toNumber(),N.toNumber())):r.ZERO;var l=n.add(o);return l.setOperator(l.getOperator(i,y.toNumber(),N.toNumber())+1,i,y.toNumber(),N.toNumber()),l.normalize(),l}if(t>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[p(10,0),p(1,i,y.toNumber(),N.toNumber())]});var c=o.toNumber(),h=Math.floor(c),m=I.sub(r.ONE);n=r.BEAF_core(E,c-h,m,y,N,v,t+1);for(var w=0,b=O(i-1,y.toNumber(),N.toNumber());0!==h&&n.lt(b)&&w<100;w++)h>0&&(n=r.BEAF_core(E,n,m,y,N,v,t+1),--h);return 100==w&&(h=0),n.setOperator(n.getOperator(i-1,y.toNumber(),N.toNumber())+h,i-1,y.toNumber(),N.toNumber()),n.normalize(),n}(f,l);return l<r.maxOps+10&&r.beafFuncMap.set("".concat(E.toString()," ").concat(g.toString()," ").concat(y.toString()," ").concat(N.toString()," ").concat(v.toString()," ").concat(f.toString()," ").concat(l),k.clone()),k}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var o=0;o<a.length;o++)e.lt(a[o])&&(e=new r(a[o]).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 o=0;o<a.length;o++)e.gt(a[o])&&(e=new r(a[o]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"eq",value:function(e,t){return new r(e).eq(t)}},{key:"equals",value:function(e,t){return new r(e).eq(t)}},{key:"neq",value:function(e,t){return new r(e).neq(t)}},{key:"notEquals",value:function(e,t){return new r(e).notEquals(t)}},{key:"lt",value:function(e,t){return new r(e).lt(t)}},{key:"gt",value:function(e,t){return new r(e).gt(t)}},{key:"lte",value:function(e,t){return new r(e).lte(t)}},{key:"gte",value:function(e,t){return new r(e).gte(t)}},{key:"rec",value:function(e){return new r(e).rec()}},{key:"recip",value:function(e){return new r(e).rec()}},{key:"reciprocate",value:function(e){return new r(e).rec()}},{key:"floor",value:function(e){return new r(e).floor()}},{key:"ceil",value:function(e){return new r(e).ceil()}},{key:"round",value:function(e){return new r(e).round()}},{key:"trunc",value:function(e){return new r(e).trunc()}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"opGetOperatorIndex",value:function(r,e){for(var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=0;n<r.length;n++){var o=N([r[n].megota,r[n].expans,r[n].arrow],[a,t,e]);if(0==o)return n;if(1==o)return n-.5}return r.length-.5}},{key:"opGetOperator",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=r.opGetOperatorIndex(e,t,a,n);return e[o]?e[o].repeat:0}},{key:"opSetOperator",value:function(e,t,a){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=r.opGetOperatorIndex(e,a,n,o);return e[i]?(e[i].repeat=t,0==e[i].repeat&&(e.splice(i,1),!0)):(e.splice(Math.ceil(i),0,{arrow:a,expans:n,megota:o,valuereplaced:n===1/0?1:a==1/0?0:-1,repeat:t}),!0)}},{key:"fromBigInt",value:function(e){var t=new r(0),a=e<BigInt(0)?-e:e;return t.sign=e<BigInt(0)?-1:1,t.array=a<=s?[p(Number(a))]:[p(T(a)),p(1,1)],t.normalize(),t}},{key:"fromNumber",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),Number.isNaN(e))return t;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[p(1/0,0)],t;e>0&&(t.sign=1)}var a=Math.abs(e);return a==1/0?t.array=[p(1/0,0)]:a>=f&&a<1?(t.small=!0,t.array=[p(1/a,0)]):a<f?(t.small=!0,t.array=[p(-Math.log10(a),0),p(1,1)]):a<=s?t.array=[p(a,0)]:(t.setOperator(Math.log10(a),0),t.array=[p(Math.log10(a),0),p(1,1)]),t}},{key:"fromString",value:function(e){if(r.usingBreakEternityLikeFromString&&y.test(e)){var t=e.match(/(e+-)(\d+(.\d+)?)/);if(t){var a=t[1].length;e="/"+"e".repeat(a-1)+t[2]}}return this.fromString_core(e)}},{key:"fromString_core",value:function(e){var t,a,n,o,i,u,l,f=new r(NaN);if(e.startsWith("PN")&&(e=e.substring(2)),"NaN"==e)return r.NaN.clone();if(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/J\^(\d+)/g,"(10{!})^$1")).replace(/J/g,"10{!}")).replace(/K\^(\d+)/g,"(10{1,2})^$1")).replace(/K/g,"10{1,2}")).replace(/L\^(\d+)/g,"(10{2,2})^$1")).replace(/L/g,"10{2,2}")).replace(/M\^(\d+)/g,"(10{!,2})^$1")).replace(/M/g,"10{!,2}")).replace(/N\^(\d+)/g,"(10{1,!})^$1")).replace(/N/g,"10{1,!}"),/^.*e-.*(e|\^).*/.test(e)&&(e="/10^"+e.substring(e.indexOf("e-"))),!isNaN(Number(e))){var h=Number(e),y=!1;if(0==h?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(y=!0):y=!0,!y){var N=e.search(/e/),m=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(m||"0"),Number(w)>=1){var d=w.length>=17?v(w):Math.log10(Number(w)),O=Math.floor(d),E=d-O;b[0]=Math.pow(10,E),b[1]+=O}else{var I=(l=w.match(/^0\.(0*)[1-9]/))?l[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(h)&&y)return f=r.fromNumber(Number(e))}if(-1!==e.indexOf("l")&&-1!==e.indexOf("s")&&-1!==e.indexOf("a")){var k=function(r){var e=r.match(/l(\d+)\s+s(\d+)\s+a(\[.*\])/);try{if(e)return{lValue:parseInt(e[1]),sValue:parseInt(e[2]),array:JSON.parse(e[3])}}catch(r){return null}return null}(e);if(!k||0!==k.sValue&&1!==k.sValue&&-1!==k.sValue)throw"[PowiainaNum 0.2 error]malformed input: "+e;return(f=r.fromObject(k.array)).layer=k.lValue,f.sign=k.sValue,f.small=!1,f.normalize(),f}if(e=function(r){for(var e="",t=!1,a=0;a<r.length;a++){var n=r[a];"{"===n?(t=!0,e+=n):"}"===n?(t=!1,e+=n):","===n?t&&(e+=n):e+=n}return e}(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)[Pp][Tt]/g,"(10^)^$1 ")),!g.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var M=!1,x=!1;if("-"==e[0]||"+"==e[0]){var S=e.search(/[^-\+]/);M=(null!==(a=null===(t=e.substring(0,S).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(S)}if("/"==e[0]){var q=e.search(/[^\/]/);x=(null!==(o=null===(n=e.substring(0,q).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==o?o:0)%2==1,e=e.substring(q)}if("NaN"==e)f.array=[p(NaN)];else if("Infinity"==e)f.array=[p(1/0)];else{var _,R,T,F;for(f.sign=1,f.array=[p(0)],"P"==e[0]&&("^"==e[1]?(_=e.substring(2).search(/[^0-9]/)+2,f.layer=Number(e.substring(2,_)),e=e.substring(_+1)):(_=e.search(/[^P]/),f.layer=_,e=e.substring(_)));e&&/^(\(?10[\^\{])/.test(e);){var A=void 0,Z=void 0,P=void 0;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])A=_=e.substring(2).search(/[^\^]/),R=_+2;else{_=e.indexOf("}");var B=e.substring(3,_).split(",");A=Number("!"==B[0]?1/0:B[0]),Z=Number(null!==(i="!"==B[1]?1/0:B[1])&&void 0!==i?i:1),P=Number(null!==(u=B[2])&&void 0!==u?u:1),R=_+1}")"==(e=e.substring(R))[0]?(_=e.indexOf(" "),T=Number(e.substring(2,_)),e=e.substring(_+1)):T=1,1==A&&1==Z&&1==P?f.array.length>=2&&1==f.array[1].arrow?f.array[1].repeat+=T:f.array.splice(1,0,p(T,1,Z,P)):2==A&&1==Z&&1==P?(_=f.array.length>=2&&1==f.array[1].arrow?f.array[1].repeat:0,(R=f.array[0].repeat)>=1e10&&++_,R>=10&&++_,f.array[0].repeat=_,f.array.length>=2&&1==f.array[1].arrow&&f.array.splice(1,1),F=f.getOperatorIndex(2),Number.isInteger(F)?f.array[F].repeat+=T:f.array.splice(Math.ceil(F),0,p(T,2,Z,P))):isFinite(A)?(_=f.getOperator(A-1),(R=f.getOperator(A-2))>=10&&++_,F=f.getOperatorIndex(A),f.array.splice(1,Math.ceil(F)-1),f.array[0].repeat=_,Number.isInteger(F)?f.array[1].repeat+=T:f.array.splice(1,0,p(T,A,Z,P))):f.array.splice(1,0,p(T,A,Z,P))}_=e.split(/[Ee]/),R=[f.array[0].repeat,0],T=1;for(var V=_.length-1;V>=0;--V){R[0]<c&&0===R[1]?R[0]=Math.pow(10,T*R[0]):-1==T?(0===R[1]?R[0]=Math.pow(10,T*R[0]):1==R[1]&&R[0]<=Math.log10(Number.MAX_VALUE)?R[0]=Math.pow(10,T*Math.pow(10,R[0])):R[0]=0,R[1]=0):R[1]++;var G=_[V].indexOf("."),z=-1==G?_[V].length:G;0===R[1]?z>=17?(R[0]=Math.log10(R[0])+v(_[V].substring(0,z)),R[1]=1):_[V]&&(R[0]*=Number(_[V])):(F=z>=17?v(_[V].substring(0,z)):_[V]?Math.log10(Number(_[V])):0,1==R[1]?R[0]+=F:2==R[1]&&R[0]<c+Math.log10(F)&&(R[0]+=Math.log10(1+Math.pow(10,Math.log10(F)-R[0])))),R[0]<c&&R[1]?(R[0]=Math.pow(10,R[0]),R[1]--):R[0]>s&&(R[0]=Math.log10(R[0]),R[1]++)}f.array[0].repeat=R[0],R[1]&&(f.array.length>=2&&1==f.array[1].arrow&&1==f.array[1].expans&&1==f.array[1].megota?f.array[1].repeat+=R[1]:f.array.splice(1,0,p(R[1],1,1,1)))}return M&&(f.sign*=-1),x&&(f.small=!f.small),f.normalize(),f.normalize(),f}},{key:"fromObject",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),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(!b(t))return!1;if(!d(t))return!1}return!0}(e)){for(var a=0;a<e.length;a++)t.array[a]={arrow:e[a][0],expans:1,megota:1,repeat:e[a][1]};return t.small=!1,t.sign=1,t.layer=0,t}if(function(r){return null!==r&&"object"===i(r)&&("mag"in r&&"number"==typeof r.mag&&("layer"in r&&"number"==typeof r.layer&&("sign"in r&&"number"==typeof r.sign)))}(e)){var n=e,o=n.mag<0,u=new r(1);return n.layer>=s?u.array=[p(Math.log10(n.layer)),p(1,1),p(1,2)]:n.layer>=1?u.array=[p(Math.abs(n.mag)),p(n.layer,1)]:u.array=[p(n.mag)],u.small=o,u.normalize(),u}if(function(r){if(!Array.isArray(r))return!1;if("number"!=typeof r[0])return!1;for(var e=1;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!E(t))return!1;if(!I(t)&&!k(t)&&!M(t))return!1}return!0}(e)){var l=e;t.array[0]=p(l[0]);for(var c=1;c<l.length;c++){var f=l[c];t.array[1]=p(f[1],O(f[0]),O(f[2]),f[3])}return t.small=!1,t.sign=1,t.layer=0,t}return t.resetFromObject(e),t}},{key:"grahalFunction",value:function(e){var t=new r(e);return!t.isInt()||t.lt(0)||t.isNaN()?r.NaN.clone():t.eq(1)?new r("10^^^(10^)^7625597484984 3638334640023.7783"):t.lte(s)?new r("(10{!})^".concat(t.toNumber()," 10^^^(10^)^7625597484984 3638334640023.7783")):r.BEAF(3,t,1,2)}}])}();l=Symbol.toStringTag,A.ZERO=new A({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),A.ONE=new A({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),A.MSI=new A(s),A.MSI_REC=((F=new A(s)).small=!0,F),A.E_MSI=new A({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),A.EE_MSI=new A({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),A.E_MSI_REC=new A({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),A.TETRATED_MSI=new A({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:s-2}],small:!1,layer:0,sign:1}),A.PENTATED_MSI=new A({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:s-1}],small:!1,layer:0,sign:1}),A.TRITRI=new A({small:!1,layer:0,sign:1,array:[p(3638334640023.7783,0,1,1),p(7625587484984,1,1,1)]}),A.GRAHAMS_NUMBER=new A("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),A.POSITIVE_INFINITY=new A(1/0),A.NEGATIVE_INFINITY=new A(-1/0),A.NaN=new A({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),A.E=new A(Math.E),A.LN2=new A(Math.LN2),A.LN10=new A(Math.LN10),A.LOG2E=new A(Math.LOG2E),A.LOG10E=new A(Math.LOG10E),A.PI=new A(Math.PI),A.SQRT1_2=new A(Math.SQRT1_2),A.SQRT2=new A(Math.SQRT2),A.maxOps=100,A.POW_2_44_MOD_PI=1.701173079953,A.arrowFuncMap=new Map,A.beafFuncMap=new Map,A.usingBreakEternityLikeFromString=!0,A.blankArgumentConstructorReturnZero=!1,A.throwErrorOnResultNaN=!1,r.arraySortFunction=S,r.default=A,r.mergeSameArrays=q,Object.defineProperty(r,"__esModule",{value:!0})}));
|
package/dist/index.d.ts
CHANGED
|
@@ -165,7 +165,15 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
165
165
|
*/
|
|
166
166
|
iteratedlog(other2?: PowiainaNumSource, base2?: PowiainaNumSource): PowiainaNum;
|
|
167
167
|
static iteratedlog(t: PowiainaNumSource, other2?: PowiainaNumSource, base2?: PowiainaNumSource): PowiainaNum;
|
|
168
|
-
|
|
168
|
+
/**
|
|
169
|
+
* Get the base of operators
|
|
170
|
+
*/
|
|
171
|
+
private static oBase;
|
|
172
|
+
/**
|
|
173
|
+
* Only works for operators level < ω.
|
|
174
|
+
*/
|
|
175
|
+
static omegacollect(operators: Operator[]): Operator[];
|
|
176
|
+
omegalog(bbase?: number): number | PowiainaNum;
|
|
169
177
|
/**
|
|
170
178
|
* Arrow operation, return a function
|
|
171
179
|
* The function has a parameter `other`
|
|
@@ -347,14 +355,28 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
347
355
|
ispos(): boolean;
|
|
348
356
|
isneg(): boolean;
|
|
349
357
|
static isNaN(x: PowiainaNumSource): boolean;
|
|
358
|
+
/**
|
|
359
|
+
* @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
|
|
360
|
+
*/
|
|
361
|
+
static opGetOperatorIndex(operators: Operator[], arrow: number, expans?: number, megota?: number): number;
|
|
350
362
|
/**
|
|
351
363
|
* @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
|
|
352
364
|
*/
|
|
353
365
|
getOperatorIndex(arrow: number, expans?: number, megota?: number): number;
|
|
366
|
+
/**
|
|
367
|
+
* @returns number repeats of operators with given arguments.
|
|
368
|
+
*/
|
|
369
|
+
static opGetOperator(operators: Operator[], arrow: number, expans?: number, megota?: number): number;
|
|
354
370
|
/**
|
|
355
371
|
* @returns number repeats of operators with given arguments.
|
|
356
372
|
*/
|
|
357
373
|
getOperator(arrow: number, expans?: number, megota?: number): number;
|
|
374
|
+
/**
|
|
375
|
+
* Modify the repeat of operator(argument will modified)
|
|
376
|
+
* @param number val the repeat of operator will modify to array.
|
|
377
|
+
* @returns bool Is the operators array changed?
|
|
378
|
+
*/
|
|
379
|
+
static opSetOperator(operators: Operator[], val: number, arrow: number, expans?: number, megota?: number): boolean;
|
|
358
380
|
/**
|
|
359
381
|
* Modify the repeat of operator
|
|
360
382
|
* @param number val the repeat of operator will modify to array.
|
package/package.json
CHANGED