powiaina_num.js 0.2.18 → 0.2.20

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.
@@ -1964,58 +1964,45 @@ var PowiainaNum = /*#__PURE__*/function () {
1964
1964
  }, {
1965
1965
  key: "getOperatorIndex",
1966
1966
  value:
1967
- //#endregion
1968
- //#region operators
1969
1967
  /**
1970
1968
  * @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
1971
1969
  */
1972
1970
  function getOperatorIndex(arrow) {
1973
1971
  var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1974
1972
  var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1975
- for (var i = 0; i < this.array.length; i++) {
1976
- var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
1977
- if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
1978
- if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
1979
- }
1980
- return this.array.length - 0.5;
1973
+ return PowiainaNum.opGetOperatorIndex(this.array, arrow, expans, megota);
1981
1974
  }
1982
1975
  /**
1983
1976
  * @returns number repeats of operators with given arguments.
1984
1977
  */
1985
1978
  }, {
1986
1979
  key: "getOperator",
1987
- value: function getOperator(arrow) {
1980
+ value:
1981
+ /**
1982
+ * @returns number repeats of operators with given arguments.
1983
+ */
1984
+ function getOperator(arrow) {
1988
1985
  var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1989
1986
  var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1990
- var index = this.getOperatorIndex(arrow, expans, megota);
1991
- if (!this.array[index]) return 0;
1992
- return this.array[index].repeat;
1987
+ return PowiainaNum.opGetOperator(this.array, arrow, expans, megota);
1993
1988
  }
1994
1989
  /**
1995
- * Modify the repeat of operator
1990
+ * Modify the repeat of operator(argument will modified)
1996
1991
  * @param number val the repeat of operator will modify to array.
1997
1992
  * @returns bool Is the operators array changed?
1998
1993
  */
1999
1994
  }, {
2000
1995
  key: "setOperator",
2001
- value: function setOperator(val, arrow) {
1996
+ value:
1997
+ /**
1998
+ * Modify the repeat of operator
1999
+ * @param number val the repeat of operator will modify to array.
2000
+ * @returns bool Is the operators array changed?
2001
+ */
2002
+ function setOperator(val, arrow) {
2002
2003
  var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2003
2004
  var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2004
- // if (arrow!=0&&val==0) return false;
2005
- var index = this.getOperatorIndex(arrow, expans, megota);
2006
- if (!this.array[index]) {
2007
- this.array.splice(Math.ceil(index), 0, {
2008
- arrow: arrow,
2009
- expans: expans,
2010
- megota: megota,
2011
- valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
2012
- repeat: val
2013
- });
2014
- return true;
2015
- }
2016
- this.array[index].repeat = val;
2017
- // this.normalize()
2018
- return false;
2005
+ return PowiainaNum.opSetOperator(this.array, val, arrow, expans, megota);
2019
2006
  }
2020
2007
  //#endregion
2021
2008
  //#region converters
@@ -2029,7 +2016,7 @@ var PowiainaNum = /*#__PURE__*/function () {
2029
2016
  value: function toNumber() {
2030
2017
  if (this.sign == -1) return -this.neg().toNumber();
2031
2018
  if (this.small) return 1 / this.rec().toNumber();
2032
- if (this.array.length > 2) return Infinity;
2019
+ if (this.gte("e308.25471555991675")) return Infinity;
2033
2020
  if (this.array.length == 1) return this.array[0].repeat;else if (this.array.length == 2 && this.array[1].arrow == 1 && this.array[1].expans == 1 && this.array[1].megota == 1 && this.array[1].repeat == 1) return Math.pow(10, this.getOperator(0));
2034
2021
  return NaN;
2035
2022
  }
@@ -2719,6 +2706,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2719
2706
  var arrows = new PowiainaNum(readArg(0));
2720
2707
  var result = function (other2) {
2721
2708
  var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
2709
+ var ctt = PowiainaNum.beafFuncMap.get("".concat(t.toString(), " ").concat(arrow.toString(), " ").concat(expans.toString(), " ").concat(megota.toString(), " ").concat(powiaina.toString(), " ").concat(other2.toString(), " ").concat(depth));
2710
+ if (ctt) return ctt.clone();
2722
2711
  // console.log(
2723
2712
  // `${"-".repeat(depth)} {${base2},${power2},${arrow2},${expans2},${megota2}}`
2724
2713
  // );
@@ -2806,105 +2795,11 @@ var PowiainaNum = /*#__PURE__*/function () {
2806
2795
  if (i == 100) f = 0;
2807
2796
  r.setOperator(r.getOperator(arrowsNum - 1, expans.toNumber(), megota.toNumber()) + f, arrowsNum - 1, expans.toNumber(), megota.toNumber());
2808
2797
  r.normalize();
2809
- // if (
2810
- // t.gt(getMSIForm(arrowsNum, expans.toNumber(), megota.toNumber())) ||
2811
- // other.gt(MSI)
2812
- // ) {
2813
- // if (t.gt(getMSIForm(arrowsNum, expans.toNumber(), megota.toNumber()))) {
2814
- // r = t.clone();
2815
- // r.setOperator(
2816
- // r.getOperator(arrowsNum, expans.toNumber(), megota.toNumber()) - 1,
2817
- // arrowsNum,
2818
- // expans.toNumber(),
2819
- // megota.toNumber()
2820
- // );
2821
- // r.normalize();
2822
- // } else if (
2823
- // t.gt(
2824
- // getMSIForm(
2825
- // ...convertOperator(
2826
- // arrowsNum - 1,
2827
- // expans.toNumber(),
2828
- // megota.toNumber()
2829
- // )
2830
- // )
2831
- // )
2832
- // ) {
2833
- // r = new PowiainaNum(
2834
- // t.getOperator(
2835
- // ...convertOperator(
2836
- // arrowsNum - 1,
2837
- // expans.toNumber(),
2838
- // megota.toNumber()
2839
- // )
2840
- // )
2841
- // );
2842
- // } else {
2843
- // r = PowiainaNum.ZERO;
2844
- // }
2845
- // const j = r.add(other);
2846
- // j.setOperator(
2847
- // j.getOperator(arrowsNum, expans.toNumber(), megota.toNumber()) + 1,
2848
- // arrowsNum,
2849
- // expans.toNumber(),
2850
- // megota.toNumber()
2851
- // );
2852
- // j.normalize();
2853
- // return j;
2854
- // }
2855
- // const y = other.toNumber();
2856
- // let f = Math.floor(y);
2857
- // const arrows_m1 = arrows.sub(PowiainaNum.ONE);
2858
- // r = PowiainaNum.BEAF(
2859
- // t,
2860
- // y - f,
2861
- // arrows_m1.toNumber(),
2862
- // expans,
2863
- // megota,
2864
- // powiaina2,
2865
- // depth + 1
2866
- // );
2867
- // let i = 0;
2868
- // for (
2869
- // const m = new PowiainaNum(
2870
- // getMSIForm(
2871
- // ...convertOperator(
2872
- // arrowsNum - 1,
2873
- // expans.toNumber(),
2874
- // megota.toNumber()
2875
- // )
2876
- // )
2877
- // );
2878
- // f !== 0 && r.lt(m) && i < 100;
2879
- // i++
2880
- // ) {
2881
- // if (f > 0) {
2882
- // r = PowiainaNum.BEAF(
2883
- // base,
2884
- // r,
2885
- // arrows_m1.toNumber(),
2886
- // expans,
2887
- // megota,
2888
- // powiaina2,
2889
- // depth + 1
2890
- // );
2891
- // --f;
2892
- // }
2893
- // }
2894
- // if (i == 100) f = 0;
2895
- // r.setOperator(
2896
- // r.getOperator(
2897
- // ...convertOperator(
2898
- // arrowsNum - 1,
2899
- // expans.toNumber(),
2900
- // megota.toNumber()
2901
- // )
2902
- // ) + f,
2903
- // ...convertOperator(arrowsNum - 1, expans.toNumber(), megota.toNumber())
2904
- // );
2905
2798
  return r;
2906
2799
  }(power, depth);
2907
- // console.log(`${"-".repeat(depth)} = ${result}`);
2800
+ if (depth < PowiainaNum.maxOps + 10) {
2801
+ PowiainaNum.beafFuncMap.set("".concat(t.toString(), " ").concat(arrow.toString(), " ").concat(expans.toString(), " ").concat(megota.toString(), " ").concat(powiaina.toString(), " ").concat(power.toString(), " ").concat(depth), result.clone());
2802
+ }
2908
2803
  return result;
2909
2804
  }
2910
2805
  }, {
@@ -3050,6 +2945,57 @@ var PowiainaNum = /*#__PURE__*/function () {
3050
2945
  value: function isNaN(x) {
3051
2946
  return new PowiainaNum(x).isNaN();
3052
2947
  }
2948
+ //#endregion
2949
+ //#region operators
2950
+ /**
2951
+ * @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
2952
+ */
2953
+ }, {
2954
+ key: "opGetOperatorIndex",
2955
+ value: function opGetOperatorIndex(operators, arrow) {
2956
+ var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2957
+ var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2958
+ for (var i = 0; i < operators.length; i++) {
2959
+ var cmp = compareTuples([operators[i].megota, operators[i].expans, operators[i].arrow], [megota, expans, arrow]);
2960
+ if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
2961
+ if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
2962
+ }
2963
+ return operators.length - 0.5;
2964
+ }
2965
+ }, {
2966
+ key: "opGetOperator",
2967
+ value: function opGetOperator(operators, arrow) {
2968
+ var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2969
+ var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2970
+ var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
2971
+ if (!operators[index]) return 0;
2972
+ return operators[index].repeat;
2973
+ }
2974
+ }, {
2975
+ key: "opSetOperator",
2976
+ value: function opSetOperator(operators, val, arrow) {
2977
+ var expans = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2978
+ var megota = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
2979
+ // if (arrow!=0&&val==0) return false;
2980
+ var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
2981
+ if (!operators[index]) {
2982
+ operators.splice(Math.ceil(index), 0, {
2983
+ arrow: arrow,
2984
+ expans: expans,
2985
+ megota: megota,
2986
+ valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
2987
+ repeat: val
2988
+ });
2989
+ return true;
2990
+ }
2991
+ operators[index].repeat = val;
2992
+ if (operators[index].repeat == 0) {
2993
+ operators.splice(index, 1);
2994
+ return true;
2995
+ }
2996
+ // this.normalize()
2997
+ return false;
2998
+ }
3053
2999
  }, {
3054
3000
  key: "fromBigInt",
3055
3001
  value: function fromBigInt(input) {
@@ -3628,6 +3574,7 @@ PowiainaNum.maxOps = 100;
3628
3574
  PowiainaNum.POW_2_44_MOD_PI = 1.701173079953;
3629
3575
  //#endregion
3630
3576
  PowiainaNum.arrowFuncMap = new Map();
3577
+ PowiainaNum.beafFuncMap = new Map();
3631
3578
  //#region configurations
3632
3579
  /**
3633
3580
  * If you set this config to true,
@@ -1960,58 +1960,45 @@ var PowiainaNum = /*#__PURE__*/function () {
1960
1960
  }, {
1961
1961
  key: "getOperatorIndex",
1962
1962
  value:
1963
- //#endregion
1964
- //#region operators
1965
1963
  /**
1966
1964
  * @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
1967
1965
  */
1968
1966
  function getOperatorIndex(arrow) {
1969
1967
  var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1970
1968
  var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1971
- for (var i = 0; i < this.array.length; i++) {
1972
- var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
1973
- if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
1974
- if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
1975
- }
1976
- return this.array.length - 0.5;
1969
+ return PowiainaNum.opGetOperatorIndex(this.array, arrow, expans, megota);
1977
1970
  }
1978
1971
  /**
1979
1972
  * @returns number repeats of operators with given arguments.
1980
1973
  */
1981
1974
  }, {
1982
1975
  key: "getOperator",
1983
- value: function getOperator(arrow) {
1976
+ value:
1977
+ /**
1978
+ * @returns number repeats of operators with given arguments.
1979
+ */
1980
+ function getOperator(arrow) {
1984
1981
  var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1985
1982
  var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1986
- var index = this.getOperatorIndex(arrow, expans, megota);
1987
- if (!this.array[index]) return 0;
1988
- return this.array[index].repeat;
1983
+ return PowiainaNum.opGetOperator(this.array, arrow, expans, megota);
1989
1984
  }
1990
1985
  /**
1991
- * Modify the repeat of operator
1986
+ * Modify the repeat of operator(argument will modified)
1992
1987
  * @param number val the repeat of operator will modify to array.
1993
1988
  * @returns bool Is the operators array changed?
1994
1989
  */
1995
1990
  }, {
1996
1991
  key: "setOperator",
1997
- value: function setOperator(val, arrow) {
1992
+ value:
1993
+ /**
1994
+ * Modify the repeat of operator
1995
+ * @param number val the repeat of operator will modify to array.
1996
+ * @returns bool Is the operators array changed?
1997
+ */
1998
+ function setOperator(val, arrow) {
1998
1999
  var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1999
2000
  var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2000
- // if (arrow!=0&&val==0) return false;
2001
- var index = this.getOperatorIndex(arrow, expans, megota);
2002
- if (!this.array[index]) {
2003
- this.array.splice(Math.ceil(index), 0, {
2004
- arrow: arrow,
2005
- expans: expans,
2006
- megota: megota,
2007
- valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
2008
- repeat: val
2009
- });
2010
- return true;
2011
- }
2012
- this.array[index].repeat = val;
2013
- // this.normalize()
2014
- return false;
2001
+ return PowiainaNum.opSetOperator(this.array, val, arrow, expans, megota);
2015
2002
  }
2016
2003
  //#endregion
2017
2004
  //#region converters
@@ -2025,7 +2012,7 @@ var PowiainaNum = /*#__PURE__*/function () {
2025
2012
  value: function toNumber() {
2026
2013
  if (this.sign == -1) return -this.neg().toNumber();
2027
2014
  if (this.small) return 1 / this.rec().toNumber();
2028
- if (this.array.length > 2) return Infinity;
2015
+ if (this.gte("e308.25471555991675")) return Infinity;
2029
2016
  if (this.array.length == 1) return this.array[0].repeat;else if (this.array.length == 2 && this.array[1].arrow == 1 && this.array[1].expans == 1 && this.array[1].megota == 1 && this.array[1].repeat == 1) return Math.pow(10, this.getOperator(0));
2030
2017
  return NaN;
2031
2018
  }
@@ -2715,6 +2702,8 @@ var PowiainaNum = /*#__PURE__*/function () {
2715
2702
  var arrows = new PowiainaNum(readArg(0));
2716
2703
  var result = function (other2) {
2717
2704
  var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
2705
+ var ctt = PowiainaNum.beafFuncMap.get("".concat(t.toString(), " ").concat(arrow.toString(), " ").concat(expans.toString(), " ").concat(megota.toString(), " ").concat(powiaina.toString(), " ").concat(other2.toString(), " ").concat(depth));
2706
+ if (ctt) return ctt.clone();
2718
2707
  // console.log(
2719
2708
  // `${"-".repeat(depth)} {${base2},${power2},${arrow2},${expans2},${megota2}}`
2720
2709
  // );
@@ -2802,105 +2791,11 @@ var PowiainaNum = /*#__PURE__*/function () {
2802
2791
  if (i == 100) f = 0;
2803
2792
  r.setOperator(r.getOperator(arrowsNum - 1, expans.toNumber(), megota.toNumber()) + f, arrowsNum - 1, expans.toNumber(), megota.toNumber());
2804
2793
  r.normalize();
2805
- // if (
2806
- // t.gt(getMSIForm(arrowsNum, expans.toNumber(), megota.toNumber())) ||
2807
- // other.gt(MSI)
2808
- // ) {
2809
- // if (t.gt(getMSIForm(arrowsNum, expans.toNumber(), megota.toNumber()))) {
2810
- // r = t.clone();
2811
- // r.setOperator(
2812
- // r.getOperator(arrowsNum, expans.toNumber(), megota.toNumber()) - 1,
2813
- // arrowsNum,
2814
- // expans.toNumber(),
2815
- // megota.toNumber()
2816
- // );
2817
- // r.normalize();
2818
- // } else if (
2819
- // t.gt(
2820
- // getMSIForm(
2821
- // ...convertOperator(
2822
- // arrowsNum - 1,
2823
- // expans.toNumber(),
2824
- // megota.toNumber()
2825
- // )
2826
- // )
2827
- // )
2828
- // ) {
2829
- // r = new PowiainaNum(
2830
- // t.getOperator(
2831
- // ...convertOperator(
2832
- // arrowsNum - 1,
2833
- // expans.toNumber(),
2834
- // megota.toNumber()
2835
- // )
2836
- // )
2837
- // );
2838
- // } else {
2839
- // r = PowiainaNum.ZERO;
2840
- // }
2841
- // const j = r.add(other);
2842
- // j.setOperator(
2843
- // j.getOperator(arrowsNum, expans.toNumber(), megota.toNumber()) + 1,
2844
- // arrowsNum,
2845
- // expans.toNumber(),
2846
- // megota.toNumber()
2847
- // );
2848
- // j.normalize();
2849
- // return j;
2850
- // }
2851
- // const y = other.toNumber();
2852
- // let f = Math.floor(y);
2853
- // const arrows_m1 = arrows.sub(PowiainaNum.ONE);
2854
- // r = PowiainaNum.BEAF(
2855
- // t,
2856
- // y - f,
2857
- // arrows_m1.toNumber(),
2858
- // expans,
2859
- // megota,
2860
- // powiaina2,
2861
- // depth + 1
2862
- // );
2863
- // let i = 0;
2864
- // for (
2865
- // const m = new PowiainaNum(
2866
- // getMSIForm(
2867
- // ...convertOperator(
2868
- // arrowsNum - 1,
2869
- // expans.toNumber(),
2870
- // megota.toNumber()
2871
- // )
2872
- // )
2873
- // );
2874
- // f !== 0 && r.lt(m) && i < 100;
2875
- // i++
2876
- // ) {
2877
- // if (f > 0) {
2878
- // r = PowiainaNum.BEAF(
2879
- // base,
2880
- // r,
2881
- // arrows_m1.toNumber(),
2882
- // expans,
2883
- // megota,
2884
- // powiaina2,
2885
- // depth + 1
2886
- // );
2887
- // --f;
2888
- // }
2889
- // }
2890
- // if (i == 100) f = 0;
2891
- // r.setOperator(
2892
- // r.getOperator(
2893
- // ...convertOperator(
2894
- // arrowsNum - 1,
2895
- // expans.toNumber(),
2896
- // megota.toNumber()
2897
- // )
2898
- // ) + f,
2899
- // ...convertOperator(arrowsNum - 1, expans.toNumber(), megota.toNumber())
2900
- // );
2901
2794
  return r;
2902
2795
  }(power, depth);
2903
- // console.log(`${"-".repeat(depth)} = ${result}`);
2796
+ if (depth < PowiainaNum.maxOps + 10) {
2797
+ PowiainaNum.beafFuncMap.set("".concat(t.toString(), " ").concat(arrow.toString(), " ").concat(expans.toString(), " ").concat(megota.toString(), " ").concat(powiaina.toString(), " ").concat(power.toString(), " ").concat(depth), result.clone());
2798
+ }
2904
2799
  return result;
2905
2800
  }
2906
2801
  }, {
@@ -3046,6 +2941,57 @@ var PowiainaNum = /*#__PURE__*/function () {
3046
2941
  value: function isNaN(x) {
3047
2942
  return new PowiainaNum(x).isNaN();
3048
2943
  }
2944
+ //#endregion
2945
+ //#region operators
2946
+ /**
2947
+ * @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
2948
+ */
2949
+ }, {
2950
+ key: "opGetOperatorIndex",
2951
+ value: function opGetOperatorIndex(operators, arrow) {
2952
+ var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2953
+ var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2954
+ for (var i = 0; i < operators.length; i++) {
2955
+ var cmp = compareTuples([operators[i].megota, operators[i].expans, operators[i].arrow], [megota, expans, arrow]);
2956
+ if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
2957
+ if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
2958
+ }
2959
+ return operators.length - 0.5;
2960
+ }
2961
+ }, {
2962
+ key: "opGetOperator",
2963
+ value: function opGetOperator(operators, arrow) {
2964
+ var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2965
+ var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2966
+ var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
2967
+ if (!operators[index]) return 0;
2968
+ return operators[index].repeat;
2969
+ }
2970
+ }, {
2971
+ key: "opSetOperator",
2972
+ value: function opSetOperator(operators, val, arrow) {
2973
+ var expans = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2974
+ var megota = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
2975
+ // if (arrow!=0&&val==0) return false;
2976
+ var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
2977
+ if (!operators[index]) {
2978
+ operators.splice(Math.ceil(index), 0, {
2979
+ arrow: arrow,
2980
+ expans: expans,
2981
+ megota: megota,
2982
+ valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
2983
+ repeat: val
2984
+ });
2985
+ return true;
2986
+ }
2987
+ operators[index].repeat = val;
2988
+ if (operators[index].repeat == 0) {
2989
+ operators.splice(index, 1);
2990
+ return true;
2991
+ }
2992
+ // this.normalize()
2993
+ return false;
2994
+ }
3049
2995
  }, {
3050
2996
  key: "fromBigInt",
3051
2997
  value: function fromBigInt(input) {
@@ -3624,6 +3570,7 @@ PowiainaNum.maxOps = 100;
3624
3570
  PowiainaNum.POW_2_44_MOD_PI = 1.701173079953;
3625
3571
  //#endregion
3626
3572
  PowiainaNum.arrowFuncMap = new Map();
3573
+ PowiainaNum.beafFuncMap = new Map();
3627
3574
  //#region configurations
3628
3575
  /**
3629
3576
  * If you set this config to true,
@@ -1966,58 +1966,45 @@
1966
1966
  }, {
1967
1967
  key: "getOperatorIndex",
1968
1968
  value:
1969
- //#endregion
1970
- //#region operators
1971
1969
  /**
1972
1970
  * @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
1973
1971
  */
1974
1972
  function getOperatorIndex(arrow) {
1975
1973
  var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1976
1974
  var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1977
- for (var i = 0; i < this.array.length; i++) {
1978
- var cmp = compareTuples([this.array[i].megota, this.array[i].expans, this.array[i].arrow], [megota, expans, arrow]);
1979
- if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
1980
- if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
1981
- }
1982
- return this.array.length - 0.5;
1975
+ return PowiainaNum.opGetOperatorIndex(this.array, arrow, expans, megota);
1983
1976
  }
1984
1977
  /**
1985
1978
  * @returns number repeats of operators with given arguments.
1986
1979
  */
1987
1980
  }, {
1988
1981
  key: "getOperator",
1989
- value: function getOperator(arrow) {
1982
+ value:
1983
+ /**
1984
+ * @returns number repeats of operators with given arguments.
1985
+ */
1986
+ function getOperator(arrow) {
1990
1987
  var expans = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
1991
1988
  var megota = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
1992
- var index = this.getOperatorIndex(arrow, expans, megota);
1993
- if (!this.array[index]) return 0;
1994
- return this.array[index].repeat;
1989
+ return PowiainaNum.opGetOperator(this.array, arrow, expans, megota);
1995
1990
  }
1996
1991
  /**
1997
- * Modify the repeat of operator
1992
+ * Modify the repeat of operator(argument will modified)
1998
1993
  * @param number val the repeat of operator will modify to array.
1999
1994
  * @returns bool Is the operators array changed?
2000
1995
  */
2001
1996
  }, {
2002
1997
  key: "setOperator",
2003
- value: function setOperator(val, arrow) {
1998
+ value:
1999
+ /**
2000
+ * Modify the repeat of operator
2001
+ * @param number val the repeat of operator will modify to array.
2002
+ * @returns bool Is the operators array changed?
2003
+ */
2004
+ function setOperator(val, arrow) {
2004
2005
  var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2005
2006
  var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2006
- // if (arrow!=0&&val==0) return false;
2007
- var index = this.getOperatorIndex(arrow, expans, megota);
2008
- if (!this.array[index]) {
2009
- this.array.splice(Math.ceil(index), 0, {
2010
- arrow: arrow,
2011
- expans: expans,
2012
- megota: megota,
2013
- valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
2014
- repeat: val
2015
- });
2016
- return true;
2017
- }
2018
- this.array[index].repeat = val;
2019
- // this.normalize()
2020
- return false;
2007
+ return PowiainaNum.opSetOperator(this.array, val, arrow, expans, megota);
2021
2008
  }
2022
2009
  //#endregion
2023
2010
  //#region converters
@@ -2031,7 +2018,7 @@
2031
2018
  value: function toNumber() {
2032
2019
  if (this.sign == -1) return -this.neg().toNumber();
2033
2020
  if (this.small) return 1 / this.rec().toNumber();
2034
- if (this.array.length > 2) return Infinity;
2021
+ if (this.gte("e308.25471555991675")) return Infinity;
2035
2022
  if (this.array.length == 1) return this.array[0].repeat;else if (this.array.length == 2 && this.array[1].arrow == 1 && this.array[1].expans == 1 && this.array[1].megota == 1 && this.array[1].repeat == 1) return Math.pow(10, this.getOperator(0));
2036
2023
  return NaN;
2037
2024
  }
@@ -2721,6 +2708,8 @@
2721
2708
  var arrows = new PowiainaNum(readArg(0));
2722
2709
  var result = function (other2) {
2723
2710
  var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
2711
+ var ctt = PowiainaNum.beafFuncMap.get("".concat(t.toString(), " ").concat(arrow.toString(), " ").concat(expans.toString(), " ").concat(megota.toString(), " ").concat(powiaina.toString(), " ").concat(other2.toString(), " ").concat(depth));
2712
+ if (ctt) return ctt.clone();
2724
2713
  // console.log(
2725
2714
  // `${"-".repeat(depth)} {${base2},${power2},${arrow2},${expans2},${megota2}}`
2726
2715
  // );
@@ -2808,105 +2797,11 @@
2808
2797
  if (i == 100) f = 0;
2809
2798
  r.setOperator(r.getOperator(arrowsNum - 1, expans.toNumber(), megota.toNumber()) + f, arrowsNum - 1, expans.toNumber(), megota.toNumber());
2810
2799
  r.normalize();
2811
- // if (
2812
- // t.gt(getMSIForm(arrowsNum, expans.toNumber(), megota.toNumber())) ||
2813
- // other.gt(MSI)
2814
- // ) {
2815
- // if (t.gt(getMSIForm(arrowsNum, expans.toNumber(), megota.toNumber()))) {
2816
- // r = t.clone();
2817
- // r.setOperator(
2818
- // r.getOperator(arrowsNum, expans.toNumber(), megota.toNumber()) - 1,
2819
- // arrowsNum,
2820
- // expans.toNumber(),
2821
- // megota.toNumber()
2822
- // );
2823
- // r.normalize();
2824
- // } else if (
2825
- // t.gt(
2826
- // getMSIForm(
2827
- // ...convertOperator(
2828
- // arrowsNum - 1,
2829
- // expans.toNumber(),
2830
- // megota.toNumber()
2831
- // )
2832
- // )
2833
- // )
2834
- // ) {
2835
- // r = new PowiainaNum(
2836
- // t.getOperator(
2837
- // ...convertOperator(
2838
- // arrowsNum - 1,
2839
- // expans.toNumber(),
2840
- // megota.toNumber()
2841
- // )
2842
- // )
2843
- // );
2844
- // } else {
2845
- // r = PowiainaNum.ZERO;
2846
- // }
2847
- // const j = r.add(other);
2848
- // j.setOperator(
2849
- // j.getOperator(arrowsNum, expans.toNumber(), megota.toNumber()) + 1,
2850
- // arrowsNum,
2851
- // expans.toNumber(),
2852
- // megota.toNumber()
2853
- // );
2854
- // j.normalize();
2855
- // return j;
2856
- // }
2857
- // const y = other.toNumber();
2858
- // let f = Math.floor(y);
2859
- // const arrows_m1 = arrows.sub(PowiainaNum.ONE);
2860
- // r = PowiainaNum.BEAF(
2861
- // t,
2862
- // y - f,
2863
- // arrows_m1.toNumber(),
2864
- // expans,
2865
- // megota,
2866
- // powiaina2,
2867
- // depth + 1
2868
- // );
2869
- // let i = 0;
2870
- // for (
2871
- // const m = new PowiainaNum(
2872
- // getMSIForm(
2873
- // ...convertOperator(
2874
- // arrowsNum - 1,
2875
- // expans.toNumber(),
2876
- // megota.toNumber()
2877
- // )
2878
- // )
2879
- // );
2880
- // f !== 0 && r.lt(m) && i < 100;
2881
- // i++
2882
- // ) {
2883
- // if (f > 0) {
2884
- // r = PowiainaNum.BEAF(
2885
- // base,
2886
- // r,
2887
- // arrows_m1.toNumber(),
2888
- // expans,
2889
- // megota,
2890
- // powiaina2,
2891
- // depth + 1
2892
- // );
2893
- // --f;
2894
- // }
2895
- // }
2896
- // if (i == 100) f = 0;
2897
- // r.setOperator(
2898
- // r.getOperator(
2899
- // ...convertOperator(
2900
- // arrowsNum - 1,
2901
- // expans.toNumber(),
2902
- // megota.toNumber()
2903
- // )
2904
- // ) + f,
2905
- // ...convertOperator(arrowsNum - 1, expans.toNumber(), megota.toNumber())
2906
- // );
2907
2800
  return r;
2908
2801
  }(power, depth);
2909
- // console.log(`${"-".repeat(depth)} = ${result}`);
2802
+ if (depth < PowiainaNum.maxOps + 10) {
2803
+ PowiainaNum.beafFuncMap.set("".concat(t.toString(), " ").concat(arrow.toString(), " ").concat(expans.toString(), " ").concat(megota.toString(), " ").concat(powiaina.toString(), " ").concat(power.toString(), " ").concat(depth), result.clone());
2804
+ }
2910
2805
  return result;
2911
2806
  }
2912
2807
  }, {
@@ -3052,6 +2947,57 @@
3052
2947
  value: function isNaN(x) {
3053
2948
  return new PowiainaNum(x).isNaN();
3054
2949
  }
2950
+ //#endregion
2951
+ //#region operators
2952
+ /**
2953
+ * @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
2954
+ */
2955
+ }, {
2956
+ key: "opGetOperatorIndex",
2957
+ value: function opGetOperatorIndex(operators, arrow) {
2958
+ var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2959
+ var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2960
+ for (var i = 0; i < operators.length; i++) {
2961
+ var cmp = compareTuples([operators[i].megota, operators[i].expans, operators[i].arrow], [megota, expans, arrow]);
2962
+ if (cmp == 0) return i; // I find it was [xx,xxx,*xxx*,xxx]!
2963
+ if (cmp == 1) return i - 0.5; // It's between [xx, xx,xx*,?,*xx]!
2964
+ }
2965
+ return operators.length - 0.5;
2966
+ }
2967
+ }, {
2968
+ key: "opGetOperator",
2969
+ value: function opGetOperator(operators, arrow) {
2970
+ var expans = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
2971
+ var megota = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2972
+ var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
2973
+ if (!operators[index]) return 0;
2974
+ return operators[index].repeat;
2975
+ }
2976
+ }, {
2977
+ key: "opSetOperator",
2978
+ value: function opSetOperator(operators, val, arrow) {
2979
+ var expans = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
2980
+ var megota = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
2981
+ // if (arrow!=0&&val==0) return false;
2982
+ var index = PowiainaNum.opGetOperatorIndex(operators, arrow, expans, megota);
2983
+ if (!operators[index]) {
2984
+ operators.splice(Math.ceil(index), 0, {
2985
+ arrow: arrow,
2986
+ expans: expans,
2987
+ megota: megota,
2988
+ valuereplaced: expans === Infinity ? 1 : arrow == Infinity ? 0 : -1,
2989
+ repeat: val
2990
+ });
2991
+ return true;
2992
+ }
2993
+ operators[index].repeat = val;
2994
+ if (operators[index].repeat == 0) {
2995
+ operators.splice(index, 1);
2996
+ return true;
2997
+ }
2998
+ // this.normalize()
2999
+ return false;
3000
+ }
3055
3001
  }, {
3056
3002
  key: "fromBigInt",
3057
3003
  value: function fromBigInt(input) {
@@ -3630,6 +3576,7 @@
3630
3576
  PowiainaNum.POW_2_44_MOD_PI = 1.701173079953;
3631
3577
  //#endregion
3632
3578
  PowiainaNum.arrowFuncMap = new Map();
3579
+ PowiainaNum.beafFuncMap = new Map();
3633
3580
  //#region configurations
3634
3581
  /**
3635
3582
  * If you set this config to true,
@@ -1 +1 @@
1
- !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum={})}(this,(function(r){"use strict";function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function t(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,i(n.key),n)}}function n(r,e){return function(r){if(Array.isArray(r))return r}(r)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var n,a,i,o,u=[],l=!0,s=!1;try{if(i=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;l=!1}else for(;!(l=(n=i.call(t)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(r){s=!0,a=r}finally{try{if(!l&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(s)throw a}}return u}}(r,e)||u(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||u(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function o(r){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}function u(r,t){if(r){if("string"==typeof r)return e(r,t);var n={}.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(r,t):void 0}}var l,s=9007199254740991,f=15.954589770191003,c=11102230246251568e-32,h=1.444667861009766,g=/^(PN)?[\/\-\+]*(Infinity|NaN|(P+|P\^\d+ )?(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/,y=/^((\d+(\.\d*)?|\d*\.\d+)?([EeFf]([-\+]?)))*(0|\d+(\.\d*)?|\d*\.\d+)$/;function N(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:n,valuereplaced:e==1/0?0:t==1/0?1:-1}}function p(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var n=0;n<Math.min(e[0].length,e[1].length);n++){var a=e[0][n],i=e[1][n];if(a<i)return-1;if(a>i)return 1}return 0}function m(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var v=.5671432904097838;function w(r){var e,t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=n,o=a;if(!Number.isFinite(r))return r;if(o){if(0===r)return r;if(1===r)return v;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var u=0;u<100;++u){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<i*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function b(r){return 2==r.length}function d(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function E(r){return"x"===r?1/0:r}function O(r){return 4==r.length}function I(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function k(r){return"x"===r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function M(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"x"==r[2]&&"number"==typeof r[3]}function x(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new F(r)).isFinite())return r;if(n){if(r.eq(F.ZERO))return r;if(r.eq(F.ONE))return new F(v);e=F.log(r)}else{if(r.eq(F.ZERO))return F.NEGATIVE_INFINITY.clone();e=F.log(r.neg())}for(var a=0;a<100;++a){var i=e.neg().exp(),o=e.sub(r.mul(i)),u=e.add(F.ONE).sub(e.add(2).mul(o).div(F.mul(2,e).add(2)));if(u.eq(F.ZERO))return e;var l=e.sub(o.div(u));if(F.abs(l.sub(e)).lt(F.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function q(r,e){return p([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}function S(r,e,t){var n=new F(r),a=new F(e),i=new F(t),o=function(r,e,t){return new F(r).pow(new F(t).sub(e).add(1)).mul(new F(2).pow(new F(e).sub(t)))}(n,a,new F(i).omegalog(n.toNumber()));if(i.gt(n)){var u=S(n,a.add(1),i).sub(2),l=S(n,a,n),s=n.clone();return _(n,a,u.pow_base(s.div(l)).mul(l))}return o}function _(r,e,t){var n=new F(r),a=new F(e),i=new F(t);if(a.isInt())return F.arrow(n,a,i);if(i.gt(n)){var o=S(n,a,i),u=S(n,a,n),l=n.clone(),s=o.div(u).logBase(l.div(u));return _(n,a.add(1),F.add(2,s))}return F.arrFrac(n,function(r,e,t){var n=new F(2).logBase(r);return new F(e).sub(1).add(new F(t).logBase(r).sub(n).div(new F(1).sub(n)))}(n,a,i))}function R(r){for(var e=BigInt(64);r>=BigInt(1)<<e;)e*=BigInt(2);for(var t=e/BigInt(2);t>BigInt(0);)r>=BigInt(1)<<e?e+=t:e-=t,t/=BigInt(2);var n=e-BigInt(54),a=r>>n;return Math.log10(Number(a))+Math.LOG10E/Math.LOG2E*Number(n)}var T,F=function(){function r(e){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[l]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,r.blankArgumentConstructorReturnZero&&this.resetFromObject(r.ZERO);try{if(void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==o(e)){var n=r.fromObject(e);this.resetFromObject(n)}else if("string"==typeof e){var a=r.fromString(e);this.resetFromObject(a)}else if("bigint"==typeof e){var i=r.fromBigInt(e);this.resetFromObject(i)}else;}catch(e){if(console.error("Malformed input"),console.error(e),r.throwErrorOnResultNaN&&r.isNaN(this))throw new Error("NaN")}}return function(r,e,n){return e&&t(r.prototype,e),n&&t(r,n),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,n,a,i,o,u,l=this.clone().normalize(),h=new r(e);if(l.eq(r.POSITIVE_INFINITY)&&h.eq(r.NEGATIVE_INFINITY)||l.eq(r.NEGATIVE_INFINITY)&&h.eq(r.POSITIVE_INFINITY)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!l.isFinite())return l.clone();if(!h.isFinite())return h.clone();if(l.isZero())return h.clone();if(h.isZero())return l.clone();if(l.sign==-h.sign&&function(){var r=l.abs(),e=h.abs();return r.eq(e)}())return r.ZERO.clone();if(l.abs().lt(s)&&h.abs().lt(s)&&l.abs().gte(c)&&h.abs().gte(c))return r.fromNumber(l.toNumber()+h.toNumber());if(l.abs().lt(r.E_MSI_REC)||l.abs().gt(r.E_MSI)||h.abs().lt(r.E_MSI_REC)||h.abs().gt(r.E_MSI)){var g=l.maxabs(h);return l.abs().eq(g)?l:(h.abs().eq(g),h)}if(-1==l.sign)return l.neg().add(h.neg()).neg();l.cmpabs(h)>0?(o=l,u=h):(u=l,o=h);var y=o.toNumber()+u.toNumber();if(isFinite(y)&&0!==y)return r.fromNumber(y);var p=1;if(!(o.small||u.small||(null===(t=o.array[1])||void 0===t?void 0:t.repeat)||(null===(n=u.array[1])||void 0===n?void 0:n.repeat)||o.sign!=u.sign))return new r((o.array[0].repeat+u.array[0].repeat)*o.sign);var m=(o.small?-1:1)*((null===(a=o.array[1])||void 0===a?void 0:a.repeat)?o.array[0].repeat:Math.log10(o.array[0].repeat)),v=(u.small?-1:1)*((null===(i=u.array[1])||void 0===i?void 0:i.repeat)?u.array[0].repeat:Math.log10(u.array[0].repeat));if(m-v>f)return o;var w=-Math.floor(m),b=0,d=o.sign*Math.pow(10,m+w)+u.sign*Math.pow(10,v+w);if(d>0&&(b=Math.log10(d)-w),d<0&&(b=Math.log10(-d)-w,p*=-1),0==d)return r.ZERO.clone();var E=r.NaN.clone();return E.sign=1,E.array=b>f||b<-f?[N(b,0),N(1,1)]:[N(Math.pow(10,Math.abs(b)),0)],E.small=b<0,E.sign*=p,E}},{key:"plus",value:function(r){return this.add(r)}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"minus",value:function(r){return this.sub(r)}},{key:"mul",value:function(e){var t=this.clone(),n=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&n.eq(r.NEGATIVE_INFINITY)||n.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&n.isZero()||n.isInfiNaN()&&t.isZero()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(t.eq(r.NEGATIVE_INFINITY)&&n.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!n.isFinite())return n.clone();if(t.isZero()||n.isZero())return r.ZERO.clone();var a,i=t.toNumber()*n.toNumber();return isFinite(i)&&0!==i?r.fromNumber(i):((a=t.abs().log10().add(n.abs().log10()).pow10()).sign=t.sign*n.sign,a)}},{key:"times",value:function(r){return this.mul(r)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"divide",value:function(r){return this.div(r)}},{key:"mod",value:function(e){var t=new r(e),n=this.div(t);return n.sub(n.floor()).mul(t)}},{key:"modulus",value:function(r){return this.mod(r)}},{key:"pow10",value:function(){var e,t,n=this.clone();return this.isFinite()?n.isneg()?(n.sign*=-1,n.pow10().rec()):n.lt(308.25471555991675)?r.fromNumber(Math.pow(10,n.toNumber())):n.small?n.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(n.array[0].repeat,-1))):(n.gt(r.TETRATED_MSI)||(n.setOperator((null!==(t=null===(e=n.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),n.normalize()),n):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(t.isneg())return this.pow(t.neg()).rec();if(this.isneg()){if(!t.isInt()){if(t.small&&t.rec().div(2).eq(1))return this.neg().pow(t).neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}var n=this.abs().pow(t);return n.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),n}var a=this.toNumber(),i=t.toNumber(),o=Math.pow(a,i);if(isFinite(o)&&0!==o)return r.fromNumber(o);if(this.isZero()&&t.isZero())return r.ONE.clone();if(this.isZero())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(this.gt(0))return this.log10().mul(t).pow10();if(t.rec().mod(2).eq(1))return this.neg().log10().mul(t).pow10().neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"log2",value:function(){return this.log(2)}},{key:"logBase",value:function(r){return this.log(r)}},{key:"ln",value:function(){return this.log()}},{key:"pLog10",value:function(){return this.isneg()?r.ZERO:this.log10()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(s)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(s)){if(this.lt(24))return r.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var t=.9189385332046727;t+=((r-=1)+.5)*Math.log(r),t-=r;var n=r*r,a=r;return t+=1/(12*a),t-=1/(360*(a*=n)),t+=1/(1260*(a*=n)),t-=1/(1680*(a*=n)),t+=1/(1188*(a*=n)),t-=691/(360360*(a*=n)),t+=7/(1092*(a*=n)),t-=3617/(122400*(a*=n)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var n=e*e,a=e,i=12*a,o=1/i,u=(t-=e)+o;if(u===t)return r.exp(t);if((u=(t=u)-(o=1/(i=360*(a*=n))))===t)return r.exp(t);t=u;var l=1/(i=1260*(a*=n));return t+=l,t-=l=1/(i=1680*(a*=n)),r.exp(t)}return this.gt(s)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=e;if(this.lt(-.3678794411710499)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(t)return this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(w(this.toNumber())):this.lt(s)?r.fromNumber(w(this.sign*this.getOperator(0))):this.lt("eee15")?x(this):this.log();if(-1===this.sign){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return this.lt(9e15)?r.fromNumber(w(this.sign*this.array[0].repeat,1e-10,!1)):this.lt(r.E_MSI)?x(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.clone(),i=new r(e),o=new r(n);if(a.isNaN()||i.isNaN()||o.isNaN()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.eq(1))return r.ONE.clone();if(o.neq(r.ONE)&&a.gte(h)&&(i=i.add(o.slog(a))),i.isInfi()&&i.sign>0)return a.gte(h)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(i.lte(-2)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.isZero()){if(i.isZero()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return i.gte(s/2)||i.toNumber()%2==0?r.ZERO.clone():r.ONE.clone()}if(a.eq(r.ONE)){if(i.eq(r.ONE.neg())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return r.ONE.clone()}if(i.eq(r.ONE.neg()))return r.ZERO.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return a;if(i.eq(2))return a.pow(a);if(a.eq(2)){if(i.eq(3))return r.fromNumber(16);if(i.eq(4))return r.fromNumber(65536)}var u=a.max(i);if(u.gt(r.PENTATED_MSI))return u;if(u.gt(r.TETRATED_MSI)||i.gt(s)){if(this.lt(h))return(t=a.ln().neg()).lambertw().div(t);var l=a.slog(10).add(i);return l.setOperator(l.getOperator(2)+1,2),l.normalize(),l}for(var f=i.toNumber(),c=Math.floor(f),g=a.pow(f-c),y=r.NaN,N=0,p=r.E_MSI.clone();0!==c&&g.lt(p)&&N<100;++N)if(c>0){if(g=a.pow(g),y.eq(g)){c=0;break}y=g,--c}else{if(g=g.log(a),y.eq(g)){c=0;break}y=g,++c}return(100==N||this.lt(h))&&(c=0),g.setOperator(g.getOperator(1)+c,1),g.normalize(),g}},{key:"tetr",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.tetrate(r,e)}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),n=new r(e);if(t.isInfiNaN())return t;if(n.isNaN())return n;if(n.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(n))return r.ONE.clone();if(n.lt(h)){var a=n.tetrate(1/0);if(t.eq(a))return r.POSITIVE_INFINITY.clone();if(t.gt(a)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}}if(t.max(n).gt(r.PENTATED_MSI))return t.gt(n)?t:r.ZERO.clone();if(t.max(n).gt(r.TETRATED_MSI)&&t.gt(n))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return n.pow(t).sub(2);var i=0,o=t.getOperator(1)-n.getOperator(1);if(o>3){var u=o-3;i+=u,t.setOperator(t.getOperator(1)-u,1)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=r.pow(e,t),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=r.log(t,e)}if(t.gt(10))return new r(i);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/h)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"tetrate_10",value:function(){return r.tetrate(10,this)}},{key:"iteratedlog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=this.clone(),a=new r(t),i=new r(e);return i.isZero()?n:i.eq(r.ONE)?n.log(a):a.tetrate(n.slog(a).sub(i))}},{key:"omegalog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this,n=t.clone();if(n.isInfiNaN())return n;if(n.gte("10{1,2}e15.954589770191003"))return n;var a=new r(e).clone();if(n.getOperator(1/0)>=1)return n.setOperator(n.getOperator(1/0)-1,1/0,1,1),n;if(n.arr01[n.array.length-1][0]>=98){var i=new r(n.array[n.arr01.length-1][0]);return i}if(t.lt(r.pentate(e,2)))return new r(t).anyarrow_log(3)(e);for(var o=8,u=0;o>=Math.pow(10,-10);)r.arrFrac(a,u+o).lte(n)&&(u+=o),o/=2;return new r(u)}},{key:"arrow",value:function(e){var t=this.clone(),n=new r(e);return n.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}):n.isInt()?n.eq(0)?function(r){return t.mul(r)}:n.eq(1)?function(r){return t.pow(r)}:n.eq(2)?function(r){return t.tetrate(r)}:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=new r(e),u=new r(a),l=r.arrowFuncMap.get("".concat(t.toString()," ").concat(n.toString()," ").concat(o.toString()," ").concat(i));if(l)return l.clone();var f=function(){var e;if(t.isNaN()||o.isNaN()||u.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO)){if(o.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(u.neq(r.ONE)&&(o=o.add(u.anyarrow_log(n)(t))),t.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return t.clone();if(n.gt(r.MSI))return(e=n.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var a=n.toNumber();if(o.eq(2))return t.arrow(a-1)(t,u,i+1);if(t.max(o).gt(r.arrowMSI(a+1)))return t.max(o);if(t.gt(r.arrowMSI(a))||o.gt(s)){t.gt(r.arrowMSI(a))?((e=t.clone()).setOperator(e.getOperator(a)-1,a),e.normalize()):e=t.gt(r.arrowMSI(a-1))?new r(t.getOperator(a-1)):r.ZERO;var l=e.add(o);return l.setOperator(l.getOperator(a)+1,a),l.normalize(),l}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[N(10,0),N(1,a)]});var f=o.toNumber(),c=Math.floor(f),h=n.sub(r.ONE);e=t.arrow(h)(f-c,u,i+1);for(var g=0,y=r.arrowMSI(a-1);0!==c&&e.lt(y)&&g<100;g++)c>0&&(e=t.arrow(h)(e,u,i+1),--c);return 100==g&&(c=0),e.setOperator(e.getOperator(a-1)+c,a-1),e.normalize(),e}();return i<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(n.toString()," ").concat(o.toString()," ").concat(i),f.clone()),f}:function(r){return _(t,n,r)}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),n=new r(e),a=n.toNumber();if(n.gt(s))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!n.isInt()||n.lt(0)?function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}:n.eq(0)?function(r){return t.div(r)}:n.eq(1)?function(r){return t.log(r)}:n.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e);if(i.isNaN())return i;if(i.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(i))return r.ONE.clone();if(t.max(i).gt(r.arrowMSI(a+1)))return t.gt(i)?t:r.ZERO.clone();if(t.max(i).gt(r.arrowMSI(a))&&t.gt(i))return t.setOperator(t.getOperator(a)-1,a),t.normalize(),t.sub(t.getOperator(a-1));if(t.lt(r.ZERO.clone())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}var o=0,u=t.getOperator(a)-i.getOperator(a);if(u>3){var l=u-3;o+=l,t.setOperator(t.getOperator(a)-l,a)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=t.arrow(a-1)(e),--o;else{if(t.lte(1))return new r(o+t.toNumber()-1);++o,t=t.anyarrow_log(a-1)(e,n+1)}if(t.gt(10))return new r(o);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}}},{key:"arrow_height_inverse",value:function(r){return this.anyarrow_log(r)}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r,e){return this.arrow(3)(r,e)}},{key:"hexate",value:function(r,e){return this.arrow(4)(r,e)}},{key:"pent",value:function(r,e){return this.arrow(3)(r,e)}},{key:"penta_log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this.anyarrow_log(3)(r)}},{key:"expansion",value:function(e){var t,n=new r(e),a=this.clone();if(n.lt(r.ZERO)||!n.isInt())return r.NaN.clone();if(n.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(this.eq(2))return new r(4);if(n.eq(0))return r.ONE.clone();if(a.gt("10{1,2}".concat(s))||n.gt(s)){a.gt("10{1,2}".concat(s))?((t=a.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=a.gt("10{".concat(s,"}10"))?new r(a.getOperator(1/0)):r.ZERO;var i=t.add(n);return i.setOperator(i.getOperator(1,2)+1,1,2),i.normalize(),i}var o,u=n.toNumber()-1;for(t=a.clone(),o=0;0!==u&&t.lt(s)&&o<100;++o)u>0&&(t=a.arrow(t)(a),--u);return 100==o&&(u=0),t.setOperator(t.getOperator(1/0)+u,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),n=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()};if(t.eq(0))return function(r){return n.arrow(r)(n)};if(t.eq(1))return function(r){return n.expansion(r)};var a=t;return function(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(n.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.eq(r.ZERO)){if(o.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return n.clone();if(a.gt(r.MSI))return(t=a.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var u=a.toNumber();if(o.eq(2))return n.expansionArrow(u-1)(n,i+1);if(n.max(o).gt("10{".concat(u+1,",2}").concat(s)))return n.max(o);if(n.gt("10{".concat(u,",2}").concat(s))||o.gt(s)){n.gt("10{".concat(u,",2}").concat(s))?((t=n.clone()).setOperator(t.getOperator(u,2)-1,u,2),t.normalize()):t=n.gt("10{".concat(u-1,",2}").concat(s))?new r(n.getOperator(u-1,2)):r.ZERO;var l=t.add(o);return l.setOperator(l.getOperator(u,2)+1,u,2),l.normalize(),l}if(i>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[N(10,0),N(1,u,2)]});var f=o.toNumber(),c=Math.floor(f),h=a.sub(r.ONE);t=n.expansionArrow(h)(f-c,i+1);for(var g=0,y=new r("10{".concat(u-1,",2}").concat(s));0!==c&&t.lt(y)&&g<100;g++)c>0&&(t=n.expansionArrow(h)(t,i+1),--c);return 100==g&&(c=0),t.setOperator(t.getOperator(u-1,2)+c,u-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"clampMin",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.max.apply(r,[this].concat(t))}},{key:"clampMax",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.min.apply(r,[this].concat(t))}},{key:"clamp",value:function(r,e){return this.max(r).min(e)}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(i)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(i)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);if(this.isNaN()||t.isNaN())return 2;if(this.sign<t.sign)return-1;if(this.sign>t.sign)return 1;var n=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(n?-1:1);if(t.small&&!this.small)return 1*(n?-1:1);var a=1;this.small&&t.small&&(a*=-1),n&&(a*=-1);for(var i=0,o=0;this.array.length-1-o>=0&&t.array.length-1-o>=0;o++){var u=this.array[this.array.length-1-o],l=t.array[t.array.length-1-o];if(u.repeat===1/0&&l.repeat===1/0)return this.small===t.small?0:t.small?1:-1;if(u.repeat===1/0){i=1;break}if(l.repeat===1/0){i=-1;break}var s=p([u.megota,u.expans,u.arrow,u.repeat],[l.megota,l.expans,l.arrow,l.repeat]);if(1==s){i=1;break}if(-1==s){i=-1;break}}return i*a+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"equals",value:function(r){return this.eq(r)}},{key:"notEquals",value:function(r){return this.neq(r)}},{key:"eq_tolerance",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-7,n=new r(e);return this.sub(n).lte(this.max(n).mul(t))}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"recip",value:function(){return this.rec()}},{key:"reciprocate",value:function(){return this.rec()}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e.sign=this.sign,e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(s/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"getOperatorIndex",value:function(r){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=0;n<this.array.length;n++){var a=p([this.array[n].megota,this.array[n].expans,this.array[n].arrow],[t,e,r]);if(0==a)return n;if(1==a)return n-.5}return this.array.length-.5}},{key:"getOperator",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.getOperatorIndex(r,e,t);return this.array[n]?this.array[n].repeat:0}},{key:"setOperator",value:function(r,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=this.getOperatorIndex(e,t,n);return this.array[a]?(this.array[a].repeat=r,!1):(this.array.splice(Math.ceil(a),0,{arrow:e,expans:t,megota:n,valuereplaced:t===1/0?1:e==1/0?0:-1,repeat:r}),!0)}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.array.length>2?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString_core",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],n="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");n=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(n,")^").concat(t.repeat," "):"".concat(n),r+="".concat(n)}return r}},{key:"toString",value:function(){try{return this.toString_core()}catch(r){return console.error("Checked error when converting to string"),"NaN"}}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}},{key:"normalize",value:function(){var e=!0,t=this;void 0===this.array&&(t.array=[N(NaN,0,1,1)]),void 0===this.sign&&(this.sign=0),void 0===this.layer&&(this.layer=0);for(var n=0;n<this.array.length;n++)if(this.array[n].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var a=1;a<t.array.length;++a){var i=t.array[a];if(null!==i.arrow&&void 0!==i.arrow||(i.arrow=0),null!==i.expans&&void 0!==i.expans||(i.expans=1),null!==i.megota&&void 0!==i.megota||(i.megota=1),isNaN(i.arrow)||isNaN(i.repeat)||isNaN(i.expans)||isNaN(i.megota))return t.array=[N(NaN,0,1,1)],t;if(!isFinite(i.repeat)||!isFinite(i.megota))return t.array=[N(1/0,0,1,1)],t;Number.isInteger(i.arrow)||(i.arrow=Math.floor(i.arrow)),Number.isInteger(i.repeat)||(i.repeat=Math.floor(i.repeat)),Number.isInteger(i.expans)||(i.expans=Math.floor(i.expans)),Number.isInteger(i.megota)||(i.megota=Math.floor(i.megota))}t.array.length||(t.small=!t.small,t.array=[N(1/0)]);do{e=!1,this.array.sort(q);for(var o=1;o<t.array.length-1;++o)t.array[o].arrow==t.array[o+1].arrow&&t.array[o].expans==t.array[o+1].expans&&t.array[o].megota==t.array[o+1].megota&&(t.array[o].repeat+=t.array[o+1].repeat,t.array.splice(o+1,1),--o,e=!0);for(var u=1;u<t.array.length;++u)0===t.array[u].arrow||0!==t.array[u].repeat&&null!==t.array[u].repeat&&void 0!==t.array[u].repeat?0==t.array[u].arrow&&t.array[u].expans>=2&&(t.array[u].arrow=1/0,t.array[u].valuereplaced=0,t.array[u].expans=t.array[u].expans-1):(t.array.splice(u,1),--u);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<f&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>s&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),this.array[this.array.length-1].megota>s?(this.layer++,this.array=[N(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[N(10),N(1,10,10,this.array[0].repeat)],e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!0),1==this.array.length&&1==this.array[0].repeat&&this.small&&(this.small=!1,e=!0),this.array.length>=2&&!isFinite(this.array[1].arrow)&&(this.array[1].repeat>1?(this.array.push(N(this.array[1].repeat-1,1/0,this.array[1].expans,this.array[1].megota)),this.array[1].repeat=1,this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10):(this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10)),this.array.length>=2&&this.array[1].arrow>=s&&isFinite(this.array[1].arrow)&&(this.array[0].repeat=this.array[1].arrow,this.array[1]=N(1,1/0,this.array[1].expans,this.array[1].megota));t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array.length<r.maxOps&&t.array[0].repeat<s&&t.array[1].arrow>=2&&t.array[1].repeat>1&&isFinite(t.array[1].arrow)&&(t.array[1].repeat--,t.array.splice(1,0,N(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>s&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>s&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);return this}},{key:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){if(r.array){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}}}],[{key:"add",value:function(e,t){return new r(e).add(t)}},{key:"plus",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"minus",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"times",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"divide",value:function(e,t){return new r(e).div(t)}},{key:"mod",value:function(e,t){return new r(e).mod(t)}},{key:"modulus",value:function(e,t){return new r(e).mod(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"log2",value:function(e){return new r(e).log2()}},{key:"logBase",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"pLog10",value:function(e){return new r(e).pLog10()}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"affordGeometricSeries",value:function(e,t,n,a){return this.affordGeometricSeries_core(new r(e),new r(t),new r(n),a)}},{key:"affordGeometricSeries_core",value:function(r,e,t,n){var a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=e.mul(t.pow(n));return r.div(i).mul(t.sub(1)).add(1).clampMin(a?1:-1/0).log10().div(t.log10()).floor()}},{key:"sumGeometricSeries",value:function(e,t,n,a){return this.sumGeometricSeries_core(e,new r(t),new r(n),a)}},{key:"sumGeometricSeries_core",value:function(e,t,n,a){return t.mul(n.pow(a)).mul(r.sub(1,n.pow(e))).div(r.sub(1,n))}},{key:"affordArithmeticSeries",value:function(e,t,n,a){return this.affordArithmeticSeries_core(new r(e),new r(t),new r(n),new r(a))}},{key:"affordArithmeticSeries_core",value:function(r,e,t,n){var a=e.add(n.mul(t)).sub(t.div(2)),i=a.pow(2);return a.neg().add(i.add(t.mul(r).mul(2)).sqrt()).div(t).floor()}},{key:"sumArithmeticSeries",value:function(e,t,n,a){return this.sumArithmeticSeries_core(new r(e),new r(t),new r(n),new r(a))}},{key:"sumArithmeticSeries_core",value:function(r,e,t,n){var a=e.add(n.mul(t));return r.div(2).mul(a.mul(2).add(r.sub(1).mul(t)))}},{key:"tetrate",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,n)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"iteratedlog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return new r(e).iteratedlog(t,n)}},{key:"arrow",value:function(e,t,n){return new r(e).arrow(t)(n)}},{key:"arrFrac",value:function(e,t){if(new r(t).lt(2))return r.pentate(e,t);var n=new r(e).clone(),a=new r(t).clone();return new r(n).arrow(a.floor().add(1))(n.div(2).pow(a.sub(a.floor())).mul(2))}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(s))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,n){return new r(e).arrow(t.sub(2))(n)}}},{key:"pentate",value:function(e,t,n){return new r(e).arrow(3)(t,n)}},{key:"hexate",value:function(e,t,n){return new r(e).arrow(4)(t,n)}},{key:"pent",value:function(e,t,n){return new r(e).arrow(3)(t,n)}},{key:"penta_log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new r(e).anyarrow_log(3)(t)}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];function a(e){return void 0!==t[e]&&null!==t[e]?new r(t[e]):new r(1)}return a(0).eq(1)?new r(1):a(1).eq(1)?new r(a(0)):a(5).eq(2)&&(a(4).gte(2)||a(3).gte(2)||a(2).gte(2))||0!==t.slice(6).map((function(e){return new r(e)})).filter((function(r){return r.gt(1)})).length?r.POSITIVE_INFINITY.clone():r.BEAF_core(a(0),a(1),a(2),a(3),a(4),a(5))}},{key:"BEAF_core",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,f=new r(e),c=new r(t);function h(e){var t;return new r(null!==(t=[a,i,o,u][e])&&void 0!==t?t:1)}if(f.eq(1))return new r(1);if(c.eq(1))return new r(f);if(c.isZero())return new r(1);if(f.lt(0)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(new r(u).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(0)&&h(1).eq(1)&&h(2).eq(1))return f.mul(c);if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return f.pow(c);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return f.tetrate(c);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return f.arrow(h(0))(c);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return f.expansionArrow(h(0))(c);var g=h(0).toNumber(),y=h(1),p=h(2),m=h(3);if(m.eq(2)){if(1!=g)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(p.neq(1))return r.POSITIVE_INFINITY.clone();if(c.gte(s))return r.POSITIVE_INFINITY.clone();var v=new r(10);return v.layer=c.toNumber(),v.normalize(),v}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(p.gt(s)){var b=new r(p);return b.layer++,b.normalize(),b}function d(r){return isFinite(r)?r.toString():"!"}function E(r,e,t){var a=n(w(r,e,t),3),i=a[0],o=a[1],u=a[2];return"10{".concat(d(i),",").concat(d(o),",").concat(u,"}").concat(s)}var O=f.clone(),I=new r(h(0)),k=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=new r(e);if(O.isNaN()||a.isNaN())return r.NaN.clone();if(a.lt(r.ZERO))return r.NaN.clone();if(O.eq(r.ZERO)){if(a.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(O.eq(r.ONE))return r.ONE.clone();if(a.eq(r.ZERO))return r.ONE.clone();if(a.eq(r.ONE))return O.clone();if(I.eq(0))return r.BEAF_core(O,O,c,y.sub(1),p,u,n+1);if(y.eq(0))return r.BEAF_core(O,O,O,c,p.sub(1),u,n+1);if(p.eq(0))return r.BEAF_core(O,O,O,O,y,new r(u).sub(1),n+1);if(p.gt(s))throw new Error("Not implemeneted");if(y.gt(s))return(t=new r(y)).setOperator(t.getOperator(1,1/0,p.toNumber())+1,1,1/0,p.toNumber()),t;if(I.gt(r.MSI))return(t=I.clone()).setOperator(t.getOperator(1/0,y.toNumber(),p.toNumber())+1,1/0,y.toNumber(),p.toNumber()),t;var i=I.toNumber();if(a.eq(2))return r.BEAF_core(O,O,i-1,y,p,u,n+1);if(O.max(a).gt(E(i+1,y.toNumber(),p.toNumber())))return O.max(a);if(O.gt(E(i+1,y.toNumber(),p.toNumber()))||a.gt(s)){O.gt(E(i,y.toNumber(),p.toNumber()))?((t=O.clone()).setOperator(t.getOperator(i,y.toNumber(),p.toNumber())-1,i,y.toNumber(),p.toNumber()),t.normalize()):t=O.gt(E(i-1,y.toNumber(),p.toNumber()))?new r(O.getOperator(i-1,y.toNumber(),p.toNumber())):r.ZERO;var o=t.add(a);return o.setOperator(o.getOperator(i,y.toNumber(),p.toNumber())+1,i,y.toNumber(),p.toNumber()),o.normalize(),o}if(n>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[N(10,0),N(1,i,y.toNumber(),p.toNumber())]});var l=a.toNumber(),f=Math.floor(l),h=I.sub(r.ONE);t=r.BEAF_core(O,l-f,h,y,p,m,n+1);for(var g=0,v=E(i-1,y.toNumber(),p.toNumber());0!==f&&t.lt(v)&&g<100;g++)f>0&&(t=r.BEAF_core(O,t,h,y,p,m,n+1),--f);return 100==g&&(f=0),t.setOperator(t.getOperator(i-1,y.toNumber(),p.toNumber())+f,i-1,y.toNumber(),p.toNumber()),t.normalize(),t}(c,l);return k}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(var i=0;i<n.length;i++)e.lt(n[i])&&(e=new r(n[i]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(var i=0;i<n.length;i++)e.gt(n[i])&&(e=new r(n[i]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"eq",value:function(e,t){return new r(e).eq(t)}},{key:"equals",value:function(e,t){return new r(e).eq(t)}},{key:"neq",value:function(e,t){return new r(e).neq(t)}},{key:"notEquals",value:function(e,t){return new r(e).notEquals(t)}},{key:"lt",value:function(e,t){return new r(e).lt(t)}},{key:"gt",value:function(e,t){return new r(e).gt(t)}},{key:"lte",value:function(e,t){return new r(e).lte(t)}},{key:"gte",value:function(e,t){return new r(e).gte(t)}},{key:"rec",value:function(e){return new r(e).rec()}},{key:"recip",value:function(e){return new r(e).rec()}},{key:"reciprocate",value:function(e){return new r(e).rec()}},{key:"floor",value:function(e){return new r(e).floor()}},{key:"ceil",value:function(e){return new r(e).ceil()}},{key:"round",value:function(e){return new r(e).round()}},{key:"trunc",value:function(e){return new r(e).trunc()}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"fromBigInt",value:function(e){var t=new r(0),n=e<BigInt(0)?-e:e;return t.sign=e<BigInt(0)?-1:1,t.array=n<=s?[N(Number(n))]:[N(R(n)),N(1,1)],t.normalize(),t}},{key:"fromNumber",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),Number.isNaN(e))return t;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[N(1/0,0)],t;e>0&&(t.sign=1)}var n=Math.abs(e);return n==1/0?t.array=[N(1/0,0)]:n>=c&&n<1?(t.small=!0,t.array=[N(1/n,0)]):n<c?(t.small=!0,t.array=[N(-Math.log10(n),0),N(1,1)]):n<=s?t.array=[N(n,0)]:(t.setOperator(Math.log10(n),0),t.array=[N(Math.log10(n),0),N(1,1)]),t}},{key:"fromString",value:function(e){if(r.usingBreakEternityLikeFromString&&y.test(e)){var t=e.match(/(e+-)(\d+(.\d+)?)/);if(t){var n=t[1].length;e="/"+"e".repeat(n-1)+t[2]}}return this.fromString_core(e)}},{key:"fromString_core",value:function(e){var t,n,a,i,o,u,l,c=new r(NaN);if(e.startsWith("PN")&&(e=e.substring(2)),"NaN"==e)return r.NaN.clone();if(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/J\^(\d+)/g,"(10{!})^$1")).replace(/J/g,"10{!}")).replace(/K\^(\d+)/g,"(10{1,2})^$1")).replace(/K/g,"10{1,2}")).replace(/L\^(\d+)/g,"(10{2,2})^$1")).replace(/L/g,"10{2,2}")).replace(/M\^(\d+)/g,"(10{!,2})^$1")).replace(/M/g,"10{!,2}")).replace(/N\^(\d+)/g,"(10{1,!})^$1")).replace(/N/g,"10{1,!}"),/^.*e-.*(e|\^).*/.test(e)&&(e="/10^"+e.substring(e.indexOf("e-"))),!isNaN(Number(e))){var h=Number(e),y=!1;if(0==h?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(y=!0):y=!0,!y){var p=e.search(/e/),v=e.substring((-1==p?e.length:p)+1),w=e.substring(0,-1==p?void 0:p),b=[0,0];if(b[1]=Number(v||"0"),Number(w)>=1){var d=w.length>=17?m(w):Math.log10(Number(w)),E=Math.floor(d),O=d-E;b[0]=Math.pow(10,O),b[1]+=E}else{var I=(l=w.match(/^0\.(0*)[1-9]/))?l[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(h)&&y)return c=r.fromNumber(Number(e))}if(-1!==e.indexOf("l")&&-1!==e.indexOf("s")&&-1!==e.indexOf("a")){var k=function(r){var e=r.match(/l(\d+)\s+s(\d+)\s+a(\[.*\])/);try{if(e)return{lValue:parseInt(e[1]),sValue:parseInt(e[2]),array:JSON.parse(e[3])}}catch(r){return null}return null}(e);if(!k||0!==k.sValue&&1!==k.sValue&&-1!==k.sValue)throw"[PowiainaNum 0.2 error]malformed input: "+e;return(c=r.fromObject(k.array)).layer=k.lValue,c.sign=k.sValue,c.small=!1,c.normalize(),c}if(e=function(r){for(var e="",t=!1,n=0;n<r.length;n++){var a=r[n];"{"===a?(t=!0,e+=a):"}"===a?(t=!1,e+=a):","===a?t&&(e+=a):e+=a}return e}(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)[Pp][Tt]/g,"(10^)^$1 ")),!g.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var M=!1,x=!1;if("-"==e[0]||"+"==e[0]){var q=e.search(/[^-\+]/);M=(null!==(n=null===(t=e.substring(0,q).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==n?n:0)%2==1,e=e.substring(q)}if("/"==e[0]){var S=e.search(/[^\/]/);x=(null!==(i=null===(a=e.substring(0,S).match(/\//g))||void 0===a?void 0:a.length)&&void 0!==i?i:0)%2==1,e=e.substring(S)}if("NaN"==e)c.array=[N(NaN)];else if("Infinity"==e)c.array=[N(1/0)];else{var _,R,T,F;for(c.sign=1,c.array=[N(0)],"P"==e[0]&&("^"==e[1]?(_=e.substring(2).search(/[^0-9]/)+2,c.layer=Number(e.substring(2,_)),e=e.substring(_+1)):(_=e.search(/[^P]/),c.layer=_,e=e.substring(_)));e&&/^(\(?10[\^\{])/.test(e);){var A=void 0,Z=void 0,P=void 0;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])A=_=e.substring(2).search(/[^\^]/),R=_+2;else{_=e.indexOf("}");var B=e.substring(3,_).split(",");A=Number("!"==B[0]?1/0:B[0]),Z=Number(null!==(o="!"==B[1]?1/0:B[1])&&void 0!==o?o:1),P=Number(null!==(u=B[2])&&void 0!==u?u:1),R=_+1}")"==(e=e.substring(R))[0]?(_=e.indexOf(" "),T=Number(e.substring(2,_)),e=e.substring(_+1)):T=1,1==A&&1==Z&&1==P?c.array.length>=2&&1==c.array[1].arrow?c.array[1].repeat+=T:c.array.splice(1,0,N(T,1,Z,P)):2==A&&1==Z&&1==P?(_=c.array.length>=2&&1==c.array[1].arrow?c.array[1].repeat:0,(R=c.array[0].repeat)>=1e10&&++_,R>=10&&++_,c.array[0].repeat=_,c.array.length>=2&&1==c.array[1].arrow&&c.array.splice(1,1),F=c.getOperatorIndex(2),Number.isInteger(F)?c.array[F].repeat+=T:c.array.splice(Math.ceil(F),0,N(T,2,Z,P))):isFinite(A)?(_=c.getOperator(A-1),(R=c.getOperator(A-2))>=10&&++_,F=c.getOperatorIndex(A),c.array.splice(1,Math.ceil(F)-1),c.array[0].repeat=_,Number.isInteger(F)?c.array[1].repeat+=T:c.array.splice(1,0,N(T,A,Z,P))):c.array.splice(1,0,N(T,A,Z,P))}_=e.split(/[Ee]/),R=[c.array[0].repeat,0],T=1;for(var V=_.length-1;V>=0;--V){R[0]<f&&0===R[1]?R[0]=Math.pow(10,T*R[0]):-1==T?(0===R[1]?R[0]=Math.pow(10,T*R[0]):1==R[1]&&R[0]<=Math.log10(Number.MAX_VALUE)?R[0]=Math.pow(10,T*Math.pow(10,R[0])):R[0]=0,R[1]=0):R[1]++;var z=_[V].indexOf("."),Y=-1==z?_[V].length:z;0===R[1]?Y>=17?(R[0]=Math.log10(R[0])+m(_[V].substring(0,Y)),R[1]=1):_[V]&&(R[0]*=Number(_[V])):(F=Y>=17?m(_[V].substring(0,Y)):_[V]?Math.log10(Number(_[V])):0,1==R[1]?R[0]+=F:2==R[1]&&R[0]<f+Math.log10(F)&&(R[0]+=Math.log10(1+Math.pow(10,Math.log10(F)-R[0])))),R[0]<f&&R[1]?(R[0]=Math.pow(10,R[0]),R[1]--):R[0]>s&&(R[0]=Math.log10(R[0]),R[1]++)}c.array[0].repeat=R[0],R[1]&&(c.array.length>=2&&1==c.array[1].arrow&&1==c.array[1].expans&&1==c.array[1].megota?c.array[1].repeat+=R[1]:c.array.splice(1,0,N(R[1],1,1,1)))}return M&&(c.sign*=-1),x&&(c.small=!c.small),c.normalize(),c.normalize(),c}},{key:"fromObject",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!b(t))return!1;if(!d(t))return!1}return!0}(e)){for(var n=0;n<e.length;n++)t.array[n]={arrow:e[n][0],expans:1,megota:1,repeat:e[n][1]};return t.small=!1,t.sign=1,t.layer=0,t}if(function(r){return null!==r&&"object"===o(r)&&("mag"in r&&"number"==typeof r.mag&&("layer"in r&&"number"==typeof r.layer&&("sign"in r&&"number"==typeof r.sign)))}(e)){var a=e,i=a.mag<0,u=new r(1);return a.layer>=s?u.array=[N(Math.log10(a.layer)),N(1,1),N(1,2)]:a.layer>=1?u.array=[N(Math.abs(a.mag)),N(a.layer,1)]:u.array=[N(a.mag)],u.small=i,u.normalize(),u}if(function(r){if(!Array.isArray(r))return!1;if("number"!=typeof r[0])return!1;for(var e=1;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!O(t))return!1;if(!I(t)&&!k(t)&&!M(t))return!1}return!0}(e)){var l=e;t.array[0]=N(l[0]);for(var f=1;f<l.length;f++){var c=l[f];t.array[1]=N(c[1],E(c[0]),E(c[2]),c[3])}return t.small=!1,t.sign=1,t.layer=0,t}return t.resetFromObject(e),t}},{key:"grahalFunction",value:function(e){var t=new r(e);return!t.isInt()||t.lt(0)||t.isNaN()?r.NaN.clone():t.eq(1)?new r("10^^^(10^)^7625597484984 3638334640023.7783"):t.lte(s)?new r("(10{!})^".concat(t.toNumber()," 10^^^(10^)^7625597484984 3638334640023.7783")):r.BEAF(3,t,1,2)}}])}();l=Symbol.toStringTag,F.ZERO=new F({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),F.ONE=new F({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),F.MSI=new F(s),F.MSI_REC=((T=new F(s)).small=!0,T),F.E_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),F.EE_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),F.E_MSI_REC=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),F.TETRATED_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:s-2}],small:!1,layer:0,sign:1}),F.PENTATED_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:s-1}],small:!1,layer:0,sign:1}),F.TRITRI=new F({small:!1,layer:0,sign:1,array:[N(3638334640023.7783,0,1,1),N(7625587484984,1,1,1)]}),F.GRAHAMS_NUMBER=new F("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),F.POSITIVE_INFINITY=new F(1/0),F.NEGATIVE_INFINITY=new F(-1/0),F.NaN=new F({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),F.E=new F(Math.E),F.LN2=new F(Math.LN2),F.LN10=new F(Math.LN10),F.LOG2E=new F(Math.LOG2E),F.LOG10E=new F(Math.LOG10E),F.PI=new F(Math.PI),F.SQRT1_2=new F(Math.SQRT1_2),F.SQRT2=new F(Math.SQRT2),F.maxOps=100,F.POW_2_44_MOD_PI=1.701173079953,F.arrowFuncMap=new Map,F.usingBreakEternityLikeFromString=!0,F.blankArgumentConstructorReturnZero=!1,F.throwErrorOnResultNaN=!1,r.arraySortFunction=q,r.default=F,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
1
+ !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).PowiainaNum={})}(this,(function(r){"use strict";function e(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function t(r,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(r,o(n.key),n)}}function n(r,e){return function(r){if(Array.isArray(r))return r}(r)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var n,a,o,i,u=[],l=!0,s=!1;try{if(o=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;l=!1}else for(;!(l=(n=o.call(t)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(r){s=!0,a=r}finally{try{if(!l&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(s)throw a}}return u}}(r,e)||u(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||u(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"==typeof e?e:e+""}function i(r){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}function u(r,t){if(r){if("string"==typeof r)return e(r,t);var n={}.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(r,t):void 0}}var l,s=9007199254740991,c=15.954589770191003,f=11102230246251568e-32,h=1.444667861009766,g=/^(PN)?[\/\-\+]*(Infinity|NaN|(P+|P\^\d+ )?(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})|\(10(\^+|\{([1-9]\d*|!)(,([1-9]\d*|!))?(,[1-9]\d*)?\})\)\^[1-9]\d*\x20*)*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/,y=/^((\d+(\.\d*)?|\d*\.\d+)?([EeFf]([-\+]?)))*(0|\d+(\.\d*)?|\d*\.\d+)$/;function p(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{repeat:r,arrow:e,expans:t,megota:n,valuereplaced:e==1/0?0:t==1/0?1:-1}}function N(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var n=0;n<Math.min(e[0].length,e[1].length);n++){var a=e[0][n],o=e[1][n];if(a<o)return-1;if(a>o)return 1}return 0}function v(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)}var m=.5671432904097838;function w(r){var e,t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-10,a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=n,i=a;if(!Number.isFinite(r))return r;if(i){if(0===r)return r;if(1===r)return m;e=r<10?0:Math.log(r)-Math.log(Math.log(r))}else{if(0===r)return-1/0;e=r<=-.1?-2:Math.log(-r)-Math.log(-Math.log(-r))}for(var u=0;u<100;++u){if(t=(r*Math.exp(-e)+e*e)/(e+1),Math.abs(t-e)<o*Math.abs(t))return t;e=t}throw Error("Iteration failed to converge: ".concat(r.toString()))}function b(r){return 2==r.length}function d(r){return"number"==typeof r[0]&&"number"==typeof r[1]}function O(r){return"x"===r?1/0:r}function E(r){return 4==r.length}function I(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function k(r){return"x"===r[0]&&"number"==typeof r[1]&&"number"==typeof r[2]&&"number"==typeof r[3]}function M(r){return"number"==typeof r[0]&&"number"==typeof r[1]&&"x"==r[2]&&"number"==typeof r[3]}function x(r){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!(r=new F(r)).isFinite())return r;if(n){if(r.eq(F.ZERO))return r;if(r.eq(F.ONE))return new F(m);e=F.log(r)}else{if(r.eq(F.ZERO))return F.NEGATIVE_INFINITY.clone();e=F.log(r.neg())}for(var a=0;a<100;++a){var o=e.neg().exp(),i=e.sub(r.mul(o)),u=e.add(F.ONE).sub(e.add(2).mul(i).div(F.mul(2,e).add(2)));if(u.eq(F.ZERO))return e;var l=e.sub(i.div(u));if(F.abs(l.sub(e)).lt(F.abs(l).mul(t)))return l;e=l}throw Error("Iteration failed to converge: "+r)}function q(r,e){return N([r.megota,r.expans,r.arrow],[e.megota,e.expans,e.arrow])}function S(r,e,t){var n=new F(r),a=new F(e),o=new F(t),i=function(r,e,t){return new F(r).pow(new F(t).sub(e).add(1)).mul(new F(2).pow(new F(e).sub(t)))}(n,a,new F(o).omegalog(n.toNumber()));if(o.gt(n)){var u=S(n,a.add(1),o).sub(2),l=S(n,a,n),s=n.clone();return _(n,a,u.pow_base(s.div(l)).mul(l))}return i}function _(r,e,t){var n=new F(r),a=new F(e),o=new F(t);if(a.isInt())return F.arrow(n,a,o);if(o.gt(n)){var i=S(n,a,o),u=S(n,a,n),l=n.clone(),s=i.div(u).logBase(l.div(u));return _(n,a.add(1),F.add(2,s))}return F.arrFrac(n,function(r,e,t){var n=new F(2).logBase(r);return new F(e).sub(1).add(new F(t).logBase(r).sub(n).div(new F(1).sub(n)))}(n,a,o))}function R(r){for(var e=BigInt(64);r>=BigInt(1)<<e;)e*=BigInt(2);for(var t=e/BigInt(2);t>BigInt(0);)r>=BigInt(1)<<e?e+=t:e-=t,t/=BigInt(2);var n=e-BigInt(54),a=r>>n;return Math.log10(Number(a))+Math.LOG10E/Math.LOG2E*Number(n)}var T,F=function(){function r(e){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this[l]="PowiainaNum",this.array=[{arrow:0,expans:1,megota:1,repeat:NaN}],this.small=!1,this.sign=0,this.layer=0,r.blankArgumentConstructorReturnZero&&this.resetFromObject(r.ZERO);try{if(void 0===e);else if("number"==typeof e){var t=r.fromNumber(e);this.resetFromObject(t)}else if("object"==i(e)){var n=r.fromObject(e);this.resetFromObject(n)}else if("string"==typeof e){var a=r.fromString(e);this.resetFromObject(a)}else if("bigint"==typeof e){var o=r.fromBigInt(e);this.resetFromObject(o)}else;}catch(e){if(console.error("Malformed input"),console.error(e),r.throwErrorOnResultNaN&&r.isNaN(this))throw new Error("NaN")}}return function(r,e,n){return e&&t(r.prototype,e),n&&t(r,n),Object.defineProperty(r,"prototype",{writable:!1}),r}(r,[{key:"add",value:function(e){var t,n,a,o,i,u,l=this.clone().normalize(),h=new r(e);if(l.eq(r.POSITIVE_INFINITY)&&h.eq(r.NEGATIVE_INFINITY)||l.eq(r.NEGATIVE_INFINITY)&&h.eq(r.POSITIVE_INFINITY)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!l.isFinite())return l.clone();if(!h.isFinite())return h.clone();if(l.isZero())return h.clone();if(h.isZero())return l.clone();if(l.sign==-h.sign&&function(){var r=l.abs(),e=h.abs();return r.eq(e)}())return r.ZERO.clone();if(l.abs().lt(s)&&h.abs().lt(s)&&l.abs().gte(f)&&h.abs().gte(f))return r.fromNumber(l.toNumber()+h.toNumber());if(l.abs().lt(r.E_MSI_REC)||l.abs().gt(r.E_MSI)||h.abs().lt(r.E_MSI_REC)||h.abs().gt(r.E_MSI)){var g=l.maxabs(h);return l.abs().eq(g)?l:(h.abs().eq(g),h)}if(-1==l.sign)return l.neg().add(h.neg()).neg();l.cmpabs(h)>0?(i=l,u=h):(u=l,i=h);var y=i.toNumber()+u.toNumber();if(isFinite(y)&&0!==y)return r.fromNumber(y);var N=1;if(!(i.small||u.small||(null===(t=i.array[1])||void 0===t?void 0:t.repeat)||(null===(n=u.array[1])||void 0===n?void 0:n.repeat)||i.sign!=u.sign))return new r((i.array[0].repeat+u.array[0].repeat)*i.sign);var v=(i.small?-1:1)*((null===(a=i.array[1])||void 0===a?void 0:a.repeat)?i.array[0].repeat:Math.log10(i.array[0].repeat)),m=(u.small?-1:1)*((null===(o=u.array[1])||void 0===o?void 0:o.repeat)?u.array[0].repeat:Math.log10(u.array[0].repeat));if(v-m>c)return i;var w=-Math.floor(v),b=0,d=i.sign*Math.pow(10,v+w)+u.sign*Math.pow(10,m+w);if(d>0&&(b=Math.log10(d)-w),d<0&&(b=Math.log10(-d)-w,N*=-1),0==d)return r.ZERO.clone();var O=r.NaN.clone();return O.sign=1,O.array=b>c||b<-c?[p(b,0),p(1,1)]:[p(Math.pow(10,Math.abs(b)),0)],O.small=b<0,O.sign*=N,O}},{key:"plus",value:function(r){return this.add(r)}},{key:"sub",value:function(e){return this.add(new r(e).neg())}},{key:"minus",value:function(r){return this.sub(r)}},{key:"mul",value:function(e){var t=this.clone(),n=new r(e);if(t.eq(r.POSITIVE_INFINITY)&&n.eq(r.NEGATIVE_INFINITY)||n.eq(r.POSITIVE_INFINITY)&&t.eq(r.NEGATIVE_INFINITY))return r.NEGATIVE_INFINITY.clone();if(t.isInfiNaN()&&n.isZero()||n.isInfiNaN()&&t.isZero()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(t.eq(r.NEGATIVE_INFINITY)&&n.eq(r.NEGATIVE_INFINITY))return r.POSITIVE_INFINITY.clone();if(!t.isFinite())return t.clone();if(!n.isFinite())return n.clone();if(t.isZero()||n.isZero())return r.ZERO.clone();var a,o=t.toNumber()*n.toNumber();return isFinite(o)&&0!==o?r.fromNumber(o):((a=t.abs().log10().add(n.abs().log10()).pow10()).sign=t.sign*n.sign,a)}},{key:"times",value:function(r){return this.mul(r)}},{key:"div",value:function(e){var t=new r(e).rec();return this.mul(t)}},{key:"divide",value:function(r){return this.div(r)}},{key:"mod",value:function(e){var t=new r(e),n=this.div(t);return n.sub(n.floor()).mul(t)}},{key:"modulus",value:function(r){return this.mod(r)}},{key:"pow10",value:function(){var e,t,n=this.clone();return this.isFinite()?n.isneg()?(n.sign*=-1,n.pow10().rec()):n.lt(308.25471555991675)?r.fromNumber(Math.pow(10,n.toNumber())):n.small?n.lt(r.MSI_REC)?r.ONE:new r(Math.pow(10,Math.pow(n.array[0].repeat,-1))):(n.gt(r.TETRATED_MSI)||(n.setOperator((null!==(t=null===(e=n.array[1])||void 0===e?void 0:e.repeat)&&void 0!==t?t:0)+1,1),n.normalize()),n):this.clone()}},{key:"pow",value:function(e){var t=new r(e);if(this.eq(1))return r.ONE.clone();if(!t.isFinite())return t.clone();if(!this.isFinite())return this.clone();if(this.eq(10))return t.pow10();if(t.isneg())return this.pow(t.neg()).rec();if(this.isneg()){if(!t.isInt()){if(t.small&&t.rec().div(2).eq(1))return this.neg().pow(t).neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}var n=this.abs().pow(t);return n.sign=function(){var r=t.mod(2).round();return r.eq(0)||r.eq(2)?1:-1}(),n}var a=this.toNumber(),o=t.toNumber(),i=Math.pow(a,o);if(isFinite(i)&&0!==i)return r.fromNumber(i);if(this.isZero()&&t.isZero())return r.ONE.clone();if(this.isZero())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(this.gt(0))return this.log10().mul(t).pow10();if(t.rec().mod(2).eq(1))return this.neg().log10().mul(t).pow10().neg();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}},{key:"pow_base",value:function(e){return new r(e).pow(this)}},{key:"root",value:function(e){var t=new r(e);return this.pow(t.rec())}},{key:"sqrt",value:function(){return this.pow(.5)}},{key:"cbrt",value:function(){return this.abs().root(3).mul(this.sign)}},{key:"log10",value:function(){if(this.isneg()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(this.isZero())return r.NEGATIVE_INFINITY.clone();if(this.small){var e=this.clone();return e.small=!e.small,e.log10().neg()}if(1==this.array.length)return new r(Math.log10(this.array[0].repeat));if(this.gte(r.TETRATED_MSI))return this.clone();var t=this.clone();return t.array[1].repeat=t.array[1].repeat-1,t.normalize(),t}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Math.E,t=new r(e);return this.log10().div(t.log10())}},{key:"log2",value:function(){return this.log(2)}},{key:"logBase",value:function(r){return this.log(r)}},{key:"ln",value:function(){return this.log()}},{key:"pLog10",value:function(){return this.isneg()?r.ZERO:this.log10()}},{key:"exp",value:function(){return this.pow_base(Math.E)}},{key:"factorial",value:function(){return this.abs().lt(s)?this.add(1).gamma():this.abs().lt(r.E_MSI)?r.exp(this.mul(this.log10().sub(1))):r.exp(this)}},{key:"gamma",value:function(){if(this.small)return this.rec();if(this.lte(s)){if(this.lt(24))return r.fromNumber(function(r){if(!isFinite(r))return r;if(r<-50)return r===Math.trunc(r)?Number.NEGATIVE_INFINITY:0;for(var e=1;r<10;)e*=r,++r;var t=.9189385332046727;t+=((r-=1)+.5)*Math.log(r),t-=r;var n=r*r,a=r;return t+=1/(12*a),t-=1/(360*(a*=n)),t+=1/(1260*(a*=n)),t-=1/(1680*(a*=n)),t+=1/(1188*(a*=n)),t-=691/(360360*(a*=n)),t+=7/(1092*(a*=n)),t-=3617/(122400*(a*=n)),Math.exp(t)/e}(this.sign*this.getOperator(0)));var e=this.getOperator(0)-1,t=.9189385332046727;t+=(e+.5)*Math.log(e);var n=e*e,a=e,o=12*a,i=1/o,u=(t-=e)+i;if(u===t)return r.exp(t);if((u=(t=u)-(i=1/(o=360*(a*=n))))===t)return r.exp(t);t=u;var l=1/(o=1260*(a*=n));return t+=l,t-=l=1/(o=1680*(a*=n)),r.exp(t)}return this.gt(s)?r.exp(this.mul(this.log().sub(1))):r.exp(this)}},{key:"lambertw",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=e;if(this.lt(-.3678794411710499)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(t)return this.abs().lt("1e-300")?new r(this):this.small?r.fromNumber(w(this.toNumber())):this.lt(s)?r.fromNumber(w(this.sign*this.getOperator(0))):this.lt("eee15")?x(this):this.log();if(-1===this.sign){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return this.lt(9e15)?r.fromNumber(w(this.sign*this.array[0].repeat,1e-10,!1)):this.lt(r.E_MSI)?x(this,1e-10,!1):this.neg().rec().lambertw().neg()}},{key:"tetrate",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.clone(),o=new r(e),i=new r(n);if(a.isNaN()||o.isNaN()||i.isNaN()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.eq(1))return r.ONE.clone();if(i.neq(r.ONE)&&a.gte(h)&&(o=o.add(i.slog(a))),o.isInfi()&&o.sign>0)return a.gte(h)?r.POSITIVE_INFINITY.clone():(t=this.log().neg()).lambertw().div(t);if(o.lte(-2)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(a.isZero()){if(o.isZero()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return o.gte(s/2)||o.toNumber()%2==0?r.ZERO.clone():r.ONE.clone()}if(a.eq(r.ONE)){if(o.eq(r.ONE.neg())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}return r.ONE.clone()}if(o.eq(r.ONE.neg()))return r.ZERO.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return a;if(o.eq(2))return a.pow(a);if(a.eq(2)){if(o.eq(3))return r.fromNumber(16);if(o.eq(4))return r.fromNumber(65536)}var u=a.max(o);if(u.gt(r.PENTATED_MSI))return u;if(u.gt(r.TETRATED_MSI)||o.gt(s)){if(this.lt(h))return(t=a.ln().neg()).lambertw().div(t);var l=a.slog(10).add(o);return l.setOperator(l.getOperator(2)+1,2),l.normalize(),l}for(var c=o.toNumber(),f=Math.floor(c),g=a.pow(c-f),y=r.NaN,p=0,N=r.E_MSI.clone();0!==f&&g.lt(N)&&p<100;++p)if(f>0){if(g=a.pow(g),y.eq(g)){f=0;break}y=g,--f}else{if(g=g.log(a),y.eq(g)){f=0;break}y=g,++f}return(100==p||this.lt(h))&&(f=0),g.setOperator(g.getOperator(1)+f,1),g.normalize(),g}},{key:"tetr",value:function(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.tetrate(r,e)}},{key:"slog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this.clone(),n=new r(e);if(t.isInfiNaN())return t;if(n.isNaN())return n;if(n.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(n))return r.ONE.clone();if(n.lt(h)){var a=n.tetrate(1/0);if(t.eq(a))return r.POSITIVE_INFINITY.clone();if(t.gt(a)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}}if(t.max(n).gt(r.PENTATED_MSI))return t.gt(n)?t:r.ZERO.clone();if(t.max(n).gt(r.TETRATED_MSI)&&t.gt(n))return t.setOperator(t.getOperator(2)-1,2),t.normalize(),t.sub(t.getOperator(1));if(t.lt(r.ZERO.clone()))return n.pow(t).sub(2);var o=0,i=t.getOperator(1)-n.getOperator(1);if(i>3){var u=i-3;o+=u,t.setOperator(t.getOperator(1)-u,1)}for(var l=0;l<100;++l)if(t.lt(r.ZERO))t=r.pow(e,t),--o;else{if(t.lte(1))return new r(o+t.toNumber()-1);++o,t=r.log(t,e)}if(t.gt(10))return new r(o);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}},{key:"ssqrt",value:function(){var e=this.clone();if(e.lt(1/h)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(!e.isFinite())return e;if(e.gt(r.TETRATED_MSI))return e;if(e.gt(r.EE_MSI))return e.setOperator(e.getOperator(1)-1,1),e;var t=e.ln();return t.div(t.lambertw())}},{key:"tetrate_10",value:function(){return r.tetrate(10,this)}},{key:"iteratedlog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=this.clone(),a=new r(t),o=new r(e);return o.isZero()?n:o.eq(r.ONE)?n.log(a):a.tetrate(n.slog(a).sub(o))}},{key:"omegalog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=this,n=t.clone();if(n.isInfiNaN())return n;if(n.gte("10{1,2}e15.954589770191003"))return n;var a=new r(e).clone();if(n.getOperator(1/0)>=1)return n.setOperator(n.getOperator(1/0)-1,1/0,1,1),n;if(n.arr01[n.array.length-1][0]>=98){var o=new r(n.array[n.arr01.length-1][0]);return o}if(t.lt(r.pentate(e,2)))return new r(t).anyarrow_log(3)(e);for(var i=8,u=0;i>=Math.pow(10,-10);)r.arrFrac(a,u+i).lte(n)&&(u+=i),i/=2;return new r(u)}},{key:"arrow",value:function(e){var t=this.clone(),n=new r(e);return n.lt(r.ZERO)?(console.warn("The arrow is <0 or not a integer, the returned function will return NaN."),function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}):n.isInt()?n.eq(0)?function(r){return t.mul(r)}:n.eq(1)?function(r){return t.pow(r)}:n.eq(2)?function(r){return t.tetrate(r)}:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=new r(e),u=new r(a),l=r.arrowFuncMap.get("".concat(t.toString()," ").concat(n.toString()," ").concat(i.toString()," ").concat(o));if(l)return l.clone();var c=function(){var e;if(t.isNaN()||i.isNaN()||u.isNaN())return r.NaN.clone();if(i.lt(r.ZERO))return r.NaN.clone();if(t.eq(r.ZERO)){if(i.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(u.neq(r.ONE)&&(i=i.add(u.anyarrow_log(n)(t))),t.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return t.clone();if(n.gt(r.MSI))return(e=n.clone()).setOperator(e.getOperator(1/0)+1,1/0),e;var a=n.toNumber();if(i.eq(2))return t.arrow(a-1)(t,u,o+1);if(t.max(i).gt(r.arrowMSI(a+1)))return t.max(i);if(t.gt(r.arrowMSI(a))||i.gt(s)){t.gt(r.arrowMSI(a))?((e=t.clone()).setOperator(e.getOperator(a)-1,a),e.normalize()):e=t.gt(r.arrowMSI(a-1))?new r(t.getOperator(a-1)):r.ZERO;var l=e.add(i);return l.setOperator(l.getOperator(a)+1,a),l.normalize(),l}if(o>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[p(10,0),p(1,a)]});var c=i.toNumber(),f=Math.floor(c),h=n.sub(r.ONE);e=t.arrow(h)(c-f,u,o+1);for(var g=0,y=r.arrowMSI(a-1);0!==f&&e.lt(y)&&g<100;g++)f>0&&(e=t.arrow(h)(e,u,o+1),--f);return 100==g&&(f=0),e.setOperator(e.getOperator(a-1)+f,a-1),e.normalize(),e}();return o<r.maxOps+10&&r.arrowFuncMap.set("".concat(t.toString()," ").concat(n.toString()," ").concat(i.toString()," ").concat(o),c.clone()),c}:function(r){return _(t,n,r)}}},{key:"anyarrow_log",value:function(e){var t=this.clone(),n=new r(e),a=n.toNumber();if(n.gt(s))throw new Error("[PowiainaNum 0.2 error]Not implemented");return!n.isInt()||n.lt(0)?function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}:n.eq(0)?function(r){return t.div(r)}:n.eq(1)?function(r){return t.log(r)}:n.eq(2)?function(r){return t.slog(r)}:t.isInfiNaN()?function(){return t}:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=new r(e);if(o.isNaN())return o;if(o.isInfi())return r.ZERO.clone();if(t.isZero())return r.ONE.clone();if(t.eq(r.ONE))return r.ZERO.clone();if(t.eq(o))return r.ONE.clone();if(t.max(o).gt(r.arrowMSI(a+1)))return t.gt(o)?t:r.ZERO.clone();if(t.max(o).gt(r.arrowMSI(a))&&t.gt(o))return t.setOperator(t.getOperator(a)-1,a),t.normalize(),t.sub(t.getOperator(a-1));if(t.lt(r.ZERO.clone())){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}var i=0,u=t.getOperator(a)-o.getOperator(a);if(u>3){var l=u-3;i+=l,t.setOperator(t.getOperator(a)-l,a)}for(var s=0;s<100;++s)if(t.lt(r.ZERO))t=t.arrow(a-1)(e),--i;else{if(t.lte(1))return new r(i+t.toNumber()-1);++i,t=t.anyarrow_log(a-1)(e,n+1)}if(t.gt(10))return new r(i);if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}}},{key:"arrow_height_inverse",value:function(r){return this.anyarrow_log(r)}},{key:"chain",value:function(r,e){return this.arrow(e)(r)}},{key:"pentate",value:function(r,e){return this.arrow(3)(r,e)}},{key:"hexate",value:function(r,e){return this.arrow(4)(r,e)}},{key:"pent",value:function(r,e){return this.arrow(3)(r,e)}},{key:"penta_log",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this.anyarrow_log(3)(r)}},{key:"expansion",value:function(e){var t,n=new r(e),a=this.clone();if(n.lt(r.ZERO)||!n.isInt())return r.NaN.clone();if(n.eq(r.ONE))return this.clone();if(this.eq(r.ONE))return r.ONE.clone();if(!this.isInt()){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(this.eq(2))return new r(4);if(n.eq(0))return r.ONE.clone();if(a.gt("10{1,2}".concat(s))||n.gt(s)){a.gt("10{1,2}".concat(s))?((t=a.clone()).setOperator(t.getOperator(1,2)-1,1,2),t.normalize()):t=a.gt("10{".concat(s,"}10"))?new r(a.getOperator(1/0)):r.ZERO;var o=t.add(n);return o.setOperator(o.getOperator(1,2)+1,1,2),o.normalize(),o}var i,u=n.toNumber()-1;for(t=a.clone(),i=0;0!==u&&t.lt(s)&&i<100;++i)u>0&&(t=a.arrow(t)(a),--u);return 100==i&&(u=0),t.setOperator(t.getOperator(1/0)+u,1/0),t.normalize(),t}},{key:"expansionArrow",value:function(e){var t=new r(e),n=this.clone();if(t.lt(0)||!t.isInt()||t.isNaN()||this.isNaN())return function(){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()};if(t.eq(0))return function(r){return n.arrow(r)(n)};if(t.eq(1))return function(r){return n.expansion(r)};var a=t;return function(e){var t,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=new r(e);if(n.isNaN()||i.isNaN())return r.NaN.clone();if(i.lt(r.ZERO)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.eq(r.ZERO)){if(i.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(n.eq(r.ONE))return r.ONE.clone();if(i.eq(r.ZERO))return r.ONE.clone();if(i.eq(r.ONE))return n.clone();if(a.gt(r.MSI))return(t=a.clone()).setOperator(t.getOperator(1/0,2)+1,1/0,2),t;var u=a.toNumber();if(i.eq(2))return n.expansionArrow(u-1)(n,o+1);if(n.max(i).gt("10{".concat(u+1,",2}").concat(s)))return n.max(i);if(n.gt("10{".concat(u,",2}").concat(s))||i.gt(s)){n.gt("10{".concat(u,",2}").concat(s))?((t=n.clone()).setOperator(t.getOperator(u,2)-1,u,2),t.normalize()):t=n.gt("10{".concat(u-1,",2}").concat(s))?new r(n.getOperator(u-1,2)):r.ZERO;var l=t.add(i);return l.setOperator(l.getOperator(u,2)+1,u,2),l.normalize(),l}if(o>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[p(10,0),p(1,u,2)]});var c=i.toNumber(),f=Math.floor(c),h=a.sub(r.ONE);t=n.expansionArrow(h)(c-f,o+1);for(var g=0,y=new r("10{".concat(u-1,",2}").concat(s));0!==f&&t.lt(y)&&g<100;g++)f>0&&(t=n.expansionArrow(h)(t,o+1),--f);return 100==g&&(f=0),t.setOperator(t.getOperator(u-1,2)+f,u-1,2),t.normalize(),t}}},{key:"multiExpansion",value:function(r){return this.expansionArrow(2)(r)}},{key:"powerExpansion",value:function(r){return this.expansionArrow(3)(r)}},{key:"explosion",value:function(e){return r.BEAF(this,e,1,3)}},{key:"megotion",value:function(e){return r.BEAF(this,e,1,1,2)}},{key:"powiaination",value:function(e){return r.BEAF(this,e,1,1,1,2)}},{key:"abs",value:function(){var r=this.clone();return r.sign<0&&(r.sign*=-1),r}},{key:"clampMin",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.max.apply(r,[this].concat(t))}},{key:"clampMax",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.min.apply(r,[this].concat(t))}},{key:"clamp",value:function(r,e){return this.max(r).min(e)}},{key:"max",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.max.apply(r,[this].concat(t))}},{key:"min",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.min.apply(r,[this].concat(t))}},{key:"maxabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o=t.map((function(e){return new r(e).abs()}));return r.max.apply(r,[this.abs()].concat(a(o)))}},{key:"minabs",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o=t.map((function(e){return new r(e).abs()}));return r.min.apply(r,[this.abs()].concat(a(o)))}},{key:"cmpabs",value:function(e){var t=new r(e).abs();return this.abs().cmp(t)}},{key:"compare",value:function(e){var t=new r(e);if(this.isNaN()||t.isNaN())return 2;if(this.sign<t.sign)return-1;if(this.sign>t.sign)return 1;var n=-1==this.sign&&-1==t.sign;if(this.small&&!t.small)return-1*(n?-1:1);if(t.small&&!this.small)return 1*(n?-1:1);var a=1;this.small&&t.small&&(a*=-1),n&&(a*=-1);for(var o=0,i=0;this.array.length-1-i>=0&&t.array.length-1-i>=0;i++){var u=this.array[this.array.length-1-i],l=t.array[t.array.length-1-i];if(u.repeat===1/0&&l.repeat===1/0)return this.small===t.small?0:t.small?1:-1;if(u.repeat===1/0){o=1;break}if(l.repeat===1/0){o=-1;break}var s=N([u.megota,u.expans,u.arrow,u.repeat],[l.megota,l.expans,l.arrow,l.repeat]);if(1==s){o=1;break}if(-1==s){o=-1;break}}return o*a+1-1}},{key:"cmp",value:function(r){return this.compare(r)}},{key:"eq",value:function(r){return 0===this.cmp(r)}},{key:"neq",value:function(r){return 0!==this.cmp(r)}},{key:"lt",value:function(r){return-1===this.cmp(r)}},{key:"lte",value:function(r){return this.cmp(r)<=0}},{key:"gt",value:function(r){return 1==this.cmp(r)}},{key:"gte",value:function(r){var e=this.cmp(r);return 0==e||1==e}},{key:"equals",value:function(r){return this.eq(r)}},{key:"notEquals",value:function(r){return this.neq(r)}},{key:"eq_tolerance",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-7,n=new r(e);return this.sub(n).lte(this.max(n).mul(t))}},{key:"sin",value:function(){var e=this.clone();if(e.isneg())return e.neg().sin().neg();var t=e.mod(7074237752028440);return r.fromNumber(Math.sin(t.toNumber()))}},{key:"cos",value:function(){return this.sub(Math.PI/2).sin()}},{key:"tan",value:function(){return this.sin().div(this.cos())}},{key:"cot",value:function(){return this.cos().div(this.sin())}},{key:"sec",value:function(){return this.cos().rec()}},{key:"csc",value:function(){return this.sin().rec()}},{key:"neg",value:function(){var r=this.clone();return r.sign*=-1,r.normalize(),r}},{key:"rec",value:function(){var r=this.clone();return r.small=!r.small,r}},{key:"recip",value:function(){return this.rec()}},{key:"reciprocate",value:function(){return this.rec()}},{key:"floor",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"floor":"ceil"](e.getOperator(0)),e.sign=this.sign,e}},{key:"ceil",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?r.ONE.clone():r.ZERO.clone();var e=this.abs();return e.array[0].repeat=Math[1==this.sign?"ceil":"floor"](e.getOperator(0)),e.sign=this.sign,e}},{key:"round",value:function(){if(this.isInt())return this.clone();if(this.small)return 1==this.sign?this.rec().lte(2)?r.ONE.clone():r.ZERO.clone():this.abs().rec().lte(2)?r.ZERO.clone():r.ONE.neg().clone();var e=this.abs();return e.array[0].repeat=Math.round(e.array[0].repeat),e.sign=this.sign,e}},{key:"trunc",value:function(){var r=this.clone();return r.gte(0)?r.floor():r.ceil()}},{key:"isNaN",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return isNaN(this.getOperator(0))}))},{key:"isZero",value:function(){return Boolean(this.small&&!isFinite(this.getOperator(0)))}},{key:"isFinite",value:function(r){function e(){return r.apply(this,arguments)}return e.toString=function(){return r.toString()},e}((function(){return Boolean(this.small||isFinite(this.getOperator(0)))&&!this.isNaN()}))},{key:"isInfi",value:function(){return this.rec().isZero()}},{key:"isInfiNaN",value:function(){return this.isInfi()||this.isNaN()}},{key:"isInt",value:function(){return!!this.isZero()||(!(this.small||!Number.isInteger(this.getOperator(0)))||!!this.abs().gte(s/2))}},{key:"ispos",value:function(){return this.sign>0}},{key:"isneg",value:function(){return this.sign<0}},{key:"getOperatorIndex",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return r.opGetOperatorIndex(this.array,e,t,n)}},{key:"getOperator",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return r.opGetOperator(this.array,e,t,n)}},{key:"setOperator",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return r.opSetOperator(this.array,e,t,n,a)}},{key:"toNumber",value:function(){return-1==this.sign?-this.neg().toNumber():this.small?1/this.rec().toNumber():this.gte("e308.25471555991675")?1/0:1==this.array.length?this.array[0].repeat:2==this.array.length&&1==this.array[1].arrow&&1==this.array[1].expans&&1==this.array[1].megota&&1==this.array[1].repeat?Math.pow(10,this.getOperator(0)):NaN}},{key:"toString_core",value:function(){if(this.isNaN())return"NaN";if(-1==this.sign)return"-".concat(this.neg().toString());if(this.small)return this.isZero()?"0":"/".concat(this.rec().toString());if(this.isInfi())return"Infinity";var r="";this.layer?this.layer<3?r+="P".repeat(this.layer):r+="P^"+this.layer+" ":r+="";for(var e=this.array.length-1;e>=0;e--){var t=this.array[e],n="10{".concat(t.arrow===1/0?"!":t.arrow).concat(t.expans>1||t.megota>1?",".concat(t.expans===1/0?"!":t.expans):"").concat(t.megota>1?",".concat(t.megota):"","}");n=1==t.arrow&&1==t.expans&&1==t.megota&&t.repeat<5?"e".repeat(t.repeat):0==t.arrow&&1==t.expans&&1==t.megota?t.repeat.toString():t.repeat>1?"(".concat(n,")^").concat(t.repeat," "):"".concat(n),r+="".concat(n)}return r}},{key:"toString",value:function(){try{return this.toString_core()}catch(r){return console.error("Checked error when converting to string"),"NaN"}}},{key:"toJSON",value:function(){return"PN"+this.toString()}},{key:"arr01",get:function(){for(var r=[0],e=0;e<this.array.length;e++)0==e?r[0]=this.array[e].repeat:(r[e]=[0,0,0,0],r[e][0]=this.array[e].arrow==1/0?"x":this.array[e].arrow,r[e][1]=this.array[e].repeat,r[e][2]=this.array[e].expans==1/0?"x":this.array[e].expans,r[e][3]=this.array[e].megota);return r}},{key:"normalize",value:function(){var e=!0,t=this;void 0===this.array&&(t.array=[p(NaN,0,1,1)]),void 0===this.sign&&(this.sign=0),void 0===this.layer&&(this.layer=0);for(var n=0;n<this.array.length;n++)if(this.array[n].repeat==1/0)return this.array=[{arrow:0,expans:1,megota:1,repeat:1/0}],this.layer=0,this;for(var a=1;a<t.array.length;++a){var o=t.array[a];if(null!==o.arrow&&void 0!==o.arrow||(o.arrow=0),null!==o.expans&&void 0!==o.expans||(o.expans=1),null!==o.megota&&void 0!==o.megota||(o.megota=1),isNaN(o.arrow)||isNaN(o.repeat)||isNaN(o.expans)||isNaN(o.megota))return t.array=[p(NaN,0,1,1)],t;if(!isFinite(o.repeat)||!isFinite(o.megota))return t.array=[p(1/0,0,1,1)],t;Number.isInteger(o.arrow)||(o.arrow=Math.floor(o.arrow)),Number.isInteger(o.repeat)||(o.repeat=Math.floor(o.repeat)),Number.isInteger(o.expans)||(o.expans=Math.floor(o.expans)),Number.isInteger(o.megota)||(o.megota=Math.floor(o.megota))}t.array.length||(t.small=!t.small,t.array=[p(1/0)]);do{e=!1,this.array.sort(q);for(var i=1;i<t.array.length-1;++i)t.array[i].arrow==t.array[i+1].arrow&&t.array[i].expans==t.array[i+1].expans&&t.array[i].megota==t.array[i+1].megota&&(t.array[i].repeat+=t.array[i+1].repeat,t.array.splice(i+1,1),--i,e=!0);for(var u=1;u<t.array.length;++u)0===t.array[u].arrow||0!==t.array[u].repeat&&null!==t.array[u].repeat&&void 0!==t.array[u].repeat?0==t.array[u].arrow&&t.array[u].expans>=2&&(t.array[u].arrow=1/0,t.array[u].valuereplaced=0,t.array[u].expans=t.array[u].expans-1):(t.array.splice(u,1),--u);for(t.array.length>r.maxOps&&t.array.splice(1,t.array.length-r.maxOps),this.array.length>=2&&1==this.array[1].arrow&&this.array[1].repeat>=1&&this.array[0].repeat<c&&(this.setOperator(this.array[1].repeat-1,1),this.setOperator(Math.pow(10,this.array[0].repeat),0),e=!0),this.getOperator(0)>s&&isFinite(this.getOperator(0))&&(this.setOperator(this.getOperator(1)+1,1),this.setOperator(Math.log10(this.getOperator(0)),0),e=!0),this.array[this.array.length-1].megota>s?(this.layer++,this.array=[p(this.array[this.array.length-1].megota)],e=!0):this.layer&&1==this.array.length&&0===this.array[0].arrow&&(this.layer--,this.array=[p(10),p(1,10,10,this.array[0].repeat)],e=!0),1==this.array.length&&this.array[0].repeat<1&&(this.array[0].repeat=1/this.array[0].repeat,this.small=!this.small,e=!0),1==this.array.length&&1==this.array[0].repeat&&this.small&&(this.small=!1,e=!0),this.array.length>=2&&!isFinite(this.array[1].arrow)&&(this.array[1].repeat>1?(this.array.push(p(this.array[1].repeat-1,1/0,this.array[1].expans,this.array[1].megota)),this.array[1].repeat=1,this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10):(this.array[1].arrow=this.array[0].repeat,this.array[0].repeat=10)),this.array.length>=2&&this.array[1].arrow>=s&&isFinite(this.array[1].arrow)&&(this.array[0].repeat=this.array[1].arrow,this.array[1]=p(1,1/0,this.array[1].expans,this.array[1].megota));t.array.length>=2&&1==t.array[0].repeat&&t.array[1].repeat;)t.array[1].repeat>1?t.array[1].repeat--:t.array.splice(1,1),t.array[0].repeat=10,e=!0;t.array.length>=2&&t.array.length<r.maxOps&&t.array[0].repeat<s&&t.array[1].arrow>=2&&t.array[1].repeat>1&&isFinite(t.array[1].arrow)&&(t.array[1].repeat--,t.array.splice(1,0,p(t.array[0].repeat-1,t.array[1].arrow-1,t.array[1].expans,t.array[1].megota)),t.array[0].repeat=10,e=!0),t.array.length>=2&&t.array[1].repeat>s&&t.array[1].arrow!==1/0&&(t.array[1].arrow++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0),t.array.length>=2&&t.array[1].repeat>s&&t.array[1].arrow===1/0&&(t.array[1].arrow=1,t.array[1].expans++,t.array[0].repeat=t.array[1].repeat,t.array[1].repeat=1,e=!0)}while(e);return this}},{key:"clone",value:function(){var e=new r;return e.resetFromObject(this),e}},{key:"resetFromObject",value:function(r){if(r.array){this.array=[];for(var e=0;e<r.array.length;e++)this.array[e]={arrow:r.array[e].arrow,expans:r.array[e].expans,megota:r.array[e].megota,repeat:r.array[e].repeat,valuereplaced:r.array[e].valuereplaced};return this.small=r.small,this.sign=r.sign,this.layer=r.layer,this}}}],[{key:"add",value:function(e,t){return new r(e).add(t)}},{key:"plus",value:function(e,t){return new r(e).add(t)}},{key:"sub",value:function(e,t){return new r(e).sub(t)}},{key:"minus",value:function(e,t){return new r(e).sub(t)}},{key:"mul",value:function(e,t){return new r(e).mul(t)}},{key:"times",value:function(e,t){return new r(e).mul(t)}},{key:"div",value:function(e,t){return new r(e).div(t)}},{key:"divide",value:function(e,t){return new r(e).div(t)}},{key:"mod",value:function(e,t){return new r(e).mod(t)}},{key:"modulus",value:function(e,t){return new r(e).mod(t)}},{key:"pow",value:function(e,t){return new r(e).pow(t)}},{key:"root",value:function(e,t){return new r(e).root(t)}},{key:"sqrt",value:function(e){return new r(e).sqrt()}},{key:"cbrt",value:function(e){return new r(e).cbrt()}},{key:"log10",value:function(e){return new r(e).log10()}},{key:"log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"log2",value:function(e){return new r(e).log2()}},{key:"logBase",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.E;return new r(e).log(t)}},{key:"pLog10",value:function(e){return new r(e).pLog10()}},{key:"exp",value:function(e){return new r(e).pow_base(Math.E)}},{key:"factorial",value:function(e){return new r(e).factorial()}},{key:"gamma",value:function(e){return new r(e).gamma()}},{key:"lambertw",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new r(e).lambertw(t)}},{key:"affordGeometricSeries",value:function(e,t,n,a){return this.affordGeometricSeries_core(new r(e),new r(t),new r(n),a)}},{key:"affordGeometricSeries_core",value:function(r,e,t,n){var a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=e.mul(t.pow(n));return r.div(o).mul(t.sub(1)).add(1).clampMin(a?1:-1/0).log10().div(t.log10()).floor()}},{key:"sumGeometricSeries",value:function(e,t,n,a){return this.sumGeometricSeries_core(e,new r(t),new r(n),a)}},{key:"sumGeometricSeries_core",value:function(e,t,n,a){return t.mul(n.pow(a)).mul(r.sub(1,n.pow(e))).div(r.sub(1,n))}},{key:"affordArithmeticSeries",value:function(e,t,n,a){return this.affordArithmeticSeries_core(new r(e),new r(t),new r(n),new r(a))}},{key:"affordArithmeticSeries_core",value:function(r,e,t,n){var a=e.add(n.mul(t)).sub(t.div(2)),o=a.pow(2);return a.neg().add(o.add(t.mul(r).mul(2)).sqrt()).div(t).floor()}},{key:"sumArithmeticSeries",value:function(e,t,n,a){return this.sumArithmeticSeries_core(new r(e),new r(t),new r(n),new r(a))}},{key:"sumArithmeticSeries_core",value:function(r,e,t,n){var a=e.add(n.mul(t));return r.div(2).mul(a.mul(2).add(r.sub(1).mul(t)))}},{key:"tetrate",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return new r(e).tetrate(t,n)}},{key:"tetrate_10",value:function(e){return r.fromNumber(10).tetrate(e)}},{key:"iteratedlog",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return new r(e).iteratedlog(t,n)}},{key:"arrow",value:function(e,t,n){return new r(e).arrow(t)(n)}},{key:"arrFrac",value:function(e,t){if(new r(t).lt(2))return r.pentate(e,t);var n=new r(e).clone(),a=new r(t).clone();return new r(n).arrow(a.floor().add(1))(n.div(2).pow(a.sub(a.floor())).mul(2))}},{key:"arrowMSI",value:function(e){return new r("10{".concat(e,"}").concat(s))}},{key:"hyper",value:function(e){var t=new r(e);return t.eq(0)?function(e,t){return new r(t).eq(0)?new r(e):new r(e).add(1)}:t.eq(1)?r.add:t.eq(2)?r.mul:t.eq(3)?r.pow:function(e,n){return new r(e).arrow(t.sub(2))(n)}}},{key:"pentate",value:function(e,t,n){return new r(e).arrow(3)(t,n)}},{key:"hexate",value:function(e,t,n){return new r(e).arrow(4)(t,n)}},{key:"pent",value:function(e,t,n){return new r(e).arrow(3)(t,n)}},{key:"penta_log",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return new r(e).anyarrow_log(3)(t)}},{key:"expansion",value:function(e,t){return new r(e).expansion(t)}},{key:"multiExpansion",value:function(e,t){return new r(e).multiExpansion(t)}},{key:"powerExpansion",value:function(e,t){return new r(e).powerExpansion(t)}},{key:"BEAF",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];function a(e){return void 0!==t[e]&&null!==t[e]?new r(t[e]):new r(1)}return a(0).eq(1)?new r(1):a(1).eq(1)?new r(a(0)):a(5).eq(2)&&(a(4).gte(2)||a(3).gte(2)||a(2).gte(2))||0!==t.slice(6).map((function(e){return new r(e)})).filter((function(r){return r.gt(1)})).length?r.POSITIVE_INFINITY.clone():r.BEAF_core(a(0),a(1),a(2),a(3),a(4),a(5))}},{key:"BEAF_core",value:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,c=new r(e),f=new r(t);function h(e){var t;return new r(null!==(t=[a,o,i,u][e])&&void 0!==t?t:1)}if(c.eq(1))return new r(1);if(f.eq(1))return new r(c);if(f.isZero())return new r(1);if(c.lt(0)){if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(new r(u).gte(3))return r.POSITIVE_INFINITY.clone();if(h(0).eq(0)&&h(1).eq(1)&&h(2).eq(1))return c.mul(f);if(h(0).eq(1)&&h(1).eq(1)&&h(2).eq(1))return c.pow(f);if(h(0).eq(2)&&h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.tetrate(f);if(h(1).eq(1)&&h(2).eq(1)&&h(3).eq(1))return c.arrow(h(0))(f);if(h(1).eq(2)&&h(2).eq(1)&&h(3).eq(1))return c.expansionArrow(h(0))(f);var g=h(0).toNumber(),y=h(1),N=h(2),v=h(3);if(v.eq(2)){if(1!=g)return r.POSITIVE_INFINITY.clone();if(y.neq(1))return r.POSITIVE_INFINITY.clone();if(N.neq(1))return r.POSITIVE_INFINITY.clone();if(f.gte(s))return r.POSITIVE_INFINITY.clone();var m=new r(10);return m.layer=f.toNumber(),m.normalize(),m}function w(r,e,t){return 0==r&&e>1?[1/0,e-1,t]:0==r&&1==e&&t>1?[1,1/0,t-1]:[r,e,t]}if(N.gt(s)){var b=new r(N);return b.layer++,b.normalize(),b}function d(r){return isFinite(r)?r.toString():"!"}function O(r,e,t){var a=n(w(r,e,t),3),o=a[0],i=a[1],u=a[2];return"10{".concat(d(o),",").concat(d(i),",").concat(u,"}").concat(s)}var E=c.clone(),I=new r(h(0)),k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=r.beafFuncMap.get("".concat(E.toString()," ").concat(g.toString()," ").concat(y.toString()," ").concat(N.toString()," ").concat(v.toString()," ").concat(e.toString()," ").concat(t));if(n)return n.clone();var a,o=new r(e);if(E.isNaN()||o.isNaN())return r.NaN.clone();if(o.lt(r.ZERO))return r.NaN.clone();if(E.eq(r.ZERO)){if(o.eq(r.ONE))return r.ZERO.clone();if(r.throwErrorOnResultNaN)throw new Error("NaN");return r.NaN.clone()}if(E.eq(r.ONE))return r.ONE.clone();if(o.eq(r.ZERO))return r.ONE.clone();if(o.eq(r.ONE))return E.clone();if(I.eq(0))return r.BEAF_core(E,E,f,y.sub(1),N,u,t+1);if(y.eq(0))return r.BEAF_core(E,E,E,f,N.sub(1),u,t+1);if(N.eq(0))return r.BEAF_core(E,E,E,E,y,new r(u).sub(1),t+1);if(N.gt(s))throw new Error("Not implemeneted");if(y.gt(s))return(a=new r(y)).setOperator(a.getOperator(1,1/0,N.toNumber())+1,1,1/0,N.toNumber()),a;if(I.gt(r.MSI))return(a=I.clone()).setOperator(a.getOperator(1/0,y.toNumber(),N.toNumber())+1,1/0,y.toNumber(),N.toNumber()),a;var i=I.toNumber();if(o.eq(2))return r.BEAF_core(E,E,i-1,y,N,u,t+1);if(E.max(o).gt(O(i+1,y.toNumber(),N.toNumber())))return E.max(o);if(E.gt(O(i+1,y.toNumber(),N.toNumber()))||o.gt(s)){E.gt(O(i,y.toNumber(),N.toNumber()))?((a=E.clone()).setOperator(a.getOperator(i,y.toNumber(),N.toNumber())-1,i,y.toNumber(),N.toNumber()),a.normalize()):a=E.gt(O(i-1,y.toNumber(),N.toNumber()))?new r(E.getOperator(i-1,y.toNumber(),N.toNumber())):r.ZERO;var l=a.add(o);return l.setOperator(l.getOperator(i,y.toNumber(),N.toNumber())+1,i,y.toNumber(),N.toNumber()),l.normalize(),l}if(t>=r.maxOps+10)return new r({small:!1,sign:1,layer:0,array:[p(10,0),p(1,i,y.toNumber(),N.toNumber())]});var c=o.toNumber(),h=Math.floor(c),m=I.sub(r.ONE);a=r.BEAF_core(E,c-h,m,y,N,v,t+1);for(var w=0,b=O(i-1,y.toNumber(),N.toNumber());0!==h&&a.lt(b)&&w<100;w++)h>0&&(a=r.BEAF_core(E,a,m,y,N,v,t+1),--h);return 100==w&&(h=0),a.setOperator(a.getOperator(i-1,y.toNumber(),N.toNumber())+h,i-1,y.toNumber(),N.toNumber()),a.normalize(),a}(f,l);return l<r.maxOps+10&&r.beafFuncMap.set("".concat(E.toString()," ").concat(g.toString()," ").concat(y.toString()," ").concat(N.toString()," ").concat(v.toString()," ").concat(f.toString()," ").concat(l),k.clone()),k}},{key:"abs",value:function(e){return new r(e).abs()}},{key:"max",value:function(){for(var e=r.NEGATIVE_INFINITY,t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(var o=0;o<n.length;o++)e.lt(n[o])&&(e=new r(n[o]).clone());return e}},{key:"min",value:function(){for(var e=r.POSITIVE_INFINITY,t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(var o=0;o<n.length;o++)e.gt(n[o])&&(e=new r(n[o]).clone());return e}},{key:"clampMin",value:function(){return r.max.apply(r,arguments)}},{key:"clampMax",value:function(){return r.min.apply(r,arguments)}},{key:"eq",value:function(e,t){return new r(e).eq(t)}},{key:"equals",value:function(e,t){return new r(e).eq(t)}},{key:"neq",value:function(e,t){return new r(e).neq(t)}},{key:"notEquals",value:function(e,t){return new r(e).notEquals(t)}},{key:"lt",value:function(e,t){return new r(e).lt(t)}},{key:"gt",value:function(e,t){return new r(e).gt(t)}},{key:"lte",value:function(e,t){return new r(e).lte(t)}},{key:"gte",value:function(e,t){return new r(e).gte(t)}},{key:"rec",value:function(e){return new r(e).rec()}},{key:"recip",value:function(e){return new r(e).rec()}},{key:"reciprocate",value:function(e){return new r(e).rec()}},{key:"floor",value:function(e){return new r(e).floor()}},{key:"ceil",value:function(e){return new r(e).ceil()}},{key:"round",value:function(e){return new r(e).round()}},{key:"trunc",value:function(e){return new r(e).trunc()}},{key:"sign",value:function(e){return new r(e).sign}},{key:"isNaN",value:function(e){return new r(e).isNaN()}},{key:"opGetOperatorIndex",value:function(r,e){for(var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=0;a<r.length;a++){var o=N([r[a].megota,r[a].expans,r[a].arrow],[n,t,e]);if(0==o)return a;if(1==o)return a-.5}return r.length-.5}},{key:"opGetOperator",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=r.opGetOperatorIndex(e,t,n,a);return e[o]?e[o].repeat:0}},{key:"opSetOperator",value:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=r.opGetOperatorIndex(e,n,a,o);return e[i]?(e[i].repeat=t,0==e[i].repeat&&(e.splice(i,1),!0)):(e.splice(Math.ceil(i),0,{arrow:n,expans:a,megota:o,valuereplaced:a===1/0?1:n==1/0?0:-1,repeat:t}),!0)}},{key:"fromBigInt",value:function(e){var t=new r(0),n=e<BigInt(0)?-e:e;return t.sign=e<BigInt(0)?-1:1,t.array=n<=s?[p(Number(n))]:[p(R(n)),p(1,1)],t.normalize(),t}},{key:"fromNumber",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),Number.isNaN(e))return t;if(e<0)t.sign=-1;else{if(0==e)return t.sign=0,t.small=!0,t.array=[p(1/0,0)],t;e>0&&(t.sign=1)}var n=Math.abs(e);return n==1/0?t.array=[p(1/0,0)]:n>=f&&n<1?(t.small=!0,t.array=[p(1/n,0)]):n<f?(t.small=!0,t.array=[p(-Math.log10(n),0),p(1,1)]):n<=s?t.array=[p(n,0)]:(t.setOperator(Math.log10(n),0),t.array=[p(Math.log10(n),0),p(1,1)]),t}},{key:"fromString",value:function(e){if(r.usingBreakEternityLikeFromString&&y.test(e)){var t=e.match(/(e+-)(\d+(.\d+)?)/);if(t){var n=t[1].length;e="/"+"e".repeat(n-1)+t[2]}}return this.fromString_core(e)}},{key:"fromString_core",value:function(e){var t,n,a,o,i,u,l,f=new r(NaN);if(e.startsWith("PN")&&(e=e.substring(2)),"NaN"==e)return r.NaN.clone();if(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/J\^(\d+)/g,"(10{!})^$1")).replace(/J/g,"10{!}")).replace(/K\^(\d+)/g,"(10{1,2})^$1")).replace(/K/g,"10{1,2}")).replace(/L\^(\d+)/g,"(10{2,2})^$1")).replace(/L/g,"10{2,2}")).replace(/M\^(\d+)/g,"(10{!,2})^$1")).replace(/M/g,"10{!,2}")).replace(/N\^(\d+)/g,"(10{1,!})^$1")).replace(/N/g,"10{1,!}"),/^.*e-.*(e|\^).*/.test(e)&&(e="/10^"+e.substring(e.indexOf("e-"))),!isNaN(Number(e))){var h=Number(e),y=!1;if(0==h?/^((0)|(0*\.0+e\d+)|(0*\.0*))$/.test(e)&&(y=!0):y=!0,!y){var N=e.search(/e/),m=e.substring((-1==N?e.length:N)+1),w=e.substring(0,-1==N?void 0:N),b=[0,0];if(b[1]=Number(m||"0"),Number(w)>=1){var d=w.length>=17?v(w):Math.log10(Number(w)),O=Math.floor(d),E=d-O;b[0]=Math.pow(10,E),b[1]+=O}else{var I=(l=w.match(/^0\.(0*)[1-9]/))?l[1].length:0;w=(w=w.substring(w.search(/[1-9]/))).charAt(0)+"."+w.substring(1),I+=1,b[0]=Number(w),b[1]+=-I}return r.pow(10,-b[1]-1).mul(10*Math.pow(b[0],-1)).rec()}if(isFinite(h)&&y)return f=r.fromNumber(Number(e))}if(-1!==e.indexOf("l")&&-1!==e.indexOf("s")&&-1!==e.indexOf("a")){var k=function(r){var e=r.match(/l(\d+)\s+s(\d+)\s+a(\[.*\])/);try{if(e)return{lValue:parseInt(e[1]),sValue:parseInt(e[2]),array:JSON.parse(e[3])}}catch(r){return null}return null}(e);if(!k||0!==k.sValue&&1!==k.sValue&&-1!==k.sValue)throw"[PowiainaNum 0.2 error]malformed input: "+e;return(f=r.fromObject(k.array)).layer=k.lValue,f.sign=k.sValue,f.small=!1,f.normalize(),f}if(e=function(r){for(var e="",t=!1,n=0;n<r.length;n++){var a=r[n];"{"===a?(t=!0,e+=a):"}"===a?(t=!1,e+=a):","===a?t&&(e+=a):e+=a}return e}(e=e.replace(/\(e\^(\d+)\)/g,"(10^)^$1 ").replace(/(\d+)[Pp][Tt]/g,"(10^)^$1 ")),!g.test(e))throw"[PowiainaNum 0.2 error]malformed input: "+e;var M=!1,x=!1;if("-"==e[0]||"+"==e[0]){var q=e.search(/[^-\+]/);M=(null!==(n=null===(t=e.substring(0,q).match(/-/g))||void 0===t?void 0:t.length)&&void 0!==n?n:0)%2==1,e=e.substring(q)}if("/"==e[0]){var S=e.search(/[^\/]/);x=(null!==(o=null===(a=e.substring(0,S).match(/\//g))||void 0===a?void 0:a.length)&&void 0!==o?o:0)%2==1,e=e.substring(S)}if("NaN"==e)f.array=[p(NaN)];else if("Infinity"==e)f.array=[p(1/0)];else{var _,R,T,F;for(f.sign=1,f.array=[p(0)],"P"==e[0]&&("^"==e[1]?(_=e.substring(2).search(/[^0-9]/)+2,f.layer=Number(e.substring(2,_)),e=e.substring(_+1)):(_=e.search(/[^P]/),f.layer=_,e=e.substring(_)));e&&/^(\(?10[\^\{])/.test(e);){var A=void 0,Z=void 0,P=void 0;if("("==e[0]&&(e=e.substring(1)),"^"==e[2])A=_=e.substring(2).search(/[^\^]/),R=_+2;else{_=e.indexOf("}");var B=e.substring(3,_).split(",");A=Number("!"==B[0]?1/0:B[0]),Z=Number(null!==(i="!"==B[1]?1/0:B[1])&&void 0!==i?i:1),P=Number(null!==(u=B[2])&&void 0!==u?u:1),R=_+1}")"==(e=e.substring(R))[0]?(_=e.indexOf(" "),T=Number(e.substring(2,_)),e=e.substring(_+1)):T=1,1==A&&1==Z&&1==P?f.array.length>=2&&1==f.array[1].arrow?f.array[1].repeat+=T:f.array.splice(1,0,p(T,1,Z,P)):2==A&&1==Z&&1==P?(_=f.array.length>=2&&1==f.array[1].arrow?f.array[1].repeat:0,(R=f.array[0].repeat)>=1e10&&++_,R>=10&&++_,f.array[0].repeat=_,f.array.length>=2&&1==f.array[1].arrow&&f.array.splice(1,1),F=f.getOperatorIndex(2),Number.isInteger(F)?f.array[F].repeat+=T:f.array.splice(Math.ceil(F),0,p(T,2,Z,P))):isFinite(A)?(_=f.getOperator(A-1),(R=f.getOperator(A-2))>=10&&++_,F=f.getOperatorIndex(A),f.array.splice(1,Math.ceil(F)-1),f.array[0].repeat=_,Number.isInteger(F)?f.array[1].repeat+=T:f.array.splice(1,0,p(T,A,Z,P))):f.array.splice(1,0,p(T,A,Z,P))}_=e.split(/[Ee]/),R=[f.array[0].repeat,0],T=1;for(var V=_.length-1;V>=0;--V){R[0]<c&&0===R[1]?R[0]=Math.pow(10,T*R[0]):-1==T?(0===R[1]?R[0]=Math.pow(10,T*R[0]):1==R[1]&&R[0]<=Math.log10(Number.MAX_VALUE)?R[0]=Math.pow(10,T*Math.pow(10,R[0])):R[0]=0,R[1]=0):R[1]++;var G=_[V].indexOf("."),z=-1==G?_[V].length:G;0===R[1]?z>=17?(R[0]=Math.log10(R[0])+v(_[V].substring(0,z)),R[1]=1):_[V]&&(R[0]*=Number(_[V])):(F=z>=17?v(_[V].substring(0,z)):_[V]?Math.log10(Number(_[V])):0,1==R[1]?R[0]+=F:2==R[1]&&R[0]<c+Math.log10(F)&&(R[0]+=Math.log10(1+Math.pow(10,Math.log10(F)-R[0])))),R[0]<c&&R[1]?(R[0]=Math.pow(10,R[0]),R[1]--):R[0]>s&&(R[0]=Math.log10(R[0]),R[1]++)}f.array[0].repeat=R[0],R[1]&&(f.array.length>=2&&1==f.array[1].arrow&&1==f.array[1].expans&&1==f.array[1].megota?f.array[1].repeat+=R[1]:f.array.splice(1,0,p(R[1],1,1,1)))}return M&&(f.sign*=-1),x&&(f.small=!f.small),f.normalize(),f.normalize(),f}},{key:"fromObject",value:function(e){var t=new r;if(t.resetFromObject({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),t.array=[],function(r){if(!Array.isArray(r))return!1;for(var e=0;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!b(t))return!1;if(!d(t))return!1}return!0}(e)){for(var n=0;n<e.length;n++)t.array[n]={arrow:e[n][0],expans:1,megota:1,repeat:e[n][1]};return t.small=!1,t.sign=1,t.layer=0,t}if(function(r){return null!==r&&"object"===i(r)&&("mag"in r&&"number"==typeof r.mag&&("layer"in r&&"number"==typeof r.layer&&("sign"in r&&"number"==typeof r.sign)))}(e)){var a=e,o=a.mag<0,u=new r(1);return a.layer>=s?u.array=[p(Math.log10(a.layer)),p(1,1),p(1,2)]:a.layer>=1?u.array=[p(Math.abs(a.mag)),p(a.layer,1)]:u.array=[p(a.mag)],u.small=o,u.normalize(),u}if(function(r){if(!Array.isArray(r))return!1;if("number"!=typeof r[0])return!1;for(var e=1;e<r.length;e++){var t=r[e];if(!Array.isArray(t))return!1;if(!E(t))return!1;if(!I(t)&&!k(t)&&!M(t))return!1}return!0}(e)){var l=e;t.array[0]=p(l[0]);for(var c=1;c<l.length;c++){var f=l[c];t.array[1]=p(f[1],O(f[0]),O(f[2]),f[3])}return t.small=!1,t.sign=1,t.layer=0,t}return t.resetFromObject(e),t}},{key:"grahalFunction",value:function(e){var t=new r(e);return!t.isInt()||t.lt(0)||t.isNaN()?r.NaN.clone():t.eq(1)?new r("10^^^(10^)^7625597484984 3638334640023.7783"):t.lte(s)?new r("(10{!})^".concat(t.toNumber()," 10^^^(10^)^7625597484984 3638334640023.7783")):r.BEAF(3,t,1,2)}}])}();l=Symbol.toStringTag,F.ZERO=new F({array:[{arrow:0,expans:1,megota:1,repeat:1/0}],small:!0,layer:0,sign:0}),F.ONE=new F({array:[{arrow:0,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),F.MSI=new F(s),F.MSI_REC=((T=new F(s)).small=!0,T),F.E_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!1,layer:0,sign:1}),F.EE_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:2}],small:!1,layer:0,sign:1}),F.E_MSI_REC=new F({array:[{arrow:0,expans:1,megota:1,repeat:s},{arrow:1,expans:1,megota:1,repeat:1}],small:!0,layer:0,sign:1}),F.TETRATED_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:1e10},{arrow:1,expans:1,megota:1,repeat:s-2}],small:!1,layer:0,sign:1}),F.PENTATED_MSI=new F({array:[{arrow:0,expans:1,megota:1,repeat:10},{arrow:2,expans:1,megota:1,repeat:s-1}],small:!1,layer:0,sign:1}),F.TRITRI=new F({small:!1,layer:0,sign:1,array:[p(3638334640023.7783,0,1,1),p(7625587484984,1,1,1)]}),F.GRAHAMS_NUMBER=new F("(10{!})^63 10^^^(10^)^7625597484984 3638334640023.7783"),F.POSITIVE_INFINITY=new F(1/0),F.NEGATIVE_INFINITY=new F(-1/0),F.NaN=new F({array:[{arrow:0,expans:1,megota:1,repeat:NaN}],small:!1,layer:0,sign:0}),F.E=new F(Math.E),F.LN2=new F(Math.LN2),F.LN10=new F(Math.LN10),F.LOG2E=new F(Math.LOG2E),F.LOG10E=new F(Math.LOG10E),F.PI=new F(Math.PI),F.SQRT1_2=new F(Math.SQRT1_2),F.SQRT2=new F(Math.SQRT2),F.maxOps=100,F.POW_2_44_MOD_PI=1.701173079953,F.arrowFuncMap=new Map,F.beafFuncMap=new Map,F.usingBreakEternityLikeFromString=!0,F.blankArgumentConstructorReturnZero=!1,F.throwErrorOnResultNaN=!1,r.arraySortFunction=q,r.default=F,r.mergeSameArrays=function(r){for(var e=1;e<r.array.length-1;++e)r.array[e].arrow==r.array[e+1].arrow&&r.array[e].expans==r.array[e+1].expans&&r.array[e].megota==r.array[e+1].megota&&(r.array[e].repeat+=r.array[e+1].repeat,r.array.splice(e+1,1),--e)},Object.defineProperty(r,"__esModule",{value:!0})}));
package/dist/index.d.ts CHANGED
@@ -347,14 +347,28 @@ export default class PowiainaNum implements IPowiainaNum {
347
347
  ispos(): boolean;
348
348
  isneg(): boolean;
349
349
  static isNaN(x: PowiainaNumSource): boolean;
350
+ /**
351
+ * @returns number will return the index of the operator. return as x.5 if it's between the xth and x+1th operators.
352
+ */
353
+ static opGetOperatorIndex(operators: Operator[], arrow: number, expans?: number, megota?: number): number;
350
354
  /**
351
355
  * @returns number will return the index of the operator in array. return as x.5 if it's between the xth and x+1th operators.
352
356
  */
353
357
  getOperatorIndex(arrow: number, expans?: number, megota?: number): number;
358
+ /**
359
+ * @returns number repeats of operators with given arguments.
360
+ */
361
+ static opGetOperator(operators: Operator[], arrow: number, expans?: number, megota?: number): number;
354
362
  /**
355
363
  * @returns number repeats of operators with given arguments.
356
364
  */
357
365
  getOperator(arrow: number, expans?: number, megota?: number): number;
366
+ /**
367
+ * Modify the repeat of operator(argument will modified)
368
+ * @param number val the repeat of operator will modify to array.
369
+ * @returns bool Is the operators array changed?
370
+ */
371
+ static opSetOperator(operators: Operator[], val: number, arrow: number, expans?: number, megota?: number): boolean;
358
372
  /**
359
373
  * Modify the repeat of operator
360
374
  * @param number val the repeat of operator will modify to array.
@@ -502,6 +516,7 @@ export default class PowiainaNum implements IPowiainaNum {
502
516
  static readonly maxOps = 100;
503
517
  static readonly POW_2_44_MOD_PI = 1.701173079953;
504
518
  static arrowFuncMap: Map<string, PowiainaNum>;
519
+ static beafFuncMap: Map<string, PowiainaNum>;
505
520
  /**
506
521
  * If you set this config to true,
507
522
  * the `fromString` method will try to parse the string to `PowiainaNum` class with `break_eternity.js` similar `fromString` method, if cannot parse correctly, the program will use `PowiainaNum.js` `fromString` method.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powiaina_num.js",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
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",