powiaina_num.js 0.2.0-beta.1 → 0.2.0-beta.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/PowiainaNum.cjs.js +95 -58
- package/dist/PowiainaNum.esm.js +95 -58
- package/dist/PowiainaNum.js +95 -58
- package/dist/PowiainaNum.min.js +1 -1
- package/dist/index.d.ts +30 -16
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 VeryrrDefine
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/PowiainaNum.cjs.js
CHANGED
|
@@ -64,7 +64,7 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
/* Author: VeryrrDefine 0.2.0-
|
|
67
|
+
/* Author: VeryrrDefine 0.2.0-beta.1.1*/
|
|
68
68
|
var _a;
|
|
69
69
|
var powiainaNumError = "[PowiainaNum 0.2 error]";
|
|
70
70
|
var MSI = 9007199254740991;
|
|
@@ -544,40 +544,17 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
544
544
|
return this.log();
|
|
545
545
|
}
|
|
546
546
|
/**
|
|
547
|
-
*
|
|
547
|
+
* positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
|
|
548
548
|
*/
|
|
549
549
|
}, {
|
|
550
|
-
key: "
|
|
551
|
-
value: function
|
|
552
|
-
|
|
550
|
+
key: "pLog10",
|
|
551
|
+
value: function pLog10() {
|
|
552
|
+
if (this.isneg()) return PowiainaNum.ZERO;
|
|
553
|
+
return this.log10();
|
|
553
554
|
}
|
|
554
555
|
/**
|
|
555
|
-
*
|
|
556
|
+
* positive-Log10
|
|
556
557
|
*/
|
|
557
|
-
}, {
|
|
558
|
-
key: "plog",
|
|
559
|
-
value:
|
|
560
|
-
/**
|
|
561
|
-
* plog, beware unexpected errors.
|
|
562
|
-
*/
|
|
563
|
-
function plog() {
|
|
564
|
-
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math.E;
|
|
565
|
-
// log_a b = log_x b / log_x a;
|
|
566
|
-
var other = new PowiainaNum(base);
|
|
567
|
-
return this.plog10().div(other.plog10());
|
|
568
|
-
}
|
|
569
|
-
/**
|
|
570
|
-
* plog, beware unexpected errors.
|
|
571
|
-
*/
|
|
572
|
-
}, {
|
|
573
|
-
key: "pln",
|
|
574
|
-
value:
|
|
575
|
-
/**
|
|
576
|
-
* pln, beware unexpected errors.
|
|
577
|
-
*/
|
|
578
|
-
function pln() {
|
|
579
|
-
return this.plog();
|
|
580
|
-
}
|
|
581
558
|
}, {
|
|
582
559
|
key: "exp",
|
|
583
560
|
value: function exp() {
|
|
@@ -700,6 +677,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
700
677
|
value:
|
|
701
678
|
//#endregion
|
|
702
679
|
//#region higher calculates
|
|
680
|
+
//#region Tetration
|
|
703
681
|
// Code from ExpantaNum.js
|
|
704
682
|
function tetrate(other2) {
|
|
705
683
|
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
@@ -851,6 +829,25 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
851
829
|
var l = x.ln();
|
|
852
830
|
return l.div(l.lambertw());
|
|
853
831
|
}
|
|
832
|
+
}, {
|
|
833
|
+
key: "iteratedlog",
|
|
834
|
+
value:
|
|
835
|
+
/**
|
|
836
|
+
* iterated-log
|
|
837
|
+
*
|
|
838
|
+
* @example new P("10^10^3").iteratedlog(2,10) == 3
|
|
839
|
+
*/
|
|
840
|
+
function iteratedlog() {
|
|
841
|
+
var other2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
842
|
+
var base2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
|
|
843
|
+
var t = this.clone();
|
|
844
|
+
var base = new PowiainaNum(base2);
|
|
845
|
+
var other = new PowiainaNum(other2);
|
|
846
|
+
if (other.isZero()) return t;
|
|
847
|
+
if (other.eq(PowiainaNum.ONE)) return t.log(base);
|
|
848
|
+
return base.tetrate(t.slog(base).sub(other));
|
|
849
|
+
}
|
|
850
|
+
//#endregion
|
|
854
851
|
}, {
|
|
855
852
|
key: "arrow",
|
|
856
853
|
value: function arrow(arrows2) {
|
|
@@ -1191,21 +1188,66 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1191
1188
|
return obj;
|
|
1192
1189
|
}
|
|
1193
1190
|
}, {
|
|
1194
|
-
key: "
|
|
1195
|
-
value:
|
|
1191
|
+
key: "clampMin",
|
|
1192
|
+
value:
|
|
1193
|
+
/**
|
|
1194
|
+
* Restrict a number be not lower than a number
|
|
1195
|
+
*
|
|
1196
|
+
* It's also an alias of `PowiainaNum.max`.
|
|
1197
|
+
* @returns restricted number
|
|
1198
|
+
*/
|
|
1199
|
+
function clampMin() {
|
|
1196
1200
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
1197
1201
|
args[_key2] = arguments[_key2];
|
|
1198
1202
|
}
|
|
1199
1203
|
return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
|
|
1200
1204
|
}
|
|
1205
|
+
/**
|
|
1206
|
+
* Restrict a number be not higher than a number
|
|
1207
|
+
*
|
|
1208
|
+
* It's also an alias of `PowiainaNum.min`.
|
|
1209
|
+
* @returns restricted number
|
|
1210
|
+
*/
|
|
1201
1211
|
}, {
|
|
1202
|
-
key: "
|
|
1203
|
-
value:
|
|
1212
|
+
key: "clampMax",
|
|
1213
|
+
value:
|
|
1214
|
+
/**
|
|
1215
|
+
* Restrict a number be not higher than a number
|
|
1216
|
+
*
|
|
1217
|
+
* It's also an alias of `PowiainaNum.min`.
|
|
1218
|
+
* @returns restricted number
|
|
1219
|
+
*/
|
|
1220
|
+
function clampMax() {
|
|
1204
1221
|
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
1205
1222
|
args[_key3] = arguments[_key3];
|
|
1206
1223
|
}
|
|
1207
1224
|
return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
|
|
1208
1225
|
}
|
|
1226
|
+
/**
|
|
1227
|
+
* A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
|
|
1228
|
+
* Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
|
|
1229
|
+
*/
|
|
1230
|
+
}, {
|
|
1231
|
+
key: "clamp",
|
|
1232
|
+
value: function clamp(min, max) {
|
|
1233
|
+
return this.max(min).min(max);
|
|
1234
|
+
}
|
|
1235
|
+
}, {
|
|
1236
|
+
key: "max",
|
|
1237
|
+
value: function max() {
|
|
1238
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
1239
|
+
args[_key4] = arguments[_key4];
|
|
1240
|
+
}
|
|
1241
|
+
return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
|
|
1242
|
+
}
|
|
1243
|
+
}, {
|
|
1244
|
+
key: "min",
|
|
1245
|
+
value: function min() {
|
|
1246
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
1247
|
+
args[_key5] = arguments[_key5];
|
|
1248
|
+
}
|
|
1249
|
+
return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
|
|
1250
|
+
}
|
|
1209
1251
|
/**
|
|
1210
1252
|
* Compare what PowiainaNum's absolute value is max
|
|
1211
1253
|
* @param args
|
|
@@ -1214,8 +1256,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1214
1256
|
}, {
|
|
1215
1257
|
key: "maxabs",
|
|
1216
1258
|
value: function maxabs() {
|
|
1217
|
-
for (var
|
|
1218
|
-
args[
|
|
1259
|
+
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
|
1260
|
+
args[_key6] = arguments[_key6];
|
|
1219
1261
|
}
|
|
1220
1262
|
var other = args.map(function (x) {
|
|
1221
1263
|
return new PowiainaNum(x).abs();
|
|
@@ -1225,8 +1267,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1225
1267
|
}, {
|
|
1226
1268
|
key: "minabs",
|
|
1227
1269
|
value: function minabs() {
|
|
1228
|
-
for (var
|
|
1229
|
-
args[
|
|
1270
|
+
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
|
1271
|
+
args[_key7] = arguments[_key7];
|
|
1230
1272
|
}
|
|
1231
1273
|
var other = args.map(function (x) {
|
|
1232
1274
|
return new PowiainaNum(x).abs();
|
|
@@ -1304,6 +1346,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1304
1346
|
var t = this.cmp(other);
|
|
1305
1347
|
return t == 0 || t == 1;
|
|
1306
1348
|
}
|
|
1349
|
+
}, {
|
|
1350
|
+
key: "eq_tolerance",
|
|
1351
|
+
value: function eq_tolerance(value) {
|
|
1352
|
+
var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e-7;
|
|
1353
|
+
var dec = new PowiainaNum(value);
|
|
1354
|
+
return this.sub(dec).lte(this.max(dec).mul(tolerance));
|
|
1355
|
+
}
|
|
1307
1356
|
//#endregion
|
|
1308
1357
|
//#region geometry
|
|
1309
1358
|
}, {
|
|
@@ -1605,7 +1654,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1605
1654
|
// for any 10{A sample=2}1e9, turn into (10{A-1})^1e9-1 10
|
|
1606
1655
|
// But dont convert when a is infinite
|
|
1607
1656
|
// [1e9, [R=1, A=2, sth, sth]]
|
|
1608
|
-
x.array.splice(1, 1, newOperator(x.array[0].repeat, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
|
|
1657
|
+
x.array.splice(1, 1, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
|
|
1609
1658
|
x.array[0].repeat = 10;
|
|
1610
1659
|
renormalize = true;
|
|
1611
1660
|
}
|
|
@@ -1848,15 +1897,9 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1848
1897
|
return new PowiainaNum(t).log(base);
|
|
1849
1898
|
}
|
|
1850
1899
|
}, {
|
|
1851
|
-
key: "
|
|
1852
|
-
value: function
|
|
1853
|
-
return new PowiainaNum(t).
|
|
1854
|
-
}
|
|
1855
|
-
}, {
|
|
1856
|
-
key: "plog",
|
|
1857
|
-
value: function plog(t) {
|
|
1858
|
-
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Math.E;
|
|
1859
|
-
return new PowiainaNum(t).plog(base);
|
|
1900
|
+
key: "pLog10",
|
|
1901
|
+
value: function pLog10(t) {
|
|
1902
|
+
return new PowiainaNum(t).pLog10();
|
|
1860
1903
|
}
|
|
1861
1904
|
}, {
|
|
1862
1905
|
key: "exp",
|
|
@@ -2097,8 +2140,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2097
2140
|
key: "max",
|
|
2098
2141
|
value: function max() {
|
|
2099
2142
|
var max = PowiainaNum.NEGATIVE_INFINITY;
|
|
2100
|
-
for (var
|
|
2101
|
-
args[
|
|
2143
|
+
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
2144
|
+
args[_key8] = arguments[_key8];
|
|
2102
2145
|
}
|
|
2103
2146
|
for (var i = 0; i < args.length; i++) {
|
|
2104
2147
|
if (max.lt(args[i])) {
|
|
@@ -2114,8 +2157,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2114
2157
|
key: "min",
|
|
2115
2158
|
value: function min() {
|
|
2116
2159
|
var max = PowiainaNum.POSITIVE_INFINITY;
|
|
2117
|
-
for (var
|
|
2118
|
-
args[
|
|
2160
|
+
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
2161
|
+
args[_key9] = arguments[_key9];
|
|
2119
2162
|
}
|
|
2120
2163
|
for (var i = 0; i < args.length; i++) {
|
|
2121
2164
|
if (max.gt(args[i])) {
|
|
@@ -2135,12 +2178,6 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2135
2178
|
value: function clampMin() {
|
|
2136
2179
|
return PowiainaNum.max.apply(PowiainaNum, arguments);
|
|
2137
2180
|
}
|
|
2138
|
-
/**
|
|
2139
|
-
* Restrict a number be not higher than a number
|
|
2140
|
-
*
|
|
2141
|
-
* It's also an alias of `PowiainaNum.min`.
|
|
2142
|
-
* @returns restricted number
|
|
2143
|
-
*/
|
|
2144
2181
|
}, {
|
|
2145
2182
|
key: "clampMax",
|
|
2146
2183
|
value: function clampMax() {
|
package/dist/PowiainaNum.esm.js
CHANGED
|
@@ -60,7 +60,7 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
/* Author: VeryrrDefine 0.2.0-
|
|
63
|
+
/* Author: VeryrrDefine 0.2.0-beta.1.1*/
|
|
64
64
|
var _a;
|
|
65
65
|
var powiainaNumError = "[PowiainaNum 0.2 error]";
|
|
66
66
|
var MSI = 9007199254740991;
|
|
@@ -540,40 +540,17 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
540
540
|
return this.log();
|
|
541
541
|
}
|
|
542
542
|
/**
|
|
543
|
-
*
|
|
543
|
+
* positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
|
|
544
544
|
*/
|
|
545
545
|
}, {
|
|
546
|
-
key: "
|
|
547
|
-
value: function
|
|
548
|
-
|
|
546
|
+
key: "pLog10",
|
|
547
|
+
value: function pLog10() {
|
|
548
|
+
if (this.isneg()) return PowiainaNum.ZERO;
|
|
549
|
+
return this.log10();
|
|
549
550
|
}
|
|
550
551
|
/**
|
|
551
|
-
*
|
|
552
|
+
* positive-Log10
|
|
552
553
|
*/
|
|
553
|
-
}, {
|
|
554
|
-
key: "plog",
|
|
555
|
-
value:
|
|
556
|
-
/**
|
|
557
|
-
* plog, beware unexpected errors.
|
|
558
|
-
*/
|
|
559
|
-
function plog() {
|
|
560
|
-
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math.E;
|
|
561
|
-
// log_a b = log_x b / log_x a;
|
|
562
|
-
var other = new PowiainaNum(base);
|
|
563
|
-
return this.plog10().div(other.plog10());
|
|
564
|
-
}
|
|
565
|
-
/**
|
|
566
|
-
* plog, beware unexpected errors.
|
|
567
|
-
*/
|
|
568
|
-
}, {
|
|
569
|
-
key: "pln",
|
|
570
|
-
value:
|
|
571
|
-
/**
|
|
572
|
-
* pln, beware unexpected errors.
|
|
573
|
-
*/
|
|
574
|
-
function pln() {
|
|
575
|
-
return this.plog();
|
|
576
|
-
}
|
|
577
554
|
}, {
|
|
578
555
|
key: "exp",
|
|
579
556
|
value: function exp() {
|
|
@@ -696,6 +673,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
696
673
|
value:
|
|
697
674
|
//#endregion
|
|
698
675
|
//#region higher calculates
|
|
676
|
+
//#region Tetration
|
|
699
677
|
// Code from ExpantaNum.js
|
|
700
678
|
function tetrate(other2) {
|
|
701
679
|
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
@@ -847,6 +825,25 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
847
825
|
var l = x.ln();
|
|
848
826
|
return l.div(l.lambertw());
|
|
849
827
|
}
|
|
828
|
+
}, {
|
|
829
|
+
key: "iteratedlog",
|
|
830
|
+
value:
|
|
831
|
+
/**
|
|
832
|
+
* iterated-log
|
|
833
|
+
*
|
|
834
|
+
* @example new P("10^10^3").iteratedlog(2,10) == 3
|
|
835
|
+
*/
|
|
836
|
+
function iteratedlog() {
|
|
837
|
+
var other2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
838
|
+
var base2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
|
|
839
|
+
var t = this.clone();
|
|
840
|
+
var base = new PowiainaNum(base2);
|
|
841
|
+
var other = new PowiainaNum(other2);
|
|
842
|
+
if (other.isZero()) return t;
|
|
843
|
+
if (other.eq(PowiainaNum.ONE)) return t.log(base);
|
|
844
|
+
return base.tetrate(t.slog(base).sub(other));
|
|
845
|
+
}
|
|
846
|
+
//#endregion
|
|
850
847
|
}, {
|
|
851
848
|
key: "arrow",
|
|
852
849
|
value: function arrow(arrows2) {
|
|
@@ -1187,21 +1184,66 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1187
1184
|
return obj;
|
|
1188
1185
|
}
|
|
1189
1186
|
}, {
|
|
1190
|
-
key: "
|
|
1191
|
-
value:
|
|
1187
|
+
key: "clampMin",
|
|
1188
|
+
value:
|
|
1189
|
+
/**
|
|
1190
|
+
* Restrict a number be not lower than a number
|
|
1191
|
+
*
|
|
1192
|
+
* It's also an alias of `PowiainaNum.max`.
|
|
1193
|
+
* @returns restricted number
|
|
1194
|
+
*/
|
|
1195
|
+
function clampMin() {
|
|
1192
1196
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
1193
1197
|
args[_key2] = arguments[_key2];
|
|
1194
1198
|
}
|
|
1195
1199
|
return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
|
|
1196
1200
|
}
|
|
1201
|
+
/**
|
|
1202
|
+
* Restrict a number be not higher than a number
|
|
1203
|
+
*
|
|
1204
|
+
* It's also an alias of `PowiainaNum.min`.
|
|
1205
|
+
* @returns restricted number
|
|
1206
|
+
*/
|
|
1197
1207
|
}, {
|
|
1198
|
-
key: "
|
|
1199
|
-
value:
|
|
1208
|
+
key: "clampMax",
|
|
1209
|
+
value:
|
|
1210
|
+
/**
|
|
1211
|
+
* Restrict a number be not higher than a number
|
|
1212
|
+
*
|
|
1213
|
+
* It's also an alias of `PowiainaNum.min`.
|
|
1214
|
+
* @returns restricted number
|
|
1215
|
+
*/
|
|
1216
|
+
function clampMax() {
|
|
1200
1217
|
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
1201
1218
|
args[_key3] = arguments[_key3];
|
|
1202
1219
|
}
|
|
1203
1220
|
return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
|
|
1204
1221
|
}
|
|
1222
|
+
/**
|
|
1223
|
+
* A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
|
|
1224
|
+
* Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
|
|
1225
|
+
*/
|
|
1226
|
+
}, {
|
|
1227
|
+
key: "clamp",
|
|
1228
|
+
value: function clamp(min, max) {
|
|
1229
|
+
return this.max(min).min(max);
|
|
1230
|
+
}
|
|
1231
|
+
}, {
|
|
1232
|
+
key: "max",
|
|
1233
|
+
value: function max() {
|
|
1234
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
1235
|
+
args[_key4] = arguments[_key4];
|
|
1236
|
+
}
|
|
1237
|
+
return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
|
|
1238
|
+
}
|
|
1239
|
+
}, {
|
|
1240
|
+
key: "min",
|
|
1241
|
+
value: function min() {
|
|
1242
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
1243
|
+
args[_key5] = arguments[_key5];
|
|
1244
|
+
}
|
|
1245
|
+
return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
|
|
1246
|
+
}
|
|
1205
1247
|
/**
|
|
1206
1248
|
* Compare what PowiainaNum's absolute value is max
|
|
1207
1249
|
* @param args
|
|
@@ -1210,8 +1252,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1210
1252
|
}, {
|
|
1211
1253
|
key: "maxabs",
|
|
1212
1254
|
value: function maxabs() {
|
|
1213
|
-
for (var
|
|
1214
|
-
args[
|
|
1255
|
+
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
|
1256
|
+
args[_key6] = arguments[_key6];
|
|
1215
1257
|
}
|
|
1216
1258
|
var other = args.map(function (x) {
|
|
1217
1259
|
return new PowiainaNum(x).abs();
|
|
@@ -1221,8 +1263,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1221
1263
|
}, {
|
|
1222
1264
|
key: "minabs",
|
|
1223
1265
|
value: function minabs() {
|
|
1224
|
-
for (var
|
|
1225
|
-
args[
|
|
1266
|
+
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
|
1267
|
+
args[_key7] = arguments[_key7];
|
|
1226
1268
|
}
|
|
1227
1269
|
var other = args.map(function (x) {
|
|
1228
1270
|
return new PowiainaNum(x).abs();
|
|
@@ -1300,6 +1342,13 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1300
1342
|
var t = this.cmp(other);
|
|
1301
1343
|
return t == 0 || t == 1;
|
|
1302
1344
|
}
|
|
1345
|
+
}, {
|
|
1346
|
+
key: "eq_tolerance",
|
|
1347
|
+
value: function eq_tolerance(value) {
|
|
1348
|
+
var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e-7;
|
|
1349
|
+
var dec = new PowiainaNum(value);
|
|
1350
|
+
return this.sub(dec).lte(this.max(dec).mul(tolerance));
|
|
1351
|
+
}
|
|
1303
1352
|
//#endregion
|
|
1304
1353
|
//#region geometry
|
|
1305
1354
|
}, {
|
|
@@ -1601,7 +1650,7 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1601
1650
|
// for any 10{A sample=2}1e9, turn into (10{A-1})^1e9-1 10
|
|
1602
1651
|
// But dont convert when a is infinite
|
|
1603
1652
|
// [1e9, [R=1, A=2, sth, sth]]
|
|
1604
|
-
x.array.splice(1, 1, newOperator(x.array[0].repeat, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
|
|
1653
|
+
x.array.splice(1, 1, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
|
|
1605
1654
|
x.array[0].repeat = 10;
|
|
1606
1655
|
renormalize = true;
|
|
1607
1656
|
}
|
|
@@ -1844,15 +1893,9 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
1844
1893
|
return new PowiainaNum(t).log(base);
|
|
1845
1894
|
}
|
|
1846
1895
|
}, {
|
|
1847
|
-
key: "
|
|
1848
|
-
value: function
|
|
1849
|
-
return new PowiainaNum(t).
|
|
1850
|
-
}
|
|
1851
|
-
}, {
|
|
1852
|
-
key: "plog",
|
|
1853
|
-
value: function plog(t) {
|
|
1854
|
-
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Math.E;
|
|
1855
|
-
return new PowiainaNum(t).plog(base);
|
|
1896
|
+
key: "pLog10",
|
|
1897
|
+
value: function pLog10(t) {
|
|
1898
|
+
return new PowiainaNum(t).pLog10();
|
|
1856
1899
|
}
|
|
1857
1900
|
}, {
|
|
1858
1901
|
key: "exp",
|
|
@@ -2093,8 +2136,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2093
2136
|
key: "max",
|
|
2094
2137
|
value: function max() {
|
|
2095
2138
|
var max = PowiainaNum.NEGATIVE_INFINITY;
|
|
2096
|
-
for (var
|
|
2097
|
-
args[
|
|
2139
|
+
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
2140
|
+
args[_key8] = arguments[_key8];
|
|
2098
2141
|
}
|
|
2099
2142
|
for (var i = 0; i < args.length; i++) {
|
|
2100
2143
|
if (max.lt(args[i])) {
|
|
@@ -2110,8 +2153,8 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2110
2153
|
key: "min",
|
|
2111
2154
|
value: function min() {
|
|
2112
2155
|
var max = PowiainaNum.POSITIVE_INFINITY;
|
|
2113
|
-
for (var
|
|
2114
|
-
args[
|
|
2156
|
+
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
2157
|
+
args[_key9] = arguments[_key9];
|
|
2115
2158
|
}
|
|
2116
2159
|
for (var i = 0; i < args.length; i++) {
|
|
2117
2160
|
if (max.gt(args[i])) {
|
|
@@ -2131,12 +2174,6 @@ var PowiainaNum = /*#__PURE__*/function () {
|
|
|
2131
2174
|
value: function clampMin() {
|
|
2132
2175
|
return PowiainaNum.max.apply(PowiainaNum, arguments);
|
|
2133
2176
|
}
|
|
2134
|
-
/**
|
|
2135
|
-
* Restrict a number be not higher than a number
|
|
2136
|
-
*
|
|
2137
|
-
* It's also an alias of `PowiainaNum.min`.
|
|
2138
|
-
* @returns restricted number
|
|
2139
|
-
*/
|
|
2140
2177
|
}, {
|
|
2141
2178
|
key: "clampMax",
|
|
2142
2179
|
value: function clampMax() {
|
package/dist/PowiainaNum.js
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
/* Author: VeryrrDefine 0.2.0-
|
|
69
|
+
/* Author: VeryrrDefine 0.2.0-beta.1.1*/
|
|
70
70
|
var _a;
|
|
71
71
|
var powiainaNumError = "[PowiainaNum 0.2 error]";
|
|
72
72
|
var MSI = 9007199254740991;
|
|
@@ -546,40 +546,17 @@
|
|
|
546
546
|
return this.log();
|
|
547
547
|
}
|
|
548
548
|
/**
|
|
549
|
-
*
|
|
549
|
+
* positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
|
|
550
550
|
*/
|
|
551
551
|
}, {
|
|
552
|
-
key: "
|
|
553
|
-
value: function
|
|
554
|
-
|
|
552
|
+
key: "pLog10",
|
|
553
|
+
value: function pLog10() {
|
|
554
|
+
if (this.isneg()) return PowiainaNum.ZERO;
|
|
555
|
+
return this.log10();
|
|
555
556
|
}
|
|
556
557
|
/**
|
|
557
|
-
*
|
|
558
|
+
* positive-Log10
|
|
558
559
|
*/
|
|
559
|
-
}, {
|
|
560
|
-
key: "plog",
|
|
561
|
-
value:
|
|
562
|
-
/**
|
|
563
|
-
* plog, beware unexpected errors.
|
|
564
|
-
*/
|
|
565
|
-
function plog() {
|
|
566
|
-
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Math.E;
|
|
567
|
-
// log_a b = log_x b / log_x a;
|
|
568
|
-
var other = new PowiainaNum(base);
|
|
569
|
-
return this.plog10().div(other.plog10());
|
|
570
|
-
}
|
|
571
|
-
/**
|
|
572
|
-
* plog, beware unexpected errors.
|
|
573
|
-
*/
|
|
574
|
-
}, {
|
|
575
|
-
key: "pln",
|
|
576
|
-
value:
|
|
577
|
-
/**
|
|
578
|
-
* pln, beware unexpected errors.
|
|
579
|
-
*/
|
|
580
|
-
function pln() {
|
|
581
|
-
return this.plog();
|
|
582
|
-
}
|
|
583
560
|
}, {
|
|
584
561
|
key: "exp",
|
|
585
562
|
value: function exp() {
|
|
@@ -702,6 +679,7 @@
|
|
|
702
679
|
value:
|
|
703
680
|
//#endregion
|
|
704
681
|
//#region higher calculates
|
|
682
|
+
//#region Tetration
|
|
705
683
|
// Code from ExpantaNum.js
|
|
706
684
|
function tetrate(other2) {
|
|
707
685
|
var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
@@ -853,6 +831,25 @@
|
|
|
853
831
|
var l = x.ln();
|
|
854
832
|
return l.div(l.lambertw());
|
|
855
833
|
}
|
|
834
|
+
}, {
|
|
835
|
+
key: "iteratedlog",
|
|
836
|
+
value:
|
|
837
|
+
/**
|
|
838
|
+
* iterated-log
|
|
839
|
+
*
|
|
840
|
+
* @example new P("10^10^3").iteratedlog(2,10) == 3
|
|
841
|
+
*/
|
|
842
|
+
function iteratedlog() {
|
|
843
|
+
var other2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
844
|
+
var base2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
|
|
845
|
+
var t = this.clone();
|
|
846
|
+
var base = new PowiainaNum(base2);
|
|
847
|
+
var other = new PowiainaNum(other2);
|
|
848
|
+
if (other.isZero()) return t;
|
|
849
|
+
if (other.eq(PowiainaNum.ONE)) return t.log(base);
|
|
850
|
+
return base.tetrate(t.slog(base).sub(other));
|
|
851
|
+
}
|
|
852
|
+
//#endregion
|
|
856
853
|
}, {
|
|
857
854
|
key: "arrow",
|
|
858
855
|
value: function arrow(arrows2) {
|
|
@@ -1193,21 +1190,66 @@
|
|
|
1193
1190
|
return obj;
|
|
1194
1191
|
}
|
|
1195
1192
|
}, {
|
|
1196
|
-
key: "
|
|
1197
|
-
value:
|
|
1193
|
+
key: "clampMin",
|
|
1194
|
+
value:
|
|
1195
|
+
/**
|
|
1196
|
+
* Restrict a number be not lower than a number
|
|
1197
|
+
*
|
|
1198
|
+
* It's also an alias of `PowiainaNum.max`.
|
|
1199
|
+
* @returns restricted number
|
|
1200
|
+
*/
|
|
1201
|
+
function clampMin() {
|
|
1198
1202
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
1199
1203
|
args[_key2] = arguments[_key2];
|
|
1200
1204
|
}
|
|
1201
1205
|
return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
|
|
1202
1206
|
}
|
|
1207
|
+
/**
|
|
1208
|
+
* Restrict a number be not higher than a number
|
|
1209
|
+
*
|
|
1210
|
+
* It's also an alias of `PowiainaNum.min`.
|
|
1211
|
+
* @returns restricted number
|
|
1212
|
+
*/
|
|
1203
1213
|
}, {
|
|
1204
|
-
key: "
|
|
1205
|
-
value:
|
|
1214
|
+
key: "clampMax",
|
|
1215
|
+
value:
|
|
1216
|
+
/**
|
|
1217
|
+
* Restrict a number be not higher than a number
|
|
1218
|
+
*
|
|
1219
|
+
* It's also an alias of `PowiainaNum.min`.
|
|
1220
|
+
* @returns restricted number
|
|
1221
|
+
*/
|
|
1222
|
+
function clampMax() {
|
|
1206
1223
|
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
1207
1224
|
args[_key3] = arguments[_key3];
|
|
1208
1225
|
}
|
|
1209
1226
|
return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
|
|
1210
1227
|
}
|
|
1228
|
+
/**
|
|
1229
|
+
* A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
|
|
1230
|
+
* Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
|
|
1231
|
+
*/
|
|
1232
|
+
}, {
|
|
1233
|
+
key: "clamp",
|
|
1234
|
+
value: function clamp(min, max) {
|
|
1235
|
+
return this.max(min).min(max);
|
|
1236
|
+
}
|
|
1237
|
+
}, {
|
|
1238
|
+
key: "max",
|
|
1239
|
+
value: function max() {
|
|
1240
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
1241
|
+
args[_key4] = arguments[_key4];
|
|
1242
|
+
}
|
|
1243
|
+
return PowiainaNum.max.apply(PowiainaNum, [this].concat(args));
|
|
1244
|
+
}
|
|
1245
|
+
}, {
|
|
1246
|
+
key: "min",
|
|
1247
|
+
value: function min() {
|
|
1248
|
+
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
1249
|
+
args[_key5] = arguments[_key5];
|
|
1250
|
+
}
|
|
1251
|
+
return PowiainaNum.min.apply(PowiainaNum, [this].concat(args));
|
|
1252
|
+
}
|
|
1211
1253
|
/**
|
|
1212
1254
|
* Compare what PowiainaNum's absolute value is max
|
|
1213
1255
|
* @param args
|
|
@@ -1216,8 +1258,8 @@
|
|
|
1216
1258
|
}, {
|
|
1217
1259
|
key: "maxabs",
|
|
1218
1260
|
value: function maxabs() {
|
|
1219
|
-
for (var
|
|
1220
|
-
args[
|
|
1261
|
+
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
|
1262
|
+
args[_key6] = arguments[_key6];
|
|
1221
1263
|
}
|
|
1222
1264
|
var other = args.map(function (x) {
|
|
1223
1265
|
return new PowiainaNum(x).abs();
|
|
@@ -1227,8 +1269,8 @@
|
|
|
1227
1269
|
}, {
|
|
1228
1270
|
key: "minabs",
|
|
1229
1271
|
value: function minabs() {
|
|
1230
|
-
for (var
|
|
1231
|
-
args[
|
|
1272
|
+
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
|
1273
|
+
args[_key7] = arguments[_key7];
|
|
1232
1274
|
}
|
|
1233
1275
|
var other = args.map(function (x) {
|
|
1234
1276
|
return new PowiainaNum(x).abs();
|
|
@@ -1306,6 +1348,13 @@
|
|
|
1306
1348
|
var t = this.cmp(other);
|
|
1307
1349
|
return t == 0 || t == 1;
|
|
1308
1350
|
}
|
|
1351
|
+
}, {
|
|
1352
|
+
key: "eq_tolerance",
|
|
1353
|
+
value: function eq_tolerance(value) {
|
|
1354
|
+
var tolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1e-7;
|
|
1355
|
+
var dec = new PowiainaNum(value);
|
|
1356
|
+
return this.sub(dec).lte(this.max(dec).mul(tolerance));
|
|
1357
|
+
}
|
|
1309
1358
|
//#endregion
|
|
1310
1359
|
//#region geometry
|
|
1311
1360
|
}, {
|
|
@@ -1607,7 +1656,7 @@
|
|
|
1607
1656
|
// for any 10{A sample=2}1e9, turn into (10{A-1})^1e9-1 10
|
|
1608
1657
|
// But dont convert when a is infinite
|
|
1609
1658
|
// [1e9, [R=1, A=2, sth, sth]]
|
|
1610
|
-
x.array.splice(1, 1, newOperator(x.array[0].repeat, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
|
|
1659
|
+
x.array.splice(1, 1, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
|
|
1611
1660
|
x.array[0].repeat = 10;
|
|
1612
1661
|
renormalize = true;
|
|
1613
1662
|
}
|
|
@@ -1850,15 +1899,9 @@
|
|
|
1850
1899
|
return new PowiainaNum(t).log(base);
|
|
1851
1900
|
}
|
|
1852
1901
|
}, {
|
|
1853
|
-
key: "
|
|
1854
|
-
value: function
|
|
1855
|
-
return new PowiainaNum(t).
|
|
1856
|
-
}
|
|
1857
|
-
}, {
|
|
1858
|
-
key: "plog",
|
|
1859
|
-
value: function plog(t) {
|
|
1860
|
-
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Math.E;
|
|
1861
|
-
return new PowiainaNum(t).plog(base);
|
|
1902
|
+
key: "pLog10",
|
|
1903
|
+
value: function pLog10(t) {
|
|
1904
|
+
return new PowiainaNum(t).pLog10();
|
|
1862
1905
|
}
|
|
1863
1906
|
}, {
|
|
1864
1907
|
key: "exp",
|
|
@@ -2099,8 +2142,8 @@
|
|
|
2099
2142
|
key: "max",
|
|
2100
2143
|
value: function max() {
|
|
2101
2144
|
var max = PowiainaNum.NEGATIVE_INFINITY;
|
|
2102
|
-
for (var
|
|
2103
|
-
args[
|
|
2145
|
+
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
2146
|
+
args[_key8] = arguments[_key8];
|
|
2104
2147
|
}
|
|
2105
2148
|
for (var i = 0; i < args.length; i++) {
|
|
2106
2149
|
if (max.lt(args[i])) {
|
|
@@ -2116,8 +2159,8 @@
|
|
|
2116
2159
|
key: "min",
|
|
2117
2160
|
value: function min() {
|
|
2118
2161
|
var max = PowiainaNum.POSITIVE_INFINITY;
|
|
2119
|
-
for (var
|
|
2120
|
-
args[
|
|
2162
|
+
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
2163
|
+
args[_key9] = arguments[_key9];
|
|
2121
2164
|
}
|
|
2122
2165
|
for (var i = 0; i < args.length; i++) {
|
|
2123
2166
|
if (max.gt(args[i])) {
|
|
@@ -2137,12 +2180,6 @@
|
|
|
2137
2180
|
value: function clampMin() {
|
|
2138
2181
|
return PowiainaNum.max.apply(PowiainaNum, arguments);
|
|
2139
2182
|
}
|
|
2140
|
-
/**
|
|
2141
|
-
* Restrict a number be not higher than a number
|
|
2142
|
-
*
|
|
2143
|
-
* It's also an alias of `PowiainaNum.min`.
|
|
2144
|
-
* @returns restricted number
|
|
2145
|
-
*/
|
|
2146
2183
|
}, {
|
|
2147
2184
|
key: "clampMax",
|
|
2148
2185
|
value: function clampMax() {
|
package/dist/PowiainaNum.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum={})}(this,(function(r){"use strict";function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t<e;t++)a[t]=r[t];return a}function t(r,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,n(a.key),a)}}function a(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function(r,t){if(r){if("string"==typeof r)return e(r,t);var a={}.toString.call(r).slice(8,-1);return"Object"===a&&r.constructor&&(a=r.constructor.name),"Map"===a||"Set"===a?Array.from(r):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?e(r,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var a=t.call(r,e||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function i(r){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var o,u=9007199254740991,l=15.954589770191003,s=1.444667861009766,c=/^(PN)?[\/\-\+]*(Infinity|NaN|(P+|P\^\d+ )?(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function f(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:a,valuereplaced:e==1/0?0:t==1/0?1:-1}}function g(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var a=0;a<Math.min(e[0].length,e[1].length);a++){var n=e[0][a],i=e[1][a];if(n<i)return-1;if(n>i)return 1}return 0}function h(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var p=.5671432904097838;function y(r){var e,t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!Number.isFinite(r))return r;if(n){if(0===r)return r;if(1===r)return p;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var i=0;i<100;++i){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<a*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function m(r){return 2==r.length}function N(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function v(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new O(r)).isFinite())return r;if(a){if(r.eq(O.ZERO))return r;if(r.eq(O.ONE))return new O(p);e=O.log(r)}else{if(r.eq(O.ZERO))return O.NEGATIVE_INFINITY.clone();e=O.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(O.ONE).sub(e.add(2).mul(o).div(O.mul(2,e).add(2)));if(u.eq(O.ZERO))return e;var l=e.sub(o.div(u));if(O.abs(l.sub(e)).lt(O.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function w(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var b,O=function(){function r(e){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[o]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==i(e)){var a=r.fromObject(e);this.resetFromObject(a)}else if("string"==typeof e){var n=r.fromString(e);this.resetFromObject(n)}}return function(r,e,a){return e&&t(r.prototype,e),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,a,n,i,o,s,c=this.clone(),g=new r(e);if(c.eq(r.POSITIVE_INFINITY)&&g.eq(r.NEGATIVE_INFINITY)||c.eq(r.NEGATIVE_INFINITY)&&g.eq(r.POSITIVE_INFINITY))return r.NaN.clone();if(!c.isFinite())return c.clone();if(!g.isFinite())return g.clone();if(c.isZero())return g.clone();if(g.isZero())return c.clone();if(c.sign==-g.sign&&function(){var r=c.abs(),e=g.abs();return r.eq(e)}())return r.ZERO.clone();if(c.abs().lt(u)&&g.abs().lt(u))return r.fromNumber(c.toNumber()+g.toNumber());if(c.abs().lt(r.E_MSI_REC)||c.abs().gt(r.E_MSI)||g.abs().lt(r.E_MSI_REC)||g.abs().gt(r.E_MSI))return c.maxabs(g);if(-1==c.sign)return c.neg().add(g.neg()).neg();c.cmpabs(g)>0?(o=c,s=g):(s=c,o=g);var h=o.toNumber()+s.toNumber();if(isFinite(h)&&0!==h)return r.fromNumber(h);var p=1;if(!(o.small||s.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(a=s.array[1])||void 0===a?void 0:a.repeat)||o.sign!=s.sign))return new r((o.array[0].repeat+s.array[0].repeat)*o.sign);var y=(o.small?-1:1)*((null===(n=o.array[1])||void 0===n?void 0:n.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),m=(s.small?-1:1)*((null===(i=s.array[1])||void 0===i?void 0:i.repeat)?s.array[0].repeat:Math.log10(s.array[0].repeat));if(y-m>l)return o;var N,v,w=-Math.floor(y),b=0;if((v=o.sign*Math.pow(10,y+w)+s.sign*Math.pow(10,m+w))>0&&(b=Math.log10(v)-w),v<0&&(b=Math.log10(-v)-w,p*=-1),0==v)throw Error("Encounter a calculate error");return(N=new r).sign=1,N.array=b>l||b<-l?[f(b,0),f(1,1)]:[f(Math.pow(10,Math.abs(b)),0)],N.small=b<0,N.sign*=p,N}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"mul",value:function(e){var t=this.clone(),a=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY)||a.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&a.isZero()||a.isInfiNaN()&&t.isZero())return r.NaN.clone();if(t.eq(r.NEGATIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!a.isFinite())return a.clone();if(t.isZero()||a.isZero())return r.ZERO.clone();var n,i=t.toNumber()*a.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((n=t.abs().log10().add(a.abs().log10()).pow10()).sign=t.sign*a.sign,n)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"mod",value:function(e){var t=new r(e),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"pow10",value:function(){var e,t,a=this.clone();return this.isFinite()?a.isneg()?(a.sign*=-1,a.pow10().rec()):a.lte(308.25471555991675)?r.fromNumber(Math.pow(10,a.toNumber())):a.small?a.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(a.array[0].repeat,-1))):(a.gt(r.TETRATED_MSI)||(a.setOperator((null!==(t=null===(e=a.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),a.normalize()),a):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(this.isneg()){if(!t.isInt())return r.NaN.clone();var a=this.abs().pow(t);return a.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),a}var n=this.toNumber(),i=t.toNumber(),o=Math.pow(n,i);return isFinite(o)&&0!==o?r.fromNumber(o):this.isZero()&&t.isZero()?r.ONE.clone():this.isZero()?r.ZERO.clone():t.isZero()?r.ONE.clone():this.gt(0)?this.log10().mul(t).pow10():t.rec().mod(2).eq(1)?this.neg().log10().mul(t).pow10().neg():r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg())return r.NaN.clone();if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"ln",value:function(){return this.log()}},{key:"plog10",value:function(){return this.max(1).log10()}},{key:"plog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.plog10().div(t.plog10())}},{key:"pln",value:function(){return this.plog()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(u)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(u)){if(this.lt(24))return r.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var t=.9189385332046727;t+=((r-=1)+.5)*Math.log(r),t-=r;var a=r*r,n=r;return t+=1/(12*n),t-=1/(360*(n*=a)),t+=1/(1260*(n*=a)),t-=1/(1680*(n*=a)),t+=1/(1188*(n*=a)),t-=691/(360360*(n*=a)),t+=7/(1092*(n*=a)),t-=3617/(122400*(n*=a)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var a=e*e,n=e,i=12*n,o=1/i,l=(t-=e)+o;if(l===t)return r.exp(t);if((l=(t=l)-(o=1/(i=360*(n*=a))))===t)return r.exp(t);t=l;var s=1/(i=1260*(n*=a));return t+=s,t-=s=1/(i=1680*(n*=a)),r.exp(t)}return this.gt(u)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?r.NaN.clone():e?this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(y(this.toNumber())):this.lt(u)?r.fromNumber(y(this.sign*this.getOperator(0))):this.lt("eee15")?v(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(y(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?v(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.clone(),i=new r(e),o=new r(a);if(n.isNaN()||i.isNaN()||o.isNaN())return r.NaN.clone();if(n.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&(i=i.add(o.slog(n))),i.isInfi()&&i.sign>0)return n.gte(s)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2))return r.NaN.clone();if(n.isZero())return i.isZero()?r.NaN.clone():i.gte(u/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone();if(n.eq(r.ONE))return i.eq(r.ONE.neg())?r.NaN.clone():r.ONE.clone();if(i.eq(r.ONE.neg()))return r.ZERO.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return n;if(i.eq(2))return n.pow(n);if(n.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var l=n.max(i);if(l.gt(r.PENTATED_MSI))return l;if(l.gt(r.TETRATED_MSI)||i.gt(u)){if(this.lt(s))return(t=n.ln().neg()).lambertw().div(t);var c=n.slog(10).add(i);return c.setOperator(c.getOperator(2)+1,2),c.normalize(),c}for(var f=i.toNumber(),g=Math.floor(f),h=n.pow(f-g),p=r.NaN,y=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&y<100;++y)if(g>0){if(h=n.pow(h),p.eq(h)){g=0;break}p=h,--g}else{if(h=h.log(n),p.eq(h)){g=0;break}p=h,++g}return(100==y||this.lt(s))&&(g=0),h.setOperator(h.getOperator(1)+g,1),h.normalize(),h}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),a=new r(e);if(t.isInfiNaN())return t;if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(a.lt(s)){var n=a.tetrate(1/0);if(t.eq(n))return r.POSITIVE_INFINITY.clone();if(t.gt(n))return r.NaN.clone()}if(t.max(a).gt(r.PENTATED_MSI))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.TETRATED_MSI)&&t.gt(a))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return a.pow(t).sub(2);var i=0,o=t.getOperator(1)-a.getOperator(1);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(1)-u,1)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=r.pow(e,t),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=r.log(t,e)}return t.gt(10)?new r(i):r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/s))return r.NaN.clone();if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"arrow",value:function(e){var t=this.clone(),a=new r(e);return!a.isInt()||a.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){return r.NaN.clone()}):a.eq(0)?function(r){return t.mul(r)}:a.eq(1)?function(r){return t.pow(r)}:a.eq(2)?function(r){return t.tetrate(r)}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e),o=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n));if(o)return o.clone();var l=function(){var e;if(t.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return i.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(t.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return t.clone();if(a.gt(r.MSI))return(e=a.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var o=a.toNumber();if(i.eq(2))return t.arrow(o-1)(t,n+1);if(t.max(i).gt(r.arrowMSI(o+1)))return t.max(i);if(t.gt(r.arrowMSI(o))||i.gt(u)){t.gt(r.arrowMSI(o))?((e=t.clone()).setOperator(e.getOperator(o)-1,o),e.normalize()):e=t.gt(r.arrowMSI(o-1))?new r(t.getOperator(o-1)):r.ZERO;var l=e.add(i);return l.setOperator(l.getOperator(o)+1,o),l.normalize(),l}if(n>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,o)]});var s=i.toNumber(),c=Math.floor(s),g=a.sub(r.ONE);e=t.arrow(g)(s-c,n+1);for(var h=0,p=r.arrowMSI(o-1);0!==c&&e.lt(p)&&h<100;h++)c>0&&(e=t.arrow(g)(e,n+1),--c);return 100==h&&(c=0),e.setOperator(e.getOperator(o-1)+c,o-1),e.normalize(),e}();return n<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n),l.clone()),l}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(u))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=new r(e);if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(t.max(a).gt(r.arrowMSI(n+1)))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.arrowMSI(n))&&t.gt(a))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone()))return r.NaN.clone();var i=0,o=t.getOperator(n)-a.getOperator(n);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(n)-u,n)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=t.anyarrow_log(n-1)(e)}return t.gt(10)?new r(i):r.NaN.clone()}}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r){return this.arrow(3)(r)}},{key:"hexate",value:function(r){return this.arrow(4)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt())return r.NaN.clone();if(this.eq(2))return new r(4);if(a.eq(0))return r.ONE.clone();if(n.gt("10{1,2}".concat(u))||a.gt(u)){n.gt("10{1,2}".concat(u))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(u,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var i=t.add(a);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,l=a.toNumber()-1;for(t=n.clone(),o=0;0!==l&&t.lt(u)&&o<100;++o)l>0&&(t=n.arrow(t)(n),--l);return 100==o&&(l=0),t.setOperator(t.getOperator(1/0)+l,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),a=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){return r.NaN.clone()};if(t.eq(0))return function(r){return a.arrow(r)(a)};if(t.eq(1))return function(r){return a.expansion(r)};var n=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(a.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(a.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(a.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return a.clone();if(n.gt(r.MSI))return(t=n.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var l=n.toNumber();if(o.eq(2))return a.expansionArrow(l-1)(a,i+1);if(a.max(o).gt("10{".concat(l+1,",2}").concat(u)))return a.max(o);if(a.gt("10{".concat(l,",2}").concat(u))||o.gt(u)){a.gt("10{".concat(l,",2}").concat(u))?((t=a.clone()).setOperator(t.getOperator(l,2)-1,l,2),t.normalize()):t=a.gt("10{".concat(l-1,",2}").concat(u))?new r(a.getOperator(l-1,2)):r.ZERO;var s=t.add(o);return s.setOperator(s.getOperator(l,2)+1,l,2),s.normalize(),s}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,l,2)]});var c=o.toNumber(),g=Math.floor(c),h=n.sub(r.ONE);t=a.expansionArrow(h)(c-g,i+1);for(var p=0,y=new r("10{".concat(l-1,",2}").concat(u));0!==g&&t.lt(y)&&p<100;p++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==p&&(g=0),t.setOperator(t.getOperator(l-1,2)+g,l-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(i)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(i)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);if(this.isNaN()||t.isNaN())return 2;if(this.sign<t.sign)return-1;if(this.sign>t.sign)return 1;var a=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(a?-1:1);if(t.small&&!this.small)return 1*(a?-1:1);var n=1;this.small&&t.small&&(n*=-1),a&&(n*=-1);for(var i=0,o=0;this.array.length-1-o>=0&&t.array.length-1-o>=0;o++){var u=this.array[this.array.length-1-o],l=t.array[t.array.length-1-o],s=g([u.megota,u.expans,u.arrow,u.repeat],[l.megota,l.expans,l.arrow,l.repeat]);if(1==s){i=1;break}if(-1==s){i=-1;break}}return i*n+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(u/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"normalize",value:function(){for(var e=!0,t=this,a=0;a<this.array.length;a++)if(this.array[a].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var n=1;n<t.array.length;++n){var i=t.array[n];if(null!==i.arrow&&void 0!==i.arrow||(i.arrow=0),null!==i.expans&&void 0!==i.expans||(i.expans=1),null!==i.megota&&void 0!==i.megota||(i.megota=1),isNaN(i.arrow)||isNaN(i.repeat)||isNaN(i.expans)||isNaN(i.megota))return t.array=[f(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[f(1/0,0,1,1)],t;Number.isInteger(i.arrow)||(i.arrow=Math.floor(i.arrow)),Number.isInteger(i.repeat)||(i.repeat=Math.floor(i.repeat)),Number.isInteger(i.expans)||(i.expans=Math.floor(i.expans)),Number.isInteger(i.megota)||(i.megota=Math.floor(i.megota))}t.array.length||(t.small=!t.small,t.array=[f(1/0)]);do{for(e=!1,this.array.sort(w),n=1;n<t.array.length-1;++n)t.array[n].arrow==t.array[n+1].arrow&&t.array[n].expans==t.array[n+1].expans&&t.array[n].megota==t.array[n+1].megota&&(t.array[n].repeat+=t.array[n+1].repeat,t.array.splice(n+1,1),--n,e=!0);for(n=1;n<t.array.length;++n)0===t.array[n].arrow||0!==t.array[n].repeat&&null!==t.array[n].repeat&&void 0!==t.array[n].repeat?0==t.array[n].arrow&&t.array[n].expans>=2&&(t.array[n].arrow=1/0,t.array[n].valuereplaced=0,t.array[n].expans=t.array[n].expans-1):(t.array.splice(n,1),--n);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<l&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>u&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),this.array[this.array.length-1].megota>u?(this.layer++,this.array=[f(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[f(10),f(1,10,10,this.array[0].repeat)],e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!0);t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array[0].repeat<u&&t.array[1].arrow>=2&&1==t.array[1].repeat&&isFinite(t.array[1].arrow)&&(t.array.splice(1,1,f(t.array[0].repeat,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);return this}},{key:"getOperatorIndex",value:function(r){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=0;a<this.array.length;a++){var n=g([this.array[a].megota,this.array[a].expans,this.array[a].arrow],[t,e,r]);if(0==n)return a;if(1==n)return a-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=this.getOperatorIndex(r,e,t);return this.array[a]?this.array[a].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getOperatorIndex(e,t,a);return this.array[n]?(this.array[n].repeat=r,!1):(this.array.splice(Math.ceil(n),0,{arrow:e,expans:t,megota:a,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],a="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");a=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(a,")^").concat(t.repeat," "):"".concat(a),r+="".concat(a)}return r}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}}],[{key:"add",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"plog10",value:function(e){return new r(e).plog10()}},{key:"plog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).plog(t)}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(u))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,a){return new r(e).arrow(t.sub(2))(a)}}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),g=new r(t);function h(e){var t;return new r(null!==(t=[n,i,o,l][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(g.eq(1))return new r(c);if(g.isZero())return new r(1);if(c.lt(0))return r.NaN.clone();if(new r(l).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(g);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(g);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(g);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(g);var p=h(0).toNumber(),y=h(1),m=h(2),N=h(3);if(N.eq(2)){if(1!=p)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(m.neq(1))return r.POSITIVE_INFINITY.clone();if(g.gte(u))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=g.toNumber(),v.normalize(),v}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(m.gt(u)){var b=new r(m);return b.layer++,b.normalize(),b}function O(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){return"10{".concat(O(r),",").concat(O(e),",").concat(t,"}").concat(u)}var I=c.clone(),d=new r(h(0)),M=function(s){var h,p,N=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(N)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var v,b=new r(s);if(I.isNaN()||b.isNaN())return r.NaN.clone();if(b.lt(r.ZERO))return r.NaN.clone();if(I.eq(r.ZERO))return b.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(I.eq(r.ONE))return r.ONE.clone();if(b.eq(r.ZERO))return r.ONE.clone();if(b.eq(r.ONE))return I.clone();if(d.eq(0))return r.BEAF(I,I,g,y.sub(1),m,l,N+1);if(m.eq(0))return r.BEAF(I,I,I,I,y,new r(l).sub(1),N+1);if(y.gt(u))return(v=new r(y)).setOperator(v.getOperator(1,1/0,m.toNumber())+1,1,1/0,m.toNumber()),v;if(d.gt(r.MSI))return(v=d.clone()).setOperator(v.getOperator(1/0,y.toNumber(),m.toNumber())+1,1/0,y.toNumber(),m.toNumber()),v;var O=d.toNumber();if(b.eq(2))return r.BEAF(I,I,O-1,y,m,l,N+1);if(I.max(b).gt(E(O+1,y.toNumber(),m.toNumber())))return I.max(b);if(I.gt(E(O,y.toNumber(),m.toNumber()))||b.gt(u)){I.gt(E(O,y.toNumber(),m.toNumber()))?((v=I.clone()).setOperator(v.getOperator(O,y.toNumber(),m.toNumber())-1,O,y.toNumber(),m.toNumber()),v.normalize()):v=I.gt(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))))?new r(I.getOperator.apply(I,a(w(O-1,y.toNumber(),m.toNumber())))):r.ZERO;var M=v.add(b);return M.setOperator(M.getOperator(O,y.toNumber(),m.toNumber())+1,O,y.toNumber(),m.toNumber()),M.normalize(),M}if(N>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,O,y.toNumber(),m.toNumber())]});var x=b.toNumber(),k=Math.floor(x),q=d.sub(r.ONE);v=r.BEAF(I,x-k,q.toNumber(),y,m,l,N+1);for(var T=0,S=new r(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))));0!==k&&v.lt(S)&&T<100;T++)k>0&&(v=r.BEAF(c,v,q.toNumber(),y,m,l,N+1),--k);return 100==T&&(k=0),(h=v).setOperator.apply(h,[(p=v).getOperator.apply(p,a(w(O-1,y.toNumber(),m.toNumber())))+k].concat(a(w(O-1,y.toNumber(),m.toNumber())))),v.normalize(),v}(g,s);return console.log("".concat("-".repeat(s)," = ").concat(M)),M}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.lt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.gt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromNumber",value:function(e){var t=new r;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[f(1/0,0)],t;e>0&&(t.sign=1)}var a=Math.abs(e);return a==1/0?t.array=[f(1/0,0)]:a>=11102230246251568e-32&&a<1?(t.small=!0,t.array=[f(1/a,0)]):a<11102230246251568e-32?(t.small=!0,t.array=[f(-Math.log10(a),0),f(1,1)]):a<=u?t.array=[f(a,0)]:(t.setOperator(Math.log10(a),0),t.array=[f(Math.log10(a),0),f(1,1)]),t}},{key:"fromString",value:function(e){var t,a,n,i,o,s,g,p=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var y=Number(e),m=!1;if(0==y?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var N=e.search(/e/),v=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var O=w.length>=17?h(w):Math.log10(Number(w)),E=O-(Math.floor(O)-1);b[0]=Math.pow(10,E),b[1]+=E}else{var I=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(y)&&m)return p=r.fromNumber(Number(e))}if(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)\x20*PT/g,"(10^)^$1 "),!c.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var d=!1,M=!1;if("-"==e[0]||"+"==e[0]){var x=e.search(/[^-\+]/);d=(null!==(a=null===(t=e.substring(0,x).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(x)}if("/"==e[0]){x=e.search(/[^\/]/);M=(null!==(i=null===(n=e.substring(0,x).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==i?i:0)%2==1,e=e.substring(x)}if("NaN"==e)p.array=[f(NaN)];else if("Infinity"==e)p.array=[f(1/0)];else{var k,q,T,S;for(p.sign=1,p.array=[f(0)],"P"==e[0]&&("^"==e[1]?(k=e.substring(2).search(/[^0-9]/)+2,p.layer=Number(e.substring(2,k)),e=e.substring(k+1)):(k=e.search(/[^P]/),p.layer=k,e=e.substring(k)));e&&/^(\(?10[\^\{])/.test(e);){var F,_,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])F=k=e.substring(2).search(/[^\^]/),q=k+2;else{k=e.indexOf("}");var A=e.substring(3,k).split(",");F=Number("!"==A[0]?1/0:A[0]),_=Number(null!==(o="!"==A[1]?1/0:A[1])&&void 0!==o?o:1),Z=Number(null!==(s=A[2])&&void 0!==s?s:1),q=k+1}")"==(e=e.substring(q))[0]?(k=e.indexOf(" "),T=Number(e.substring(2,k)),e=e.substring(k+1)):T=1,1==F&&1==_&&1==Z?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=T:p.array.splice(1,0,f(T,1,_,Z)):2==F&&1==_&&1==Z?(k=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(q=p.array[0].repeat)>=1e10&&++k,q>=10&&++k,p.array[0].repeat=k,p.array.length>=2&&1==p.array[1].arrow&&p.array.splice(1,1),S=p.getOperatorIndex(2),Number.isInteger(S)?p.array[S].repeat+=T:p.array.splice(Math.ceil(S),0,f(T,2,_,Z))):isFinite(F)?(k=p.getOperator(F-1),(q=p.getOperator(F-2))>=10&&++k,S=p.getOperatorIndex(F),p.array.splice(1,Math.ceil(S)-1),p.array[0].repeat=k,Number.isInteger(S)?p.array[1].repeat+=T:p.array.splice(1,0,f(T,F,_,Z))):p.array.splice(1,0,f(T,F,_,Z))}k=e.split(/[Ee]/),q=[p.array[0].repeat,0],T=1;for(var R=k.length-1;R>=0;--R){q[0]<l&&0===q[1]?q[0]=Math.pow(10,T*q[0]):-1==T?(0===q[1]?q[0]=Math.pow(10,T*q[0]):1==q[1]&&q[0]<=Math.log10(Number.MAX_VALUE)?q[0]=Math.pow(10,T*Math.pow(10,q[0])):q[0]=0,q[1]=0):q[1]++;var P=k[R].indexOf("."),V=-1==P?k[R].length:P;0===q[1]?V>=17?(q[0]=Math.log10(q[0])+h(k[R].substring(0,V)),q[1]=1):k[R]&&(q[0]*=Number(k[R])):(S=V>=17?h(k[R].substring(0,V)):k[R]?Math.log10(Number(k[R])):0,1==q[1]?q[0]+=S:2==q[1]&&q[0]<l+Math.log10(S)&&(q[0]+=Math.log10(1+Math.pow(10,Math.log10(S)-q[0])))),q[0]<l&&q[1]?(q[0]=Math.pow(10,q[0]),q[1]--):q[0]>u&&(q[0]=Math.log10(q[0]),q[1]++)}p.array[0].repeat=q[0],q[1]&&(p.array.length>=2&&1==p.array[1].arrow&&1==p.array[1].expans&&1==p.array[1].megota?p.array[1].repeat+=q[1]:p.array.splice(1,0,f(q[1],1,1,1)))}return d&&(p.sign*=-1),M&&(p.small=!p.small),p.normalize(),p.normalize(),p}},{key:"fromObject",value:function(e){var t=new r;if(t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!m(t))return!1;if(!N(t))return!1}return!0}(e)){for(var a=0;a<e.length;a++)t.array[a]={arrow:e[a][0],expans:1,megota:1,repeat:e[a][1]};return t.small=!1,t.sign=1,t.layer=0,t}for(var n=0;n<e.array.length;n++)t.array[n]={arrow:e.array[n].arrow,expans:e.array[n].expans,megota:e.array[n].megota,repeat:e.array[n].repeat,valuereplaced:e.array[n].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,O.ZERO=new O({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),O.ONE=new O({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.MSI=new O(u),O.MSI_REC=((b=new O(u)).small=!0,b),O.E_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.EE_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),O.E_MSI_REC=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),O.TETRATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),O.PENTATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),O.TRITRI=new O({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),O.GRAHAMS_NUMBER=new O("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),O.POSITIVE_INFINITY=new O(1/0),O.NEGATIVE_INFINITY=new O(-1/0),O.NaN=new O({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),O.E=new O(Math.E),O.LN2=new O(Math.LN2),O.LN10=new O(Math.LN10),O.LOG2E=new O(Math.LOG2E),O.LOG10E=new O(Math.LOG10E),O.PI=new O(Math.PI),O.SQRT1_2=new O(Math.SQRT1_2),O.SQRT2=new O(Math.SQRT2),O.maxOps=100,O.POW_2_44_MOD_PI=1.701173079953,O.arrowFuncMap=new Map,r.arraySortFunction=w,r.default=O,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
|
|
1
|
+
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum={})}(this,(function(r){"use strict";function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t<e;t++)a[t]=r[t];return a}function t(r,e){for(var t=0;t<e.length;t++){var a=e[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,n(a.key),a)}}function a(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function(r,t){if(r){if("string"==typeof r)return e(r,t);var a={}.toString.call(r).slice(8,-1);return"Object"===a&&r.constructor&&(a=r.constructor.name),"Map"===a||"Set"===a?Array.from(r):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?e(r,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var a=t.call(r,e||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function i(r){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var o,u=9007199254740991,s=15.954589770191003,l=1.444667861009766,c=/^(PN)?[\/\-\+]*(Infinity|NaN|(P+|P\^\d+ )?(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/;function f(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:a,valuereplaced:e==1/0?0:t==1/0?1:-1}}function g(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var a=0;a<Math.min(e[0].length,e[1].length);a++){var n=e[0][a],i=e[1][a];if(n<i)return-1;if(n>i)return 1}return 0}function h(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var p=.5671432904097838;function y(r){var e,t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!Number.isFinite(r))return r;if(n){if(0===r)return r;if(1===r)return p;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var i=0;i<100;++i){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<a*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function m(r){return 2==r.length}function N(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function v(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new O(r)).isFinite())return r;if(a){if(r.eq(O.ZERO))return r;if(r.eq(O.ONE))return new O(p);e=O.log(r)}else{if(r.eq(O.ZERO))return O.NEGATIVE_INFINITY.clone();e=O.log(r.neg())}for(var n=0;n<100;++n){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(O.ONE).sub(e.add(2).mul(o).div(O.mul(2,e).add(2)));if(u.eq(O.ZERO))return e;var s=e.sub(o.div(u));if(O.abs(s.sub(e)).lt(O.abs(s).mul(t)))return s;e=s}throw Error("Iteration failed to converge: "+r)}function w(r,e){return g([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}var b,O=function(){function r(e){if(function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[o]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==i(e)){var a=r.fromObject(e);this.resetFromObject(a)}else if("string"==typeof e){var n=r.fromString(e);this.resetFromObject(n)}}return function(r,e,a){return e&&t(r.prototype,e),a&&t(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,a,n,i,o,l,c=this.clone(),g=new r(e);if(c.eq(r.POSITIVE_INFINITY)&&g.eq(r.NEGATIVE_INFINITY)||c.eq(r.NEGATIVE_INFINITY)&&g.eq(r.POSITIVE_INFINITY))return r.NaN.clone();if(!c.isFinite())return c.clone();if(!g.isFinite())return g.clone();if(c.isZero())return g.clone();if(g.isZero())return c.clone();if(c.sign==-g.sign&&function(){var r=c.abs(),e=g.abs();return r.eq(e)}())return r.ZERO.clone();if(c.abs().lt(u)&&g.abs().lt(u))return r.fromNumber(c.toNumber()+g.toNumber());if(c.abs().lt(r.E_MSI_REC)||c.abs().gt(r.E_MSI)||g.abs().lt(r.E_MSI_REC)||g.abs().gt(r.E_MSI))return c.maxabs(g);if(-1==c.sign)return c.neg().add(g.neg()).neg();c.cmpabs(g)>0?(o=c,l=g):(l=c,o=g);var h=o.toNumber()+l.toNumber();if(isFinite(h)&&0!==h)return r.fromNumber(h);var p=1;if(!(o.small||l.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(a=l.array[1])||void 0===a?void 0:a.repeat)||o.sign!=l.sign))return new r((o.array[0].repeat+l.array[0].repeat)*o.sign);var y=(o.small?-1:1)*((null===(n=o.array[1])||void 0===n?void 0:n.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),m=(l.small?-1:1)*((null===(i=l.array[1])||void 0===i?void 0:i.repeat)?l.array[0].repeat:Math.log10(l.array[0].repeat));if(y-m>s)return o;var N,v,w=-Math.floor(y),b=0;if((v=o.sign*Math.pow(10,y+w)+l.sign*Math.pow(10,m+w))>0&&(b=Math.log10(v)-w),v<0&&(b=Math.log10(-v)-w,p*=-1),0==v)throw Error("Encounter a calculate error");return(N=new r).sign=1,N.array=b>s||b<-s?[f(b,0),f(1,1)]:[f(Math.pow(10,Math.abs(b)),0)],N.small=b<0,N.sign*=p,N}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"mul",value:function(e){var t=this.clone(),a=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY)||a.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&a.isZero()||a.isInfiNaN()&&t.isZero())return r.NaN.clone();if(t.eq(r.NEGATIVE_INFINITY)&&a.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!a.isFinite())return a.clone();if(t.isZero()||a.isZero())return r.ZERO.clone();var n,i=t.toNumber()*a.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((n=t.abs().log10().add(a.abs().log10()).pow10()).sign=t.sign*a.sign,n)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"mod",value:function(e){var t=new r(e),a=this.div(t);return a.sub(a.floor()).mul(t)}},{key:"pow10",value:function(){var e,t,a=this.clone();return this.isFinite()?a.isneg()?(a.sign*=-1,a.pow10().rec()):a.lte(308.25471555991675)?r.fromNumber(Math.pow(10,a.toNumber())):a.small?a.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(a.array[0].repeat,-1))):(a.gt(r.TETRATED_MSI)||(a.setOperator((null!==(t=null===(e=a.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),a.normalize()),a):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(this.isneg()){if(!t.isInt())return r.NaN.clone();var a=this.abs().pow(t);return a.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),a}var n=this.toNumber(),i=t.toNumber(),o=Math.pow(n,i);return isFinite(o)&&0!==o?r.fromNumber(o):this.isZero()&&t.isZero()?r.ONE.clone():this.isZero()?r.ZERO.clone():t.isZero()?r.ONE.clone():this.gt(0)?this.log10().mul(t).pow10():t.rec().mod(2).eq(1)?this.neg().log10().mul(t).pow10().neg():r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg())return r.NaN.clone();if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"ln",value:function(){return this.log()}},{key:"pLog10",value:function(){return this.isneg()?r.ZERO:this.log10()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(u)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(u)){if(this.lt(24))return r.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var t=.9189385332046727;t+=((r-=1)+.5)*Math.log(r),t-=r;var a=r*r,n=r;return t+=1/(12*n),t-=1/(360*(n*=a)),t+=1/(1260*(n*=a)),t-=1/(1680*(n*=a)),t+=1/(1188*(n*=a)),t-=691/(360360*(n*=a)),t+=7/(1092*(n*=a)),t-=3617/(122400*(n*=a)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var a=e*e,n=e,i=12*n,o=1/i,s=(t-=e)+o;if(s===t)return r.exp(t);if((s=(t=s)-(o=1/(i=360*(n*=a))))===t)return r.exp(t);t=s;var l=1/(i=1260*(n*=a));return t+=l,t-=l=1/(i=1680*(n*=a)),r.exp(t)}return this.gt(u)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.lt(-.3678794411710499)?r.NaN.clone():e?this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(y(this.toNumber())):this.lt(u)?r.fromNumber(y(this.sign*this.getOperator(0))):this.lt("eee15")?v(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(y(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?v(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.clone(),i=new r(e),o=new r(a);if(n.isNaN()||i.isNaN()||o.isNaN())return r.NaN.clone();if(n.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&(i=i.add(o.slog(n))),i.isInfi()&&i.sign>0)return n.gte(l)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2))return r.NaN.clone();if(n.isZero())return i.isZero()?r.NaN.clone():i.gte(u/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone();if(n.eq(r.ONE))return i.eq(r.ONE.neg())?r.NaN.clone():r.ONE.clone();if(i.eq(r.ONE.neg()))return r.ZERO.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return n;if(i.eq(2))return n.pow(n);if(n.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var s=n.max(i);if(s.gt(r.PENTATED_MSI))return s;if(s.gt(r.TETRATED_MSI)||i.gt(u)){if(this.lt(l))return(t=n.ln().neg()).lambertw().div(t);var c=n.slog(10).add(i);return c.setOperator(c.getOperator(2)+1,2),c.normalize(),c}for(var f=i.toNumber(),g=Math.floor(f),h=n.pow(f-g),p=r.NaN,y=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&y<100;++y)if(g>0){if(h=n.pow(h),p.eq(h)){g=0;break}p=h,--g}else{if(h=h.log(n),p.eq(h)){g=0;break}p=h,++g}return(100==y||this.lt(l))&&(g=0),h.setOperator(h.getOperator(1)+g,1),h.normalize(),h}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),a=new r(e);if(t.isInfiNaN())return t;if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(a.lt(l)){var n=a.tetrate(1/0);if(t.eq(n))return r.POSITIVE_INFINITY.clone();if(t.gt(n))return r.NaN.clone()}if(t.max(a).gt(r.PENTATED_MSI))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.TETRATED_MSI)&&t.gt(a))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return a.pow(t).sub(2);var i=0,o=t.getOperator(1)-a.getOperator(1);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(1)-u,1)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=r.pow(e,t),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=r.log(t,e)}return t.gt(10)?new r(i):r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/l))return r.NaN.clone();if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"iteratedlog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,a=this.clone(),n=new r(t),i=new r(e);return i.isZero()?a:i.eq(r.ONE)?a.log(n):n.tetrate(a.slog(n).sub(i))}},{key:"arrow",value:function(e){var t=this.clone(),a=new r(e);return!a.isInt()||a.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){return r.NaN.clone()}):a.eq(0)?function(r){return t.mul(r)}:a.eq(1)?function(r){return t.pow(r)}:a.eq(2)?function(r){return t.tetrate(r)}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e),o=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n));if(o)return o.clone();var s=function(){var e;if(t.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return i.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(t.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return t.clone();if(a.gt(r.MSI))return(e=a.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var o=a.toNumber();if(i.eq(2))return t.arrow(o-1)(t,n+1);if(t.max(i).gt(r.arrowMSI(o+1)))return t.max(i);if(t.gt(r.arrowMSI(o))||i.gt(u)){t.gt(r.arrowMSI(o))?((e=t.clone()).setOperator(e.getOperator(o)-1,o),e.normalize()):e=t.gt(r.arrowMSI(o-1))?new r(t.getOperator(o-1)):r.ZERO;var s=e.add(i);return s.setOperator(s.getOperator(o)+1,o),s.normalize(),s}if(n>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,o)]});var l=i.toNumber(),c=Math.floor(l),g=a.sub(r.ONE);e=t.arrow(g)(l-c,n+1);for(var h=0,p=r.arrowMSI(o-1);0!==c&&e.lt(p)&&h<100;h++)c>0&&(e=t.arrow(g)(e,n+1),--c);return 100==h&&(c=0),e.setOperator(e.getOperator(o-1)+c,o-1),e.normalize(),e}();return n<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(i.toString()," ").concat(n),s.clone()),s}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(u))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=new r(e);if(a.isNaN())return a;if(a.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(a))return r.ONE.clone();if(t.max(a).gt(r.arrowMSI(n+1)))return t.gt(a)?t:r.ZERO.clone();if(t.max(a).gt(r.arrowMSI(n))&&t.gt(a))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone()))return r.NaN.clone();var i=0,o=t.getOperator(n)-a.getOperator(n);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(n)-u,n)}for(var 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)}return t.gt(10)?new r(i):r.NaN.clone()}}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r){return this.arrow(3)(r)}},{key:"hexate",value:function(r){return this.arrow(4)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt())return r.NaN.clone();if(this.eq(2))return new r(4);if(a.eq(0))return r.ONE.clone();if(n.gt("10{1,2}".concat(u))||a.gt(u)){n.gt("10{1,2}".concat(u))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(u,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var i=t.add(a);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,s=a.toNumber()-1;for(t=n.clone(),o=0;0!==s&&t.lt(u)&&o<100;++o)s>0&&(t=n.arrow(t)(n),--s);return 100==o&&(s=0),t.setOperator(t.getOperator(1/0)+s,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),a=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){return r.NaN.clone()};if(t.eq(0))return function(r){return a.arrow(r)(a)};if(t.eq(1))return function(r){return a.expansion(r)};var n=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(a.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(a.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(a.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return a.clone();if(n.gt(r.MSI))return(t=n.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var s=n.toNumber();if(o.eq(2))return a.expansionArrow(s-1)(a,i+1);if(a.max(o).gt("10{".concat(s+1,",2}").concat(u)))return a.max(o);if(a.gt("10{".concat(s,",2}").concat(u))||o.gt(u)){a.gt("10{".concat(s,",2}").concat(u))?((t=a.clone()).setOperator(t.getOperator(s,2)-1,s,2),t.normalize()):t=a.gt("10{".concat(s-1,",2}").concat(u))?new r(a.getOperator(s-1,2)):r.ZERO;var l=t.add(o);return l.setOperator(l.getOperator(s,2)+1,s,2),l.normalize(),l}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,s,2)]});var c=o.toNumber(),g=Math.floor(c),h=n.sub(r.ONE);t=a.expansionArrow(h)(c-g,i+1);for(var p=0,y=new r("10{".concat(s-1,",2}").concat(u));0!==g&&t.lt(y)&&p<100;p++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==p&&(g=0),t.setOperator(t.getOperator(s-1,2)+g,s-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"clampMin",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"clampMax",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"clamp",value:function(r,e){return this.max(r).min(e)}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(i)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(i)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);if(this.isNaN()||t.isNaN())return 2;if(this.sign<t.sign)return-1;if(this.sign>t.sign)return 1;var a=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(a?-1:1);if(t.small&&!this.small)return 1*(a?-1:1);var n=1;this.small&&t.small&&(n*=-1),a&&(n*=-1);for(var i=0,o=0;this.array.length-1-o>=0&&t.array.length-1-o>=0;o++){var u=this.array[this.array.length-1-o],s=t.array[t.array.length-1-o],l=g([u.megota,u.expans,u.arrow,u.repeat],[s.megota,s.expans,s.arrow,s.repeat]);if(1==l){i=1;break}if(-1==l){i=-1;break}}return i*n+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"eq_tolerance",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-7,a=new r(e);return this.sub(a).lte(this.max(a).mul(t))}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(u/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"normalize",value:function(){for(var e=!0,t=this,a=0;a<this.array.length;a++)if(this.array[a].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var n=1;n<t.array.length;++n){var i=t.array[n];if(null!==i.arrow&&void 0!==i.arrow||(i.arrow=0),null!==i.expans&&void 0!==i.expans||(i.expans=1),null!==i.megota&&void 0!==i.megota||(i.megota=1),isNaN(i.arrow)||isNaN(i.repeat)||isNaN(i.expans)||isNaN(i.megota))return t.array=[f(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[f(1/0,0,1,1)],t;Number.isInteger(i.arrow)||(i.arrow=Math.floor(i.arrow)),Number.isInteger(i.repeat)||(i.repeat=Math.floor(i.repeat)),Number.isInteger(i.expans)||(i.expans=Math.floor(i.expans)),Number.isInteger(i.megota)||(i.megota=Math.floor(i.megota))}t.array.length||(t.small=!t.small,t.array=[f(1/0)]);do{for(e=!1,this.array.sort(w),n=1;n<t.array.length-1;++n)t.array[n].arrow==t.array[n+1].arrow&&t.array[n].expans==t.array[n+1].expans&&t.array[n].megota==t.array[n+1].megota&&(t.array[n].repeat+=t.array[n+1].repeat,t.array.splice(n+1,1),--n,e=!0);for(n=1;n<t.array.length;++n)0===t.array[n].arrow||0!==t.array[n].repeat&&null!==t.array[n].repeat&&void 0!==t.array[n].repeat?0==t.array[n].arrow&&t.array[n].expans>=2&&(t.array[n].arrow=1/0,t.array[n].valuereplaced=0,t.array[n].expans=t.array[n].expans-1):(t.array.splice(n,1),--n);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<s&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>u&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),this.array[this.array.length-1].megota>u?(this.layer++,this.array=[f(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[f(10),f(1,10,10,this.array[0].repeat)],e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!0);t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array[0].repeat<u&&t.array[1].arrow>=2&&1==t.array[1].repeat&&isFinite(t.array[1].arrow)&&(t.array.splice(1,1,f(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);return this}},{key:"getOperatorIndex",value:function(r){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=0;a<this.array.length;a++){var n=g([this.array[a].megota,this.array[a].expans,this.array[a].arrow],[t,e,r]);if(0==n)return a;if(1==n)return a-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=this.getOperatorIndex(r,e,t);return this.array[a]?this.array[a].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getOperatorIndex(e,t,a);return this.array[n]?(this.array[n].repeat=r,!1):(this.array.splice(Math.ceil(n),0,{arrow:e,expans:t,megota:a,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],a="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");a=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(a,")^").concat(t.repeat," "):"".concat(a),r+="".concat(a)}return r}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}}],[{key:"add",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"pLog10",value:function(e){return new r(e).pLog10()}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(u))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,a){return new r(e).arrow(t.sub(2))(a)}}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=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),g=new r(t);function h(e){var t;return new r(null!==(t=[n,i,o,s][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(g.eq(1))return new r(c);if(g.isZero())return new r(1);if(c.lt(0))return r.NaN.clone();if(new r(s).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(g);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(g);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(g);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(g);var p=h(0).toNumber(),y=h(1),m=h(2),N=h(3);if(N.eq(2)){if(1!=p)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(m.neq(1))return r.POSITIVE_INFINITY.clone();if(g.gte(u))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=g.toNumber(),v.normalize(),v}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(m.gt(u)){var b=new r(m);return b.layer++,b.normalize(),b}function O(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){return"10{".concat(O(r),",").concat(O(e),",").concat(t,"}").concat(u)}var I=c.clone(),d=new r(h(0)),x=function(l){var h,p,N=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(N)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var v,b=new r(l);if(I.isNaN()||b.isNaN())return r.NaN.clone();if(b.lt(r.ZERO))return r.NaN.clone();if(I.eq(r.ZERO))return b.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(I.eq(r.ONE))return r.ONE.clone();if(b.eq(r.ZERO))return r.ONE.clone();if(b.eq(r.ONE))return I.clone();if(d.eq(0))return r.BEAF(I,I,g,y.sub(1),m,s,N+1);if(m.eq(0))return r.BEAF(I,I,I,I,y,new r(s).sub(1),N+1);if(y.gt(u))return(v=new r(y)).setOperator(v.getOperator(1,1/0,m.toNumber())+1,1,1/0,m.toNumber()),v;if(d.gt(r.MSI))return(v=d.clone()).setOperator(v.getOperator(1/0,y.toNumber(),m.toNumber())+1,1/0,y.toNumber(),m.toNumber()),v;var O=d.toNumber();if(b.eq(2))return r.BEAF(I,I,O-1,y,m,s,N+1);if(I.max(b).gt(E(O+1,y.toNumber(),m.toNumber())))return I.max(b);if(I.gt(E(O,y.toNumber(),m.toNumber()))||b.gt(u)){I.gt(E(O,y.toNumber(),m.toNumber()))?((v=I.clone()).setOperator(v.getOperator(O,y.toNumber(),m.toNumber())-1,O,y.toNumber(),m.toNumber()),v.normalize()):v=I.gt(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))))?new r(I.getOperator.apply(I,a(w(O-1,y.toNumber(),m.toNumber())))):r.ZERO;var x=v.add(b);return x.setOperator(x.getOperator(O,y.toNumber(),m.toNumber())+1,O,y.toNumber(),m.toNumber()),x.normalize(),x}if(N>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,O,y.toNumber(),m.toNumber())]});var M=b.toNumber(),k=Math.floor(M),q=d.sub(r.ONE);v=r.BEAF(I,M-k,q.toNumber(),y,m,s,N+1);for(var T=0,S=new r(E.apply(void 0,a(w(O-1,y.toNumber(),m.toNumber()))));0!==k&&v.lt(S)&&T<100;T++)k>0&&(v=r.BEAF(c,v,q.toNumber(),y,m,s,N+1),--k);return 100==T&&(k=0),(h=v).setOperator.apply(h,[(p=v).getOperator.apply(p,a(w(O-1,y.toNumber(),m.toNumber())))+k].concat(a(w(O-1,y.toNumber(),m.toNumber())))),v.normalize(),v}(g,l);return console.log("".concat("-".repeat(l)," = ").concat(x)),x}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.lt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];for(var i=0;i<a.length;i++)e.gt(a[i])&&(e=new r(a[i]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromNumber",value:function(e){var t=new r;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[f(1/0,0)],t;e>0&&(t.sign=1)}var a=Math.abs(e);return a==1/0?t.array=[f(1/0,0)]:a>=11102230246251568e-32&&a<1?(t.small=!0,t.array=[f(1/a,0)]):a<11102230246251568e-32?(t.small=!0,t.array=[f(-Math.log10(a),0),f(1,1)]):a<=u?t.array=[f(a,0)]:(t.setOperator(Math.log10(a),0),t.array=[f(Math.log10(a),0),f(1,1)]),t}},{key:"fromString",value:function(e){var t,a,n,i,o,l,g,p=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var y=Number(e),m=!1;if(0==y?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var N=e.search(/e/),v=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var O=w.length>=17?h(w):Math.log10(Number(w)),E=O-(Math.floor(O)-1);b[0]=Math.pow(10,E),b[1]+=E}else{var I=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(y)&&m)return p=r.fromNumber(Number(e))}if(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)\x20*PT/g,"(10^)^$1 "),!c.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var d=!1,x=!1;if("-"==e[0]||"+"==e[0]){var M=e.search(/[^-\+]/);d=(null!==(a=null===(t=e.substring(0,M).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==a?a:0)%2==1,e=e.substring(M)}if("/"==e[0]){M=e.search(/[^\/]/);x=(null!==(i=null===(n=e.substring(0,M).match(/\//g))||void 0===n?void 0:n.length)&&void 0!==i?i:0)%2==1,e=e.substring(M)}if("NaN"==e)p.array=[f(NaN)];else if("Infinity"==e)p.array=[f(1/0)];else{var k,q,T,S;for(p.sign=1,p.array=[f(0)],"P"==e[0]&&("^"==e[1]?(k=e.substring(2).search(/[^0-9]/)+2,p.layer=Number(e.substring(2,k)),e=e.substring(k+1)):(k=e.search(/[^P]/),p.layer=k,e=e.substring(k)));e&&/^(\(?10[\^\{])/.test(e);){var F,_,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])F=k=e.substring(2).search(/[^\^]/),q=k+2;else{k=e.indexOf("}");var A=e.substring(3,k).split(",");F=Number("!"==A[0]?1/0:A[0]),_=Number(null!==(o="!"==A[1]?1/0:A[1])&&void 0!==o?o:1),Z=Number(null!==(l=A[2])&&void 0!==l?l:1),q=k+1}")"==(e=e.substring(q))[0]?(k=e.indexOf(" "),T=Number(e.substring(2,k)),e=e.substring(k+1)):T=1,1==F&&1==_&&1==Z?p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat+=T:p.array.splice(1,0,f(T,1,_,Z)):2==F&&1==_&&1==Z?(k=p.array.length>=2&&1==p.array[1].arrow?p.array[1].repeat:0,(q=p.array[0].repeat)>=1e10&&++k,q>=10&&++k,p.array[0].repeat=k,p.array.length>=2&&1==p.array[1].arrow&&p.array.splice(1,1),S=p.getOperatorIndex(2),Number.isInteger(S)?p.array[S].repeat+=T:p.array.splice(Math.ceil(S),0,f(T,2,_,Z))):isFinite(F)?(k=p.getOperator(F-1),(q=p.getOperator(F-2))>=10&&++k,S=p.getOperatorIndex(F),p.array.splice(1,Math.ceil(S)-1),p.array[0].repeat=k,Number.isInteger(S)?p.array[1].repeat+=T:p.array.splice(1,0,f(T,F,_,Z))):p.array.splice(1,0,f(T,F,_,Z))}k=e.split(/[Ee]/),q=[p.array[0].repeat,0],T=1;for(var R=k.length-1;R>=0;--R){q[0]<s&&0===q[1]?q[0]=Math.pow(10,T*q[0]):-1==T?(0===q[1]?q[0]=Math.pow(10,T*q[0]):1==q[1]&&q[0]<=Math.log10(Number.MAX_VALUE)?q[0]=Math.pow(10,T*Math.pow(10,q[0])):q[0]=0,q[1]=0):q[1]++;var P=k[R].indexOf("."),V=-1==P?k[R].length:P;0===q[1]?V>=17?(q[0]=Math.log10(q[0])+h(k[R].substring(0,V)),q[1]=1):k[R]&&(q[0]*=Number(k[R])):(S=V>=17?h(k[R].substring(0,V)):k[R]?Math.log10(Number(k[R])):0,1==q[1]?q[0]+=S:2==q[1]&&q[0]<s+Math.log10(S)&&(q[0]+=Math.log10(1+Math.pow(10,Math.log10(S)-q[0])))),q[0]<s&&q[1]?(q[0]=Math.pow(10,q[0]),q[1]--):q[0]>u&&(q[0]=Math.log10(q[0]),q[1]++)}p.array[0].repeat=q[0],q[1]&&(p.array.length>=2&&1==p.array[1].arrow&&1==p.array[1].expans&&1==p.array[1].megota?p.array[1].repeat+=q[1]:p.array.splice(1,0,f(q[1],1,1,1)))}return d&&(p.sign*=-1),x&&(p.small=!p.small),p.normalize(),p.normalize(),p}},{key:"fromObject",value:function(e){var t=new r;if(t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!m(t))return!1;if(!N(t))return!1}return!0}(e)){for(var a=0;a<e.length;a++)t.array[a]={arrow:e[a][0],expans:1,megota:1,repeat:e[a][1]};return t.small=!1,t.sign=1,t.layer=0,t}for(var n=0;n<e.array.length;n++)t.array[n]={arrow:e.array[n].arrow,expans:e.array[n].expans,megota:e.array[n].megota,repeat:e.array[n].repeat,valuereplaced:e.array[n].valuereplaced};return t.small=e.small,t.sign=e.sign,t.layer=e.layer,t}}])}();o=Symbol.toStringTag,O.ZERO=new O({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),O.ONE=new O({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.MSI=new O(u),O.MSI_REC=((b=new O(u)).small=!0,b),O.E_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),O.EE_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),O.E_MSI_REC=new O({array:[{arrow:0,expans:1,megota:1,repeat:u},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),O.TETRATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:u-2}],small:!1,layer:0,sign:1}),O.PENTATED_MSI=new O({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:u-1}],small:!1,layer:0,sign:1}),O.TRITRI=new O({small:!1,layer:0,sign:1,array:[f(3638334640023.7783,0,1,1),f(7625587484984,1,1,1)]}),O.GRAHAMS_NUMBER=new O("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),O.POSITIVE_INFINITY=new O(1/0),O.NEGATIVE_INFINITY=new O(-1/0),O.NaN=new O({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),O.E=new O(Math.E),O.LN2=new O(Math.LN2),O.LN10=new O(Math.LN10),O.LOG2E=new O(Math.LOG2E),O.LOG10E=new O(Math.LOG10E),O.PI=new O(Math.PI),O.SQRT1_2=new O(Math.SQRT1_2),O.SQRT2=new O(Math.SQRT2),O.maxOps=100,O.POW_2_44_MOD_PI=1.701173079953,O.arrowFuncMap=new Map,r.arraySortFunction=w,r.default=O,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
|
package/dist/index.d.ts
CHANGED
|
@@ -63,25 +63,13 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
63
63
|
static log(t: PowiainaNumSource, base?: PowiainaNumSource): PowiainaNum;
|
|
64
64
|
ln(): PowiainaNum;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* positive-Log10, Returns the base-10 logarithm of nonnegative Decimals, but returns 0 for negative Decimals.
|
|
67
67
|
*/
|
|
68
|
-
|
|
68
|
+
pLog10(): PowiainaNum;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* positive-Log10
|
|
71
71
|
*/
|
|
72
|
-
static
|
|
73
|
-
/**
|
|
74
|
-
* plog, beware unexpected errors.
|
|
75
|
-
*/
|
|
76
|
-
plog(base?: PowiainaNumSource): PowiainaNum;
|
|
77
|
-
/**
|
|
78
|
-
* plog, beware unexpected errors.
|
|
79
|
-
*/
|
|
80
|
-
static plog(t: PowiainaNumSource, base?: PowiainaNumSource): PowiainaNum;
|
|
81
|
-
/**
|
|
82
|
-
* pln, beware unexpected errors.
|
|
83
|
-
*/
|
|
84
|
-
pln(): PowiainaNum;
|
|
72
|
+
static pLog10(t: PowiainaNumSource): PowiainaNum;
|
|
85
73
|
static exp(x: PowiainaNumSource): PowiainaNum;
|
|
86
74
|
exp(): PowiainaNum;
|
|
87
75
|
/**
|
|
@@ -112,6 +100,12 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
112
100
|
static tetrate(t: PowiainaNumSource, other2: PowiainaNumSource, payload?: PowiainaNumSource): PowiainaNum;
|
|
113
101
|
ssqrt(): PowiainaNum;
|
|
114
102
|
static tetrate_10(other2: PowiainaNumSource): PowiainaNum;
|
|
103
|
+
/**
|
|
104
|
+
* iterated-log
|
|
105
|
+
*
|
|
106
|
+
* @example new P("10^10^3").iteratedlog(2,10) == 3
|
|
107
|
+
*/
|
|
108
|
+
iteratedlog(other2?: PowiainaNumSource, base2?: PowiainaNumSource): PowiainaNum;
|
|
115
109
|
arrow(arrows2: PowiainaNumSource): (other: PowiainaNumSource, depth?: number) => PowiainaNum;
|
|
116
110
|
anyarrow_log(arrow2: PowiainaNumSource): (base: PowiainaNumSource) => PowiainaNum;
|
|
117
111
|
private static arrowMSI;
|
|
@@ -154,6 +148,13 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
154
148
|
* @returns restricted number
|
|
155
149
|
*/
|
|
156
150
|
static clampMin(...args: PowiainaNumSource[]): PowiainaNum;
|
|
151
|
+
/**
|
|
152
|
+
* Restrict a number be not lower than a number
|
|
153
|
+
*
|
|
154
|
+
* It's also an alias of `PowiainaNum.max`.
|
|
155
|
+
* @returns restricted number
|
|
156
|
+
*/
|
|
157
|
+
clampMin(...args: PowiainaNumSource[]): PowiainaNum;
|
|
157
158
|
/**
|
|
158
159
|
* Restrict a number be not higher than a number
|
|
159
160
|
*
|
|
@@ -161,6 +162,18 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
161
162
|
* @returns restricted number
|
|
162
163
|
*/
|
|
163
164
|
static clampMax(...args: PowiainaNumSource[]): PowiainaNum;
|
|
165
|
+
/**
|
|
166
|
+
* Restrict a number be not higher than a number
|
|
167
|
+
*
|
|
168
|
+
* It's also an alias of `PowiainaNum.min`.
|
|
169
|
+
* @returns restricted number
|
|
170
|
+
*/
|
|
171
|
+
clampMax(...args: PowiainaNumSource[]): PowiainaNum;
|
|
172
|
+
/**
|
|
173
|
+
* A combination of minimum and maximum: the value returned by clamp is normally 'this', but it won't go below 'min' and it won't go above 'max'.
|
|
174
|
+
* Therefore, if 'this' < 'min', then 'min' is returned, and if 'this' > 'max', then 'max' is returned.
|
|
175
|
+
*/
|
|
176
|
+
clamp(min: PowiainaNumSource, max: PowiainaNumSource): PowiainaNum;
|
|
164
177
|
max(...args: PowiainaNumSource[]): PowiainaNum;
|
|
165
178
|
min(...args: PowiainaNumSource[]): PowiainaNum;
|
|
166
179
|
/**
|
|
@@ -179,6 +192,7 @@ export default class PowiainaNum implements IPowiainaNum {
|
|
|
179
192
|
lte(other: PowiainaNumSource): boolean;
|
|
180
193
|
gt(other: PowiainaNumSource): boolean;
|
|
181
194
|
gte(other: PowiainaNumSource): boolean;
|
|
195
|
+
eq_tolerance(value: PowiainaNumSource, tolerance?: number): boolean;
|
|
182
196
|
sin(): PowiainaNum;
|
|
183
197
|
cos(): PowiainaNum;
|
|
184
198
|
tan(): PowiainaNum;
|
package/package.json
CHANGED