made with requirebin
Created
May 28, 2016 14:31
-
-
Save kentaromiura/ef25d6165bbd4981aa391b7426e07271 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var big = require('decimal.js'); | |
var denominator = new big(2); | |
var num = new big(1); | |
document.body.innerHTML = (num.dividedBy(denominator.toPower(2048)).toString()); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
setTimeout(function(){require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({"decimal.js":[function(require,module,exports){(function(globalScope){"use strict";var EXP_LIMIT=9e15,MAX_DIGITS=1e9,NUMERALS="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%()*+,-./:;=?@[]^_`{|}~",LN10="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",PI="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Decimal={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-EXP_LIMIT,maxE:EXP_LIMIT,crypto:void 0},inexact,noConflict,quadrant,cryptoObject=typeof crypto!="undefined"?crypto:null,external=true,decimalError="[DecimalError] ",invalidArgument=decimalError+"Invalid argument: ",precisionLimitExceeded=decimalError+"Precision limit exceeded",mathfloor=Math.floor,mathpow=Math.pow,isBinary=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,isHex=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,isOctal=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,isDecimal=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,BASE=1e7,LOG_BASE=7,MAX_SAFE_INTEGER=9007199254740991,LN10_PRECISION=LN10.length-1,PI_PRECISION=PI.length-1,P={};P.absoluteValue=P.abs=function(){var x=new this.constructor(this);if(x.s<0)x.s=1;return finalise(x)};P.ceil=function(){return finalise(new this.constructor(this),this.e+1,2)};P.comparedTo=P.cmp=function(y){var i,j,xdL,ydL,x=this,xd=x.d,yd=(y=new x.constructor(y)).d,xs=x.s,ys=y.s;if(!xd||!yd){return!xs||!ys?NaN:xs!==ys?xs:xd===yd?0:!xd^xs<0?1:-1}if(!xd[0]||!yd[0])return xd[0]?xs:yd[0]?-ys:0;if(xs!==ys)return xs;if(x.e!==y.e)return x.e>y.e^xs<0?1:-1;xdL=xd.length;ydL=yd.length;for(i=0,j=xdL<ydL?xdL:ydL;i<j;++i){if(xd[i]!==yd[i])return xd[i]>yd[i]^xs<0?1:-1}return xdL===ydL?0:xdL>ydL^xs<0?1:-1};P.cosine=P.cos=function(){var pr,rm,x=this,Ctor=x.constructor;if(!x.d)return new Ctor(NaN);if(!x.d[0])return new Ctor(1);pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+Math.max(x.e,x.sd())+LOG_BASE;Ctor.rounding=1;x=cosine(Ctor,toLessThanHalfPi(Ctor,x));Ctor.precision=pr;Ctor.rounding=rm;return finalise(quadrant==2||quadrant==3?x.neg():x,pr,rm,true)};P.cubeRoot=P.cbrt=function(){var e,m,n,r,rep,s,sd,t,t3,t3plusx,x=this,Ctor=x.constructor;if(!x.isFinite()||x.isZero())return new Ctor(x);external=false;s=x.s*Math.pow(x.s*x,1/3);if(!s||Math.abs(s)==1/0){n=digitsToString(x.d);e=x.e;if(s=(e-n.length+1)%3)n+=s==1||s==-2?"0":"00";s=Math.pow(n,1/3);e=mathfloor((e+1)/3)-(e%3==(e<0?-1:2));if(s==1/0){n="5e"+e}else{n=s.toExponential();n=n.slice(0,n.indexOf("e")+1)+e}r=new Ctor(n);r.s=x.s}else{r=new Ctor(s.toString())}sd=(e=Ctor.precision)+3;for(;;){t=r;t3=t.times(t).times(t);t3plusx=t3.plus(x);r=divide(t3plusx.plus(x).times(t),t3plusx.plus(t3),sd+2,1);if(digitsToString(t.d).slice(0,sd)===(n=digitsToString(r.d)).slice(0,sd)){n=n.slice(sd-3,sd+1);if(n=="9999"||!rep&&n=="4999"){if(!rep){finalise(t,e+1,0);if(t.times(t).times(t).eq(x)){r=t;break}}sd+=4;rep=1}else{if(!+n||!+n.slice(1)&&n.charAt(0)=="5"){finalise(r,e+1,1);m=!r.times(r).times(r).eq(x)}break}}}external=true;return finalise(r,e,Ctor.rounding,m)};P.decimalPlaces=P.dp=function(){var w,d=this.d,n=NaN;if(d){w=d.length-1;n=(w-mathfloor(this.e/LOG_BASE))*LOG_BASE;w=d[w];if(w)for(;w%10==0;w/=10)n--;if(n<0)n=0}return n};P.dividedBy=P.div=function(y){return divide(this,new this.constructor(y))};P.dividedToIntegerBy=P.divToInt=function(y){var x=this,Ctor=x.constructor;return finalise(divide(x,new Ctor(y),0,1,1),Ctor.precision,Ctor.rounding)};P.equals=P.eq=function(y){return this.cmp(y)===0};P.floor=function(){return finalise(new this.constructor(this),this.e+1,3)};P.greaterThan=P.gt=function(y){return this.cmp(y)>0};P.greaterThanOrEqualTo=P.gte=function(y){var k=this.cmp(y);return k==1||k===0};P.hyperbolicCosine=P.cosh=function(){var k,n,pr,rm,len,x=this,Ctor=x.constructor,one=new Ctor(1);if(!x.isFinite())return new Ctor(x.s?1/0:NaN);if(x.isZero())return one;pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+Math.max(x.e,x.sd())+4;Ctor.rounding=1;len=x.d.length;if(len<32){k=Math.ceil(len/3);n=Math.pow(4,-k).toString()}else{k=16;n="2.3283064365386962890625e-10"}x=taylorSeries(Ctor,1,x.times(n),new Ctor(1),true);var cosh2_x,i=k,d8=new Ctor(8);for(;i--;){cosh2_x=x.times(x);x=one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))))}return finalise(x,Ctor.precision=pr,Ctor.rounding=rm,true)};P.hyperbolicSine=P.sinh=function(){var k,pr,rm,len,x=this,Ctor=x.constructor;if(!x.isFinite()||x.isZero())return new Ctor(x);pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+Math.max(x.e,x.sd())+4;Ctor.rounding=1;len=x.d.length;if(len<3){x=taylorSeries(Ctor,2,x,x,true)}else{k=1.4*Math.sqrt(len);k=k>16?16:k|0;x=x.times(Math.pow(5,-k));x=taylorSeries(Ctor,2,x,x,true);var sinh2_x,d5=new Ctor(5),d16=new Ctor(16),d20=new Ctor(20);for(;k--;){sinh2_x=x.times(x);x=x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))))}}Ctor.precision=pr;Ctor.rounding=rm;return finalise(x,pr,rm,true)};P.hyperbolicTangent=P.tanh=function(){var pr,rm,x=this,Ctor=x.constructor;if(!x.isFinite())return new Ctor(x.s);if(x.isZero())return new Ctor(x);pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+7;Ctor.rounding=1;return divide(x.sinh(),x.cosh(),Ctor.precision=pr,Ctor.rounding=rm)};P.inverseCosine=P.acos=function(){var halfPi,x=this,Ctor=x.constructor,k=x.abs().cmp(1),pr=Ctor.precision,rm=Ctor.rounding;if(k!==-1){return k===0?x.isNeg()?getPi(Ctor,pr,rm):new Ctor(0):new Ctor(NaN)}if(x.isZero())return getPi(Ctor,pr+4,rm).times(.5);Ctor.precision=pr+6;Ctor.rounding=1;x=x.asin();halfPi=getPi(Ctor,pr+4,rm).times(.5);Ctor.precision=pr;Ctor.rounding=rm;return halfPi.minus(x)};P.inverseHyperbolicCosine=P.acosh=function(){var pr,rm,x=this,Ctor=x.constructor;if(x.lte(1))return new Ctor(x.eq(1)?0:NaN);if(!x.isFinite())return new Ctor(x);pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+Math.max(Math.abs(x.e),x.sd())+4;Ctor.rounding=1;external=false;x=x.times(x).minus(1).sqrt().plus(x);external=true;Ctor.precision=pr;Ctor.rounding=rm;return x.ln()};P.inverseHyperbolicSine=P.asinh=function(){var pr,rm,x=this,Ctor=x.constructor;if(!x.isFinite()||x.isZero())return new Ctor(x);pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+2*Math.max(Math.abs(x.e),x.sd())+6;Ctor.rounding=1;external=false;x=x.times(x).plus(1).sqrt().plus(x);external=true;Ctor.precision=pr;Ctor.rounding=rm;return x.ln()};P.inverseHyperbolicTangent=P.atanh=function(){var pr,rm,wpr,xsd,x=this,Ctor=x.constructor;if(!x.isFinite())return new Ctor(NaN);if(x.e>=0)return new Ctor(x.abs().eq(1)?x.s/0:x.isZero()?x:NaN);pr=Ctor.precision;rm=Ctor.rounding;xsd=x.sd();if(Math.max(xsd,pr)<2*-x.e-1)return finalise(new Ctor(x),pr,rm,true);Ctor.precision=wpr=xsd-x.e;x=divide(x.plus(1),new Ctor(1).minus(x),wpr+pr,1);Ctor.precision=pr+4;Ctor.rounding=1;x=x.ln();Ctor.precision=pr;Ctor.rounding=rm;return x.times(.5)};P.inverseSine=P.asin=function(){var halfPi,k,pr,rm,x=this,Ctor=x.constructor;if(x.isZero())return new Ctor(x);k=x.abs().cmp(1);pr=Ctor.precision;rm=Ctor.rounding;if(k!==-1){if(k===0){halfPi=getPi(Ctor,pr+4,rm).times(.5);halfPi.s=x.s;return halfPi}return new Ctor(NaN)}Ctor.precision=pr+6;Ctor.rounding=1;x=x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();Ctor.precision=pr;Ctor.rounding=rm;return x.times(2)};P.inverseTangent=P.atan=function(){var i,j,k,n,px,t,r,wpr,x2,x=this,Ctor=x.constructor,pr=Ctor.precision,rm=Ctor.rounding;if(!x.isFinite()){if(!x.s)return new Ctor(NaN);if(pr+4<=PI_PRECISION){r=getPi(Ctor,pr+4,rm).times(.5);r.s=x.s;return r}}else if(x.isZero()){return new Ctor(x)}else if(x.abs().eq(1)&&pr+4<=PI_PRECISION){r=getPi(Ctor,pr+4,rm).times(.25);r.s=x.s;return r}Ctor.precision=wpr=pr+10;Ctor.rounding=1;k=Math.min(28,wpr/LOG_BASE+2|0);for(i=k;i;--i)x=x.div(x.times(x).plus(1).sqrt().plus(1));external=false;j=Math.ceil(wpr/LOG_BASE);n=1;x2=x.times(x);r=new Ctor(x);px=x;for(;i!==-1;){px=px.times(x2);t=r.minus(px.div(n+=2));px=px.times(x2);r=t.plus(px.div(n+=2));if(r.d[j]!==void 0)for(i=j;r.d[i]===t.d[i]&&i--;);}if(k)r=r.times(2<<k-1);external=true;return finalise(r,Ctor.precision=pr,Ctor.rounding=rm,true)};P.isFinite=function(){return!!this.d};P.isInteger=P.isInt=function(){return!!this.d&&mathfloor(this.e/LOG_BASE)>this.d.length-2};P.isNaN=function(){return!this.s};P.isNegative=P.isNeg=function(){return this.s<0};P.isPositive=P.isPos=function(){return this.s>0};P.isZero=function(){return!!this.d&&this.d[0]===0};P.lessThan=P.lt=function(y){return this.cmp(y)<0};P.lessThanOrEqualTo=P.lte=function(y){return this.cmp(y)<1};P.logarithm=P.log=function(base){var isBase10,d,denominator,k,inf,num,sd,r,arg=this,Ctor=arg.constructor,pr=Ctor.precision,rm=Ctor.rounding,guard=5;if(base==null){base=new Ctor(10);isBase10=true}else{base=new Ctor(base);d=base.d;if(base.s<0||!d||!d[0]||base.eq(1))return new Ctor(NaN);isBase10=base.eq(10)}d=arg.d;if(arg.s<0||!d||!d[0]||arg.eq(1)){return new Ctor(d&&!d[0]?-1/0:arg.s!=1?NaN:d?0:1/0)}if(isBase10){if(d.length>1){inf=true}else{for(k=d[0];k%10===0;)k/=10;inf=k!==1}}external=false;sd=pr+guard;num=naturalLogarithm(arg,sd);denominator=isBase10?getLn10(Ctor,sd+10):naturalLogarithm(base,sd);r=divide(num,denominator,sd,1);if(checkRoundingDigits(r.d,k=pr,rm)){do{sd+=10;num=naturalLogarithm(arg,sd);denominator=isBase10?getLn10(Ctor,sd+10):naturalLogarithm(base,sd);r=divide(num,denominator,sd,1);if(!inf){if(+digitsToString(r.d).slice(k+1,k+15)+1==1e14){r=finalise(r,pr+1,0)}break}}while(checkRoundingDigits(r.d,k+=10,rm))}external=true;return finalise(r,pr,rm)};P.minus=P.sub=function(y){var d,e,i,j,k,len,pr,rm,xd,xe,xLTy,yd,x=this,Ctor=x.constructor;y=new Ctor(y);if(!x.d||!y.d){if(!x.s||!y.s)y=new Ctor(NaN);else if(x.d)y.s=-y.s;else y=new Ctor(y.d||x.s!==y.s?x:NaN);return y}if(x.s!=y.s){y.s=-y.s;return x.plus(y)}xd=x.d;yd=y.d;pr=Ctor.precision;rm=Ctor.rounding;if(!xd[0]||!yd[0]){if(yd[0])y.s=-y.s;else if(xd[0])y=new Ctor(x);else return new Ctor(rm===3?-0:0);return external?finalise(y,pr,rm):y}e=mathfloor(y.e/LOG_BASE);xe=mathfloor(x.e/LOG_BASE);xd=xd.slice();k=xe-e;if(k){xLTy=k<0;if(xLTy){d=xd;k=-k;len=yd.length}else{d=yd;e=xe;len=xd.length}i=Math.max(Math.ceil(pr/LOG_BASE),len)+2;if(k>i){k=i;d.length=1}d.reverse();for(i=k;i--;)d.push(0);d.reverse()}else{i=xd.length;len=yd.length;xLTy=i<len;if(xLTy)len=i;for(i=0;i<len;i++){if(xd[i]!=yd[i]){xLTy=xd[i]<yd[i];break}}k=0}if(xLTy){d=xd;xd=yd;yd=d;y.s=-y.s}len=xd.length;for(i=yd.length-len;i>0;--i)xd[len++]=0;for(i=yd.length;i>k;){if(xd[--i]<yd[i]){for(j=i;j&&xd[--j]===0;)xd[j]=BASE-1;--xd[j];xd[i]+=BASE}xd[i]-=yd[i]}for(;xd[--len]===0;)xd.pop();for(;xd[0]===0;xd.shift())--e;if(!xd[0])return new Ctor(rm===3?-0:0);y.d=xd;y.e=getBase10Exponent(xd,e);return external?finalise(y,pr,rm):y};P.modulo=P.mod=function(y){var q,x=this,Ctor=x.constructor;y=new Ctor(y);if(!x.d||!y.s||y.d&&!y.d[0])return new Ctor(NaN);if(!y.d||x.d&&!x.d[0]){return finalise(new Ctor(x),Ctor.precision,Ctor.rounding)}external=false;if(Ctor.modulo==9){q=divide(x,y.abs(),0,3,1);q.s*=y.s}else{q=divide(x,y,0,Ctor.modulo,1)}q=q.times(y);external=true;return x.minus(q)};P.naturalExponential=P.exp=function(){return naturalExponential(this)};P.naturalLogarithm=P.ln=function(){return naturalLogarithm(this)};P.negated=P.neg=function(){var x=new this.constructor(this);x.s=-x.s;return finalise(x)};P.plus=P.add=function(y){var carry,d,e,i,k,len,pr,rm,xd,yd,x=this,Ctor=x.constructor;y=new Ctor(y);if(!x.d||!y.d){if(!x.s||!y.s)y=new Ctor(NaN);else if(!x.d)y=new Ctor(y.d||x.s===y.s?x:NaN);return y}if(x.s!=y.s){y.s=-y.s;return x.minus(y)}xd=x.d;yd=y.d;pr=Ctor.precision;rm=Ctor.rounding;if(!xd[0]||!yd[0]){if(!yd[0])y=new Ctor(x);return external?finalise(y,pr,rm):y}k=mathfloor(x.e/LOG_BASE);e=mathfloor(y.e/LOG_BASE);xd=xd.slice();i=k-e;if(i){if(i<0){d=xd;i=-i;len=yd.length}else{d=yd;e=k;len=xd.length}k=Math.ceil(pr/LOG_BASE);len=k>len?k+1:len+1;if(i>len){i=len;d.length=1}d.reverse();for(;i--;)d.push(0);d.reverse()}len=xd.length;i=yd.length;if(len-i<0){i=len;d=yd;yd=xd;xd=d}for(carry=0;i;){carry=(xd[--i]=xd[i]+yd[i]+carry)/BASE|0;xd[i]%=BASE}if(carry){xd.unshift(carry);++e}for(len=xd.length;xd[--len]==0;)xd.pop();y.d=xd;y.e=getBase10Exponent(xd,e);return external?finalise(y,pr,rm):y};P.precision=P.sd=function(z){var k,x=this;if(z!==void 0&&z!==!!z&&z!==1&&z!==0)throw Error(invalidArgument+z);if(x.d){k=getPrecision(x.d);if(z&&x.e+1>k)k=x.e+1}else{k=NaN}return k};P.round=function(){var x=this,Ctor=x.constructor;return finalise(new Ctor(x),x.e+1,Ctor.rounding)};P.sine=P.sin=function(){var pr,rm,x=this,Ctor=x.constructor;if(!x.isFinite())return new Ctor(NaN);if(x.isZero())return new Ctor(x);pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+Math.max(x.e,x.sd())+LOG_BASE;Ctor.rounding=1;x=sine(Ctor,toLessThanHalfPi(Ctor,x));Ctor.precision=pr;Ctor.rounding=rm;return finalise(quadrant>2?x.neg():x,pr,rm,true)};P.squareRoot=P.sqrt=function(){var m,n,sd,r,rep,t,x=this,d=x.d,e=x.e,s=x.s,Ctor=x.constructor;if(s!==1||!d||!d[0]){return new Ctor(!s||s<0&&(!d||d[0])?NaN:d?x:1/0)}external=false;s=Math.sqrt(+x);if(s==0||s==1/0){n=digitsToString(d);if((n.length+e)%2==0)n+="0";s=Math.sqrt(n);e=mathfloor((e+1)/2)-(e<0||e%2);if(s==1/0){n="1e"+e}else{n=s.toExponential();n=n.slice(0,n.indexOf("e")+1)+e}r=new Ctor(n)}else{r=new Ctor(s.toString())}sd=(e=Ctor.precision)+3;for(;;){t=r;r=t.plus(divide(x,t,sd+2,1)).times(.5);if(digitsToString(t.d).slice(0,sd)===(n=digitsToString(r.d)).slice(0,sd)){n=n.slice(sd-3,sd+1);if(n=="9999"||!rep&&n=="4999"){if(!rep){finalise(t,e+1,0);if(t.times(t).eq(x)){r=t;break}}sd+=4;rep=1}else{if(!+n||!+n.slice(1)&&n.charAt(0)=="5"){finalise(r,e+1,1);m=!r.times(r).eq(x)}break}}}external=true;return finalise(r,e,Ctor.rounding,m)};P.tangent=P.tan=function(){var pr,rm,x=this,Ctor=x.constructor;if(!x.isFinite())return new Ctor(NaN);if(x.isZero())return new Ctor(x);pr=Ctor.precision;rm=Ctor.rounding;Ctor.precision=pr+10;Ctor.rounding=1;x=x.sin();x.s=1;x=divide(x,new Ctor(1).minus(x.times(x)).sqrt(),pr+10,0);Ctor.precision=pr;Ctor.rounding=rm;return finalise(quadrant==2||quadrant==4?x.neg():x,pr,rm,true)};P.times=P.mul=function(y){var carry,e,i,k,r,rL,t,xdL,ydL,x=this,Ctor=x.constructor,xd=x.d,yd=(y=new Ctor(y)).d;y.s*=x.s;if(!xd||!xd[0]||!yd||!yd[0]){return new Ctor(!y.s||xd&&!xd[0]&&!yd||yd&&!yd[0]&&!xd?NaN:!xd||!yd?y.s/0:y.s*0)}e=mathfloor(x.e/LOG_BASE)+mathfloor(y.e/LOG_BASE);xdL=xd.length;ydL=yd.length;if(xdL<ydL){r=xd;xd=yd;yd=r;rL=xdL;xdL=ydL;ydL=rL}r=[];rL=xdL+ydL;for(i=rL;i--;)r.push(0);for(i=ydL;--i>=0;){carry=0;for(k=xdL+i;k>i;){t=r[k]+yd[i]*xd[k-i-1]+carry;r[k--]=t%BASE|0;carry=t/BASE|0}r[k]=(r[k]+carry)%BASE|0}for(;!r[--rL];)r.pop();if(carry)++e;else r.shift();for(i=r.length;!r[--i];)r.pop();y.d=r;y.e=getBase10Exponent(r,e);return external?finalise(y,Ctor.precision,Ctor.rounding):y};P.toBinary=function(sd,rm){return toStringBinary(this,2,sd,rm)};P.toDecimalPlaces=P.toDP=function(dp,rm){var x=this,Ctor=x.constructor;x=new Ctor(x);if(dp===void 0)return x;checkInt32(dp,0,MAX_DIGITS);if(rm===void 0)rm=Ctor.rounding;else checkInt32(rm,0,8);return finalise(x,dp+x.e+1,rm)};P.toExponential=function(dp,rm){var str,x=this,Ctor=x.constructor;if(dp===void 0){str=finiteToString(x,true)}else{checkInt32(dp,0,MAX_DIGITS);if(rm===void 0)rm=Ctor.rounding;else checkInt32(rm,0,8);x=finalise(new Ctor(x),dp+1,rm);str=finiteToString(x,true,dp+1)}return x.isNeg()&&!x.isZero()?"-"+str:str};P.toFixed=function(dp,rm){var str,y,x=this,Ctor=x.constructor;if(dp===void 0){str=finiteToString(x)}else{checkInt32(dp,0,MAX_DIGITS);if(rm===void 0)rm=Ctor.rounding;else checkInt32(rm,0,8);y=finalise(new Ctor(x),dp+x.e+1,rm);str=finiteToString(y,false,dp+y.e+1)}return x.isNeg()&&!x.isZero()?"-"+str:str};P.toFraction=function(maxD){var d,d0,d1,d2,e,k,n,n0,n1,pr,q,r,x=this,xd=x.d,Ctor=x.constructor;if(!xd)return new Ctor(x);n1=d0=new Ctor(1);d1=n0=new Ctor(0);d=new Ctor(d1);e=d.e=getPrecision(xd)-x.e-1;k=e%LOG_BASE;d.d[0]=mathpow(10,k<0?LOG_BASE+k:k);if(maxD==null){maxD=e>0?d:n1}else{n=new Ctor(maxD);if(!n.isInt()||n.lt(n1))throw Error(invalidArgument+n);maxD=n.gt(d)?e>0?d:n1:n}external=false;n=new Ctor(digitsToString(xd));pr=Ctor.precision;Ctor.precision=e=xd.length*LOG_BASE*2;for(;;){q=divide(n,d,0,1,1);d2=d0.plus(q.times(d1));if(d2.cmp(maxD)==1)break;d0=d1;d1=d2;d2=n1;n1=n0.plus(q.times(d2));n0=d2;d2=d;d=n.minus(q.times(d2));n=d2}d2=divide(maxD.minus(d0),d1,0,1,1);n0=n0.plus(d2.times(n1));d0=d0.plus(d2.times(d1));n0.s=n1.s=x.s;r=divide(n1,d1,e,1).minus(x).abs().cmp(divide(n0,d0,e,1).minus(x).abs())<1?[n1,d1]:[n0,d0];Ctor.precision=pr;external=true;return r};P.toHexadecimal=P.toHex=function(sd,rm){return toStringBinary(this,16,sd,rm)};P.toJSON=function(){var arr,e,i,k,len,n,r,str,x=this,isNeg=x.s<0;if(!x.d)return NUMERALS.charAt(x.s?isNeg?82:83:84);e=x.e;if(x.d.length===1&&e<4&&e>=0){n=x.d[0];if(n<2857){if(n<41)return NUMERALS.charAt(isNeg?n+41:n);n-=41;if(isNeg)n+=2816;k=n/88|0;return NUMERALS.charAt(k)+NUMERALS.charAt(n-k*88)}}str=digitsToString(x.d);r="";if(!isNeg&&e<=8&&e>=-7){k=64+e+7}else if(isNeg&&e<=4&&e>=-3){k=64+16+e+3}else if(str.length===e+1){k=32*isNeg}else{k=32*isNeg+16*(e<0);e=Math.abs(e);if(e<88){k+=1;r=NUMERALS.charAt(e)}else if(e<7744){k+=2;n=e/88|0;r=NUMERALS.charAt(n)+NUMERALS.charAt(e-n*88)}else{arr=convertBase(String(e),10,88);len=arr.length;k+=len;for(i=0;i<len;i++)r+=NUMERALS.charAt(arr[i])}}r=NUMERALS.charAt(k)+r;arr=convertBase(str,10,88);len=arr.length;for(i=0;i<len;i++)r+=NUMERALS.charAt(arr[i]);return r};P.toNearest=function(y,rm){var x=this,Ctor=x.constructor;x=new Ctor(x);if(y==null){if(!x.d)return x;y=new Ctor(1);rm=Ctor.rounding}else{y=new Ctor(y);if(rm!==void 0)checkInt32(rm,0,8);if(!x.d)return y.s?x:y;if(!y.d){if(y.s)y.s=x.s;return y}}if(y.d[0]){external=false;if(rm<4)rm=[4,5,7,8][rm];x=divide(x,y,0,rm,1).times(y);external=true;finalise(x)}else{y.s=x.s;x=y}return x};P.toNumber=function(){return+this};P.toOctal=function(sd,rm){return toStringBinary(this,8,sd,rm)};P.toPower=P.pow=function(y){var e,k,pr,r,rm,sign,yIsInt,x=this,Ctor=x.constructor,yn=+(y=new Ctor(y));if(!x.d||!y.d||!x.d[0]||!y.d[0])return new Ctor(mathpow(+x,yn));x=new Ctor(x);if(x.eq(1))return x;pr=Ctor.precision;rm=Ctor.rounding;if(y.eq(1))return finalise(x,pr,rm);e=mathfloor(y.e/LOG_BASE);k=y.d.length-1;yIsInt=e>=k;sign=x.s;if(!yIsInt){if(sign<0)return new Ctor(NaN)}else if((k=yn<0?-yn:yn)<=MAX_SAFE_INTEGER){r=intPow(Ctor,x,k,pr);return y.s<0?new Ctor(1).div(r):finalise(r,pr,rm)}sign=sign<0&&y.d[Math.max(e,k)]&1?-1:1;k=mathpow(+x,yn);e=k==0||!isFinite(k)?mathfloor(yn*(Math.log("0."+digitsToString(x.d))/Math.LN10+x.e+1)):new Ctor(k+"").e;if(e>Ctor.maxE+1||e<Ctor.minE-1)return new Ctor(e>0?sign/0:0);external=false;Ctor.rounding=x.s=1;k=Math.min(12,(e+"").length);r=naturalExponential(y.times(naturalLogarithm(x,pr+k)),pr);r=finalise(r,pr+5,1);if(checkRoundingDigits(r.d,pr,rm)){e=pr+10;r=finalise(naturalExponential(y.times(naturalLogarithm(x,e+k)),e),e+5,1);if(+digitsToString(r.d).slice(pr+1,pr+15)+1==1e14){r=finalise(r,pr+1,0)}}r.s=sign;external=true;Ctor.rounding=rm;return finalise(r,pr,rm)};P.toPrecision=function(sd,rm){var str,x=this,Ctor=x.constructor;if(sd===void 0){str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos)}else{checkInt32(sd,1,MAX_DIGITS);if(rm===void 0)rm=Ctor.rounding;else checkInt32(rm,0,8);x=finalise(new Ctor(x),sd,rm);str=finiteToString(x,sd<=x.e||x.e<=Ctor.toExpNeg,sd)}return x.isNeg()&&!x.isZero()?"-"+str:str};P.toSignificantDigits=P.toSD=function(sd,rm){var x=this,Ctor=x.constructor;if(sd===void 0){sd=Ctor.precision;rm=Ctor.rounding}else{checkInt32(sd,1,MAX_DIGITS);if(rm===void 0)rm=Ctor.rounding;else checkInt32(rm,0,8)}return finalise(new Ctor(x),sd,rm)};P.toString=function(){var x=this,Ctor=x.constructor,str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos);return x.isNeg()&&!x.isZero()?"-"+str:str};P.truncated=P.trunc=function(){return finalise(new this.constructor(this),this.e+1,1)};P.valueOf=function(){var x=this,Ctor=x.constructor,str=finiteToString(x,x.e<=Ctor.toExpNeg||x.e>=Ctor.toExpPos);return x.isNeg()?"-"+str:str};function digitsToString(d){var i,k,ws,indexOfLastWord=d.length-1,str="",w=d[0];if(indexOfLastWord>0){str+=w;for(i=1;i<indexOfLastWord;i++){ws=d[i]+"";k=LOG_BASE-ws.length;if(k)str+=getZeroString(k);str+=ws}w=d[i];ws=w+"";k=LOG_BASE-ws.length;if(k)str+=getZeroString(k)}else if(w===0){return"0"}for(;w%10===0;)w/=10;return str+w}function checkInt32(i,min,max){if(i!==~~i||i<min||i>max){throw Error(invalidArgument+i)}}function checkRoundingDigits(d,i,rm,repeating){var di,k,r,rd;for(k=d[0];k>=10;k/=10)--i;if(--i<0){i+=LOG_BASE;di=0}else{di=Math.ceil((i+1)/LOG_BASE);i%=LOG_BASE}k=mathpow(10,LOG_BASE-i);rd=d[di]%k|0;if(repeating==null){if(i<3){if(i==0)rd=rd/100|0;else if(i==1)rd=rd/10|0;r=rm<4&&rd==99999||rm>3&&rd==49999||rd==5e4||rd==0}else{r=(rm<4&&rd+1==k||rm>3&&rd+1==k/2)&&(d[di+1]/k/100|0)==mathpow(10,i-2)-1||(rd==k/2||rd==0)&&(d[di+1]/k/100|0)==0}}else{if(i<4){if(i==0)rd=rd/1e3|0;else if(i==1)rd=rd/100|0;else if(i==2)rd=rd/10|0;r=(repeating||rm<4)&&rd==9999||!repeating&&rm>3&&rd==4999}else{r=((repeating||rm<4)&&rd+1==k||!repeating&&rm>3&&rd+1==k/2)&&(d[di+1]/k/1e3|0)==mathpow(10,i-3)-1}}return r}function convertBase(str,baseIn,baseOut){var j,arr=[0],arrL,i=0,strL=str.length;for(;i<strL;){for(arrL=arr.length;arrL--;)arr[arrL]*=baseIn;arr[0]+=NUMERALS.indexOf(str.charAt(i++));for(j=0;j<arr.length;j++){if(arr[j]>baseOut-1){if(arr[j+1]===void 0)arr[j+1]=0;arr[j+1]+=arr[j]/baseOut|0;arr[j]%=baseOut}}}return arr.reverse()}function cosine(Ctor,x){var k,y,len=x.d.length;if(len<32){k=Math.ceil(len/3);y=Math.pow(4,-k).toString()}else{k=16;y="2.3283064365386962890625e-10"}Ctor.precision+=k;x=taylorSeries(Ctor,1,x.times(y),new Ctor(1));for(var i=k;i--;){var cos2x=x.times(x);x=cos2x.times(cos2x).minus(cos2x).times(8).plus(1)}Ctor.precision-=k;return x}var divide=function(){function multiplyInteger(x,k,base){var temp,carry=0,i=x.length;for(x=x.slice();i--;){temp=x[i]*k+carry;x[i]=temp%base|0;carry=temp/base|0}if(carry)x.unshift(carry);return x}function compare(a,b,aL,bL){var i,r;if(aL!=bL){r=aL>bL?1:-1}else{for(i=r=0;i<aL;i++){if(a[i]!=b[i]){r=a[i]>b[i]?1:-1;break}}}return r}function subtract(a,b,aL,base){var i=0;for(;aL--;){a[aL]-=i;i=a[aL]<b[aL]?1:0;a[aL]=i*base+a[aL]-b[aL]}for(;!a[0]&&a.length>1;)a.shift()}return function(x,y,pr,rm,dp,base){var cmp,e,i,k,logBase,more,prod,prodL,q,qd,rem,remL,rem0,sd,t,xi,xL,yd0,yL,yz,Ctor=x.constructor,sign=x.s==y.s?1:-1,xd=x.d,yd=y.d;if(!xd||!xd[0]||!yd||!yd[0]){return new Ctor(!x.s||!y.s||(xd?yd&&xd[0]==yd[0]:!yd)?NaN:xd&&xd[0]==0||!yd?sign*0:sign/0)}if(base){logBase=1;e=x.e-y.e}else{base=BASE;logBase=LOG_BASE;e=mathfloor(x.e/logBase)-mathfloor(y.e/logBase)}yL=yd.length;xL=xd.length;q=new Ctor(sign);qd=q.d=[];for(i=0;yd[i]==(xd[i]||0);i++);if(yd[i]>(xd[i]||0))e--;if(pr==null){sd=pr=Ctor.precision;rm=Ctor.rounding}else if(dp){sd=pr+(x.e-y.e)+1}else{sd=pr}if(sd<0){qd.push(1);more=true}else{sd=sd/logBase+2|0;i=0;if(yL==1){k=0;yd=yd[0];sd++;for(;(i<xL||k)&&sd--;i++){t=k*base+(xd[i]||0);qd[i]=t/yd|0;k=t%yd|0}more=k||i<xL}else{k=base/(yd[0]+1)|0;if(k>1){yd=multiplyInteger(yd,k,base);xd=multiplyInteger(xd,k,base);yL=yd.length;xL=xd.length}xi=yL;rem=xd.slice(0,yL);remL=rem.length;for(;remL<yL;)rem[remL++]=0;yz=yd.slice();yz.unshift(0);yd0=yd[0];if(yd[1]>=base/2)++yd0;do{k=0;cmp=compare(yd,rem,yL,remL);if(cmp<0){rem0=rem[0];if(yL!=remL)rem0=rem0*base+(rem[1]||0);k=rem0/yd0|0;if(k>1){if(k>=base)k=base-1;prod=multiplyInteger(yd,k,base);prodL=prod.length;remL=rem.length;cmp=compare(prod,rem,prodL,remL);if(cmp==1){k--;subtract(prod,yL<prodL?yz:yd,prodL,base)}}else{if(k==0)cmp=k=1;prod=yd.slice()}prodL=prod.length;if(prodL<remL)prod.unshift(0);subtract(rem,prod,remL,base);if(cmp==-1){remL=rem.length;cmp=compare(yd,rem,yL,remL);if(cmp<1){k++;subtract(rem,yL<remL?yz:yd,remL,base)}}remL=rem.length}else if(cmp===0){k++;rem=[0]}qd[i++]=k;if(cmp&&rem[0]){rem[remL++]=xd[xi]||0}else{rem=[xd[xi]];remL=1}}while((xi++<xL||rem[0]!==void 0)&&sd--);more=rem[0]!==void 0}if(!qd[0])qd.shift()}if(logBase==1){q.e=e;inexact=more}else{for(i=1,k=qd[0];k>=10;k/=10)i++;q.e=i+e*logBase-1;finalise(q,dp?pr+q.e+1:pr,rm,more)}return q}}();function finalise(x,sd,rm,isTruncated){var digits,i,j,k,rd,roundUp,w,xd,xdi,Ctor=x.constructor;out:if(sd!=null){xd=x.d;if(!xd)return x;for(digits=1,k=xd[0];k>=10;k/=10)digits++;i=sd-digits;if(i<0){i+=LOG_BASE;j=sd;w=xd[xdi=0];rd=w/mathpow(10,digits-j-1)%10|0}else{xdi=Math.ceil((i+1)/LOG_BASE);k=xd.length;if(xdi>=k){if(isTruncated){for(;k++<=xdi;)xd.push(0);w=rd=0;digits=1;i%=LOG_BASE;j=i-LOG_BASE+1}else{break out}}else{w=k=xd[xdi];for(digits=1;k>=10;k/=10)digits++;i%=LOG_BASE;j=i-LOG_BASE+digits;rd=j<0?0:w/mathpow(10,digits-j-1)%10|0}}isTruncated=isTruncated||sd<0||xd[xdi+1]!==void 0||(j<0?w:w%mathpow(10,digits-j-1));roundUp=rm<4?(rd||isTruncated)&&(rm==0||rm==(x.s<0?3:2)):rd>5||rd==5&&(rm==4||isTruncated||rm==6&&(i>0?j>0?w/mathpow(10,digits-j):0:xd[xdi-1])%10&1||rm==(x.s<0?8:7));if(sd<1||!xd[0]){xd.length=0;if(roundUp){sd-=x.e+1;xd[0]=mathpow(10,(LOG_BASE-sd%LOG_BASE)%LOG_BASE);x.e=-sd||0}else{xd[0]=x.e=0}return x}if(i==0){xd.length=xdi;k=1;xdi--}else{xd.length=xdi+1;k=mathpow(10,LOG_BASE-i);xd[xdi]=j>0?(w/mathpow(10,digits-j)%mathpow(10,j)|0)*k:0}if(roundUp){for(;;){if(xdi==0){for(i=1,j=xd[0];j>=10;j/=10)i++;j=xd[0]+=k;for(k=1;j>=10;j/=10)k++;if(i!=k){x.e++;if(xd[0]==BASE)xd[0]=1}break}else{xd[xdi]+=k;if(xd[xdi]!=BASE)break;xd[xdi--]=0;k=1}}}for(i=xd.length;xd[--i]===0;)xd.pop()}if(external){if(x.e>Ctor.maxE){x.d=null;x.e=NaN}else if(x.e<Ctor.minE){x.e=0;x.d=[0]}}return x}function finiteToString(x,isExp,sd){if(!x.isFinite())return nonFiniteToString(x);var k,e=x.e,str=digitsToString(x.d),len=str.length;if(isExp){if(sd&&(k=sd-len)>0){str=str.charAt(0)+"."+str.slice(1)+getZeroString(k)}else if(len>1){str=str.charAt(0)+"."+str.slice(1)}str=str+(x.e<0?"e":"e+")+x.e}else if(e<0){str="0."+getZeroString(-e-1)+str;if(sd&&(k=sd-len)>0)str+=getZeroString(k)}else if(e>=len){str+=getZeroString(e+1-len);if(sd&&(k=sd-e-1)>0)str=str+"."+getZeroString(k)}else{if((k=e+1)<len)str=str.slice(0,k)+"."+str.slice(k);if(sd&&(k=sd-len)>0){if(e+1===len)str+=".";str+=getZeroString(k)}}return str}function getBase10Exponent(digits,e){for(var i=1,w=digits[0];w>=10;w/=10)i++;return i+e*LOG_BASE-1}function getLn10(Ctor,sd,pr){if(sd>LN10_PRECISION){external=true;if(pr)Ctor.precision=pr;throw Error(precisionLimitExceeded)}return finalise(new Ctor(LN10),sd,1,true)}function getPi(Ctor,sd,rm){if(sd>PI_PRECISION)throw Error(precisionLimitExceeded);return finalise(new Ctor(PI),sd,rm,true)}function getPrecision(digits){var w=digits.length-1,len=w*LOG_BASE+1;w=digits[w];if(w){for(;w%10==0;w/=10)len--;for(w=digits[0];w>=10;w/=10)len++}return len}function getZeroString(k){var zs="";for(;k--;)zs+="0";return zs}function intPow(Ctor,x,n,pr){var isTruncated,r=new Ctor(1),k=Math.ceil(pr/LOG_BASE+4);external=false;for(;;){if(n%2){r=r.times(x);if(truncate(r.d,k))isTruncated=true}n=mathfloor(n/2);if(n===0){n=r.d.length-1;if(isTruncated&&r.d[n]===0)++r.d[n];break}x=x.times(x);truncate(x.d,k)}external=true;return r}function isOdd(n){return n.d[n.d.length-1]&1}function maxOrMin(Ctor,args,ltgt){var y,x=new Ctor(args[0]),i=0;for(;++i<args.length;){y=new Ctor(args[i]);if(!y.s){x=y;break}else if(x[ltgt](y)){x=y}}return x}function naturalExponential(x,sd){var denominator,guard,j,pow,sum,t,wpr,rep=0,i=0,k=0,Ctor=x.constructor,rm=Ctor.rounding,pr=Ctor.precision;if(!x.d||!x.d[0]||x.e>17){return new Ctor(x.d?!x.d[0]?1:x.s<0?0:1/0:x.s?x.s<0?0:x:0/0)}if(sd==null){external=false;wpr=pr}else{wpr=sd}t=new Ctor(.03125);while(x.e>-2){x=x.times(t);k+=5}guard=Math.log(mathpow(2,k))/Math.LN10*2+5|0;wpr+=guard;denominator=pow=sum=new Ctor(1);Ctor.precision=wpr;for(;;){pow=finalise(pow.times(x),wpr,1);denominator=denominator.times(++i);t=sum.plus(divide(pow,denominator,wpr,1));if(digitsToString(t.d).slice(0,wpr)===digitsToString(sum.d).slice(0,wpr)){j=k;while(j--)sum=finalise(sum.times(sum),wpr,1);if(sd==null){if(rep<3&&checkRoundingDigits(sum.d,wpr-guard,rm,rep)){Ctor.precision=wpr+=10;denominator=pow=t=new Ctor(1);i=0;rep++}else{return finalise(sum,Ctor.precision=pr,rm,external=true)}}else{Ctor.precision=pr;return sum}}sum=t}}function naturalLogarithm(y,sd){var c,c0,denominator,e,numerator,rep,sum,t,wpr,x1,x2,n=1,guard=10,x=y,xd=x.d,Ctor=x.constructor,rm=Ctor.rounding,pr=Ctor.precision;if(x.s<0||!xd||!xd[0]||!x.e&&xd[0]==1&&xd.length==1){return new Ctor(xd&&!xd[0]?-1/0:x.s!=1?NaN:xd?0:x)}if(sd==null){external=false;wpr=pr}else{wpr=sd}Ctor.precision=wpr+=guard;c=digitsToString(xd);c0=c.charAt(0);if(Math.abs(e=x.e)<15e14){while(c0<7&&c0!=1||c0==1&&c.charAt(1)>3){x=x.times(y);c=digitsToString(x.d);c0=c.charAt(0);n++}e=x.e;if(c0>1){x=new Ctor("0."+c);e++}else{x=new Ctor(c0+"."+c.slice(1))}}else{t=getLn10(Ctor,wpr+2,pr).times(e+"");x=naturalLogarithm(new Ctor(c0+"."+c.slice(1)),wpr-guard).plus(t);Ctor.precision=pr;return sd==null?finalise(x,pr,rm,external=true):x}x1=x;sum=numerator=x=divide(x.minus(1),x.plus(1),wpr,1);x2=finalise(x.times(x),wpr,1);denominator=3;for(;;){numerator=finalise(numerator.times(x2),wpr,1);t=sum.plus(divide(numerator,new Ctor(denominator),wpr,1));if(digitsToString(t.d).slice(0,wpr)===digitsToString(sum.d).slice(0,wpr)){sum=sum.times(2);if(e!==0)sum=sum.plus(getLn10(Ctor,wpr+2,pr).times(e+""));sum=divide(sum,new Ctor(n),wpr,1);if(sd==null){if(checkRoundingDigits(sum.d,wpr-guard,rm,rep)){Ctor.precision=wpr+=guard;t=numerator=x=divide(x1.minus(1),x1.plus(1),wpr,1);x2=finalise(x.times(x),wpr,1);denominator=rep=1}else{return finalise(sum,Ctor.precision=pr,rm,external=true)}}else{Ctor.precision=pr;return sum}}sum=t;denominator+=2}}function nonFiniteToString(x){return String(x.s*x.s/0)}function parseDecimal(x,str){var e,i,len;if((e=str.indexOf("."))>-1)str=str.replace(".","");if((i=str.search(/e/i))>0){if(e<0)e=i;e+=+str.slice(i+1); | |
str=str.substring(0,i)}else if(e<0){e=str.length}for(i=0;str.charCodeAt(i)===48;i++);for(len=str.length;str.charCodeAt(len-1)===48;--len);str=str.slice(i,len);if(str){len-=i;x.e=e=e-i-1;x.d=[];i=(e+1)%LOG_BASE;if(e<0)i+=LOG_BASE;if(i<len){if(i)x.d.push(+str.slice(0,i));for(len-=LOG_BASE;i<len;)x.d.push(+str.slice(i,i+=LOG_BASE));str=str.slice(i);i=LOG_BASE-str.length}else{i-=len}for(;i--;)str+="0";x.d.push(+str);if(external){if(x.e>x.constructor.maxE){x.d=null;x.e=NaN}else if(x.e<x.constructor.minE){x.e=0;x.d=[0]}}}else{x.e=0;x.d=[0]}return x}function parseOther(x,str){var base,Ctor,divisor,i,isFloat,len,p,xd,xe;if(str==="Infinity"||str==="NaN"){if(!+str)x.s=NaN;x.e=NaN;x.d=null;return x}if(isHex.test(str)){base=16;str=str.toLowerCase()}else if(isBinary.test(str)){base=2}else if(isOctal.test(str)){base=8}else{throw Error(invalidArgument+str)}i=str.search(/p/i);if(i>0){p=+str.slice(i+1);str=str.substring(2,i)}else{str=str.slice(2)}i=str.indexOf(".");isFloat=i>=0;Ctor=x.constructor;if(isFloat){str=str.replace(".","");len=str.length;i=len-i;divisor=intPow(Ctor,new Ctor(base),i,i*2)}xd=convertBase(str,base,BASE);xe=xd.length-1;for(i=xe;xd[i]===0;--i)xd.pop();if(i<0)return new Ctor(x.s*0);x.e=getBase10Exponent(xd,xe);x.d=xd;external=false;if(isFloat)x=divide(x,divisor,len*4);if(p)x=x.times(Math.abs(p)<54?Math.pow(2,p):Decimal.pow(2,p));external=true;return x}function sine(Ctor,x){var k,len=x.d.length;if(len<3)return taylorSeries(Ctor,2,x,x);k=1.4*Math.sqrt(len);k=k>16?16:k|0;x=x.times(Math.pow(5,-k));x=taylorSeries(Ctor,2,x,x);var sin2_x,d5=new Ctor(5),d16=new Ctor(16),d20=new Ctor(20);for(;k--;){sin2_x=x.times(x);x=x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))))}return x}function taylorSeries(Ctor,n,x,y,isHyperbolic){var j,t,u,x2,i=1,pr=Ctor.precision,k=Math.ceil(pr/LOG_BASE);external=false;x2=x.times(x);u=new Ctor(y);for(;;){t=divide(u.times(x2),new Ctor(n++*n++),pr,1);u=isHyperbolic?y.plus(t):y.minus(t);y=divide(t.times(x2),new Ctor(n++*n++),pr,1);t=u.plus(y);if(t.d[k]!==void 0){for(j=k;t.d[j]===u.d[j]&&j--;);if(j==-1)break}j=u;u=y;y=t;t=j;i++}external=true;t.d.length=k+1;return t}function toLessThanHalfPi(Ctor,x){var t,isNeg=x.s<0,pi=getPi(Ctor,Ctor.precision,1),halfPi=pi.times(.5);x=x.abs();if(x.lte(halfPi)){quadrant=isNeg?4:1;return x}t=x.divToInt(pi);if(t.isZero()){quadrant=isNeg?3:2}else{x=x.minus(t.times(pi));if(x.lte(halfPi)){quadrant=isOdd(t)?isNeg?2:3:isNeg?4:1;return x}quadrant=isOdd(t)?isNeg?1:4:isNeg?3:2}return x.minus(pi).abs()}function toStringBinary(x,baseOut,sd,rm){var base,e,i,k,len,roundUp,str,xd,y,Ctor=x.constructor,isExp=sd!==void 0;if(isExp){checkInt32(sd,1,MAX_DIGITS);if(rm===void 0)rm=Ctor.rounding;else checkInt32(rm,0,8)}else{sd=Ctor.precision;rm=Ctor.rounding}if(!x.isFinite()){str=nonFiniteToString(x)}else{str=finiteToString(x);i=str.indexOf(".");if(isExp){base=2;if(baseOut==16){sd=sd*4-3}else if(baseOut==8){sd=sd*3-2}}else{base=baseOut}if(i>=0){str=str.replace(".","");y=new Ctor(1);y.e=str.length-i;y.d=convertBase(finiteToString(y),10,base);y.e=y.d.length}xd=convertBase(str,10,base);e=len=xd.length;for(;xd[--len]==0;)xd.pop();if(!xd[0]){str=isExp?"0p+0":"0"}else{if(i<0){e--}else{x=new Ctor(x);x.d=xd;x.e=e;x=divide(x,y,sd,rm,0,base);xd=x.d;e=x.e;roundUp=inexact}i=xd[sd];k=base/2;roundUp=roundUp||xd[sd+1]!==void 0;roundUp=rm<4?(i!==void 0||roundUp)&&(rm===0||rm===(x.s<0?3:2)):i>k||i===k&&(rm===4||roundUp||rm===6&&xd[sd-1]&1||rm===(x.s<0?8:7));xd.length=sd;if(roundUp){for(;++xd[--sd]>base-1;){xd[sd]=0;if(!sd){++e;xd.unshift(1)}}}for(len=xd.length;!xd[len-1];--len);for(i=0,str="";i<len;i++)str+=NUMERALS.charAt(xd[i]);if(isExp){if(len>1){if(baseOut==16||baseOut==8){i=baseOut==16?4:3;for(--len;len%i;len++)str+="0";xd=convertBase(str,base,baseOut);for(len=xd.length;!xd[len-1];--len);for(i=1,str="1.";i<len;i++)str+=NUMERALS.charAt(xd[i])}else{str=str.charAt(0)+"."+str.slice(1)}}str=str+(e<0?"p":"p+")+e}else if(e<0){for(;++e;)str="0"+str;str="0."+str}else{if(++e>len)for(e-=len;e--;)str+="0";else if(e<len)str=str.slice(0,e)+"."+str.slice(e)}}str=(baseOut==16?"0x":baseOut==2?"0b":baseOut==8?"0o":"")+str}return x.s<0?"-"+str:str}function truncate(arr,len){if(arr.length>len){arr.length=len;return true}}function abs(x){return new this(x).abs()}function acos(x){return new this(x).acos()}function acosh(x){return new this(x).acosh()}function add(x,y){return new this(x).plus(y)}function asin(x){return new this(x).asin()}function asinh(x){return new this(x).asinh()}function atan(x){return new this(x).atan()}function atanh(x){return new this(x).atanh()}function atan2(y,x){y=new this(y);x=new this(x);var r,pr=this.precision,rm=this.rounding,wpr=pr+4;if(!y.s||!x.s){r=new this(NaN)}else if(!y.d&&!x.d){r=getPi(this,wpr,1).times(x.s>0?.25:.75);r.s=y.s}else if(!x.d||y.isZero()){r=x.s<0?getPi(this,pr,rm):new this(0);r.s=y.s}else if(!y.d||x.isZero()){r=getPi(this,wpr,1).times(.5);r.s=y.s}else if(x.s<0){this.precision=wpr;this.rounding=1;r=this.atan(divide(y,x,wpr,1));x=getPi(this,wpr,1);this.precision=pr;this.rounding=rm;r=y.s<0?r.minus(x):r.plus(x)}else{r=this.atan(divide(y,x,wpr,1))}return r}function cbrt(x){return new this(x).cbrt()}function ceil(x){return finalise(x=new this(x),x.e+1,2)}function config(obj){if(!obj||typeof obj!=="object")throw Error(decimalError+"Object expected");var i,p,v,ps=["precision",1,MAX_DIGITS,"rounding",0,8,"toExpNeg",-EXP_LIMIT,0,"toExpPos",0,EXP_LIMIT,"maxE",0,EXP_LIMIT,"minE",-EXP_LIMIT,0,"modulo",0,9];for(i=0;i<ps.length;i+=3){if((v=obj[p=ps[i]])!==void 0){if(mathfloor(v)===v&&v>=ps[i+1]&&v<=ps[i+2])this[p]=v;else throw Error(invalidArgument+p+": "+v)}}if(obj.hasOwnProperty(p="crypto")){if((v=obj[p])===void 0){this[p]=v}else if(v===true||v===false||v===0||v===1){this[p]=!!(v&&cryptoObject&&(cryptoObject.getRandomValues||cryptoObject.randomBytes))}else{throw Error(invalidArgument+p+": "+v)}}return this}function cos(x){return new this(x).cos()}function cosh(x){return new this(x).cosh()}function clone(obj){var i,p,ps;function Decimal(v){var e,i,t,x=this;if(!(x instanceof Decimal))return new Decimal(v);x.constructor=Decimal;if(v instanceof Decimal){x.s=v.s;x.e=v.e;x.d=(v=v.d)?v.slice():v;return}t=typeof v;if(t==="number"){if(v===0){x.s=1/v<0?-1:1;x.e=0;x.d=[0];return}if(v<0){v=-v;x.s=-1}else{x.s=1}if(v===~~v&&v<1e7){for(e=0,i=v;i>=10;i/=10)e++;x.e=e;x.d=[v];return}else if(v*0!==0){if(!v)x.s=NaN;x.e=NaN;x.d=null;return}return parseDecimal(x,v.toString())}else if(t!=="string"){throw Error(invalidArgument+v)}if(v.charCodeAt(0)===45){v=v.slice(1);x.s=-1}else{x.s=1}return isDecimal.test(v)?parseDecimal(x,v):parseOther(x,v)}Decimal.prototype=P;Decimal.ROUND_UP=0;Decimal.ROUND_DOWN=1;Decimal.ROUND_CEIL=2;Decimal.ROUND_FLOOR=3;Decimal.ROUND_HALF_UP=4;Decimal.ROUND_HALF_DOWN=5;Decimal.ROUND_HALF_EVEN=6;Decimal.ROUND_HALF_CEIL=7;Decimal.ROUND_HALF_FLOOR=8;Decimal.EUCLID=9;Decimal.config=config;Decimal.clone=clone;Decimal.abs=abs;Decimal.acos=acos;Decimal.acosh=acosh;Decimal.add=add;Decimal.asin=asin;Decimal.asinh=asinh;Decimal.atan=atan;Decimal.atanh=atanh;Decimal.atan2=atan2;Decimal.cbrt=cbrt;Decimal.ceil=ceil;Decimal.cos=cos;Decimal.cosh=cosh;Decimal.div=div;Decimal.exp=exp;Decimal.floor=floor;Decimal.fromJSON=fromJSON;Decimal.hypot=hypot;Decimal.ln=ln;Decimal.log=log;Decimal.log10=log10;Decimal.log2=log2;Decimal.max=max;Decimal.min=min;Decimal.mod=mod;Decimal.mul=mul;Decimal.pow=pow;Decimal.random=random;Decimal.round=round;Decimal.sign=sign;Decimal.sin=sin;Decimal.sinh=sinh;Decimal.sqrt=sqrt;Decimal.sub=sub;Decimal.tan=tan;Decimal.tanh=tanh;Decimal.trunc=trunc;if(obj===void 0)obj={};if(obj){ps=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"];for(i=0;i<ps.length;)if(!obj.hasOwnProperty(p=ps[i++]))obj[p]=this[p]}Decimal.config(obj);return Decimal}function div(x,y){return new this(x).div(y)}function exp(x){return new this(x).exp()}function floor(x){return finalise(x=new this(x),x.e+1,3)}function fromJSON(str){var e,isNeg,k,n;if(typeof str!=="string"||!str)throw Error(invalidArgument+str);k=str.length;n=NUMERALS.indexOf(str.charAt(0));if(k===1){return new this(n>81?[-1/0,1/0,0/0][n-82]:n>40?-(n-41):n)}else if(n&64){isNeg=n&16;e=isNeg?(n&7)-3:(n&15)-7;k=1}else if(k===2){n=n*88+NUMERALS.indexOf(str.charAt(1));return new this(n>=2816?-(n-2816)-41:n+41)}else{isNeg=n&32;if(n&31){e=n&15;k=e+1;if(e===1){e=NUMERALS.indexOf(str.charAt(1))}else if(e===2){e=NUMERALS.indexOf(str.charAt(1))*88+NUMERALS.indexOf(str.charAt(2))}else{e=+convertBase(str.slice(1,k),88,10).join("")}if(n&16)e=-e}else{str=convertBase(str.slice(1),88,10).join("");return new this(isNeg?"-"+str:str)}}str=convertBase(str.slice(k),88,10).join("");e=e-str.length+1;str=str+"e"+e;return new this(isNeg?"-"+str:str)}function hypot(){var i,n,t=new this(0);external=false;for(i=0;i<arguments.length;){n=new this(arguments[i++]);if(!n.d){if(n.s){external=true;return new this(1/0)}t=n}else if(t.d){t=t.plus(n.times(n))}}external=true;return t.sqrt()}function ln(x){return new this(x).ln()}function log(x,y){return new this(x).log(y)}function log2(x){return new this(x).log(2)}function log10(x){return new this(x).log(10)}function max(){return maxOrMin(this,arguments,"lt")}function min(){return maxOrMin(this,arguments,"gt")}function mod(x,y){return new this(x).mod(y)}function mul(x,y){return new this(x).mul(y)}function pow(x,y){return new this(x).pow(y)}function random(sd){var d,e,k,n,i=0,r=new this(1),rd=[];if(sd===void 0)sd=this.precision;else checkInt32(sd,1,MAX_DIGITS);k=Math.ceil(sd/LOG_BASE);if(this.crypto===false){for(;i<k;)rd[i++]=Math.random()*1e7|0}else if(cryptoObject&&cryptoObject.getRandomValues){d=cryptoObject.getRandomValues(new Uint32Array(k));for(;i<k;){n=d[i];if(n>=429e7){d[i]=cryptoObject.getRandomValues(new Uint32Array(1))[0]}else{rd[i++]=n%1e7}}}else if(cryptoObject&&cryptoObject.randomBytes){d=cryptoObject.randomBytes(k*=4);for(;i<k;){n=d[i]+(d[i+1]<<8)+(d[i+2]<<16)+((d[i+3]&127)<<24);if(n>=214e7){cryptoObject.randomBytes(4).copy(d,i)}else{rd.push(n%1e7);i+=4}}i=k/4}else if(this.crypto){throw Error(decimalError+"crypto unavailable")}else{for(;i<k;)rd[i++]=Math.random()*1e7|0}k=rd[--i];sd%=LOG_BASE;if(k&&sd){n=mathpow(10,LOG_BASE-sd);rd[i]=(k/n|0)*n}for(;rd[i]===0;i--)rd.pop();if(i<0){e=0;rd=[0]}else{e=-1;for(;rd[0]===0;e-=LOG_BASE)rd.shift();for(k=1,n=rd[0];n>=10;n/=10)k++;if(k<LOG_BASE)e-=LOG_BASE-k}r.e=e;r.d=rd;return r}function round(x){return finalise(x=new this(x),x.e+1,this.rounding)}function sign(x){x=new this(x);return x.d?x.d[0]?x.s:0*x.s:x.s||NaN}function sin(x){return new this(x).sin()}function sinh(x){return new this(x).sinh()}function sqrt(x){return new this(x).sqrt()}function sub(x,y){return new this(x).sub(y)}function tan(x){return new this(x).tan()}function tanh(x){return new this(x).tanh()}function trunc(x){return finalise(x=new this(x),x.e+1,1)}Decimal=clone(Decimal);LN10=new Decimal(LN10);PI=new Decimal(PI);if(typeof define=="function"&&define.amd){define(function(){return Decimal})}else if(typeof module!="undefined"&&module.exports){module.exports=Decimal;if(!cryptoObject){try{cryptoObject=require("cry"+"pto")}catch(e){}}}else{if(!globalScope){globalScope=typeof self!="undefined"&&self&&self.self==self?self:Function("return this")()}noConflict=globalScope.Decimal;Decimal.noConflict=function(){globalScope.Decimal=noConflict;return Decimal};globalScope.Decimal=Decimal}})(this)},{}]},{},[]);var big=require("decimal.js");var denominator=new big(2);var num=new big(1);document.body.innerHTML=num.dividedBy(denominator.toPower(2048)).toString()},0); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"decimal.js": "5.0.8" | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <body> --> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <head> --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment