powiaina_num.js 0.2.0-beta.1.1 → 0.2.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.
@@ -848,6 +848,13 @@ var PowiainaNum = /*#__PURE__*/function () {
848
848
  return base.tetrate(t.slog(base).sub(other));
849
849
  }
850
850
  //#endregion
851
+ /**
852
+ * Arrow operation, return a function
853
+ * The function has a parameter `other`
854
+ * call this function returns a powiainanum `this`{`arrow2`}`other`
855
+ * @param arrows2 arrow count
856
+ * @returns A function
857
+ */
851
858
  }, {
852
859
  key: "arrow",
853
860
  value: function arrow(arrows2) {
@@ -868,19 +875,21 @@ var PowiainaNum = /*#__PURE__*/function () {
868
875
  if (arrows.eq(2)) return function (other) {
869
876
  return t.tetrate(other);
870
877
  };
871
- return function (other2) {
872
- var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
878
+ return function (other2, payload2) {
879
+ var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
873
880
  var other = new PowiainaNum(other2);
881
+ var payload = new PowiainaNum(payload2);
874
882
  var ctt = PowiainaNum.arrowFuncMap.get("".concat(t.toString(), " ").concat(arrows.toString(), " ").concat(other.toString(), " ").concat(depth));
875
883
  if (ctt) return ctt.clone();
876
884
  var res = function () {
877
885
  var r;
878
- if (t.isNaN() || other.isNaN()) return PowiainaNum.NaN.clone();
886
+ if (t.isNaN() || other.isNaN() || payload.isNaN()) return PowiainaNum.NaN.clone();
879
887
  if (other.lt(PowiainaNum.ZERO)) return PowiainaNum.NaN.clone();
880
888
  if (t.eq(PowiainaNum.ZERO)) {
881
889
  if (other.eq(PowiainaNum.ONE)) return PowiainaNum.ZERO.clone();
882
890
  return PowiainaNum.NaN.clone();
883
891
  }
892
+ if (payload.neq(PowiainaNum.ONE)) other = other.add(payload.anyarrow_log(arrows)(t));
884
893
  if (t.eq(PowiainaNum.ONE)) return PowiainaNum.ONE.clone();
885
894
  if (other.eq(PowiainaNum.ZERO)) return PowiainaNum.ONE.clone();
886
895
  if (other.eq(PowiainaNum.ONE)) return t.clone();
@@ -893,7 +902,7 @@ var PowiainaNum = /*#__PURE__*/function () {
893
902
  var arrowsNum = arrows.toNumber();
894
903
  // arrow < 9e15
895
904
  // 10{x}2 = 10{x-1}10
896
- if (other.eq(2)) return t.arrow(arrowsNum - 1)(t, depth + 1);
905
+ if (other.eq(2)) return t.arrow(arrowsNum - 1)(t, payload, depth + 1);
897
906
  if (t.max(other).gt(PowiainaNum.arrowMSI(arrowsNum + 1))) return t.max(other);
898
907
  if (t.gt(PowiainaNum.arrowMSI(arrowsNum)) || other.gt(MSI)) {
899
908
  if (t.gt(PowiainaNum.arrowMSI(arrowsNum))) {
@@ -921,11 +930,11 @@ var PowiainaNum = /*#__PURE__*/function () {
921
930
  var y = other.toNumber();
922
931
  var f = Math.floor(y);
923
932
  var arrows_m1 = arrows.sub(PowiainaNum.ONE);
924
- r = t.arrow(arrows_m1)(y - f, depth + 1);
933
+ r = t.arrow(arrows_m1)(y - f, payload, depth + 1);
925
934
  var i = 0;
926
935
  for (var m = PowiainaNum.arrowMSI(arrowsNum - 1); f !== 0 && r.lt(m) && i < 100; i++) {
927
936
  if (f > 0) {
928
- r = t.arrow(arrows_m1)(r, depth + 1);
937
+ r = t.arrow(arrows_m1)(r, payload, depth + 1);
929
938
  --f;
930
939
  }
931
940
  }
@@ -940,6 +949,12 @@ var PowiainaNum = /*#__PURE__*/function () {
940
949
  return res;
941
950
  };
942
951
  }
952
+ /**
953
+ * return `base`{`arrow2`}`x` = `this` which `x` is.
954
+ *
955
+ * @param arrow2
956
+ * @returns
957
+ */
943
958
  }, {
944
959
  key: "anyarrow_log",
945
960
  value: function anyarrow_log(arrow2) {
@@ -965,6 +980,7 @@ var PowiainaNum = /*#__PURE__*/function () {
965
980
  return x;
966
981
  };
967
982
  return function (base) {
983
+ var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
968
984
  var b = new PowiainaNum(base);
969
985
  if (b.isNaN()) return b;
970
986
  if (b.isInfi()) return PowiainaNum.ZERO.clone();
@@ -1002,13 +1018,23 @@ var PowiainaNum = /*#__PURE__*/function () {
1002
1018
  } else {
1003
1019
  // 第1-4次迭代,进入此处
1004
1020
  ++r;
1005
- x = x.anyarrow_log(arrowsNum - 1)(base);
1021
+ x = x.anyarrow_log(arrowsNum - 1)(base, depth + 1);
1006
1022
  }
1007
1023
  }
1008
1024
  if (x.gt(10)) return new PowiainaNum(r);
1009
1025
  return PowiainaNum.NaN.clone();
1010
1026
  };
1011
1027
  }
1028
+ /**
1029
+ * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
1030
+ * @param arrows
1031
+ * @returns
1032
+ */
1033
+ }, {
1034
+ key: "arrow_height_inverse",
1035
+ value: function arrow_height_inverse(arrows) {
1036
+ return this.anyarrow_log(arrows);
1037
+ }
1012
1038
  }, {
1013
1039
  key: "chain",
1014
1040
  value: function chain(other, arrows) {
@@ -1024,6 +1050,12 @@ var PowiainaNum = /*#__PURE__*/function () {
1024
1050
  value: function hexate(other) {
1025
1051
  return this.arrow(4)(other);
1026
1052
  }
1053
+ }, {
1054
+ key: "penta_log",
1055
+ value: function penta_log() {
1056
+ var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
1057
+ return this.anyarrow_log(3)(base);
1058
+ }
1027
1059
  /**
1028
1060
  * Expansion, which is `this`{{1}}`other2`.
1029
1061
  *
@@ -1637,6 +1669,11 @@ var PowiainaNum = /*#__PURE__*/function () {
1637
1669
  this.small = !this.small;
1638
1670
  renormalize = true;
1639
1671
  }
1672
+ // for any 10{X>9e15}10, replace into 10{!}X;
1673
+ if (this.array.length >= 2 && this.array[1].arrow >= MSI) {
1674
+ this.array[0].repeat = this.array[1].arrow;
1675
+ this.array[1] = newOperator(1, Infinity, this.array[1].expans, this.array[1].megota);
1676
+ }
1640
1677
  while (x.array.length >= 2 && x.array[0].repeat == 1 && x.array[1].repeat) {
1641
1678
  // for any 10{X}10{X} 1, turn into 10{X}10
1642
1679
  // [1, [R=sth, A=sth, E=sth, M=sth]]
@@ -1648,6 +1685,17 @@ var PowiainaNum = /*#__PURE__*/function () {
1648
1685
  x.array[0].repeat = 10;
1649
1686
  renormalize = true;
1650
1687
  }
1688
+ if (x.array.length >= 2 && x.array.length < PowiainaNum.maxOps && x.array[0].repeat < MSI && x.array[1].arrow >= 2 && x.array[1].repeat > 1 &&
1689
+ //10^^^ 10
1690
+ isFinite(x.array[1].arrow)) {
1691
+ // for any (10{A sample=2})^k 1e9, turn into (10{A})^k-1 (10{A-1})^1e9-1 10
1692
+ // But dont convert when a is infinite
1693
+ // [1e9, [R=K, A=2, sth, sth]]
1694
+ x.array[1].repeat--;
1695
+ x.array.splice(1, 0, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1696
+ x.array[0].repeat = 10;
1697
+ renormalize = true;
1698
+ }
1651
1699
  if (x.array.length >= 2 && x.array[0].repeat < MSI && x.array[1].arrow >= 2 && x.array[1].repeat == 1 &&
1652
1700
  //10^^^ 10
1653
1701
  isFinite(x.array[1].arrow)) {
@@ -2125,7 +2173,7 @@ var PowiainaNum = /*#__PURE__*/function () {
2125
2173
  r.normalize();
2126
2174
  return r;
2127
2175
  }(power, depth);
2128
- console.log("".concat('-'.repeat(depth), " = ").concat(result));
2176
+ console.log("".concat("-".repeat(depth), " = ").concat(result));
2129
2177
  return result;
2130
2178
  }
2131
2179
  }, {
@@ -844,6 +844,13 @@ var PowiainaNum = /*#__PURE__*/function () {
844
844
  return base.tetrate(t.slog(base).sub(other));
845
845
  }
846
846
  //#endregion
847
+ /**
848
+ * Arrow operation, return a function
849
+ * The function has a parameter `other`
850
+ * call this function returns a powiainanum `this`{`arrow2`}`other`
851
+ * @param arrows2 arrow count
852
+ * @returns A function
853
+ */
847
854
  }, {
848
855
  key: "arrow",
849
856
  value: function arrow(arrows2) {
@@ -864,19 +871,21 @@ var PowiainaNum = /*#__PURE__*/function () {
864
871
  if (arrows.eq(2)) return function (other) {
865
872
  return t.tetrate(other);
866
873
  };
867
- return function (other2) {
868
- var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
874
+ return function (other2, payload2) {
875
+ var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
869
876
  var other = new PowiainaNum(other2);
877
+ var payload = new PowiainaNum(payload2);
870
878
  var ctt = PowiainaNum.arrowFuncMap.get("".concat(t.toString(), " ").concat(arrows.toString(), " ").concat(other.toString(), " ").concat(depth));
871
879
  if (ctt) return ctt.clone();
872
880
  var res = function () {
873
881
  var r;
874
- if (t.isNaN() || other.isNaN()) return PowiainaNum.NaN.clone();
882
+ if (t.isNaN() || other.isNaN() || payload.isNaN()) return PowiainaNum.NaN.clone();
875
883
  if (other.lt(PowiainaNum.ZERO)) return PowiainaNum.NaN.clone();
876
884
  if (t.eq(PowiainaNum.ZERO)) {
877
885
  if (other.eq(PowiainaNum.ONE)) return PowiainaNum.ZERO.clone();
878
886
  return PowiainaNum.NaN.clone();
879
887
  }
888
+ if (payload.neq(PowiainaNum.ONE)) other = other.add(payload.anyarrow_log(arrows)(t));
880
889
  if (t.eq(PowiainaNum.ONE)) return PowiainaNum.ONE.clone();
881
890
  if (other.eq(PowiainaNum.ZERO)) return PowiainaNum.ONE.clone();
882
891
  if (other.eq(PowiainaNum.ONE)) return t.clone();
@@ -889,7 +898,7 @@ var PowiainaNum = /*#__PURE__*/function () {
889
898
  var arrowsNum = arrows.toNumber();
890
899
  // arrow < 9e15
891
900
  // 10{x}2 = 10{x-1}10
892
- if (other.eq(2)) return t.arrow(arrowsNum - 1)(t, depth + 1);
901
+ if (other.eq(2)) return t.arrow(arrowsNum - 1)(t, payload, depth + 1);
893
902
  if (t.max(other).gt(PowiainaNum.arrowMSI(arrowsNum + 1))) return t.max(other);
894
903
  if (t.gt(PowiainaNum.arrowMSI(arrowsNum)) || other.gt(MSI)) {
895
904
  if (t.gt(PowiainaNum.arrowMSI(arrowsNum))) {
@@ -917,11 +926,11 @@ var PowiainaNum = /*#__PURE__*/function () {
917
926
  var y = other.toNumber();
918
927
  var f = Math.floor(y);
919
928
  var arrows_m1 = arrows.sub(PowiainaNum.ONE);
920
- r = t.arrow(arrows_m1)(y - f, depth + 1);
929
+ r = t.arrow(arrows_m1)(y - f, payload, depth + 1);
921
930
  var i = 0;
922
931
  for (var m = PowiainaNum.arrowMSI(arrowsNum - 1); f !== 0 && r.lt(m) && i < 100; i++) {
923
932
  if (f > 0) {
924
- r = t.arrow(arrows_m1)(r, depth + 1);
933
+ r = t.arrow(arrows_m1)(r, payload, depth + 1);
925
934
  --f;
926
935
  }
927
936
  }
@@ -936,6 +945,12 @@ var PowiainaNum = /*#__PURE__*/function () {
936
945
  return res;
937
946
  };
938
947
  }
948
+ /**
949
+ * return `base`{`arrow2`}`x` = `this` which `x` is.
950
+ *
951
+ * @param arrow2
952
+ * @returns
953
+ */
939
954
  }, {
940
955
  key: "anyarrow_log",
941
956
  value: function anyarrow_log(arrow2) {
@@ -961,6 +976,7 @@ var PowiainaNum = /*#__PURE__*/function () {
961
976
  return x;
962
977
  };
963
978
  return function (base) {
979
+ var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
964
980
  var b = new PowiainaNum(base);
965
981
  if (b.isNaN()) return b;
966
982
  if (b.isInfi()) return PowiainaNum.ZERO.clone();
@@ -998,13 +1014,23 @@ var PowiainaNum = /*#__PURE__*/function () {
998
1014
  } else {
999
1015
  // 第1-4次迭代,进入此处
1000
1016
  ++r;
1001
- x = x.anyarrow_log(arrowsNum - 1)(base);
1017
+ x = x.anyarrow_log(arrowsNum - 1)(base, depth + 1);
1002
1018
  }
1003
1019
  }
1004
1020
  if (x.gt(10)) return new PowiainaNum(r);
1005
1021
  return PowiainaNum.NaN.clone();
1006
1022
  };
1007
1023
  }
1024
+ /**
1025
+ * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
1026
+ * @param arrows
1027
+ * @returns
1028
+ */
1029
+ }, {
1030
+ key: "arrow_height_inverse",
1031
+ value: function arrow_height_inverse(arrows) {
1032
+ return this.anyarrow_log(arrows);
1033
+ }
1008
1034
  }, {
1009
1035
  key: "chain",
1010
1036
  value: function chain(other, arrows) {
@@ -1020,6 +1046,12 @@ var PowiainaNum = /*#__PURE__*/function () {
1020
1046
  value: function hexate(other) {
1021
1047
  return this.arrow(4)(other);
1022
1048
  }
1049
+ }, {
1050
+ key: "penta_log",
1051
+ value: function penta_log() {
1052
+ var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
1053
+ return this.anyarrow_log(3)(base);
1054
+ }
1023
1055
  /**
1024
1056
  * Expansion, which is `this`{{1}}`other2`.
1025
1057
  *
@@ -1633,6 +1665,11 @@ var PowiainaNum = /*#__PURE__*/function () {
1633
1665
  this.small = !this.small;
1634
1666
  renormalize = true;
1635
1667
  }
1668
+ // for any 10{X>9e15}10, replace into 10{!}X;
1669
+ if (this.array.length >= 2 && this.array[1].arrow >= MSI) {
1670
+ this.array[0].repeat = this.array[1].arrow;
1671
+ this.array[1] = newOperator(1, Infinity, this.array[1].expans, this.array[1].megota);
1672
+ }
1636
1673
  while (x.array.length >= 2 && x.array[0].repeat == 1 && x.array[1].repeat) {
1637
1674
  // for any 10{X}10{X} 1, turn into 10{X}10
1638
1675
  // [1, [R=sth, A=sth, E=sth, M=sth]]
@@ -1644,6 +1681,17 @@ var PowiainaNum = /*#__PURE__*/function () {
1644
1681
  x.array[0].repeat = 10;
1645
1682
  renormalize = true;
1646
1683
  }
1684
+ if (x.array.length >= 2 && x.array.length < PowiainaNum.maxOps && x.array[0].repeat < MSI && x.array[1].arrow >= 2 && x.array[1].repeat > 1 &&
1685
+ //10^^^ 10
1686
+ isFinite(x.array[1].arrow)) {
1687
+ // for any (10{A sample=2})^k 1e9, turn into (10{A})^k-1 (10{A-1})^1e9-1 10
1688
+ // But dont convert when a is infinite
1689
+ // [1e9, [R=K, A=2, sth, sth]]
1690
+ x.array[1].repeat--;
1691
+ x.array.splice(1, 0, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1692
+ x.array[0].repeat = 10;
1693
+ renormalize = true;
1694
+ }
1647
1695
  if (x.array.length >= 2 && x.array[0].repeat < MSI && x.array[1].arrow >= 2 && x.array[1].repeat == 1 &&
1648
1696
  //10^^^ 10
1649
1697
  isFinite(x.array[1].arrow)) {
@@ -2121,7 +2169,7 @@ var PowiainaNum = /*#__PURE__*/function () {
2121
2169
  r.normalize();
2122
2170
  return r;
2123
2171
  }(power, depth);
2124
- console.log("".concat('-'.repeat(depth), " = ").concat(result));
2172
+ console.log("".concat("-".repeat(depth), " = ").concat(result));
2125
2173
  return result;
2126
2174
  }
2127
2175
  }, {
@@ -850,6 +850,13 @@
850
850
  return base.tetrate(t.slog(base).sub(other));
851
851
  }
852
852
  //#endregion
853
+ /**
854
+ * Arrow operation, return a function
855
+ * The function has a parameter `other`
856
+ * call this function returns a powiainanum `this`{`arrow2`}`other`
857
+ * @param arrows2 arrow count
858
+ * @returns A function
859
+ */
853
860
  }, {
854
861
  key: "arrow",
855
862
  value: function arrow(arrows2) {
@@ -870,19 +877,21 @@
870
877
  if (arrows.eq(2)) return function (other) {
871
878
  return t.tetrate(other);
872
879
  };
873
- return function (other2) {
874
- var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
880
+ return function (other2, payload2) {
881
+ var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
875
882
  var other = new PowiainaNum(other2);
883
+ var payload = new PowiainaNum(payload2);
876
884
  var ctt = PowiainaNum.arrowFuncMap.get("".concat(t.toString(), " ").concat(arrows.toString(), " ").concat(other.toString(), " ").concat(depth));
877
885
  if (ctt) return ctt.clone();
878
886
  var res = function () {
879
887
  var r;
880
- if (t.isNaN() || other.isNaN()) return PowiainaNum.NaN.clone();
888
+ if (t.isNaN() || other.isNaN() || payload.isNaN()) return PowiainaNum.NaN.clone();
881
889
  if (other.lt(PowiainaNum.ZERO)) return PowiainaNum.NaN.clone();
882
890
  if (t.eq(PowiainaNum.ZERO)) {
883
891
  if (other.eq(PowiainaNum.ONE)) return PowiainaNum.ZERO.clone();
884
892
  return PowiainaNum.NaN.clone();
885
893
  }
894
+ if (payload.neq(PowiainaNum.ONE)) other = other.add(payload.anyarrow_log(arrows)(t));
886
895
  if (t.eq(PowiainaNum.ONE)) return PowiainaNum.ONE.clone();
887
896
  if (other.eq(PowiainaNum.ZERO)) return PowiainaNum.ONE.clone();
888
897
  if (other.eq(PowiainaNum.ONE)) return t.clone();
@@ -895,7 +904,7 @@
895
904
  var arrowsNum = arrows.toNumber();
896
905
  // arrow < 9e15
897
906
  // 10{x}2 = 10{x-1}10
898
- if (other.eq(2)) return t.arrow(arrowsNum - 1)(t, depth + 1);
907
+ if (other.eq(2)) return t.arrow(arrowsNum - 1)(t, payload, depth + 1);
899
908
  if (t.max(other).gt(PowiainaNum.arrowMSI(arrowsNum + 1))) return t.max(other);
900
909
  if (t.gt(PowiainaNum.arrowMSI(arrowsNum)) || other.gt(MSI)) {
901
910
  if (t.gt(PowiainaNum.arrowMSI(arrowsNum))) {
@@ -923,11 +932,11 @@
923
932
  var y = other.toNumber();
924
933
  var f = Math.floor(y);
925
934
  var arrows_m1 = arrows.sub(PowiainaNum.ONE);
926
- r = t.arrow(arrows_m1)(y - f, depth + 1);
935
+ r = t.arrow(arrows_m1)(y - f, payload, depth + 1);
927
936
  var i = 0;
928
937
  for (var m = PowiainaNum.arrowMSI(arrowsNum - 1); f !== 0 && r.lt(m) && i < 100; i++) {
929
938
  if (f > 0) {
930
- r = t.arrow(arrows_m1)(r, depth + 1);
939
+ r = t.arrow(arrows_m1)(r, payload, depth + 1);
931
940
  --f;
932
941
  }
933
942
  }
@@ -942,6 +951,12 @@
942
951
  return res;
943
952
  };
944
953
  }
954
+ /**
955
+ * return `base`{`arrow2`}`x` = `this` which `x` is.
956
+ *
957
+ * @param arrow2
958
+ * @returns
959
+ */
945
960
  }, {
946
961
  key: "anyarrow_log",
947
962
  value: function anyarrow_log(arrow2) {
@@ -967,6 +982,7 @@
967
982
  return x;
968
983
  };
969
984
  return function (base) {
985
+ var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
970
986
  var b = new PowiainaNum(base);
971
987
  if (b.isNaN()) return b;
972
988
  if (b.isInfi()) return PowiainaNum.ZERO.clone();
@@ -1004,13 +1020,23 @@
1004
1020
  } else {
1005
1021
  // 第1-4次迭代,进入此处
1006
1022
  ++r;
1007
- x = x.anyarrow_log(arrowsNum - 1)(base);
1023
+ x = x.anyarrow_log(arrowsNum - 1)(base, depth + 1);
1008
1024
  }
1009
1025
  }
1010
1026
  if (x.gt(10)) return new PowiainaNum(r);
1011
1027
  return PowiainaNum.NaN.clone();
1012
1028
  };
1013
1029
  }
1030
+ /**
1031
+ * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
1032
+ * @param arrows
1033
+ * @returns
1034
+ */
1035
+ }, {
1036
+ key: "arrow_height_inverse",
1037
+ value: function arrow_height_inverse(arrows) {
1038
+ return this.anyarrow_log(arrows);
1039
+ }
1014
1040
  }, {
1015
1041
  key: "chain",
1016
1042
  value: function chain(other, arrows) {
@@ -1026,6 +1052,12 @@
1026
1052
  value: function hexate(other) {
1027
1053
  return this.arrow(4)(other);
1028
1054
  }
1055
+ }, {
1056
+ key: "penta_log",
1057
+ value: function penta_log() {
1058
+ var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
1059
+ return this.anyarrow_log(3)(base);
1060
+ }
1029
1061
  /**
1030
1062
  * Expansion, which is `this`{{1}}`other2`.
1031
1063
  *
@@ -1639,6 +1671,11 @@
1639
1671
  this.small = !this.small;
1640
1672
  renormalize = true;
1641
1673
  }
1674
+ // for any 10{X>9e15}10, replace into 10{!}X;
1675
+ if (this.array.length >= 2 && this.array[1].arrow >= MSI) {
1676
+ this.array[0].repeat = this.array[1].arrow;
1677
+ this.array[1] = newOperator(1, Infinity, this.array[1].expans, this.array[1].megota);
1678
+ }
1642
1679
  while (x.array.length >= 2 && x.array[0].repeat == 1 && x.array[1].repeat) {
1643
1680
  // for any 10{X}10{X} 1, turn into 10{X}10
1644
1681
  // [1, [R=sth, A=sth, E=sth, M=sth]]
@@ -1650,6 +1687,17 @@
1650
1687
  x.array[0].repeat = 10;
1651
1688
  renormalize = true;
1652
1689
  }
1690
+ if (x.array.length >= 2 && x.array.length < PowiainaNum.maxOps && x.array[0].repeat < MSI && x.array[1].arrow >= 2 && x.array[1].repeat > 1 &&
1691
+ //10^^^ 10
1692
+ isFinite(x.array[1].arrow)) {
1693
+ // for any (10{A sample=2})^k 1e9, turn into (10{A})^k-1 (10{A-1})^1e9-1 10
1694
+ // But dont convert when a is infinite
1695
+ // [1e9, [R=K, A=2, sth, sth]]
1696
+ x.array[1].repeat--;
1697
+ x.array.splice(1, 0, newOperator(x.array[0].repeat - 1, x.array[1].arrow - 1, x.array[1].expans, x.array[1].megota));
1698
+ x.array[0].repeat = 10;
1699
+ renormalize = true;
1700
+ }
1653
1701
  if (x.array.length >= 2 && x.array[0].repeat < MSI && x.array[1].arrow >= 2 && x.array[1].repeat == 1 &&
1654
1702
  //10^^^ 10
1655
1703
  isFinite(x.array[1].arrow)) {
@@ -2127,7 +2175,7 @@
2127
2175
  r.normalize();
2128
2176
  return r;
2129
2177
  }(power, depth);
2130
- console.log("".concat('-'.repeat(depth), " = ").concat(result));
2178
+ console.log("".concat("-".repeat(depth), " = ").concat(result));
2131
2179
  return result;
2132
2180
  }
2133
2181
  }, {
@@ -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,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})}));
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 y=.5671432904097838;function p(r){var e,t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!Number.isFinite(r))return r;if(n){if(0===r)return r;if(1===r)return y;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var i=0;i<100;++i){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<a*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function m(r){return 2==r.length}function N(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function v(r){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(y);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 y=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 p=(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(p-m>s)return o;var N,v,w=-Math.floor(p),b=0;if((v=o.sign*Math.pow(10,p+w)+l.sign*Math.pow(10,m+w))>0&&(b=Math.log10(v)-w),v<0&&(b=Math.log10(-v)-w,y*=-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*=y,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(p(this.toNumber())):this.lt(u)?r.fromNumber(p(this.sign*this.getOperator(0))):this.lt("eee15")?v(this):this.log():1===this.sign?r.NaN.clone():0===this.layer?r.fromNumber(p(this.sign*this.array[0].repeat,1e-10,!1)):1==this.layer?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),y=r.NaN,p=0,m=r.E_MSI.clone();0!==g&&h.lt(m)&&p<100;++p)if(g>0){if(h=n.pow(h),y.eq(h)){g=0;break}y=h,--g}else{if(h=h.log(n),y.eq(h)){g=0;break}y=h,++g}return(100==p||this.lt(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,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=new r(e),s=new r(n),l=r.arrowFuncMap.get("".concat(t.toString()," ").concat(a.toString()," ").concat(o.toString()," ").concat(i));if(l)return l.clone();var c=function(){var e;if(t.isNaN()||o.isNaN()||s.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO))return o.eq(r.ONE)?r.ZERO.clone():r.NaN.clone();if(s.neq(r.ONE)&&(o=o.add(s.anyarrow_log(a)(t))),t.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return t.clone();if(a.gt(r.MSI))return(e=a.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var n=a.toNumber();if(o.eq(2))return t.arrow(n-1)(t,s,i+1);if(t.max(o).gt(r.arrowMSI(n+1)))return t.max(o);if(t.gt(r.arrowMSI(n))||o.gt(u)){t.gt(r.arrowMSI(n))?((e=t.clone()).setOperator(e.getOperator(n)-1,n),e.normalize()):e=t.gt(r.arrowMSI(n-1))?new r(t.getOperator(n-1)):r.ZERO;var l=e.add(o);return l.setOperator(l.getOperator(n)+1,n),l.normalize(),l}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,n)]});var c=o.toNumber(),g=Math.floor(c),h=a.sub(r.ONE);e=t.arrow(h)(c-g,s,i+1);for(var y=0,p=r.arrowMSI(n-1);0!==g&&e.lt(p)&&y<100;y++)g>0&&(e=t.arrow(h)(e,s,i+1),--g);return 100==y&&(g=0),e.setOperator(e.getOperator(n-1)+g,n-1),e.normalize(),e}();return i<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(a.toString()," ").concat(o.toString()," ").concat(i),c.clone()),c}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),a=new r(e),n=a.toNumber();if(a.gt(u))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!a.isInt()||a.lt(0)?function(){return r.NaN.clone()}:a.eq(0)?function(r){return t.div(r)}:a.eq(1)?function(r){return t.log(r)}:a.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e);if(i.isNaN())return i;if(i.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(i))return r.ONE.clone();if(t.max(i).gt(r.arrowMSI(n+1)))return t.gt(i)?t:r.ZERO.clone();if(t.max(i).gt(r.arrowMSI(n))&&t.gt(i))return t.setOperator(t.getOperator(n)-1,n),t.normalize(),t.sub(t.getOperator(n-1));if(t.lt(r.ZERO.clone()))return r.NaN.clone();var o=0,u=t.getOperator(n)-i.getOperator(n);if(u>3){var s=u-3;o+=s,t.setOperator(t.getOperator(n)-s,n)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=t.arrow(n-1)(e),--o;else{if(t.lte(1))return new r(o+t.toNumber()-1);++o,t=t.anyarrow_log(n-1)(e,a+1)}return t.gt(10)?new r(o):r.NaN.clone()}}},{key:"arrow_height_inverse",value:function(r){return this.anyarrow_log(r)}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r){return this.arrow(3)(r)}},{key:"hexate",value:function(r){return this.arrow(4)(r)}},{key:"penta_log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this.anyarrow_log(3)(r)}},{key:"expansion",value:function(e){var t,a=new r(e),n=this.clone();if(a.lt(r.ZERO)||!a.isInt())return r.NaN.clone();if(a.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt())return r.NaN.clone();if(this.eq(2))return new r(4);if(a.eq(0))return r.ONE.clone();if(n.gt("10{1,2}".concat(u))||a.gt(u)){n.gt("10{1,2}".concat(u))?((t=n.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=n.gt("10{".concat(u,"}10"))?new r(n.getOperator(1/0)):r.ZERO;var i=t.add(a);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,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 y=0,p=new r("10{".concat(s-1,",2}").concat(u));0!==g&&t.lt(p)&&y<100;y++)g>0&&(t=a.expansionArrow(h)(t,i+1),--g);return 100==y&&(g=0),t.setOperator(t.getOperator(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),this.array.length>=2&&this.array[1].arrow>=u&&(this.array[0].repeat=this.array[1].arrow,this.array[1]=f(1,1/0,this.array[1].expans,this.array[1].megota));t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array.length<r.maxOps&&t.array[0].repeat<u&&t.array[1].arrow>=2&&t.array[1].repeat>1&&isFinite(t.array[1].arrow)&&(t.array[1].repeat--,t.array.splice(1,0,f(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[0].repeat<u&&t.array[1].arrow>=2&&1==t.array[1].repeat&&isFinite(t.array[1].arrow)&&(t.array.splice(1,1,f(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>u&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);return this}},{key:"getOperatorIndex",value:function(r){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=0;a<this.array.length;a++){var n=g([this.array[a].megota,this.array[a].expans,this.array[a].arrow],[t,e,r]);if(0==n)return a;if(1==n)return a-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=this.getOperatorIndex(r,e,t);return this.array[a]?this.array[a].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,n=this.getOperatorIndex(e,t,a);return this.array[n]?(this.array[n].repeat=r,!1):(this.array.splice(Math.ceil(n),0,{arrow:e,expans:t,megota:a,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],a="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");a=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(a,")^").concat(t.repeat," "):"".concat(a),r+="".concat(a)}return r}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}}],[{key:"add",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"pLog10",value:function(e){return new r(e).pLog10()}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"tetrate",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,a)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(u))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,a){return new r(e).arrow(t.sub(2))(a)}}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,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 y=h(0).toNumber(),p=h(1),m=h(2),N=h(3);if(N.eq(2)){if(1!=y)return r.POSITIVE_INFINITY.clone();if(p.neq(1))return r.POSITIVE_INFINITY.clone();if(m.neq(1))return r.POSITIVE_INFINITY.clone();if(g.gte(u))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=g.toNumber(),v.normalize(),v}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(m.gt(u)){var b=new r(m);return b.layer++,b.normalize(),b}function O(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){return"10{".concat(O(r),",").concat(O(e),",").concat(t,"}").concat(u)}var I=c.clone(),d=new r(h(0)),x=function(l){var h,y,N=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.log("".concat("-".repeat(N)," {").concat(e,",").concat(t,",").concat(n,",").concat(i,",").concat(o,"}"));var v,b=new r(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,p.sub(1),m,s,N+1);if(m.eq(0))return r.BEAF(I,I,I,I,p,new r(s).sub(1),N+1);if(p.gt(u))return(v=new r(p)).setOperator(v.getOperator(1,1/0,m.toNumber())+1,1,1/0,m.toNumber()),v;if(d.gt(r.MSI))return(v=d.clone()).setOperator(v.getOperator(1/0,p.toNumber(),m.toNumber())+1,1/0,p.toNumber(),m.toNumber()),v;var O=d.toNumber();if(b.eq(2))return r.BEAF(I,I,O-1,p,m,s,N+1);if(I.max(b).gt(E(O+1,p.toNumber(),m.toNumber())))return I.max(b);if(I.gt(E(O,p.toNumber(),m.toNumber()))||b.gt(u)){I.gt(E(O,p.toNumber(),m.toNumber()))?((v=I.clone()).setOperator(v.getOperator(O,p.toNumber(),m.toNumber())-1,O,p.toNumber(),m.toNumber()),v.normalize()):v=I.gt(E.apply(void 0,a(w(O-1,p.toNumber(),m.toNumber()))))?new r(I.getOperator.apply(I,a(w(O-1,p.toNumber(),m.toNumber())))):r.ZERO;var x=v.add(b);return x.setOperator(x.getOperator(O,p.toNumber(),m.toNumber())+1,O,p.toNumber(),m.toNumber()),x.normalize(),x}if(N>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[f(10,0),f(1,O,p.toNumber(),m.toNumber())]});var M=b.toNumber(),k=Math.floor(M),q=d.sub(r.ONE);v=r.BEAF(I,M-k,q.toNumber(),p,m,s,N+1);for(var T=0,S=new r(E.apply(void 0,a(w(O-1,p.toNumber(),m.toNumber()))));0!==k&&v.lt(S)&&T<100;T++)k>0&&(v=r.BEAF(c,v,q.toNumber(),p,m,s,N+1),--k);return 100==T&&(k=0),(h=v).setOperator.apply(h,[(y=v).getOperator.apply(y,a(w(O-1,p.toNumber(),m.toNumber())))+k].concat(a(w(O-1,p.toNumber(),m.toNumber())))),v.normalize(),v}(g,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,y=new r;if(e.startsWith("PN")&&(e=e.substring(2)),!isNaN(Number(e))){var p=Number(e),m=!1;if(0==p?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(m=!0):m=!0,!m){var N=e.search(/e/),v=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var O=w.length>=17?h(w):Math.log10(Number(w)),E=O-(Math.floor(O)-1);b[0]=Math.pow(10,E),b[1]+=E}else{var I=(g=w.match(/^0\.(0*)[1-9]/))?g[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(p)&&m)return y=r.fromNumber(Number(e))}if(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)y.array=[f(NaN)];else if("Infinity"==e)y.array=[f(1/0)];else{var k,q,T,S;for(y.sign=1,y.array=[f(0)],"P"==e[0]&&("^"==e[1]?(k=e.substring(2).search(/[^0-9]/)+2,y.layer=Number(e.substring(2,k)),e=e.substring(k+1)):(k=e.search(/[^P]/),y.layer=k,e=e.substring(k)));e&&/^(\(?10[\^\{])/.test(e);){var _,F,Z;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])_=k=e.substring(2).search(/[^\^]/),q=k+2;else{k=e.indexOf("}");var A=e.substring(3,k).split(",");_=Number("!"==A[0]?1/0:A[0]),F=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==_&&1==F&&1==Z?y.array.length>=2&&1==y.array[1].arrow?y.array[1].repeat+=T:y.array.splice(1,0,f(T,1,F,Z)):2==_&&1==F&&1==Z?(k=y.array.length>=2&&1==y.array[1].arrow?y.array[1].repeat:0,(q=y.array[0].repeat)>=1e10&&++k,q>=10&&++k,y.array[0].repeat=k,y.array.length>=2&&1==y.array[1].arrow&&y.array.splice(1,1),S=y.getOperatorIndex(2),Number.isInteger(S)?y.array[S].repeat+=T:y.array.splice(Math.ceil(S),0,f(T,2,F,Z))):isFinite(_)?(k=y.getOperator(_-1),(q=y.getOperator(_-2))>=10&&++k,S=y.getOperatorIndex(_),y.array.splice(1,Math.ceil(S)-1),y.array[0].repeat=k,Number.isInteger(S)?y.array[1].repeat+=T:y.array.splice(1,0,f(T,_,F,Z))):y.array.splice(1,0,f(T,_,F,Z))}k=e.split(/[Ee]/),q=[y.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]++)}y.array[0].repeat=q[0],q[1]&&(y.array.length>=2&&1==y.array[1].arrow&&1==y.array[1].expans&&1==y.array[1].megota?y.array[1].repeat+=q[1]:y.array.splice(1,0,f(q[1],1,1,1)))}return d&&(y.sign*=-1),x&&(y.small=!y.small),y.normalize(),y.normalize(),y}},{key:"fromObject",value:function(e){var t=new r;if(t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!m(t))return!1;if(!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
@@ -106,13 +106,33 @@ export default class PowiainaNum implements IPowiainaNum {
106
106
  * @example new P("10^10^3").iteratedlog(2,10) == 3
107
107
  */
108
108
  iteratedlog(other2?: PowiainaNumSource, base2?: PowiainaNumSource): PowiainaNum;
109
- arrow(arrows2: PowiainaNumSource): (other: PowiainaNumSource, depth?: number) => PowiainaNum;
110
- anyarrow_log(arrow2: PowiainaNumSource): (base: PowiainaNumSource) => PowiainaNum;
109
+ /**
110
+ * Arrow operation, return a function
111
+ * The function has a parameter `other`
112
+ * call this function returns a powiainanum `this`{`arrow2`}`other`
113
+ * @param arrows2 arrow count
114
+ * @returns A function
115
+ */
116
+ arrow(arrows2: PowiainaNumSource): (other: PowiainaNumSource, payload?: PowiainaNumSource, depth?: number) => PowiainaNum;
117
+ /**
118
+ * return `base`{`arrow2`}`x` = `this` which `x` is.
119
+ *
120
+ * @param arrow2
121
+ * @returns
122
+ */
123
+ anyarrow_log(arrow2: PowiainaNumSource): (base: PowiainaNumSource, depth?: number) => PowiainaNum;
124
+ /**
125
+ * Arrow height inverse (ExpantaNum.js), an alias of `anyarrow_log`
126
+ * @param arrows
127
+ * @returns
128
+ */
129
+ arrow_height_inverse(arrows: PowiainaNumSource): (base: PowiainaNumSource, depth?: number) => PowiainaNum;
111
130
  private static arrowMSI;
112
131
  chain(other: PowiainaNumSource, arrows: PowiainaNumSource): PowiainaNum;
113
132
  static hyper(arr: PowiainaNumSource): typeof PowiainaNum.mul;
114
133
  pentate(other: PowiainaNumSource): PowiainaNum;
115
134
  hexate(other: PowiainaNumSource): PowiainaNum;
135
+ penta_log(base?: PowiainaNumSource): PowiainaNum;
116
136
  /**
117
137
  * Expansion, which is `this`{{1}}`other2`.
118
138
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powiaina_num.js",
3
- "version": "0.2.0-beta.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "A JavaScript library that handles arithmetic for numbers as large as {10,9e15,1,1,1,2}.",
5
5
  "type": "module",
6
6
  "main": "dist/PowiainaNum.cjs.js",