JezK
Edit File: big.min.js
!function(r){"use strict";var e,b=1e6,f="[big.js] ",u=f+"Invalid ",P=u+"decimal places",o=u+"rounding mode",D=f+"Division by zero",t={},M=void 0,h=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function x(r,e,t,n){var i=r.c;if(0!==(t=t===M?r.constructor.RM:t)&&1!==t&&2!==t&&3!==t)throw Error(o);if(e<1)n=3===t&&(n||!!i[0])||0===e&&(1===t&&5<=i[0]||2===t&&(5<i[0]||5===i[0]&&(n||i[1]!==M))),i.length=1,n?(r.e=r.e-e+1,i[0]=1):i[0]=r.e=0;else if(e<i.length){if(n=1===t&&5<=i[e]||2===t&&(5<i[e]||5===i[e]&&(n||i[e+1]!==M||1&i[e-1]))||3===t&&(n||!!i[0]),i.length=e,n)for(;9<++i[--e];)if((i[e]=0)===e){++r.e,i.unshift(1);break}for(e=i.length;!i[--e];)i.pop()}return r}function s(r,e,t){var n=r.e,i=r.c.join(""),o=i.length;if(e)i=i.charAt(0)+(1<o?"."+i.slice(1):"")+(n<0?"e":"e+")+n;else if(n<0){for(;++n;)i="0"+i;i="0."+i}else if(0<n)if(++n>o)for(n-=o;n--;)i+="0";else n<o&&(i=i.slice(0,n)+"."+i.slice(n));else 1<o&&(i=i.charAt(0)+"."+i.slice(1));return r.s<0&&t?"-"+i:i}t.abs=function(){var r=new this.constructor(this);return r.s=1,r},t.cmp=function(r){var e,t=this,n=t.c,i=(r=new t.constructor(r)).c,o=t.s,s=r.s,t=t.e,r=r.e;if(!n[0]||!i[0])return n[0]?o:i[0]?-s:0;if(o!=s)return o;if(e=o<0,t!=r)return r<t^e?1:-1;for(s=(t=n.length)<(r=i.length)?t:r,o=-1;++o<s;)if(n[o]!=i[o])return n[o]>i[o]^e?1:-1;return t==r?0:r<t^e?1:-1},t.div=function(r){var e=this,t=e.constructor,n=e.c,i=(r=new t(r)).c,o=e.s==r.s?1:-1,s=t.DP;if(s!==~~s||s<0||b<s)throw Error(P);if(!i[0])throw Error(D);if(!n[0])return r.s=o,r.c=[r.e=0],r;var c,f,u,h,l,a=i.slice(),p=c=i.length,g=n.length,w=n.slice(0,c),v=w.length,d=r,m=d.c=[],E=0,s=s+(d.e=e.e-r.e)+1;for(d.s=o,o=s<0?0:s,a.unshift(0);v++<c;)w.push(0);do{for(u=0;u<10;u++){if(c!=(v=w.length))h=v<c?1:-1;else for(l=-1,h=0;++l<c;)if(i[l]!=w[l]){h=i[l]>w[l]?1:-1;break}if(!(h<0))break;for(f=v==c?i:a;v;){if(w[--v]<f[v]){for(l=v;l&&!w[--l];)w[l]=9;--w[l],w[v]+=10}w[v]-=f[v]}for(;!w[0];)w.shift()}}while(m[E++]=h?u:++u,w[0]&&h?w[v]=n[p]||0:w=[n[p]],(p++<g||w[0]!==M)&&o--);return m[0]||1==E||(m.shift(),d.e--,s--),s<E&&x(d,s,t.RM,w[0]!==M),d},t.eq=function(r){return 0===this.cmp(r)},t.gt=function(r){return 0<this.cmp(r)},t.gte=function(r){return-1<this.cmp(r)},t.lt=function(r){return this.cmp(r)<0},t.lte=function(r){return this.cmp(r)<1},t.minus=t.sub=function(r){var e,t,n,i,o=this,s=o.constructor,c=o.s,f=(r=new s(r)).s;if(c!=f)return r.s=-f,o.plus(r);var u=o.c.slice(),h=o.e,l=r.c,a=r.e;if(u[0]&&l[0]){if(c=h-a){for((n=(i=c<0)?(c=-c,u):(a=h,l)).reverse(),f=c;f--;)n.push(0);n.reverse()}else for(t=((i=u.length<l.length)?u:l).length,c=f=0;f<t;f++)if(u[f]!=l[f]){i=u[f]<l[f];break}if(i&&(n=u,u=l,l=n,r.s=-r.s),0<(f=(t=l.length)-(e=u.length)))for(;f--;)u[e++]=0;for(f=e;c<t;){if(u[--t]<l[t]){for(e=t;e&&!u[--e];)u[e]=9;--u[e],u[t]+=10}u[t]-=l[t]}for(;0===u[--f];)u.pop();for(;0===u[0];)u.shift(),--a;u[0]||(r.s=1,u=[a=0]),r.c=u,r.e=a}else l[0]?r.s=-f:u[0]?r=new s(o):r.s=1;return r},t.mod=function(r){var e,t=this,n=t.constructor,i=t.s,o=(r=new n(r)).s;if(r.c[0])return e=(t.s=r.s=1)==r.cmp(t),t.s=i,r.s=o,e?new n(t):(i=n.DP,o=n.RM,n.DP=n.RM=0,t=t.div(r),n.DP=i,n.RM=o,this.minus(t.times(r)));throw Error(D)},t.neg=function(){var r=new this.constructor(this);return r.s=-r.s,r},t.plus=t.add=function(r){var e,t,n,i=this,o=i.constructor;if(r=new o(r),i.s!=r.s)return r.s=-r.s,i.minus(r);var s=i.e,c=i.c,f=r.e,u=r.c;if(c[0]&&u[0]){if(c=c.slice(),e=s-f){for((n=0<e?(f=s,u):(e=-e,c)).reverse();e--;)n.push(0);n.reverse()}for(c.length-u.length<0&&(n=u,u=c,c=n),e=u.length,t=0;e;c[e]%=10)t=(c[--e]=c[e]+u[e]+t)/10|0;for(t&&(c.unshift(t),++f),e=c.length;0===c[--e];)c.pop();r.c=c,r.e=f}else u[0]||(c[0]?r=new o(i):r.s=i.s);return r},t.pow=function(r){var e=this,t=new e.constructor("1"),n=t,i=r<0;if(r!==~~r||r<-1e6||1e6<r)throw Error(u+"exponent");for(i&&(r=-r);1&r&&(n=n.times(e)),r>>=1;)e=e.times(e);return i?t.div(n):n},t.prec=function(r,e){if(r!==~~r||r<1||b<r)throw Error(u+"precision");return x(new this.constructor(this),r,e)},t.round=function(r,e){if(r===M)r=0;else if(r!==~~r||r<-b||b<r)throw Error(P);return x(new this.constructor(this),r+this.e+1,e)},t.sqrt=function(){var r,e,t,n=this,i=n.constructor,o=n.s,s=n.e,c=new i("0.5");if(!n.c[0])return new i(n);if(o<0)throw Error(f+"No square root");for(s=(r=0===(o=Math.sqrt(n+""))||o===1/0?((e=n.c.join("")).length+s&1||(e+="0"),s=((s+1)/2|0)-(s<0||1&s),new i(((o=Math.sqrt(e))==1/0?"5e":(o=o.toExponential()).slice(0,o.indexOf("e")+1))+s)):new i(o+"")).e+(i.DP+=4);t=r,r=c.times(t.plus(n.div(t))),t.c.slice(0,s).join("")!==r.c.slice(0,s).join(""););return x(r,(i.DP-=4)+r.e+1,i.RM)},t.times=t.mul=function(r){var e,t=this.constructor,n=this.c,i=(r=new t(r)).c,o=n.length,s=i.length,c=this.e,f=r.e;if(r.s=this.s==r.s?1:-1,n[0]&&i[0]){for(r.e=c+f,o<s&&(e=n,n=i,i=e,f=o,o=s,s=f),e=new Array(f=o+s);f--;)e[f]=0;for(c=s;c--;){for(s=0,f=o+c;c<f;)s=e[f]+i[c]*n[f-c-1]+s,e[f--]=s%10,s=s/10|0;e[f]=s}for(s?++r.e:e.shift(),c=e.length;!e[--c];)e.pop();r.c=e}else r.c=[r.e=0];return r},t.toExponential=function(r,e){var t=this,n=t.c[0];if(r!==M){if(r!==~~r||r<0||b<r)throw Error(P);for(t=x(new t.constructor(t),++r,e);t.c.length<r;)t.c.push(0)}return s(t,!0,!!n)},t.toFixed=function(r,e){var t=this,n=t.c[0];if(r!==M){if(r!==~~r||r<0||b<r)throw Error(P);for(r=r+(t=x(new t.constructor(t),r+t.e+1,e)).e+1;t.c.length<r;)t.c.push(0)}return s(t,!1,!!n)},t.toJSON=t.toString=function(){var r=this,e=r.constructor;return s(r,r.e<=e.NE||r.e>=e.PE,!!r.c[0])},t.toNumber=function(){var r=Number(s(this,!0,!0));if(!0!==this.constructor.strict||this.eq(r.toString()))return r;throw Error(f+"Imprecise conversion")},t.toPrecision=function(r,e){var t=this,n=t.constructor,i=t.c[0];if(r!==M){if(r!==~~r||r<1||b<r)throw Error(u+"precision");for(t=x(new n(t),r,e);t.c.length<r;)t.c.push(0)}return s(t,r<=t.e||t.e<=n.NE||t.e>=n.PE,!!i)},t.valueOf=function(){var r=this.constructor;if(!0===r.strict)throw Error(f+"valueOf disallowed");return s(this,this.e<=r.NE||this.e>=r.PE,!0)},(e=function c(){function f(r){var e=this;if(!(e instanceof f))return r===M?c():new f(r);if(r instanceof f)e.s=r.s,e.e=r.e,e.c=r.c.slice();else{if("string"!=typeof r){if(!0===f.strict&&"bigint"!=typeof r)throw TypeError(u+"value");r=0===r&&1/r<0?"-0":String(r)}var t,n,i,o=e,s=r;if(!h.test(s))throw Error(u+"number");for(o.s="-"==s.charAt(0)?(s=s.slice(1),-1):1,-1<(t=s.indexOf("."))&&(s=s.replace(".","")),0<(n=s.search(/e/i))?(t<0&&(t=n),t+=+s.slice(n+1),s=s.substring(0,n)):t<0&&(t=s.length),i=s.length,n=0;n<i&&"0"==s.charAt(n);)++n;if(n==i)o.c=[o.e=0];else{for(;0<i&&"0"==s.charAt(--i););for(o.e=t-n-1,o.c=[],t=0;n<=i;)o.c[t++]=+s.charAt(n++)}}e.constructor=f}return f.prototype=t,f.DP=20,f.RM=1,f.NE=-7,f.PE=21,f.strict=!1,f.roundDown=0,f.roundHalfUp=1,f.roundHalfEven=2,f.roundUp=3,f}()).default=e.Big=e,"function"==typeof define&&define.amd?define(function(){return e}):"undefined"!=typeof module&&module.exports?module.exports=e:r.Big=e}(this);