-
Notifications
You must be signed in to change notification settings - Fork 15
/
OmegaNum.min.js
2 lines (2 loc) · 30.8 KB
/
OmegaNum.min.js
1
2
//Compressed with UglifyJS 3 https://skalman.github.io/UglifyJS-online/
!function(r){"use strict";var e={maxArrow:1e3,serializeMode:0,debug:0},t="[OmegaNumError] ",n=t+"Invalid argument: ",i=/^[-\+]*(Infinity|NaN|(10(\^+|\{[1-9]\d*\})|\(10(\^+|\{[1-9]\d*\})\)\^[1-9]\d* )*((\d+(\.\d*)?|\d*\.\d+)?([Ee][-\+]*))*(0|\d+(\.\d*)?|\d*\.\d+))$/,a=Math.log10(9007199254740991),o={},u={},s={ZERO:0,ONE:1};s.E=Math.E,s.LN2=Math.LN2,s.LN10=Math.LN10,s.LOG2E=Math.LOG2E,s.LOG10E=Math.LOG10E,s.PI=Math.PI,s.SQRT1_2=Math.SQRT1_2,s.SQRT2=Math.SQRT2,s.MAX_SAFE_INTEGER=9007199254740991,s.MIN_SAFE_INTEGER=Number.MIN_SAFE_INTEGER,s.NaN=Number.NaN,s.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,s.POSITIVE_INFINITY=Number.POSITIVE_INFINITY,s.E_MAX_SAFE_INTEGER="e9007199254740991",s.EE_MAX_SAFE_INTEGER="ee9007199254740991",s.TETRATED_MAX_SAFE_INTEGER="10^^9007199254740991",o.absoluteValue=o.abs=function(){var r=this.clone();return r.sign=1,r},u.absoluteValue=u.abs=function(r){return new e(r).abs()},o.negate=o.neg=function(){var r=this.clone();return r.sign=-1*r.sign,r},u.negate=u.neg=function(r){return new e(r).neg()},o.compareTo=o.cmp=function(r){if(r instanceof e||(r=new e(r)),isNaN(this.array[0])||isNaN(r.array[0]))return NaN;if(this.array[0]==1/0&&r.array[0]!=1/0)return this.sign;if(this.array[0]!=1/0&&r.array[0]==1/0)return-r.sign;if(1==this.array.length&&0===this.array[0]&&1==r.array.length&&0===r.array[0])return 0;if(this.sign!=r.sign)return this.sign;var t,n=this.sign;if(this.array.length>r.array.length)t=1;else if(this.array.length<r.array.length)t=-1;else{for(var i=this.array.length-1;i>=0;--i){if(this.array[i]>r.array[i]){t=1;break}if(this.array[i]<r.array[i]){t=-1;break}}t=t||0}return t*n},u.compare=u.cmp=function(r,t){return new e(r).cmp(t)},o.greaterThan=o.gt=function(r){return this.cmp(r)>0},u.greaterThan=u.gt=function(r,t){return new e(r).gt(t)},o.greaterThanOrEqualTo=o.gte=function(r){return this.cmp(r)>=0},u.greaterThanOrEqualTo=u.gte=function(r,t){return new e(r).gte(t)},o.lessThan=o.lt=function(r){return this.cmp(r)<0},u.lessThan=u.lt=function(r,t){return new e(r).lt(t)},o.lessThanOrEqualTo=o.lte=function(r){return this.cmp(r)<=0},u.lessThanOrEqualTo=u.lte=function(r,t){return new e(r).lte(t)},o.equalsTo=o.equal=o.eq=function(r){return 0===this.cmp(r)},u.equalsTo=u.equal=u.eq=function(r,t){return new e(r).eq(t)},o.notEqualsTo=o.notEqual=o.neq=function(r){return 0!==this.cmp(r)},u.notEqualsTo=u.notEqual=u.neq=function(r,t){return new e(r).neq(t)},o.minimum=o.min=function(r){return this.lt(r)?this.clone():new e(r)},u.minimum=u.min=function(r,t){return new e(r).min(t)},o.maximum=o.max=function(r){return this.gt(r)?this.clone():new e(r)},u.maximum=u.max=function(r,t){return new e(r).max(t)},o.isPositive=o.ispos=function(){return this.gt(e.ZERO)},u.isPositive=u.ispos=function(r){return new e(r).ispos()},o.isNegative=o.isneg=function(){return this.lt(e.ZERO)},u.isNegative=u.isneg=function(r){return new e(r).isneg()},o.isNaN=function(){return isNaN(this.array[0])},u.isNaN=function(r){return new e(r).isNaN()},o.isFinite=function(){return isFinite(this.array[0])},u.isFinite=function(r){return new e(r).isFinite()},o.isInfinite=function(){return this.array[0]==1/0},u.isInfinite=function(r){return new e(r).isInfinite()},o.isInteger=o.isint=function(){return-1==this.sign?this.abs().isint():!!this.gt(e.MAX_SAFE_INTEGER)||Number.isInteger(this.toNumber())},u.isInteger=u.isint=function(r){return new e(r).isint()},o.floor=function(){return this.isInteger()?this.clone():new e(Math.floor(this.toNumber()))},u.floor=function(r){return new e(r).floor()},o.ceiling=o.ceil=function(){return this.isInteger()?this.clone():new e(Math.ceil(this.toNumber()))},u.ceiling=u.ceil=function(r){return new e(r).ceil()},o.round=function(){return this.isInteger()?this.clone():new e(Math.round(this.toNumber()))},u.round=function(r){return new e(r).round()};var f=!1;o.plus=o.add=function(r){var n=this.clone();if(r=new e(r),e.debug>=e.NORMAL&&(console.log(this+"+"+r),f||(console.warn(t+"Debug output via 'debug' is being deprecated and will be removed in the future!"),f=!0)),-1==n.sign)return n.neg().add(r.neg()).neg();if(-1==r.sign)return n.sub(r.neg());if(n.eq(e.ZERO))return r;if(r.eq(e.ZERO))return n;if(n.isNaN()||r.isNaN()||n.isInfinite()&&r.isInfinite()&&n.eq(r.neg()))return e.NaN.clone();if(n.isInfinite())return n;if(r.isInfinite())return r;var i,a=n.min(r),o=n.max(r);if(o.gt(e.E_MAX_SAFE_INTEGER)||o.div(a).gt(e.MAX_SAFE_INTEGER))i=o;else if(o.array[1]){if(1==o.array[1]){var u=a.array[1]?a.array[0]:Math.log10(a.array[0]);i=new e([u+Math.log10(Math.pow(10,o.array[0]-u)+1),1])}}else i=new e(n.toNumber()+r.toNumber());return a=o=null,i},u.plus=u.add=function(r,t){return new e(r).add(t)},o.minus=o.sub=function(r){var t=this.clone();if(r=new e(r),e.debug>=e.NORMAL&&console.log(t+"-"+r),-1==t.sign)return t.neg().sub(r.neg()).neg();if(-1==r.sign)return t.add(r.neg());if(t.eq(r))return e.ZERO.clone();if(r.eq(e.ZERO))return t;if(t.isNaN()||r.isNaN()||t.isInfinite()&&r.isInfinite())return e.NaN.clone();if(t.isInfinite())return t;if(r.isInfinite())return r.neg();var n,i=t.min(r),a=t.max(r),o=r.gt(t);if(a.gt(e.E_MAX_SAFE_INTEGER)||a.div(i).gt(e.MAX_SAFE_INTEGER))n=a,n=o?n.neg():n;else if(a.array[1]){if(1==a.array[1]){var u=i.array[1]?i.array[0]:Math.log10(i.array[0]);n=new e([u+Math.log10(Math.pow(10,a.array[0]-u)-1),1]),n=o?n.neg():n}}else n=new e(t.toNumber()-r.toNumber());return i=a=null,n},u.minus=u.sub=function(r,t){return new e(r).sub(t)},o.times=o.mul=function(r){var t=this.clone();if(r=new e(r),e.debug>=e.NORMAL&&console.log(t+"*"+r),t.sign*r.sign==-1)return t.abs().mul(r.abs()).neg();if(-1==t.sign)return t.abs().mul(r.abs());if(t.isNaN()||r.isNaN()||t.eq(e.ZERO)&&r.isInfinite()||t.isInfinite()&&r.abs().eq(e.ZERO))return e.NaN.clone();if(r.eq(e.ZERO))return e.ZERO.clone();if(r.eq(e.ONE))return t.clone();if(t.isInfinite())return t;if(r.isInfinite())return r;if(t.max(r).gt(e.EE_MAX_SAFE_INTEGER))return t.max(r);var n=t.toNumber()*r.toNumber();return n<=9007199254740991?new e(n):e.pow(10,t.log10().add(r.log10()))},u.times=u.mul=function(r,t){return new e(r).mul(t)},o.divide=o.div=function(r){var t=this.clone();if(r=new e(r),e.debug>=e.NORMAL&&console.log(t+"/"+r),t.sign*r.sign==-1)return t.abs().div(r.abs()).neg();if(-1==t.sign)return t.abs().div(r.abs());if(t.isNaN()||r.isNaN()||t.isInfinite()&&r.isInfinite()||t.eq(e.ZERO)&&r.eq(e.ZERO))return e.NaN.clone();if(r.eq(e.ZERO))return e.POSITIVE_INFINITY.clone();if(r.eq(e.ONE))return t.clone();if(t.eq(r))return e.ONE.clone();if(t.isInfinite())return t;if(r.isInfinite())return e.ZERO.clone();if(t.max(r).gt(e.EE_MAX_SAFE_INTEGER))return t.gt(r)?t.clone():e.ZERO.clone();var n=t.toNumber()/r.toNumber();if(n<=9007199254740991)return new e(n);var i=e.pow(10,t.log10().sub(r.log10())),a=i.floor();return i.sub(a).lt(new e(1e-9))?a:i},u.divide=u.div=function(r,t){return new e(r).div(t)},o.reciprocate=o.rec=function(){return e.debug>=e.NORMAL&&console.log(this+"^-1"),this.isNaN()||this.eq(e.ZERO)?e.NaN.clone():this.abs().gt("2e323")?e.ZERO.clone():new e(1/this)},u.reciprocate=u.rec=function(r){return new e(r).rec()},o.modular=o.mod=function(r){return(r=new e(r)).eq(e.ZERO)?e.ZERO.clone():this.sign*r.sign==-1?this.abs().mod(r.abs()).neg():-1==this.sign?this.abs().mod(r.abs()):this.sub(this.div(r).floor().mul(r))},u.modular=u.mod=function(r,t){return new e(r).mod(t)};o.gamma=function(){var r=this.clone();if(r.gt(e.TETRATED_MAX_SAFE_INTEGER))return r;if(r.gt(e.E_MAX_SAFE_INTEGER))return e.exp(r);if(r.gt(e.MAX_SAFE_INTEGER))return e.exp(e.mul(r,e.ln(r).sub(1)));var t=r.array[0];if(t>1){if(t<24)return new e(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+=(.5+(r-=1))*Math.log(r),t-=r;var n=r*r,i=r;return t+=1/(12*i),t+=1/(360*(i*=n)),t+=1/(1260*(i*=i*n)),t+=1/(1680*(i*=n)),t+=1/(1188*(i*=n)),t+=691/(360360*(i*=n)),t+=7/(1092*(i*=n)),t+=3617/(122400*(i*=n)),Math.exp(t)/e}(r.sign*t));var n=t-1,i=.9189385332046727;i+=(n+.5)*Math.log(n);var a=n*n,o=n,u=12*o,s=1/u,f=(i-=n)+s;if(f==i)return e.exp(i);if((f=(i=f)-(s=1/(u=360*(o*=a))))==i)return e.exp(i);i=f;var l=1/(u=1260*(o*=a));return i+=l,i-=l=1/(u=1680*(o*=a)),e.exp(i)}return this.rec()},u.gamma=function(r){return new e(r).gamma()},u.factorials=[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,20922789888e3,355687428096e3,6402373705728e3,0x1b02b9306890000,243290200817664e4,5109094217170944e4,0x3ceea4c2b3e0d80000,2.585201673888498e22,6.204484017332394e23,1.5511210043330986e25,4.0329146112660565e26,1.0888869450418352e28,3.0488834461171387e29,8.841761993739702e30,2.6525285981219107e32,8.222838654177922e33,2.631308369336935e35,8.683317618811886e36,2.9523279903960416e38,1.0333147966386145e40,3.7199332678990125e41,1.3763753091226346e43,5.230226174666011e44,2.0397882081197444e46,8.159152832478977e47,3.345252661316381e49,1.40500611775288e51,6.041526306337383e52,2.658271574788449e54,1.1962222086548019e56,5.502622159812089e57,2.5862324151116818e59,1.2413915592536073e61,6.082818640342675e62,3.0414093201713376e64,1.5511187532873822e66,8.065817517094388e67,4.2748832840600255e69,2.308436973392414e71,1.2696403353658276e73,7.109985878048635e74,4.0526919504877214e76,2.3505613312828785e78,1.3868311854568984e80,8.32098711274139e81,5.075802138772248e83,3.146997326038794e85,1.98260831540444e87,1.2688693218588417e89,8.247650592082472e90,5.443449390774431e92,3.647111091818868e94,2.4800355424368305e96,1.711224524281413e98,1.1978571669969892e100,8.504785885678623e101,6.1234458376886085e103,4.4701154615126844e105,3.307885441519386e107,2.48091408113954e109,1.8854947016660504e111,1.4518309202828587e113,1.1324281178206297e115,8.946182130782976e116,7.156945704626381e118,5.797126020747368e120,4.753643337012842e122,3.945523969720659e124,3.314240134565353e126,2.81710411438055e128,2.4227095383672734e130,2.107757298379528e132,1.8548264225739844e134,1.650795516090846e136,1.4857159644817615e138,1.352001527678403e140,1.2438414054641308e142,1.1567725070816416e144,1.087366156656743e146,1.032997848823906e148,9.916779348709496e149,9.619275968248212e151,9.426890448883248e153,9.332621544394415e155,9.332621544394415e157,9.42594775983836e159,9.614466715035127e161,9.90290071648618e163,1.0299016745145628e166,1.081396758240291e168,1.1462805637347084e170,1.226520203196138e172,1.324641819451829e174,1.4438595832024937e176,1.588245541522743e178,1.7629525510902446e180,1.974506857221074e182,2.2311927486598138e184,2.5435597334721877e186,2.925093693493016e188,3.393108684451898e190,3.969937160808721e192,4.684525849754291e194,5.574585761207606e196,6.689502913449127e198,8.094298525273444e200,9.875044200833601e202,1.214630436702533e205,1.506141741511141e207,1.882677176888926e209,2.372173242880047e211,3.0126600184576594e213,3.856204823625804e215,4.974504222477287e217,6.466855489220474e219,8.47158069087882e221,1.1182486511960043e224,1.4872707060906857e226,1.9929427461615188e228,2.6904727073180504e230,3.659042881952549e232,5.012888748274992e234,6.917786472619489e236,9.615723196941089e238,1.3462012475717526e241,1.898143759076171e243,2.695364137888163e245,3.854370717180073e247,5.5502938327393044e249,8.047926057471992e251,1.1749972043909107e254,1.727245890454639e256,2.5563239178728654e258,3.80892263763057e260,5.713383956445855e262,8.62720977423324e264,1.3113358856834524e267,2.0063439050956823e269,3.0897696138473508e271,4.789142901463394e273,7.471062926282894e275,1.1729568794264145e278,1.853271869493735e280,2.9467022724950384e282,4.7147236359920616e284,7.590705053947219e286,1.2296942187394494e289,2.0044015765453026e291,3.287218585534296e293,5.423910666131589e295,9.003691705778438e297,1.503616514864999e300,2.5260757449731984e302,4.269068009004705e304,7.257415615307999e306],o.factorial=o.fact=function(){var r=this.clone(),t=e.factorials;if(r.lt(e.ZERO)||!r.isint())return r.add(1).gamma();if(r.lte(170))return new e(t[+r]);var n=+r;return n<500&&(n+=163879/209018880*Math.pow(n,5)),n<1e3&&(n+=-571/2488320*Math.pow(n,4)),n<5e4&&(n+=-139/51840*Math.pow(n,3)),n<1e7&&(n+=1/288*Math.pow(n,2)),n<1e20&&(n+=1/12*n),r.div(e.E).pow(r).mul(r.mul(e.PI).mul(2).sqrt()).times(1)},u.factorial=u.fact=function(r){return new e(r).fact()},o.toPower=o.pow=function(r){if(r=new e(r),e.debug>=e.NORMAL&&console.log(this+"^"+r),r.eq(e.ZERO))return e.ONE.clone();if(r.eq(e.ONE))return this.clone();if(r.lt(e.ZERO))return this.pow(r.neg()).rec();if(this.lt(e.ZERO)&&r.isint())return r.mod(2).lt(e.ONE)?this.abs().pow(r):this.abs().pow(r).neg();if(this.lt(e.ZERO))return e.NaN.clone();if(this.eq(e.ONE))return e.ONE.clone();if(this.eq(e.ZERO))return e.ZERO.clone();if(this.max(r).gt(e.TETRATED_MAX_SAFE_INTEGER))return this.max(r);if(this.eq(10))return r.gt(e.ZERO)?(r.array[1]=r.array[1]+1||1,r.normalize(),r):new e(Math.pow(10,r.toNumber()));if(r.lt(e.ONE))return this.root(r.rec());var t=Math.pow(this.toNumber(),r.toNumber());return t<=9007199254740991?new e(t):e.pow(10,this.log10().mul(r))},u.toPower=u.pow=function(r,t){return new e(r).pow(t)},o.exponential=o.exp=function(){return e.pow(Math.E,this)},u.exponential=u.exp=function(r){return e.pow(Math.E,r)},o.squareRoot=o.sqrt=function(){return this.root(2)},u.squareRoot=u.sqrt=function(r){return new e(r).root(2)},o.cubeRoot=o.cbrt=function(){return this.root(3)},u.cubeRoot=u.cbrt=function(r){return new e(r).root(3)},o.root=function(r){return r=new e(r),e.debug>=e.NORMAL&&console.log(this+"root"+r),r.eq(e.ONE)?this.clone():r.lt(e.ZERO)?this.root(r.neg()).rec():r.lt(e.ONE)?this.pow(r.rec()):this.lt(e.ZERO)&&r.isint()&&r.mod(2).eq(e.ONE)?this.neg().root(r).neg():this.lt(e.ZERO)?e.NaN.clone():this.eq(e.ONE)?e.ONE.clone():this.eq(e.ZERO)?e.ZERO.clone():this.max(r).gt(e.TETRATED_MAX_SAFE_INTEGER)?this.gt(r)?this.clone():e.ZERO.clone():e.pow(10,this.log10().div(r))},u.root=function(r,t){return new e(r).root(t)},o.generalLogarithm=o.log10=function(){var r=this.clone();return e.debug>=e.NORMAL&&console.log("log"+this),r.lt(e.ZERO)?e.NaN.clone():r.eq(e.ZERO)?e.NEGATIVE_INFINITY.clone():r.lte(e.MAX_SAFE_INTEGER)?new e(Math.log10(r.toNumber())):r.isFinite()?r.gt(e.TETRATED_MAX_SAFE_INTEGER)?r:(r.array[1]--,r.normalize()):r},u.generalLogarithm=u.log10=function(r){return new e(r).log10()},o.logarithm=o.logBase=function(r){return void 0===r&&(r=Math.E),this.log10().div(e.log10(r))},u.logarithm=u.logBase=function(r,t){return new e(r).logBase(t)},o.naturalLogarithm=o.log=o.ln=function(){return this.logBase(Math.E)},u.naturalLogarithm=u.log=u.ln=function(r){return new e(r).ln()};o.lambertw=function(){var r=this.clone();if(r.isNaN())return r;if(r.lt(-.3678794411710499))throw Error("lambertw is unimplemented for results less than -1, sorry!");return r.gt(e.TETRATED_MAX_SAFE_INTEGER)?r:r.gt(e.EE_MAX_SAFE_INTEGER)?(r.array[1]--,r):r.gt(e.MAX_SAFE_INTEGER)?function(r,t){var n,i,a,o;if(void 0===t&&(t=1e-10),!(r=new e(r)).isFinite())return r;if(0===r)return r;if(1===r)return.5671432904097838;n=e.ln(r);for(var u=0;u<100;++u){if(i=e.exp(-n),a=n.sub(r.mul(i)),o=n.sub(a.div(n.add(e.ONE).sub(n.add(2).mul(a).div(e.mul(2,n).add(2))))),e.abs(o.sub(n)).lt(e.abs(o).mul(t)))return o;n=o}throw Error("Iteration failed to converge: "+r)}(r):new e(function(r,e){var t,n;if(void 0===e&&(e=1e-10),!Number.isFinite(r))return r;if(0===r)return r;if(1===r)return.5671432904097838;t=r<10?0:Math.log(r)-Math.log(Math.log(r));for(var i=0;i<100;++i){if(n=(r*Math.exp(-t)+t*t)/(t+1),Math.abs(n-t)<e*Math.abs(n))return n;t=n}throw Error("Iteration failed to converge: "+r)}(r.sign*r.array[0]))},u.lambertw=function(r){return new e(r).lambertw()},o.tetrate=o.tetr=function(r,t){void 0===t&&(t=e.ONE);var n,i=this.clone();if(r=new e(r),(t=new e(t)).neq(e.ONE)&&(r=r.add(t.slog(i))),e.debug>=e.NORMAL&&console.log(i+"^^"+r),i.isNaN()||r.isNaN()||t.isNaN())return e.NaN.clone();if(r.isInfinite()&&r.sign>0)return i.gte(Math.exp(1/Math.E))?e.POSITIVE_INFINITY.clone():(n=i.ln().neg()).lambertw().div(n);if(r.lte(-2))return e.NaN.clone();if(i.eq(e.ZERO))return r.eq(e.ZERO)?e.NaN.clone():r.mod(2).eq(e.ZERO)?e.ZERO.clone():e.ONE.clone();if(i.eq(e.ONE))return r.eq(e.ONE.neg())?e.NaN.clone():e.ONE.clone();if(r.eq(e.ONE.neg()))return e.ZERO.clone();if(r.eq(e.ZERO))return e.ONE.clone();if(r.eq(e.ONE))return i;if(r.eq(2))return i.pow(i);if(i.eq(2)){if(r.eq(3))return new e(16);if(r.eq(4))return new e(65536)}if((h=i.max(r)).gt("10^^^9007199254740991"))return h;if(h.gt(e.TETRATED_MAX_SAFE_INTEGER)||r.gt(e.MAX_SAFE_INTEGER)){if(this.lt(Math.exp(1/Math.E)))return(n=i.ln().neg()).lambertw().div(n);var a=i.slog(10).add(r);return a.array[2]=(a.array[2]||0)+1,a.normalize(),a}for(var o=r.toNumber(),u=Math.floor(o),s=i.pow(o-u),f=e.NaN,l=0,h=e.E_MAX_SAFE_INTEGER;0!==u&&s.lt(h)&&l<100;++l)if(u>0){if(s=i.pow(s),f.eq(s)){u=0;break}f=s,--u}else{if(s=s.logBase(i),f.eq(s)){u=0;break}f=s,++u}return(100==l||this.lt(Math.exp(1/Math.E)))&&(u=0),s.array[1]=s.array[1]+u||u,s.normalize(),s},u.tetrate=u.tetr=function(r,t,n){return new e(r).tetr(t,n)},o.iteratedexp=function(r,e){return this.tetr(r,e)},u.iteratedexp=function(r,t,n){return new e(r).iteratedexp(other,n)},o.iteratedlog=function(r,t){void 0===r&&(r=10),void 0===t&&(t=e.ONE.clone());var n=this.clone();return t.eq(ExpantaNum.ZERO)?n:t.eq(ExpantaNum.ONE)?n.logBase(r):(r=new e(r),t=new e(t),r.tetr(n.slog(r).sub(t)))},u.iteratedlog=function(r,t,n){return new e(r).iteratedlog(t,n)},o.layeradd=function(r,t){void 0===t&&(t=10),void 0===r&&(r=e.ONE.clone());var n=this.clone();return t=new e(t),r=new e(r),t.tetr(n.slog(t).add(r))},u.layeradd=function(r,t,n){return new e(r).layeradd(t,n)},o.layeradd10=function(r){return this.layeradd(r)},u.layeradd10=function(r,t){return new e(r).layeradd10(t)},o.ssqrt=o.ssrt=function(){var r=this.clone();if(r.lt(Math.exp(-1/Math.E)))return e.NaN.clone();if(!r.isFinite())return r;if(r.gt(e.TETRATED_MAX_SAFE_INTEGER))return r;if(r.gt(e.EE_MAX_SAFE_INTEGER))return r.array[1]--,r;var t=r.ln();return t.div(t.lambertw())},u.ssqrt=u.ssrt=function(r){return new e(r).ssqrt()},o.slog=function(r){void 0===r&&(r=10);var t=new e(this);if(r=new e(r),t.isNaN()||r.isNaN()||t.isInfinite()&&r.isInfinite())return e.NaN.clone();if(t.isInfinite())return t;if(r.isInfinite())return e.ZERO.clone();if(t.lt(e.ZERO))return e.ONE.neg();if(t.eq(e.ONE))return e.ZERO.clone();if(t.eq(r))return e.ONE.clone();if(r.lt(Math.exp(1/Math.E))){var n=e.tetr(r,1/0);if(t.eq(n))return e.POSITIVE_INFINITY.clone();if(t.gt(n))return e.NaN.clone()}if(t.max(r).gt("10^^^9007199254740991"))return t.gt(r)?t:e.ZERO.clone();if(t.max(r).gt(e.TETRATED_MAX_SAFE_INTEGER))return t.gt(r)?(t.array[2]--,t.normalize(),t.sub(t.array[1])):e.ZERO.clone();var i=0,a=(t.array[1]||0)-(r.array[1]||0);if(a>3){var o=a-3;i+=o,t.array[1]=t.array[1]-o}for(var u=0;u<100;++u)if(t.lt(e.ZERO))t=e.pow(r,t),--i;else{if(t.lte(1))return new e(i+t.toNumber()-1);++i,t=e.logBase(t,r)}return t.gt(10)?new e(i):void 0},u.slog=function(r,t){return new e(r).slog(t)},o.pentate=o.pent=function(r){return this.arrow(3)(r)},u.pentate=u.pent=function(r,t){return e.arrow(r,3,t)},o.arrow=function(r){var t=this.clone();return!(r=new e(r)).isint()||r.lt(e.ZERO)?function(r){return e.NaN.clone()}:r.eq(e.ZERO)?function(r){return t.mul(r)}:r.eq(e.ONE)?function(r){return t.pow(r)}:r.eq(2)?function(r){return t.tetr(r)}:function(n){if(n=new e(n),e.debug>=e.NORMAL&&console.log(t+"{"+r+"}"+n),n.lt(e.ZERO))return e.NaN.clone();if(n.eq(e.ZERO))return e.ONE.clone();if(n.eq(e.ONE))return t.clone();if(r.gte(e.maxArrow))return console.warn("Number too large to reasonably handle it: tried to "+r.add(2)+"-ate."),e.POSITIVE_INFINITY.clone();var i,a=r.toNumber();if(n.eq(2))return t.arrow(r.sub(e.ONE))(t);if(t.max(n).gt("10{"+(a+1)+"}9007199254740991"))return t.max(n);if(t.gt("10{"+a+"}9007199254740991")||n.gt(e.MAX_SAFE_INTEGER)){t.gt("10{"+a+"}9007199254740991")?((i=t.clone()).array[a]--,i.normalize()):i=t.gt("10{"+(a-1)+"}9007199254740991")?new e(t.array[a-1]):e.ZERO;var o=i.add(n);return o.array[a]=(o.array[a]||0)+1,o.normalize(),o}var u=n.toNumber(),s=Math.floor(u),f=r.sub(e.ONE);i=t.arrow(f)(u-s);for(var l=0,h=new e("10{"+(a-1)+"}9007199254740991");0!==s&&i.lt(h)&&l<100;++l)s>0&&(i=t.arrow(f)(i),--s);return 100==l&&(s=0),i.array[a-1]=i.array[a-1]+s||s,i.normalize(),i}},o.chain=function(r,e){return this.arrow(e)(r)},u.arrow=function(r,t,n){return new e(r).arrow(t)(n)},u.chain=function(r,t,n){return new e(r).arrow(n)(t)},u.hyper=function(r){return(r=new e(r)).eq(e.ZERO)?function(r,t){return new e(t).eq(e.ZERO)?new e(r):new e(r).add(e.ONE)}:r.eq(e.ONE)?function(r,t){return e.add(r,t)}:function(t,n){return new e(t).arrow(r.sub(2))(n)}},u.affordGeometricSeries=function(r,t,n,i){r=new e(r),t=new e(t),n=new e(n);var a=t.mul(n.pow(i));return e.floor(r.div(a).mul(n.sub(e.ONE)).add(e.ONE).log10().div(n.log10()))},u.affordArithmeticSeries=function(r,t,n,i){r=new e(r),t=new e(t),n=new e(n),i=new e(i);var a=t.add(i.mul(n)).sub(n.div(2)),o=a.pow(2);return a.neg().add(o.add(n.mul(r).mul(2)).sqrt()).div(n).floor()},u.sumGeometricSeries=function(r,t,n,i){return t=new e(t),n=new e(n),t.mul(n.pow(i)).mul(e.sub(e.ONE,n.pow(r))).div(e.sub(e.ONE,n))},u.sumArithmeticSeries=function(r,t,n,i){r=new e(r),t=new e(t),i=new e(i);var a=t.add(i.mul(n));return r.div(2).mul(a.mul(2).plus(r.sub(e.ONE).mul(n)))},u.choose=function(r,t){return new e(r).factorial().div(new e(t).factorial().mul(new e(r).sub(new e(t)).factorial()))},o.choose=function(r){return e.choose(this,r)},o.normalize=function(){var r,t=this;e.debug>=e.ALL&&console.log(t.toString()),t.array&&t.array.length||(t.array=[0]),1!=t.sign&&-1!=t.sign&&("number"!=typeof t.sign&&(t.sign=Number(t.sign)),t.sign=t.sign<0?-1:1);for(var n=t.array.length,i=0;i<n;i++){var o=t.array[i];if(null!=o){if(isNaN(o))return t.array=[NaN],t;if(!isFinite(o))return t.array=[1/0],t;0===i||Number.isInteger(o)||(t.array[i]=Math.floor(o))}else t.array[i]=0}do{for(e.debug>=e.ALL&&console.log(t.toString()),r=!1;t.array.length&&0===t.array[t.array.length-1];)t.array.pop(),r=!0;for(t.array[0]>9007199254740991&&(t.array[1]=(t.array[1]||0)+1,t.array[0]=Math.log10(t.array[0]),r=!0);t.array[0]<a&&t.array[1];)t.array[0]=Math.pow(10,t.array[0]),t.array[1]--,r=!0;if(t.array.length>2&&!t.array[1]){for(i=2;!t.array[i];++i)continue;t.array[i-1]=t.array[0],t.array[0]=1,t.array[i]--,r=!0}for(n=t.array.length,i=1;i<n;++i)if(t.array[i]>9007199254740991){t.array[i+1]=(t.array[i+1]||0)+1,t.array[0]=t.array[i]+1;for(var u=1;u<=i;++u)t.array[u]=0;r=!0}}while(r);return t.array.length||(t.array=[0]),t};var l=!1;o.standardize=function(){return l||(console.warn(t+"'standardize' method is being deprecated in favor of 'normalize' and will be removed in the future!"),l=!0),this.normalize()},o.toNumber=function(){return-1==this.sign?-1*this.abs():this.array.length>=2&&(this.array[1]>=2||1==this.array[1]&&this.array[0]>Math.log10(Number.MAX_VALUE))?1/0:1==this.array[1]?Math.pow(10,this.array[0]):this.array[0]},o.toString=function(){if(-1==this.sign)return"-"+this.abs();if(isNaN(this.array[0]))return"NaN";if(!isFinite(this.array[0]))return"Infinity";var r="";if(this.array.length>=2)for(var e=this.array.length-1;e>=2;--e){var t=e>=5?"{"+e+"}":"^".repeat(e);this.array[e]>1?r+="(10"+t+")^"+this.array[e]+" ":1==this.array[e]&&(r+="10"+t)}return this.array[1]?this.array[1]<3?r+="e".repeat(this.array[1]-1)+Math.pow(10,this.array[0]-Math.floor(this.array[0]))+"e"+Math.floor(this.array[0]):this.array[1]<8?r+="e".repeat(this.array[1])+this.array[0]:r+="(10^)^"+this.array[1]+" "+this.array[0]:r+=String(this.toNumber()),r};var h=function(r,e){var t=e+1,n=Math.ceil(Math.log10(Math.abs(r)));n<100&&(n=0);var i=Math.round(r*Math.pow(10,t-n))*Math.pow(10,n-t);return parseFloat(i.toFixed(Math.max(t-n,0)))};o.toStringWithDecimalPlaces=function(r,e){if(-1==this.sign)return"-"+this.abs();if(isNaN(this.array[0]))return"NaN";if(!isFinite(this.array[0]))return"Infinity";var t=0,n="",i=Math.pow(10,r);if(this.array.length>=2)for(var a=this.array.length-1;!t&&a>=2;--a){var o=this.array[a];e&&o>=i?(++a,t=o,o=1):e&&this.array[a-1]>=i&&(++o,t=this.array[a-1]);var u=a>=5?"{"+a+"}":"^".repeat(a);o>1?n+="(10"+u+")^"+o+" ":1==o&&(n+="10"+u)}var s=this.array[0],f=this.array[1]||0;return s>i&&(s=Math.log10(s),++f),n+=t?h(t,r):f?f<3?"e".repeat(f-1)+h(Math.pow(10,s-Math.floor(s)),r)+"e"+h(Math.floor(s),r):f<8?"e".repeat(f)+h(s,r):e?"(10^)^"+h(f,r)+" "+h(s,r):"(10^)^"+f+" "+h(s,r):String(h(s,r))},o.toExponential=function(r,e){return 1==this.array.length?(this.sign*this.array[0]).toExponential(r):this.toStringWithDecimalPlaces(r,e)},o.toFixed=function(r,e){return 1==this.array.length?(this.sign*this.array[0]).toFixed(r):this.toStringWithDecimalPlaces(r,e)},o.toPrecision=function(r,e){return 0===this.array[0]?(this.sign*this.array[0]).toFixed(r-1,e):1==this.array.length&&this.array[0]<1e-6?this.toExponential(r-1,e):1==this.array.length&&r>Math.log10(this.array[0])?this.toFixed(r-Math.floor(Math.log10(this.array[0]))-1,e):this.toExponential(r-1,e)},o.valueOf=function(){return this.toString()},o.toJSON=function(){return e.serializeMode==e.JSON?{array:this.array.slice(0),sign:this.sign}:e.serializeMode==e.STRING?this.toString():void 0},o.toHyperE=function(){if(-1==this.sign)return"-"+this.abs().toHyperE();if(isNaN(this.array[0]))return"NaN";if(!isFinite(this.array[0]))return"Infinity";if(this.lt(e.MAX_SAFE_INTEGER))return String(this.array[0]);if(this.lt(e.E_MAX_SAFE_INTEGER))return"E"+this.array[0];for(var r="E"+this.array[0]+"#"+this.array[1],t=2;t<this.array.length;++t)r+="#"+(this.array[t]+1);return r},u.fromNumber=function(r){if("number"!=typeof r)throw Error(n+"Expected Number");var t=new e;return t.array[0]=Math.abs(r),t.sign=r<0?-1:1,t.normalize(),t};u.fromBigInt=function(r){if("bigint"!=typeof r)throw Error(n+"Expected BigInt");var t=new e,i=r<BigInt(0)?-r:r;return t.sign=r<BigInt(0)?-1:1,i<=9007199254740991?t.array[0]=Number(i):t.array=[function(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),i=r>>n;return Math.log10(Number(i))+Math.LOG10E/Math.LOG2E*Number(n)}(i),1],t.normalize(),t};var c=function(r){return Math.log10(Number(r.substring(0,17)))+(r.length-17)};function g(r){if(!r||"object"!=typeof r)throw Error(t+"Object expected");var e,i,a,o=["maxArrow",1,Number.MAX_SAFE_INTEGER,"serializeMode",0,1,"debug",0,2];for(e=0;e<o.length;e+=3)if(void 0!==(a=r[i=o[e]])){if(!(Math.floor(a)===a&&a>=o[e+1]&&a<=o[e+2]))throw Error(n+i+": "+a);this[i]=a}return this}u.fromString=function(r){if("string"!=typeof r)throw Error(n+"Expected String");var o=!1;if("string"==typeof r&&("["==r[0]||"{"==r[0]))try{JSON.parse(r)}finally{o=!0}if(o)return e.fromJSON(r);var u=new e;if(u.array=[0],!i.test(r))return console.warn(t+"Malformed input: "+r),u.array=[NaN],u;var s=!1;if("-"==r[0]||"+"==r[0]){var f=r.search(/[^-\+]/);s=r.substring(0,f).match(/-/g).length%2==1,r=r.substring(f)}if("NaN"==r)u.array=[NaN];else if("Infinity"==r)u.array=[1/0];else{for(var l,h,g,E,N;r&&/^\(?10[\^\{]/.test(r);){var y;if("("==r[0]&&(r=r.substring(1)),"^"==r[2]?(y=l=r.substring(2).search(/[^\^]/),h=l+2):(l=r.indexOf("}"),y=Number(r.substring(3,l)),h=l+1),y>=e.maxArrow){console.warn("Number too large to reasonably handle it: tried to "+y.add(2)+"-ate."),u.array=[1/0];break}if(")"==(r=r.substring(h))[0]?(l=r.indexOf(" "),g=Number(r.substring(2,l)),r=r.substring(l+1)):g=1,1==y)u.array[1]=(u.array[1]||0)+g;else if(2==y)l=u.array[1]||0,(h=u.array[0]||0)>=1e10&&++l,h>=10&&++l,u.array[0]=l,u.array[1]=0,u.array[2]=(u.array[2]||0)+g;else{for(l=u.array[y-1]||0,(h=u.array[y-2]||0)>=10&&++l,N=1;N<y;++N)u.array[N]=0;u.array[0]=l,u.array[y]=(u.array[y]||0)+g}}for(l=r.split(/[Ee]/),h=[u.array[0],0],g=1,N=l.length-1;N>=0;--N){h[0]<a&&0===h[1]?h[0]=Math.pow(10,g*h[0]):-1==g?(0===h[1]?h[0]=Math.pow(10,g*h[0]):1==h[1]&&h[0]<=Math.log10(Number.MAX_VALUE)?h[0]=Math.pow(10,g*Math.pow(10,h[0])):h[0]=0,h[1]=0):h[1]++;var m=l[N].indexOf("."),d=-1==m?l[N].length:m;0===h[1]?d>=17?(h[0]=Math.log10(h[0])+c(l[N].substring(0,d)),h[1]=1):l[N]&&(h[0]*=Number(l[N])):(E=d>=17?c(l[N].substring(0,d)):l[N]?Math.log10(Number(l[N])):0,1==h[1]?h[0]+=E:2==h[1]&&h[0]<a+Math.log10(E)&&(h[0]+=Math.log10(1+Math.pow(10,Math.log10(E)-h[0])))),h[0]<a&&h[1]?(h[0]=Math.pow(10,h[0]),h[1]--):h[0]>9007199254740991&&(h[0]=Math.log10(h[0]),h[1]++)}u.array[0]=h[0],u.array[1]=(u.array[1]||0)+h[1]}return s&&(u.sign*=-1),u.normalize(),u},u.fromArray=function(r,t){var i,a;if(r instanceof Array&&(void 0===t||"number"==typeof t))i=r,a=t;else{if(!(t instanceof Array&&"number"==typeof r))throw Error(n+"Expected an Array [and Boolean]");i=t,a=r}var o=new e;return o.array=i.slice(0),o.sign=a?Number(a):1,o.normalize(),o},u.fromObject=function(r){if("object"!=typeof r)throw Error(n+"Expected Object");if(null===r)return e.ZERO.clone();if(r instanceof Array)return e.fromArray(r);if(r instanceof e)return new e(r);if(!(r.array instanceof Array))throw Error(n+"Expected that property 'array' exists");if(void 0!==r.sign&&"number"!=typeof r.sign)throw Error(n+"Expected that property 'sign' is Number");var t=new e;return t.array=r.array.slice(0),t.sign=Number(r.sign)||1,t.normalize(),t},u.fromJSON=function(r){if("object"==typeof r)return e.fromObject(t);if("string"!=typeof r)throw Error(n+"Expected String");var t,i;try{t=JSON.parse(r)}catch(r){throw t=null,r}finally{i=e.fromObject(t)}return t=null,i},u.fromHyperE=function(r){if("string"!=typeof r)throw Error(n+"Expected String");var i=new e;if(i.array=[0],!/^[-\+]*(0|[1-9]\d*(\.\d*)?|Infinity|NaN|E[1-9]\d*(\.\d*)?(#[1-9]\d*)*)$/.test(r))return console.warn(t+"Malformed input: "+r),i.array=[NaN],i;var a=!1;if("-"==r[0]||"+"==r[0]){var o=r.search(/[^-\+]/);a=r.substring(0,o).match(/-/g).length%2==0,r=r.substring(o)}if("NaN"==r)i.array=[NaN];else if("Infinity"==r)i.array=[1/0];else if("E"!=r[0])i.array[0]=Number(r);else if(-1==r.indexOf("#"))i.array[0]=Number(r.substring(1)),i.array[1]=1;else for(var u=r.substring(1).split("#"),s=0;s<u.length;++s){var f=Number(u[s]);s>=2&&--f,i.array[s]=f}return a&&(i.sign*=-1),i.normalize(),i},o.clone=function(){var r=new e;return r.array=this.array.slice(0),r.sign=this.sign,r},(e=function(r){for(var t in s)s.hasOwnProperty(t)&&(Object.defineProperty?Object.defineProperty(r,t,{configurable:!1,enumerable:!0,writable:!1,value:new e(s[t])}):r[t]=new e(s[t]));return r}(e=function r(e){var t,n,i;function a(r,e){var t=this;if(!(t instanceof a))return new a(r,e);t.constructor=a;var n,i,o=null;if("string"==typeof r&&("["==r[0]||"{"==r[0]))try{o=JSON.parse(r)}catch(r){}return"number"!=typeof r||e instanceof Array?"bigint"==typeof r?n=a.fromBigInt(r):o?n=a.fromObject(o):"string"==typeof r&&"E"==r[0]?n=a.fromHyperE(r):"string"==typeof r?n=a.fromString(r):r instanceof Array||e instanceof Array?n=a.fromArray(r,e):r instanceof a?(n=r.array.slice(0),i=r.sign):"object"==typeof r?n=a.fromObject(r):(n=[NaN],i=1):n=a.fromNumber(r),void 0===i?(t.array=n.array,t.sign=n.sign):(t.array=n,t.sign=i),t}for(var s in a.prototype=o,a.JSON=0,a.STRING=1,a.NONE=0,a.NORMAL=1,a.ALL=2,a.clone=r,a.config=a.set=g,u)u.hasOwnProperty(s)&&(a[s]=u[s]);if(void 0===e&&(e={}),e)for(i=["maxArrow","serializeMode","debug"],t=0;t<i.length;)e.hasOwnProperty(n=i[t++])||(e[n]=this[n]);return a.config(e),a}(e))).default=e.OmegaNum=e,"function"==typeof define&&define.amd?define(function(){return e}):"undefined"!=typeof module&&module.exports?module.exports=e:(r||(r="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),r.OmegaNum=e)}(this);