🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

fraction-math-js

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fraction-math-js - npm Package Compare versions

Comparing version
0.1.10
to
0.2.0
+11
build.js
var babel = require("babel");
var UglifyJS = require("uglify-js");
var fs=require("fs");
var r=babel.transformFileSync("index.js",{"sourceMaps":true});
var res = UglifyJS.minify(r.code, {
fromString: true,
inSourceMap:r.map,
outSourceMap:"fraction-math-js-es5.map"
});
fs.writeFileSync("fraction-math-js-es5.min.js",res.code);
fs.writeFileSync("fraction-math-js-es5.map",res.map);
<body>
<input type="text" value="1 + 1" id="input" /><button type="submit" onclick="window.calc()">calc</button>
<div id="output"></div>
</body>
<script src="./lib/browser-polyfill.min.js" ></script>
<script src="./lib/require.js"></script>
<script>
(function(){
var i=document.getElementById("input");
var o=document.getElementById("output");
define("bignumber.js",["./lib/bignumber.min.js"],function(b){return b;});//load bignumber
window.calc=function(){
require(["../fraction-math-js-es5.min.js"],function(fraction){//load fraction-math-js
var F=fraction.builder;
o.innerHTML = F(i.value).toString();
})
}
})();
</script>
<body>
<input type="text" value="1 + 1" id="input" /><button type="button" onclick="window.calc()">calc</button>
<div id="output"></div>
</body>
<script src="./lib/browser-polyfill.min.js" ></script>
<script src="./lib/bignumber.min.js"></script>
<script src="../fraction-math-js-es5.min.js"></script>
<script>
(function(){
var input=document.getElementById("input");
var output=document.getElementById("output");
var F=window.FractionMathJs.builder;
window.calc=function(){
output.innerHTML = F(input.value).toString();
}
})()
</script>
{"version":3,"file":"bignumber.min.js","sources":["bignumber.js"],"names":["global","another","configObj","BigNumber","n","b","c","e","i","num","len","str","x","this","ERRORS","raise","isValidInt","id","round","DECIMAL_PLACES","ROUNDING_MODE","RegExp","ALPHABET","slice","test","parseNumeric","s","replace","length","tooManyDigits","charCodeAt","convertBase","isNumeric","indexOf","search","substring","MAX_EXP","MIN_EXP","LOG_BASE","push","baseOut","baseIn","sign","d","k","r","xc","y","dp","rm","toLowerCase","POW_PRECISION","pow","toBaseOut","toFixedPoint","coeffToString","pop","div","unshift","charAt","format","caller","c0","ne","roundingMode","toString","TO_EXP_NEG","toExponential","maxOrMin","args","method","m","isArray","call","intValidatorWithErrors","min","max","name","truncate","normalise","j","msg","val","error","Error","sd","ni","rd","pows10","POWS_TEN","out","mathceil","mathfloor","BASE","P","prototype","ONE","TO_EXP_POS","CRYPTO","MODULO_MODE","FORMAT","decimalSeparator","groupSeparator","groupSize","secondaryGroupSize","fractionGroupSeparator","fractionGroupSize","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","config","v","p","a","arguments","o","has","hasOwnProperty","MAX","intValidatorNoErrors","notBool","crypto","lt","gt","random","pow2_53","random53bitInt","Math","rand","getRandomValues","Uint32Array","randomBytes","copy","shift","multiply","base","temp","xlo","xhi","carry","klo","SQRT_BASE","khi","compare","aL","bL","cmp","subtract","more","prod","prodL","q","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","yc","NaN","bitFloor","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","isNaN","p1","p2","absoluteValue","abs","ceil","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","divToInt","equals","eq","floor","greaterThan","greaterThanOrEqualTo","gte","isFinite","isInteger","isInt","isNegative","isNeg","isZero","lessThan","lessThanOrEqualTo","lte","minus","sub","t","xLTy","plus","xe","ye","reverse","modulo","mod","times","negated","neg","add","precision","z","MAX_SAFE_INTEGER","squareRoot","sqrt","rep","half","mul","xcL","ycL","ylo","yhi","zc","sqrtBase","toDigits","toFixed","toFormat","arr","split","g1","g2","intPart","fractionPart","intDigits","substr","toFraction","md","d0","d2","exp","n0","n1","d1","toNumber","toPower","parseFloat","toPrecision","truncated","trunc","valueOf","toJSON","l","obj","Object","arrL","define","amd","module","exports","require"],"mappings":"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"}
/* bignumber.js v2.0.8 https://github.com/MikeMcl/bignumber.js/LICENCE */
!function(e){"use strict";function n(e){function a(e,n){var t,r,i,o,u,s,f=this;if(!(f instanceof a))return j&&L(26,"constructor call without new",e),new a(e,n);if(null!=n&&H(n,2,64,M,"base")){if(n=0|n,s=e+"",10==n)return f=new a(e instanceof a?e:s),U(f,P+f.e+1,k);if((o="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(t="["+b.slice(0,n)+"]+")+"(?:\\."+t+")?$",37>n?"i":"").test(s))return g(f,s,o,n);o?(f.s=0>1/e?(s=s.slice(1),-1):1,j&&s.replace(/^0\.0*|\./,"").length>15&&L(M,N,e),o=!1):f.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1,s=D(s,10,n,f.s)}else{if(e instanceof a)return f.s=e.s,f.e=e.e,f.c=(e=e.c)?e.slice():e,void(M=0);if((o="number"==typeof e)&&0*e==0){if(f.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,i=e;i>=10;i/=10,r++);return f.e=r,f.c=[e],void(M=0)}s=e+""}else{if(!p.test(s=e+""))return g(f,s,o);f.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1}}for((r=s.indexOf("."))>-1&&(s=s.replace(".","")),(i=s.search(/e/i))>0?(0>r&&(r=i),r+=+s.slice(i+1),s=s.substring(0,i)):0>r&&(r=s.length),i=0;48===s.charCodeAt(i);i++);for(u=s.length;48===s.charCodeAt(--u););if(s=s.slice(i,u+1))if(u=s.length,o&&j&&u>15&&L(M,N,f.s*e),r=r-i-1,r>z)f.c=f.e=null;else if(G>r)f.c=[f.e=0];else{if(f.e=r,f.c=[],i=(r+1)%y,0>r&&(i+=y),u>i){for(i&&f.c.push(+s.slice(0,i)),u-=y;u>i;)f.c.push(+s.slice(i,i+=y));s=s.slice(i),i=y-s.length}else i-=u;for(;i--;s+="0");f.c.push(+s)}else f.c=[f.e=0];M=0}function D(e,n,t,i){var o,u,f,c,h,g,p,d=e.indexOf("."),m=P,w=k;for(37>t&&(e=e.toLowerCase()),d>=0&&(f=J,J=0,e=e.replace(".",""),p=new a(t),h=p.pow(e.length-d),J=f,p.c=s(l(r(h.c),h.e),10,n),p.e=p.c.length),g=s(e,t,n),u=f=g.length;0==g[--f];g.pop());if(!g[0])return"0";if(0>d?--u:(h.c=g,h.e=u,h.s=i,h=C(h,p,m,w,n),g=h.c,c=h.r,u=h.e),o=u+m+1,d=g[o],f=n/2,c=c||0>o||null!=g[o+1],c=4>w?(null!=d||c)&&(0==w||w==(h.s<0?3:2)):d>f||d==f&&(4==w||c||6==w&&1&g[o-1]||w==(h.s<0?8:7)),1>o||!g[0])e=c?l("1",-m):"0";else{if(g.length=o,c)for(--n;++g[--o]>n;)g[o]=0,o||(++u,g.unshift(1));for(f=g.length;!g[--f];);for(d=0,e="";f>=d;e+=b.charAt(g[d++]));e=l(e,u)}return e}function _(e,n,t,i){var o,u,s,c,h;if(t=null!=t&&H(t,0,8,i,v)?0|t:k,!e.c)return e.toString();if(o=e.c[0],s=e.e,null==n)h=r(e.c),h=19==i||24==i&&B>=s?f(h,s):l(h,s);else if(e=U(new a(e),n,t),u=e.e,h=r(e.c),c=h.length,19==i||24==i&&(u>=n||B>=u)){for(;n>c;h+="0",c++);h=f(h,u)}else if(n-=s,h=l(h,u),u+1>c){if(--n>0)for(h+=".";n--;h+="0");}else if(n+=u-c,n>0)for(u+1==c&&(h+=".");n--;h+="0");return e.s<0&&o?"-"+h:h}function x(e,n){var t,r,i=0;for(u(e[0])&&(e=e[0]),t=new a(e[0]);++i<e.length;){if(r=new a(e[i]),!r.s){t=r;break}n.call(t,r)&&(t=r)}return t}function F(e,n,t,r,i){return(n>e||e>t||e!=c(e))&&L(r,(i||"decimal places")+(n>e||e>t?" out of range":" not an integer"),e),!0}function I(e,n,t){for(var r=1,i=n.length;!n[--i];n.pop());for(i=n[0];i>=10;i/=10,r++);return(t=r+t*y-1)>z?e.c=e.e=null:G>t?e.c=[e.e=0]:(e.e=t,e.c=n),e}function L(e,n,t){var r=new Error(["new BigNumber","cmp","config","div","divToInt","eq","gt","gte","lt","lte","minus","mod","plus","precision","random","round","shift","times","toDigits","toExponential","toFixed","toFormat","toFraction","pow","toPrecision","toString","BigNumber"][e]+"() "+n+": "+t);throw r.name="BigNumber Error",M=0,r}function U(e,n,t,r){var i,o,u,s,f,l,c,a=e.c,h=R;if(a){e:{for(i=1,s=a[0];s>=10;s/=10,i++);if(o=n-i,0>o)o+=y,u=n,f=a[l=0],c=f/h[i-u-1]%10|0;else if(l=d((o+1)/y),l>=a.length){if(!r)break e;for(;a.length<=l;a.push(0));f=c=0,i=1,o%=y,u=o-y+1}else{for(f=s=a[l],i=1;s>=10;s/=10,i++);o%=y,u=o-y+i,c=0>u?0:f/h[i-u-1]%10|0}if(r=r||0>n||null!=a[l+1]||(0>u?f:f%h[i-u-1]),r=4>t?(c||r)&&(0==t||t==(e.s<0?3:2)):c>5||5==c&&(4==t||r||6==t&&(o>0?u>0?f/h[i-u]:0:a[l-1])%10&1||t==(e.s<0?8:7)),1>n||!a[0])return a.length=0,r?(n-=e.e+1,a[0]=h[(y-n%y)%y],e.e=-n||0):a[0]=e.e=0,e;if(0==o?(a.length=l,s=1,l--):(a.length=l+1,s=h[y-o],a[l]=u>0?m(f/h[i-u]%h[u])*s:0),r)for(;;){if(0==l){for(o=1,u=a[0];u>=10;u/=10,o++);for(u=a[0]+=s,s=1;u>=10;u/=10,s++);o!=s&&(e.e++,a[0]==O&&(a[0]=1));break}if(a[l]+=s,a[l]!=O)break;a[l--]=0,s=1}for(o=a.length;0===a[--o];a.pop());}e.e>z?e.c=e.e=null:e.e<G&&(e.c=[e.e=0])}return e}var C,M=0,T=a.prototype,q=new a(1),P=20,k=4,B=-7,$=21,G=-1e7,z=1e7,j=!0,H=F,V=!1,W=1,J=100,X={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0};return a.another=n,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.EUCLID=9,a.config=function(){var e,n,t=0,r={},i=arguments,s=i[0],f=s&&"object"==typeof s?function(){return s.hasOwnProperty(n)?null!=(e=s[n]):void 0}:function(){return i.length>t?null!=(e=i[t++]):void 0};return f(n="DECIMAL_PLACES")&&H(e,0,E,2,n)&&(P=0|e),r[n]=P,f(n="ROUNDING_MODE")&&H(e,0,8,2,n)&&(k=0|e),r[n]=k,f(n="EXPONENTIAL_AT")&&(u(e)?H(e[0],-E,0,2,n)&&H(e[1],0,E,2,n)&&(B=0|e[0],$=0|e[1]):H(e,-E,E,2,n)&&(B=-($=0|(0>e?-e:e)))),r[n]=[B,$],f(n="RANGE")&&(u(e)?H(e[0],-E,-1,2,n)&&H(e[1],1,E,2,n)&&(G=0|e[0],z=0|e[1]):H(e,-E,E,2,n)&&(0|e?G=-(z=0|(0>e?-e:e)):j&&L(2,n+" cannot be zero",e))),r[n]=[G,z],f(n="ERRORS")&&(e===!!e||1===e||0===e?(M=0,H=(j=!!e)?F:o):j&&L(2,n+w,e)),r[n]=j,f(n="CRYPTO")&&(e===!!e||1===e||0===e?(V=!(!e||!h||"object"!=typeof h),e&&!V&&j&&L(2,"crypto unavailable",h)):j&&L(2,n+w,e)),r[n]=V,f(n="MODULO_MODE")&&H(e,0,9,2,n)&&(W=0|e),r[n]=W,f(n="POW_PRECISION")&&H(e,0,E,2,n)&&(J=0|e),r[n]=J,f(n="FORMAT")&&("object"==typeof e?X=e:j&&L(2,n+" not an object",e)),r[n]=X,r},a.max=function(){return x(arguments,T.lt)},a.min=function(){return x(arguments,T.gt)},a.random=function(){var e=9007199254740992,n=Math.random()*e&2097151?function(){return m(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var t,r,i,o,u,s=0,f=[],l=new a(q);if(e=null!=e&&H(e,0,E,14)?0|e:P,o=d(e/y),V)if(h&&h.getRandomValues){for(t=h.getRandomValues(new Uint32Array(o*=2));o>s;)u=131072*t[s]+(t[s+1]>>>11),u>=9e15?(r=h.getRandomValues(new Uint32Array(2)),t[s]=r[0],t[s+1]=r[1]):(f.push(u%1e14),s+=2);s=o/2}else if(h&&h.randomBytes){for(t=h.randomBytes(o*=7);o>s;)u=281474976710656*(31&t[s])+1099511627776*t[s+1]+4294967296*t[s+2]+16777216*t[s+3]+(t[s+4]<<16)+(t[s+5]<<8)+t[s+6],u>=9e15?h.randomBytes(7).copy(t,s):(f.push(u%1e14),s+=7);s=o/7}else j&&L(14,"crypto unavailable",h);if(!s)for(;o>s;)u=n(),9e15>u&&(f[s++]=u%1e14);for(o=f[--s],e%=y,o&&e&&(u=R[y-e],f[s]=m(o/u)*u);0===f[s];f.pop(),s--);if(0>s)f=[i=0];else{for(i=-1;0===f[0];f.shift(),i-=y);for(s=1,u=f[0];u>=10;u/=10,s++);y>s&&(i-=y-s)}return l.e=i,l.c=f,l}}(),C=function(){function e(e,n,t){var r,i,o,u,s=0,f=e.length,l=n%A,c=n/A|0;for(e=e.slice();f--;)o=e[f]%A,u=e[f]/A|0,r=c*o+u*l,i=l*o+r%A*A+s,s=(i/t|0)+(r/A|0)+c*u,e[f]=i%t;return s&&e.unshift(s),e}function n(e,n,t,r){var i,o;if(t!=r)o=t>r?1:-1;else for(i=o=0;t>i;i++)if(e[i]!=n[i]){o=e[i]>n[i]?1:-1;break}return o}function r(e,n,t,r){for(var i=0;t--;)e[t]-=i,i=e[t]<n[t]?1:0,e[t]=i*r+e[t]-n[t];for(;!e[0]&&e.length>1;e.shift());}return function(i,o,u,s,f){var l,c,h,g,p,d,w,v,N,b,S,R,A,E,D,_,x,F=i.s==o.s?1:-1,I=i.c,L=o.c;if(!(I&&I[0]&&L&&L[0]))return new a(i.s&&o.s&&(I?!L||I[0]!=L[0]:L)?I&&0==I[0]||!L?0*F:F/0:NaN);for(v=new a(F),N=v.c=[],c=i.e-o.e,F=u+c+1,f||(f=O,c=t(i.e/y)-t(o.e/y),F=F/y|0),h=0;L[h]==(I[h]||0);h++);if(L[h]>(I[h]||0)&&c--,0>F)N.push(1),g=!0;else{for(E=I.length,_=L.length,h=0,F+=2,p=m(f/(L[0]+1)),p>1&&(L=e(L,p,f),I=e(I,p,f),_=L.length,E=I.length),A=_,b=I.slice(0,_),S=b.length;_>S;b[S++]=0);x=L.slice(),x.unshift(0),D=L[0],L[1]>=f/2&&D++;do{if(p=0,l=n(L,b,_,S),0>l){if(R=b[0],_!=S&&(R=R*f+(b[1]||0)),p=m(R/D),p>1)for(p>=f&&(p=f-1),d=e(L,p,f),w=d.length,S=b.length;1==n(d,b,w,S);)p--,r(d,w>_?x:L,w,f),w=d.length,l=1;else 0==p&&(l=p=1),d=L.slice(),w=d.length;if(S>w&&d.unshift(0),r(b,d,S,f),S=b.length,-1==l)for(;n(L,b,_,S)<1;)p++,r(b,S>_?x:L,S,f),S=b.length}else 0===l&&(p++,b=[0]);N[h++]=p,b[0]?b[S++]=I[A]||0:(b=[I[A]],S=1)}while((A++<E||null!=b[0])&&F--);g=null!=b[0],N[0]||N.shift()}if(f==O){for(h=1,F=N[0];F>=10;F/=10,h++);U(v,u+(v.e=h+c*y-1)+1,s,g)}else v.e=c,v.r=+g;return v}}(),g=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,n=/^([^.]+)\.$/,t=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,i=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(o,u,s,f){var l,c=s?u:u.replace(i,"");if(r.test(c))o.s=isNaN(c)?null:0>c?-1:1;else{if(!s&&(c=c.replace(e,function(e,n,t){return l="x"==(t=t.toLowerCase())?16:"b"==t?2:8,f&&f!=l?e:n}),f&&(l=f,c=c.replace(n,"$1").replace(t,"0.$1")),u!=c))return new a(c,l);j&&L(M,"not a"+(f?" base "+f:"")+" number",u),o.s=null}o.c=o.e=null,M=0}}(),T.absoluteValue=T.abs=function(){var e=new a(this);return e.s<0&&(e.s=1),e},T.ceil=function(){return U(new a(this),this.e+1,2)},T.comparedTo=T.cmp=function(e,n){return M=1,i(this,new a(e,n))},T.decimalPlaces=T.dp=function(){var e,n,r=this.c;if(!r)return null;if(e=((n=r.length-1)-t(this.e/y))*y,n=r[n])for(;n%10==0;n/=10,e--);return 0>e&&(e=0),e},T.dividedBy=T.div=function(e,n){return M=3,C(this,new a(e,n),P,k)},T.dividedToIntegerBy=T.divToInt=function(e,n){return M=4,C(this,new a(e,n),0,1)},T.equals=T.eq=function(e,n){return M=5,0===i(this,new a(e,n))},T.floor=function(){return U(new a(this),this.e+1,3)},T.greaterThan=T.gt=function(e,n){return M=6,i(this,new a(e,n))>0},T.greaterThanOrEqualTo=T.gte=function(e,n){return M=7,1===(n=i(this,new a(e,n)))||0===n},T.isFinite=function(){return!!this.c},T.isInteger=T.isInt=function(){return!!this.c&&t(this.e/y)>this.c.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isZero=function(){return!!this.c&&0==this.c[0]},T.lessThan=T.lt=function(e,n){return M=8,i(this,new a(e,n))<0},T.lessThanOrEqualTo=T.lte=function(e,n){return M=9,-1===(n=i(this,new a(e,n)))||0===n},T.minus=T.sub=function(e,n){var r,i,o,u,s=this,f=s.s;if(M=10,e=new a(e,n),n=e.s,!f||!n)return new a(NaN);if(f!=n)return e.s=-n,s.plus(e);var l=s.e/y,c=e.e/y,h=s.c,g=e.c;if(!l||!c){if(!h||!g)return h?(e.s=-n,e):new a(g?s:NaN);if(!h[0]||!g[0])return g[0]?(e.s=-n,e):new a(h[0]?s:3==k?-0:0)}if(l=t(l),c=t(c),h=h.slice(),f=l-c){for((u=0>f)?(f=-f,o=h):(c=l,o=g),o.reverse(),n=f;n--;o.push(0));o.reverse()}else for(i=(u=(f=h.length)<(n=g.length))?f:n,f=n=0;i>n;n++)if(h[n]!=g[n]){u=h[n]<g[n];break}if(u&&(o=h,h=g,g=o,e.s=-e.s),n=(i=g.length)-(r=h.length),n>0)for(;n--;h[r++]=0);for(n=O-1;i>f;){if(h[--i]<g[i]){for(r=i;r&&!h[--r];h[r]=n);--h[r],h[i]+=O}h[i]-=g[i]}for(;0==h[0];h.shift(),--c);return h[0]?I(e,h,c):(e.s=3==k?-1:1,e.c=[e.e=0],e)},T.modulo=T.mod=function(e,n){var t,r,i=this;return M=11,e=new a(e,n),!i.c||!e.s||e.c&&!e.c[0]?new a(NaN):!e.c||i.c&&!i.c[0]?new a(i):(9==W?(r=e.s,e.s=1,t=C(i,e,0,3),e.s=r,t.s*=r):t=C(i,e,0,W),i.minus(t.times(e)))},T.negated=T.neg=function(){var e=new a(this);return e.s=-e.s||null,e},T.plus=T.add=function(e,n){var r,i=this,o=i.s;if(M=12,e=new a(e,n),n=e.s,!o||!n)return new a(NaN);if(o!=n)return e.s=-n,i.minus(e);var u=i.e/y,s=e.e/y,f=i.c,l=e.c;if(!u||!s){if(!f||!l)return new a(o/0);if(!f[0]||!l[0])return l[0]?e:new a(f[0]?i:0*o)}if(u=t(u),s=t(s),f=f.slice(),o=u-s){for(o>0?(s=u,r=l):(o=-o,r=f),r.reverse();o--;r.push(0));r.reverse()}for(o=f.length,n=l.length,0>o-n&&(r=l,l=f,f=r,n=o),o=0;n;)o=(f[--n]=f[n]+l[n]+o)/O|0,f[n]%=O;return o&&(f.unshift(o),++s),I(e,f,s)},T.precision=T.sd=function(e){var n,t,r=this,i=r.c;if(null!=e&&e!==!!e&&1!==e&&0!==e&&(j&&L(13,"argument"+w,e),e!=!!e&&(e=null)),!i)return null;if(t=i.length-1,n=t*y+1,t=i[t]){for(;t%10==0;t/=10,n--);for(t=i[0];t>=10;t/=10,n++);}return e&&r.e+1>n&&(n=r.e+1),n},T.round=function(e,n){var t=new a(this);return(null==e||H(e,0,E,15))&&U(t,~~e+this.e+1,null!=n&&H(n,0,8,15,v)?0|n:k),t},T.shift=function(e){var n=this;return H(e,-S,S,16,"argument")?n.times("1e"+c(e)):new a(n.c&&n.c[0]&&(-S>e||e>S)?n.s*(0>e?0:1/0):n)},T.squareRoot=T.sqrt=function(){var e,n,i,o,u,s=this,f=s.c,l=s.s,c=s.e,h=P+4,g=new a("0.5");if(1!==l||!f||!f[0])return new a(!l||0>l&&(!f||f[0])?NaN:f?s:1/0);if(l=Math.sqrt(+s),0==l||l==1/0?(n=r(f),(n.length+c)%2==0&&(n+="0"),l=Math.sqrt(n),c=t((c+1)/2)-(0>c||c%2),l==1/0?n="1e"+c:(n=l.toExponential(),n=n.slice(0,n.indexOf("e")+1)+c),i=new a(n)):i=new a(l+""),i.c[0])for(c=i.e,l=c+h,3>l&&(l=0);;)if(u=i,i=g.times(u.plus(C(s,u,h,1))),r(u.c).slice(0,l)===(n=r(i.c)).slice(0,l)){if(i.e<c&&--l,n=n.slice(l-3,l+1),"9999"!=n&&(o||"4999"!=n)){(!+n||!+n.slice(1)&&"5"==n.charAt(0))&&(U(i,i.e+P+2,1),e=!i.times(i).eq(s));break}if(!o&&(U(u,u.e+P+2,0),u.times(u).eq(s))){i=u;break}h+=4,l+=4,o=1}return U(i,i.e+P+1,k,e)},T.times=T.mul=function(e,n){var r,i,o,u,s,f,l,c,h,g,p,d,m,w,v,N=this,b=N.c,S=(M=17,e=new a(e,n)).c;if(!(b&&S&&b[0]&&S[0]))return!N.s||!e.s||b&&!b[0]&&!S||S&&!S[0]&&!b?e.c=e.e=e.s=null:(e.s*=N.s,b&&S?(e.c=[0],e.e=0):e.c=e.e=null),e;for(i=t(N.e/y)+t(e.e/y),e.s*=N.s,l=b.length,g=S.length,g>l&&(m=b,b=S,S=m,o=l,l=g,g=o),o=l+g,m=[];o--;m.push(0));for(w=O,v=A,o=g;--o>=0;){for(r=0,p=S[o]%v,d=S[o]/v|0,s=l,u=o+s;u>o;)c=b[--s]%v,h=b[s]/v|0,f=d*c+h*p,c=p*c+f%v*v+m[u]+r,r=(c/w|0)+(f/v|0)+d*h,m[u--]=c%w;m[u]=r}return r?++i:m.shift(),I(e,m,i)},T.toDigits=function(e,n){var t=new a(this);return e=null!=e&&H(e,1,E,18,"precision")?0|e:null,n=null!=n&&H(n,0,8,18,v)?0|n:k,e?U(t,e,n):t},T.toExponential=function(e,n){return _(this,null!=e&&H(e,0,E,19)?~~e+1:null,n,19)},T.toFixed=function(e,n){return _(this,null!=e&&H(e,0,E,20)?~~e+this.e+1:null,n,20)},T.toFormat=function(e,n){var t=_(this,null!=e&&H(e,0,E,21)?~~e+this.e+1:null,n,21);if(this.c){var r,i=t.split("."),o=+X.groupSize,u=+X.secondaryGroupSize,s=X.groupSeparator,f=i[0],l=i[1],c=this.s<0,a=c?f.slice(1):f,h=a.length;if(u&&(r=o,o=u,u=r,h-=r),o>0&&h>0){for(r=h%o||o,f=a.substr(0,r);h>r;r+=o)f+=s+a.substr(r,o);u>0&&(f+=s+a.slice(r)),c&&(f="-"+f)}t=l?f+X.decimalSeparator+((u=+X.fractionGroupSize)?l.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+X.fractionGroupSeparator):l):f}return t},T.toFraction=function(e){var n,t,i,o,u,s,f,l,c,h=j,g=this,p=g.c,d=new a(q),m=t=new a(q),w=f=new a(q);if(null!=e&&(j=!1,s=new a(e),j=h,(!(h=s.isInt())||s.lt(q))&&(j&&L(22,"max denominator "+(h?"out of range":"not an integer"),e),e=!h&&s.c&&U(s,s.e+1,1).gte(q)?s:null)),!p)return g.toString();for(c=r(p),o=d.e=c.length-g.e-1,d.c[0]=R[(u=o%y)<0?y+u:u],e=!e||s.cmp(d)>0?o>0?d:m:s,u=z,z=1/0,s=new a(c),f.c[0]=0;l=C(s,d,0,1),i=t.plus(l.times(w)),1!=i.cmp(e);)t=w,w=i,m=f.plus(l.times(i=m)),f=i,d=s.minus(l.times(i=d)),s=i;return i=C(e.minus(t),w,0,1),f=f.plus(i.times(m)),t=t.plus(i.times(w)),f.s=m.s=g.s,o*=2,n=C(m,w,o,k).minus(g).abs().cmp(C(f,t,o,k).minus(g).abs())<1?[m.toString(),w.toString()]:[f.toString(),t.toString()],z=u,n},T.toNumber=function(){var e=this;return+e||(e.s?0*e.s:NaN)},T.toPower=T.pow=function(e){var n,t,r=m(0>e?-e:+e),i=this;if(!H(e,-S,S,23,"exponent")&&(!isFinite(e)||r>S&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new a(Math.pow(+i,e));for(n=J?d(J/y+2):0,t=new a(q);;){if(r%2){if(t=t.times(i),!t.c)break;n&&t.c.length>n&&(t.c.length=n)}if(r=m(r/2),!r)break;i=i.times(i),n&&i.c&&i.c.length>n&&(i.c.length=n)}return 0>e&&(t=q.div(t)),n?U(t,J,k):t},T.toPrecision=function(e,n){return _(this,null!=e&&H(e,1,E,24,"precision")?0|e:null,n,24)},T.toString=function(e){var n,t=this,i=t.s,o=t.e;return null===o?i?(n="Infinity",0>i&&(n="-"+n)):n="NaN":(n=r(t.c),n=null!=e&&H(e,2,64,25,"base")?D(l(n,o),0|e,10,i):B>=o||o>=$?f(n,o):l(n,o),0>i&&t.c[0]&&(n="-"+n)),n},T.truncated=T.trunc=function(){return U(new a(this),this.e+1,1)},T.valueOf=T.toJSON=function(){return this.toString()},null!=e&&a.config(e),a}function t(e){var n=0|e;return e>0||e===n?n:n-1}function r(e){for(var n,t,r=1,i=e.length,o=e[0]+"";i>r;){for(n=e[r++]+"",t=y-n.length;t--;n="0"+n);o+=n}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function i(e,n){var t,r,i=e.c,o=n.c,u=e.s,s=n.s,f=e.e,l=n.e;if(!u||!s)return null;if(t=i&&!i[0],r=o&&!o[0],t||r)return t?r?0:-s:u;if(u!=s)return u;if(t=0>u,r=f==l,!i||!o)return r?0:!i^t?1:-1;if(!r)return f>l^t?1:-1;for(s=(f=i.length)<(l=o.length)?f:l,u=0;s>u;u++)if(i[u]!=o[u])return i[u]>o[u]^t?1:-1;return f==l?0:f>l^t?1:-1}function o(e,n,t){return(e=c(e))>=n&&t>=e}function u(e){return"[object Array]"==Object.prototype.toString.call(e)}function s(e,n,t){for(var r,i,o=[0],u=0,s=e.length;s>u;){for(i=o.length;i--;o[i]*=n);for(o[r=0]+=b.indexOf(e.charAt(u++));r<o.length;r++)o[r]>t-1&&(null==o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/t|0,o[r]%=t)}return o.reverse()}function f(e,n){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>n?"e":"e+")+n}function l(e,n){var t,r;if(0>n){for(r="0.";++n;r+="0");e=r+e}else if(t=e.length,++n>t){for(r="0",n-=t;--n;r+="0");e+=r}else t>n&&(e=e.slice(0,n)+"."+e.slice(n));return e}function c(e){return e=parseFloat(e),0>e?d(e):m(e)}var a,h,g,p=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d=Math.ceil,m=Math.floor,w=" not a boolean or binary digit",v="rounding mode",N="number type has more than 15 significant digits",b="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",O=1e14,y=14,S=9007199254740991,R=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],A=1e7,E=1e9;if(a=n(),"function"==typeof define&&define.amd)define(function(){return a});else if("undefined"!=typeof module&&module.exports){if(module.exports=a,!h)try{h=require("crypto")}catch(D){}}else e.BigNumber=a}(this);
//# sourceMappingURL=bignumber.js.map

Sorry, the diff of this file is too big to display

/*
RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
Available via the MIT or new BSD license.
see: http://github.com/jrburke/requirejs for details
*/
var requirejs,require,define;
(function(ba){function G(b){return"[object Function]"===K.call(b)}function H(b){return"[object Array]"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function n(b,c){return t(b,c)&&b[c]}function A(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&A(c,function(c,i){if(d||!t(b,i))e&&"object"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof
RegExp)?(b[i]||(b[i]={}),U(b[i],c,d,e)):b[i]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]});return c}function B(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,j,b){var f,l,c,d,h,e,g,i,j=j&&j.split("/"),p=k.map,m=p&&p["*"];if(a){a=a.split("/");l=a.length-1;k.nodeIdCompat&&
Q.test(a[l])&&(a[l]=a[l].replace(Q,""));"."===a[0].charAt(0)&&j&&(l=j.slice(0,j.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],"."===d)l.splice(c,1),c-=1;else if(".."===d&&!(0===c||1===c&&".."===l[2]||".."===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join("/")}if(b&&p&&(j||m)){l=a.split("/");c=l.length;a:for(;0<c;c-=1){h=l.slice(0,c).join("/");if(j)for(d=j.length;0<d;d-=1)if(b=n(p,j.slice(0,d).join("/")))if(b=n(b,h)){f=b;e=c;break a}!g&&(m&&n(m,h))&&(g=n(m,h),i=c)}!f&&g&&(f=g,e=i);f&&(l.splice(0,
e,f),a=l.join("/"))}return(f=n(k.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName("script"),function(j){if(j.getAttribute("data-requiremodule")===a&&j.getAttribute("data-requirecontext")===h.contextName)return j.parentNode.removeChild(j),!0})}function p(a){var j=n(k.paths,a);if(j&&H(j)&&1<j.length)return j.shift(),h.require.undef(a),h.makeRequire(null,{skipMap:!0})([a]),!0}function g(a){var j,c=a?a.indexOf("!"):-1;-1<c&&(j=a.substring(0,c),a=a.substring(c+1,a.length));return[j,a]}function i(a,
j,b,f){var l,d,e=null,i=j?j.name:null,k=a,p=!0,m="";a||(p=!1,a="_@r"+(K+=1));a=g(a);e=a[0];a=a[1];e&&(e=c(e,i,f),d=n(q,e));a&&(e?m=d&&d.normalize?d.normalize(a,function(a){return c(a,i,f)}):-1===a.indexOf("!")?c(a,i,f):a:(m=c(a,i,f),a=g(m),e=a[0],m=a[1],b=!0,l=h.nameToUrl(m)));b=e&&!d&&!b?"_unnormalized"+(O+=1):"";return{prefix:e,name:m,parentMap:j,unnormalized:!!b,url:l,originalName:k,isDefine:p,id:(e?e+"!"+m:m)+b}}function r(a){var j=a.id,b=n(m,j);b||(b=m[j]=new h.Module(a));return b}function s(a,
j,b){var f=a.id,c=n(m,f);if(t(q,f)&&(!c||c.defineEmitComplete))"defined"===j&&b(q[f]);else if(c=r(a),c.error&&"error"===j)b(c.error);else c.on(j,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=n(m,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)e.onError(a)}function x(){R.length&&(v(R,function(a){var b=a[0];"string"===typeof b&&(h.defQueueMap[b]=!0);C.push(a)}),R=[])}function y(a){delete m[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit("error",
a.error):(b[f]=!0,v(a.depMaps,function(f,d){var e=f.id,h=n(m,e);h&&(!a.depMatched[d]&&!c[e])&&(n(b,e)?(a.defineDep(d,q[e]),a.check()):F(h,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*k.waitSeconds)&&h.startTime+a<(new Date).getTime(),f=[],l=[],e=!1,i=!0;if(!W){W=!0;A(V,function(a){var h=a.map,g=h.id;if(a.enabled&&(h.isDefine||l.push(a),!a.error))if(!a.inited&&c)p(g)?e=b=!0:(f.push(g),d(g));else if(!a.inited&&(a.fetched&&h.isDefine)&&(e=!0,!h.prefix))return i=!1});if(c&&f.length)return a=B("timeout",
"Load timeout for modules: "+f,null,f),a.contextName=h.contextName,w(a);i&&v(l,function(a){F(a,{},{})});if((!c||b)&&e)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(q,a[0])||r(i(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=h.onScriptLoad;a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=h.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}
function J(){var a;for(x();C.length;){a=C.shift();if(null===a[0])return w(B("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));E(a)}h.defQueueMap={}}var W,Z,h,L,X,k={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},m={},V={},$={},C=[],q={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=h.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?q[a.map.id]=a.exports:a.exports=q[a.map.id]={}},
module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return n(k.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=n($,a.id)||{};this.map=a;this.shim=n(k.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));
this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;h.startTime=(new Date).getTime();var a=this.map;if(this.shim)h.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?
this.callPlugin():this.load()}},load:function(){var a=this.map.url;S[a]||(S[a]=!0,h.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||e.onError!==ca)try{f=h.execCb(c,l,b,f)}catch(d){a=d}else f=h.execCb(c,l,b,f);this.map.isDefine&&
void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(q[c]=f,e.onResourceLoad))e.onResourceLoad(h,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=
!0)}}else t(h.defQueueMap,c)||this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=i(a.prefix);this.depMaps.push(d);s(d,"defined",u(this,function(f){var l,d;d=n(aa,this.map.id);var g=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,p=h.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(g=f.normalize(g,function(a){return c(a,P,!0)})||""),f=i(a.prefix+"!"+g,this.map.parentMap),s(f,"defined",u(this,function(a){this.init([],function(){return a},
null,{enabled:!0,ignore:!0})})),d=n(m,f.id)){this.depMaps.push(f);if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=h.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];A(m,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,g=i(d),P=M;c&&(f=c);P&&
(M=!1);r(g);t(k.config,b)&&(k.config[d]=k.config[b]);try{e.exec(f)}catch(m){return w(B("fromtexteval","fromText eval for "+b+" failed: "+m,m,[b]))}P&&(M=!0);this.depMaps.push(g);h.completeLoad(d);p([d],l)}),f.load(a.name,p,l,k))}));h.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=i(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=
n(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,"defined",u(this,function(a){this.undefed||(this.defineDep(b,a),this.check())}));this.errback?s(a,"error",u(this,this.errback)):this.events.error&&s(a,"error",u(this,function(a){this.emit("error",a)}))}c=a.id;f=m[c];!t(L,c)&&(f&&!f.enabled)&&h.enable(a,this)}));A(this.pluginMaps,u(this,function(a){var b=n(m,a.id);b&&!b.enabled&&h.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=
[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};h={config:k,contextName:b,registry:m,defined:q,urlFetched:S,defQueue:C,defQueueMap:{},Module:Z,makeModuleMap:i,nextTick:e.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=k.shim,c={paths:!0,bundles:!0,config:!0,map:!0};A(a,function(a,b){c[b]?(k[b]||(k[b]={}),U(k[b],a,!0,!0)):k[b]=a});a.bundles&&A(a.bundles,function(a,b){v(a,
function(a){a!==b&&(aa[a]=b)})});a.shim&&(A(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=h.makeShimExports(a);b[c]=a}),k.shim=b);a.packages&&v(a.packages,function(a){var b,a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(k.paths[b]=a.location);k.pkgs[b]=a.name+"/"+(a.main||"main").replace(ha,"").replace(Q,"")});A(m,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=i(b,null,!0))});if(a.deps||a.callback)h.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;
a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,j){function g(c,d,p){var k,n;j.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=!0);if("string"===typeof c){if(G(d))return w(B("requireargs","Invalid require call"),p);if(a&&t(L,c))return L[c](m[a.id]);if(e.get)return e.get(h,c,a,g);k=i(c,a,!1,!0);k=k.id;return!t(q,k)?w(B("notloaded",'Module name "'+k+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):q[k]}J();h.nextTick(function(){J();
n=r(i(null,a));n.skipMap=j.skipMap;n.init(c,d,p,{enabled:!0});D()});return g}j=j||{};U(g,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf("."),j=b.split("/")[0];if(-1!==e&&(!("."===j||".."===j)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return h.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(q,i(b,a,!1,!0).id)},specified:function(b){b=i(b,a,!1,!0).id;return t(q,b)||t(m,b)}});a||(g.undef=function(b){x();var c=i(b,a,!0),e=n(m,b);e.undefed=!0;d(b);delete q[b];delete S[c.url];
delete $[b];T(C,function(a,c){a[0]===b&&C.splice(c,1)});delete h.defQueueMap[b];e&&(e.events.defined&&($[b]=e.events),y(b))});return g},enable:function(a){n(m,a.id)&&r(a).enable()},completeLoad:function(a){var b,c,d=n(k.shim,a)||{},e=d.exports;for(x();C.length;){c=C.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}h.defQueueMap={};c=n(m,a);if(!b&&!t(q,a)&&c&&!c.inited){if(k.enforceDefine&&(!e||!da(e)))return p(a)?void 0:w(B("nodefine","No define call for "+a,null,[a]));E([a,
d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,g,i;(d=n(k.pkgs,a))&&(a=d);if(d=n(aa,a))return h.nameToUrl(d,b,c);if(e.jsExtRegExp.test(a))d=a+(b||"");else{d=k.paths;a=a.split("/");for(g=a.length;0<g;g-=1)if(i=a.slice(0,g).join("/"),i=n(d,i)){H(i)&&(i=i[0]);a.splice(0,g,i);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":k.baseUrl)+d}return k.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+k.urlArgs):d},load:function(a,b){e.load(h,
a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ia.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),h.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!p(b.id))return w(B("scripterror","Script error for: "+b.id,a,[b.id]))}};h.require=h.makeRequire();return h}var e,x,y,D,I,E,N,J,r,O,ja=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ka=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ha=/^\.\//;x=Object.prototype;var K=
x.toString,fa=x.hasOwnProperty,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),ea=!z&&"undefined"!==typeof importScripts,ia=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,Y="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),F={},s={},R=[],M=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(G(requirejs))return;s=requirejs;requirejs=void 0}"undefined"!==typeof require&&!G(require)&&(s=require,require=
void 0);e=requirejs=function(b,c,d,p){var g,i="_";!H(b)&&"string"!==typeof b&&(g=b,H(c)?(b=c,c=d,d=p):b=[]);g&&g.context&&(i=g.context);(p=n(F,i))||(p=F[i]=e.s.newContext(i));g&&p.configure(g);return p.require(b,c,d)};e.config=function(b){return e(b)};e.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=e);e.version="2.1.20";e.jsExtRegExp=/^\/|:|\?|\.js$/;e.isBrowser=z;x=e.s={contexts:F,newContext:ga};e({});v(["toUrl","undef","defined","specified"],
function(b){e[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))y=x.head=D.parentNode;e.onError=ca;e.createNode=function(b){var c=b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};e.load=function(b,c,d){var p=b&&b.config||{},g;if(z){g=e.createNode(p,
c,d);if(p.onNodeCreated)p.onNodeCreated(g,p,c,d);g.setAttribute("data-requirecontext",b.contextName);g.setAttribute("data-requiremodule",c);g.attachEvent&&!(g.attachEvent.toString&&0>g.attachEvent.toString().indexOf("[native code"))&&!Y?(M=!0,g.attachEvent("onreadystatechange",b.onScriptLoad)):(g.addEventListener("load",b.onScriptLoad,!1),g.addEventListener("error",b.onScriptError,!1));g.src=d;J=g;D?y.insertBefore(g,D):y.appendChild(g);J=null;return g}if(ea)try{importScripts(d),b.completeLoad(c)}catch(i){b.onError(B("importscripts",
"importScripts failed for "+c+" at "+d,i,[c]))}};z&&!s.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return r=I,s.baseUrl||(E=r.split("/"),r=E.pop(),O=E.length?E.join("/")+"/":"./",s.baseUrl=O),r=r.replace(Q,""),e.jsExtRegExp.test(r)&&(r=I),s.deps=s.deps?s.deps.concat(r):[r],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ja,"").replace(ka,
function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return N=b}),e=N;e&&(b||(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}g?(g.defQueue.push([b,c,d]),g.defQueueMap[b]=!0):R.push([b,c,d])};define.amd={jQuery:!0};e.exec=function(b){return eval(b)};e(s)}})(this);
#!/usr/bin/env node --harmony --harmony_array_includes
"use strict"
let F = require("../").builder;
let x=F("1+2/3*5");
let y=F("1+",x);
let z=F("+",1,y);
let a=F(y,z,"+");
console.log(a.toString());//35/3
console.log(a.n.toString());//35
console.log(a.d.toString());//3
let b=F(a,"+",1.1);
console.log(b.toString());//383/30
{"version":3,"file":"index.js","sources":["index.js"],"names":["window","global","g","gcd","a","b","gcdsub","_x","_x2","p1","p2","isZero","mod","abs","reduction","n","d","dividedBy","nsign","isNegative","times","Opt","opt","this","getPriority","includes","priority","F","isOpt","i","notOpt","BracketOrNum","op","+","-","*","/","strp","s","fst","match","reduce","v","concat","length","test","a1","v1","map","Infix2Postfix","e","r","top","pop","o","push","popb","forEach","reverse","pack","value","toBN","BigNumber","BNaN","toFrac","toFraction","isInt","One","apply","undefined","_toConsumableArray","toF","evalPrefix","evalPostfix","ope","ev","args","Array","_len","_key","arguments","Object","defineProperties","writable","isNaN","toString","toFixed","join","y","x","px","py","nx","ny","plus","g1","g2","eq","_len2","_key2","_bind","BNInit","bn","NaN","define","amd","module","exports","require","FractionMathJs"],"mappings":"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","sourcesContent":["var window,global;\n;(function(g){\n \"use strict\"\n const gcd=function(a,b){\n let gcdsub=(p1,p2)=>p1.isZero()?p2:gcdsub(p2.mod(p1),p1);\n return gcdsub(a.abs(),b.abs());\n }\n const reduction=function(n,d){//reduction of a fraction\n let g=gcd(n,d);\n return [n.dividedBy(g),d.dividedBy(g)];\n }\n const nsign=(n,d)=>(d.isNegative())?[n.times(-1),d.abs()]:[n,d];//set negative sign\n class Opt{\n constructor(opt){\n this.opt=opt;\n let getPriority=(opt)=>[\"+\",\"-\"].includes(opt)?1:[\"*\",\"/\"].includes(opt)?2:0;\n this.priority=getPriority(opt);\n }\n toString(){\n return this.opt;\n }\n }\n class F {\n constructor(...args){\n let isOpt=(i)=>(i instanceof Opt);\n let notOpt=(i)=>(!isOpt(i));\n let BracketOrNum=(i)=>!(notOpt(i)||(i.priority===0));\n let op=(opt)=>({\n \"+\":\"plus\",\n \"-\":\"minus\",\n \"*\":\"times\",\n \"/\":\"dividedBy\"\n }[opt]);\n let strp=(s,fst)=>s.match(/\\S+/g).reduce((a,v,i)=>\n a.concat(((fst&&(i==0))||((a.length>0)&&(/[^0-9\\.]$/.test(a[a.length-1]))))?\n v.match(/((^|[^0-9\\.])-|)[0-9\\.]+|[^0-9\\.]/g):\n v.match(/([^0-9\\.]-|)[0-9\\.]+|[^0-9\\.]/g)),[]).reduce(\n (a1,v1)=>a1.concat(v1.match(/(-|)[0-9\\.]+|[^0-9\\.]/g)),[]).map(\n (i)=>(/^(-|)[0-9\\.]+$/.test(i)?i:new Opt(i)));//parse string\n let Infix2Postfix=function(e){//convert infix to postfix\n let s=[],r=[];\n let top=()=>s[s.length-1];\n let pop=function(o){\n while ((!!top())&&(o.priority<=top().priority)) {\n r.push(s.pop());\n }\n }\n let popb=function(){\n if (!top()){return;}\n while (top().opt!==\"(\"){\n r.push(s.pop());\n }\n s.pop();\n }\n e.forEach(((i)=>((notOpt(i)?r.push(i):(i.opt==\"(\")?s.push(i):(i.opt==\")\")?popb():(pop(i),s.push(i))))));\n r=r.concat(s.reverse());\n return r;\n }\n let pack=function(v,d){//convert to fractional form\n if (v instanceof F)\n return v.value;\n let toBN=(n)=>(n instanceof BigNumber)?n:[\"string\",\"number\"].includes(typeof(n))?new BigNumber(n):BNaN;\n let toFrac=(n)=>n.toFraction().map((i)=>new BigNumber(i));\n if (!d){\n let n=toBN(v);\n if (n.isInt())\n return [n,One];\n return toFrac(n);\n }\n v=toBN(v);\n d=toBN(d);\n if (v.isInt()&&d.isInt())\n return reduction(...nsign(v,d));\n let toF=(n)=>new F(...toFrac(n));\n return toF(v).dividedBy(toF(d));\n }\n let evalPrefix=function(e){//prefix evaluate\n let s=[];\n e.reverse().forEach((i)=>isOpt(i)?s.push((new F(s.pop()))[op(i.opt)](new F(s.pop()))):s.push(i));\n return new F(s[0]).value;\n }\n let evalPostfix=function(e){//postfix evaluate\n let s=[];\n let ope=(o,a,b)=>(new F(b))[op(o)](new F(a));\n e.forEach((i)=>isOpt(i)?s.push(ope(i.opt,s.pop(),s.pop())):s.push(i));\n return new F(s[0]).value;\n }\n let ev=(a)=>((a.length===0)?[BNaN,BNaN]:\n (a.length===1)?pack(a[0]):\n (a.length===2)?pack(a[0],a[1]):\n BracketOrNum(a[0])?evalPrefix(a):\n BracketOrNum(a[a.length-1])?evalPostfix(a):\n evalPostfix(Infix2Postfix(a)));//evaluate\n let value;\n try {\n value=ev(args.reduce((a,v,i)=>typeof(v)===\"string\"?\n a.concat(strp(v,(i==0)||((a.length>0)&&isOpt(a[a.length-1])))):\n a.concat(v),[]));//get result.\n }\n catch (e){\n value=[BNaN,BNaN];\n }\n Object.defineProperties(this,{\n \"n\":{\n \"value\":value[0],//numerator\n \"writable\":false\n },\n \"d\":{\n \"value\":value[1],//denominator\n \"writable\":false\n }\n });\n //define closure function for read the value;\n }\n toString(){\n if (this.isNaN()) return BNaN.toString();\n if (this.isInt()) return this.n.toFixed();\n return [this.n.toFixed(),this.d.toFixed()].join(\"/\");\n }\n toJSON(){\n return this.toString();\n }\n valueOf(){\n return this.toString();\n }\n toBigNumber(){\n return this.n.dividedBy(this.d);\n }\n plus(y){\n let x=this;\n let g=gcd(x.d,y.d);\n let px=y.d.dividedBy(g);\n let py=x.d.dividedBy(g);\n let d=px.times(x.d);\n let nx=px.times(x.n);\n let ny=py.times(y.n);\n let n=nx.plus(ny);\n let r=reduction(...nsign(n,d));\n return r;\n }\n minus(y){\n let x=this;\n return x.plus(new F(y.n.times(-1),y.d));\n }\n times(y){\n let x=this;\n if (x.d.isZero()||y.d.isZero())\n return [BNaN,BNaN];\n let g1=gcd(x.d,y.n);\n let g2=gcd(x.n,y.d);\n let d=x.d.dividedBy(g1).times(y.d.dividedBy(g2));\n let n=x.n.dividedBy(g2).times(y.n.dividedBy(g1));\n let r=nsign(n,d);\n return r;\n }\n dividedBy(y){\n let x=this;\n return x.times(new F(y.d,y.n));\n }\n isNaN(){\n return this.n.isNaN()||this.d.isNaN();\n }\n isInt(){\n return this.d.eq(1);\n }\n isNegative(){\n return this.n.isNegative();\n }\n get value(){\n return [this.n,this.d];//get value\n }\n static builder(...args){\n return new F(...args);\n }\n }\n let BigNumber,One,BNaN;\n let BNInit=(bn)=>(BigNumber=bn,One=new bn(1),BNaN=new bn(NaN));\n // AMD.\n if ( typeof define == 'function' && define.amd ) {\n define( [\"bignumber.js\"] , (bn)=>(BNInit(bn),F) );\n // CommonJS.\n } else if ( typeof module != 'undefined' && module.exports ) {\n BNInit(require(\"bignumber.js\"));\n module.exports = F;\n // Global.\n } else {\n BNInit(g.BigNumber);\n g.FractionMathJs = F;\n }\n})(window||global);\n//node --harmony --harmony_array_includes"]}
"use strict";function _toConsumableArray(n){if(Array.isArray(n)){for(var t=0,e=Array(n.length);t<n.length;t++)e[t]=n[t];return e}return Array.from(n)}function _classCallCheck(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}var _bind=Function.prototype.bind,_createClass=function(){function n(n,t){for(var e=0;e<t.length;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),t}}(),window,global;!function(n){var t=function(n,t){var e=function(n,t){for(var e=!0;e;){var r=n,i=t;if(e=!1,r.isZero())return i;n=i.mod(r),t=r,e=!0}};return e(n.abs(),t.abs())},e=function(n,e){var r=t(n,e);return[n.dividedBy(r),e.dividedBy(r)]},r=function(n,t){return t.isNegative()?[n.times(-1),t.abs()]:[n,t]},i=function(){function n(t){_classCallCheck(this,n),this.opt=t;var e=function(n){return["+","-"].includes(n)?1:["*","/"].includes(n)?2:0};this.priority=e(t)}return _createClass(n,[{key:"toString",value:function(){return this.opt}}]),n}(),u=function(){function n(){_classCallCheck(this,n);var t=function(n){return n instanceof i},u=function(n){return!t(n)},c=function(n){return!(u(n)||0===n.priority)},f=function(n){return{"+":"plus","-":"minus","*":"times","/":"dividedBy"}[n]},d=function(n,t){return n.match(/\S+/g).reduce(function(n,e,r){return n.concat(t&&0==r||n.length>0&&/[^0-9\.]$/.test(n[n.length-1])?e.match(/((^|[^0-9\.])-|)[0-9\.]+|[^0-9\.]/g):e.match(/([^0-9\.]-|)[0-9\.]+|[^0-9\.]/g))},[]).reduce(function(n,t){return n.concat(t.match(/(-|)[0-9\.]+|[^0-9\.]/g))},[]).map(function(n){return/^(-|)[0-9\.]+$/.test(n)?n:new i(n)})},l=function(n){var t=[],e=[],r=function(){return t[t.length-1]},i=function(n){for(;r()&&n.priority<=r().priority;)e.push(t.pop())},o=function(){if(r()){for(;"("!==r().opt;)e.push(t.pop());t.pop()}};return n.forEach(function(n){return u(n)?e.push(n):"("==n.opt?t.push(n):")"==n.opt?o():(i(n),t.push(n))}),e=e.concat(t.reverse())},v=function(t,i){if(t instanceof n)return t.value;var u=function(n){return n instanceof o?n:["string","number"].includes(typeof n)?new o(n):s},c=function(n){return n.toFraction().map(function(n){return new o(n)})};if(!i){var f=u(t);return f.isInt()?[f,a]:c(f)}if(t=u(t),i=u(i),t.isInt()&&i.isInt())return e.apply(void 0,_toConsumableArray(r(t,i)));var d=function(t){return new(_bind.apply(n,[null].concat(_toConsumableArray(c(t)))))};return d(t).dividedBy(d(i))},h=function(e){var r=[];return e.reverse().forEach(function(e){return t(e)?r.push(new n(r.pop())[f(e.opt)](new n(r.pop()))):r.push(e)}),new n(r[0]).value},p=function(e){var r=[],i=function(t,e,r){return new n(r)[f(t)](new n(e))};return e.forEach(function(n){return t(n)?r.push(i(n.opt,r.pop(),r.pop())):r.push(n)}),new n(r[0]).value},y=function(n){return 0===n.length?[s,s]:1===n.length?v(n[0]):2===n.length?v(n[0],n[1]):c(n[0])?h(n):p(c(n[n.length-1])?n:l(n))},g=void 0;try{for(var m=arguments.length,b=Array(m),w=0;m>w;w++)b[w]=arguments[w];g=y(b.reduce(function(n,e,r){return"string"==typeof e?n.concat(d(e,0==r||n.length>0&&t(n[n.length-1]))):n.concat(e)},[]))}catch(k){g=[s,s]}Object.defineProperties(this,{n:{value:g[0],writable:!1},d:{value:g[1],writable:!1}})}return _createClass(n,[{key:"toString",value:function(){return this.isNaN()?s.toString():this.isInt()?this.n.toFixed():[this.n.toFixed(),this.d.toFixed()].join("/")}},{key:"toJSON",value:function(){return this.toString()}},{key:"valueOf",value:function(){return this.toString()}},{key:"toBigNumber",value:function(){return this.n.dividedBy(this.d)}},{key:"plus",value:function(n){var i=this,u=t(i.d,n.d),o=n.d.dividedBy(u),a=i.d.dividedBy(u),s=o.times(i.d),c=o.times(i.n),f=a.times(n.n),d=c.plus(f),l=e.apply(void 0,_toConsumableArray(r(d,s)));return l}},{key:"minus",value:function(t){var e=this;return e.plus(new n(t.n.times(-1),t.d))}},{key:"times",value:function(n){var e=this;if(e.d.isZero()||n.d.isZero())return[s,s];var i=t(e.d,n.n),u=t(e.n,n.d),o=e.d.dividedBy(i).times(n.d.dividedBy(u)),a=e.n.dividedBy(u).times(n.n.dividedBy(i)),c=r(a,o);return c}},{key:"dividedBy",value:function(t){var e=this;return e.times(new n(t.d,t.n))}},{key:"isNaN",value:function(){return this.n.isNaN()||this.d.isNaN()}},{key:"isInt",value:function(){return this.d.eq(1)}},{key:"isNegative",value:function(){return this.n.isNegative()}},{key:"value",get:function(){return[this.n,this.d]}}],[{key:"builder",value:function(){for(var t=arguments.length,e=Array(t),r=0;t>r;r++)e[r]=arguments[r];return new(_bind.apply(n,[null].concat(e)))}}]),n}(),o=void 0,a=void 0,s=void 0,c=function(n){return o=n,a=new n(1),s=new n(NaN)};"function"==typeof define&&define.amd?define(["bignumber.js"],function(n){return c(n),u}):"undefined"!=typeof module&&module.exports?(c(require("bignumber.js")),module.exports=u):(c(n.BigNumber),n.FractionMathJs=u)}(window||global);
//# sourceMappingURL=fraction-math-js-es5.map
+176
-163

@@ -1,178 +0,191 @@

"use strict"
const BigNumber=require("bignumber.js");
const One=new BigNumber(1);
const BNaN=new BigNumber(NaN);
const gcd=function(a,b){
let gcdsub=(p1,p2)=>p1.isZero()?p2:gcdsub(p2.mod(p1),p1);
return gcdsub(a.abs(),b.abs());
}
const reduction=function(n,d){//reduction of a fraction
let g=gcd(n,d);
return [n.dividedBy(g),d.dividedBy(g)];
}
const nsign=(n,d)=>(d.isNegative())?[n.times(-1),d.abs()]:[n,d];//set negative sign
class Opt{
constructor(opt){
this.opt=opt;
let getPriority=(opt)=>["+","-"].includes(opt)?1:["*","/"].includes(opt)?2:0;
this.priority=getPriority(opt);
var window,global;
;(function(g){
"use strict"
const gcd=function(a,b){
let gcdsub=(p1,p2)=>p1.isZero()?p2:gcdsub(p2.mod(p1),p1);
return gcdsub(a.abs(),b.abs());
}
toString(){
return this.opt;
const reduction=function(n,d){//reduction of a fraction
let g=gcd(n,d);
return [n.dividedBy(g),d.dividedBy(g)];
}
}
class F {
constructor(...args){
let isOpt=(i)=>(i instanceof Opt);
let notOpt=(i)=>(!isOpt(i));
let BracketOrNum=(i)=>!(notOpt(i)||(i.priority===0));
let op=(opt)=>({
"+":"plus",
"-":"minus",
"*":"times",
"/":"dividedBy"
}[opt]);
let strp=(s,fst)=>s.match(/\S+/g).reduce((a,v,i)=>
a.concat(((fst&&(i==0))||((a.length>0)&&(/[^0-9\.]$/.test(a[a.length-1]))))?
v.match(/((^|[^0-9\.])-|)[0-9\.]+|[^0-9\.]/g):
v.match(/([^0-9\.]-|)[0-9\.]+|[^0-9\.]/g)),[]).reduce(
(a1,v1)=>a1.concat(v1.match(/(-|)[0-9\.]+|[^0-9\.]/g)),[]).map(
(i)=>(/^(-|)[0-9\.]+$/.test(i)?i:new Opt(i)));//parse string
let Infix2Postfix=function(e){//convert infix to postfix
let s=[],r=[];
let top=()=>s[s.length-1];
let pop=function(o){
while ((!!top())&&(o.priority<=top().priority)) {
r.push(s.pop());
const nsign=(n,d)=>(d.isNegative())?[n.times(-1),d.abs()]:[n,d];//set negative sign
class Opt{
constructor(opt){
this.opt=opt;
let getPriority=(opt)=>["+","-"].includes(opt)?1:["*","/"].includes(opt)?2:0;
this.priority=getPriority(opt);
}
toString(){
return this.opt;
}
}
class F {
constructor(...args){
let isOpt=(i)=>(i instanceof Opt);
let notOpt=(i)=>(!isOpt(i));
let BracketOrNum=(i)=>!(notOpt(i)||(i.priority===0));
let op=(opt)=>({
"+":"plus",
"-":"minus",
"*":"times",
"/":"dividedBy"
}[opt]);
let strp=(s,fst)=>s.match(/\S+/g).reduce((a,v,i)=>
a.concat(((fst&&(i==0))||((a.length>0)&&(/[^0-9\.]$/.test(a[a.length-1]))))?
v.match(/((^|[^0-9\.])-|)[0-9\.]+|[^0-9\.]/g):
v.match(/([^0-9\.]-|)[0-9\.]+|[^0-9\.]/g)),[]).reduce(
(a1,v1)=>a1.concat(v1.match(/(-|)[0-9\.]+|[^0-9\.]/g)),[]).map(
(i)=>(/^(-|)[0-9\.]+$/.test(i)?i:new Opt(i)));//parse string
let Infix2Postfix=function(e){//convert infix to postfix
let s=[],r=[];
let top=()=>s[s.length-1];
let pop=function(o){
while ((!!top())&&(o.priority<=top().priority)) {
r.push(s.pop());
}
}
let popb=function(){
if (!top()){return;}
while (top().opt!=="("){
r.push(s.pop());
}
s.pop();
}
e.forEach(((i)=>((notOpt(i)?r.push(i):(i.opt=="(")?s.push(i):(i.opt==")")?popb():(pop(i),s.push(i))))));
r=r.concat(s.reverse());
return r;
}
let popb=function(){
if (!top()){return;}
while (top().opt!=="("){
r.push(s.pop());
let pack=function(v,d){//convert to fractional form
if (v instanceof F)
return v.value;
let toBN=(n)=>(n instanceof BigNumber)?n:["string","number"].includes(typeof(n))?new BigNumber(n):BNaN;
let toFrac=(n)=>n.toFraction().map((i)=>new BigNumber(i));
if (!d){
let n=toBN(v);
if (n.isInt())
return [n,One];
return toFrac(n);
}
s.pop();
v=toBN(v);
d=toBN(d);
if (v.isInt()&&d.isInt())
return reduction(...nsign(v,d));
let toF=(n)=>new F(...toFrac(n));
return toF(v).dividedBy(toF(d));
}
e.forEach(((i)=>((notOpt(i)?r.push(i):(i.opt=="(")?s.push(i):(i.opt==")")?popb():(pop(i),s.push(i))))));
r=r.concat(s.reverse());
let evalPrefix=function(e){//prefix evaluate
let s=[];
e.reverse().forEach((i)=>isOpt(i)?s.push((new F(s.pop()))[op(i.opt)](new F(s.pop()))):s.push(i));
return new F(s[0]).value;
}
let evalPostfix=function(e){//postfix evaluate
let s=[];
let ope=(o,a,b)=>(new F(b))[op(o)](new F(a));
e.forEach((i)=>isOpt(i)?s.push(ope(i.opt,s.pop(),s.pop())):s.push(i));
return new F(s[0]).value;
}
let ev=(a)=>((a.length===0)?[BNaN,BNaN]:
(a.length===1)?pack(a[0]):
(a.length===2)?pack(a[0],a[1]):
BracketOrNum(a[0])?evalPrefix(a):
BracketOrNum(a[a.length-1])?evalPostfix(a):
evalPostfix(Infix2Postfix(a)));//evaluate
let value;
try {
value=ev(args.reduce((a,v,i)=>typeof(v)==="string"?
a.concat(strp(v,(i==0)||((a.length>0)&&isOpt(a[a.length-1])))):
a.concat(v),[]));//get result.
}
catch (e){
value=[BNaN,BNaN];
}
Object.defineProperties(this,{
"n":{
"value":value[0],//numerator
"writable":false
},
"d":{
"value":value[1],//denominator
"writable":false
}
});
//define closure function for read the value;
}
toString(){
if (this.isNaN()) return BNaN.toString();
if (this.isInt()) return this.n.toFixed();
return [this.n.toFixed(),this.d.toFixed()].join("/");
}
toJSON(){
return this.toString();
}
valueOf(){
return this.toString();
}
toBigNumber(){
return this.n.dividedBy(this.d);
}
plus(y){
let x=this;
let g=gcd(x.d,y.d);
let px=y.d.dividedBy(g);
let py=x.d.dividedBy(g);
let d=px.times(x.d);
let nx=px.times(x.n);
let ny=py.times(y.n);
let n=nx.plus(ny);
let r=reduction(...nsign(n,d));
return r;
}
let pack=function(v,d){//convert to fractional form
if (v instanceof F)
return v.value;
let toBN=(n)=>(n instanceof BigNumber)?n:["string","number"].includes(typeof(n))?new BigNumber(n):BNaN;
let toFrac=(n)=>n.toFraction().map((i)=>new BigNumber(i));
if (!d){
let n=toBN(v);
if (n.isInt())
return [n,One];
return toFrac(n);
}
v=toBN(v);
d=toBN(d);
if (v.isInt()&&d.isInt())
return reduction(...nsign(v,d));
let toF=(n)=>new F(...toFrac(n));
return toF(v).dividedBy(toF(d));
minus(y){
let x=this;
return x.plus(new F(y.n.times(-1),y.d));
}
let evalPrefix=function(e){//prefix evaluate
let s=[];
e.reverse().forEach((i)=>isOpt(i)?s.push((new F(s.pop()))[op(i.opt)](new F(s.pop()))):s.push(i));
return new F(s[0]).value;
times(y){
let x=this;
if (x.d.isZero()||y.d.isZero())
return [BNaN,BNaN];
let g1=gcd(x.d,y.n);
let g2=gcd(x.n,y.d);
let d=x.d.dividedBy(g1).times(y.d.dividedBy(g2));
let n=x.n.dividedBy(g2).times(y.n.dividedBy(g1));
let r=nsign(n,d);
return r;
}
let evalPostfix=function(e){//postfix evaluate
let s=[];
let ope=(o,a,b)=>(new F(b))[op(o)](new F(a));
e.forEach((i)=>isOpt(i)?s.push(ope(i.opt,s.pop(),s.pop())):s.push(i));
return new F(s[0]).value;
dividedBy(y){
let x=this;
return x.times(new F(y.d,y.n));
}
let ev=(a)=>((a.length===0)?[BNaN,BNaN]:
(a.length===1)?pack(a[0]):
(a.length===2)?pack(a[0],a[1]):
BracketOrNum(a[0])?evalPrefix(a):
BracketOrNum(a[a.length-1])?evalPostfix(a):
evalPostfix(Infix2Postfix(a)));//evaluate
let value;
try {
value=ev(args.reduce((a,v,i)=>typeof(v)==="string"?
a.concat(strp(v,(i==0)||((a.length>0)&&isOpt(a[a.length-1])))):
a.concat(v),[]));//get result.
isNaN(){
return this.n.isNaN()||this.d.isNaN();
}
catch (e){
value=[BNaN,BNaN];
isInt(){
return this.d.eq(1);
}
Object.defineProperties(this,{
"n":{
"value":value[0],//numerator
"writable":false
},
"d":{
"value":value[1],//denominator
"writable":false
}
});
//define closure function for read the value;
isNegative(){
return this.n.isNegative();
}
get value(){
return [this.n,this.d];//get value
}
static builder(...args){
return new F(...args);
}
}
toString(){
if (this.isNaN()) return BNaN.toString();
if (this.isInt()) return this.n.toFixed();
return [this.n.toFixed(),this.d.toFixed()].join("/");
let BigNumber,One,BNaN;
let BNInit=(bn)=>(BigNumber=bn,One=new bn(1),BNaN=new bn(NaN));
// AMD.
if ( typeof define == 'function' && define.amd ) {
define( ["bignumber.js"] , (bn)=>(BNInit(bn),F) );
// CommonJS.
} else if ( typeof module != 'undefined' && module.exports ) {
BNInit(require("bignumber.js"));
module.exports = F;
// Global.
} else {
BNInit(g.BigNumber);
g.FractionMathJs = F;
}
toJSON(){
return this.toString();
}
valueOf(){
return this.toString();
}
toBigNumber(){
return this.n.dividedBy(this.d);
}
plus(y){
let x=this;
let g=gcd(x.d,y.d);
let px=y.d.dividedBy(g);
let py=x.d.dividedBy(g);
let d=px.times(x.d);
let nx=px.times(x.n);
let ny=py.times(y.n);
let n=nx.plus(ny);
let r=reduction(...nsign(n,d));
return r;
}
minus(y){
let x=this;
return x.plus(new F(y.n.times(-1),y.d));
}
times(y){
let x=this;
if (x.d.isZero()||y.d.isZero())
return [BNaN,BNaN];
let g1=gcd(x.d,y.n);
let g2=gcd(x.n,y.d);
let d=x.d.dividedBy(g1).times(y.d.dividedBy(g2));
let n=x.n.dividedBy(g2).times(y.n.dividedBy(g1));
let r=nsign(n,d);
return r;
}
dividedBy(y){
let x=this;
return x.times(new F(y.d,y.n));
}
isNaN(){
return this.n.isNaN()||this.d.isNaN();
}
isInt(){
return this.d.eq(1);
}
isNegative(){
return this.n.isNegative();
}
get value(){
return [this.n,this.d];//get value
}
static builder(...args){
return new F(...args);
}
}
module.exports=F;
//node --harmony --harmony_array_includes
})(window||global);
//node --harmony --harmony_array_includes
{
"name": "fraction-math-js",
"version": "0.1.10",
"version": "0.2.0",
"description": "",

@@ -8,3 +8,4 @@ "main": "index.js",

"test": "node --harmony --harmony_array_includes test/test.js",
"fcalc": "node --harmony --harmony_array_includes bin/fcalc"
"fcalc": "node --harmony --harmony_array_includes bin/fcalc",
"build": "node build.js"
},

@@ -16,5 +17,6 @@ "repository": {

"keywords": [
"fraction","calculator"
"fraction",
"calculator"
],
"bin":{
"bin": {
"fcalc": "./bin/fcalc.js"

@@ -30,3 +32,7 @@ },

"bignumber.js": "^2.0.7"
},
"devDependencies": {
"babel": "^5.8.23",
"uglify-js": "^2.4.24"
}
}

@@ -58,1 +58,51 @@ ## fraction-math-js

> node --harmony --harmony_array_includes sample.js
### browser(AMD)[view demo](http://hjiayz.github.io/fraction-math-js/example/amd.html)
<!--write to amd.html-->
<script src="./lib/browser-polyfill.min.js" ></script>
<script src="./lib/require.js"></script>
<!--load babel-polyfill and require.js for es6 and AMD-->
<script>
//load bignumber
define("bignumber.js",["./lib/bignumber.min.js"],function(b){return b;});
//load fraction-math-js
require(["../fraction-math-js-es5.min.js"],function(fraction){
var F=fraction.builder;
document.write(F("1 + 1 / 3").toString());
});
</script>
### browser(global)[view demo](http://hjiayz.github.io/fraction-math-js/example/global.html)
<!--write to global.html-->
<script src="./lib/browser-polyfill.min.js" ></script>
<script src="./lib/bignumber.min.js"></script>
<script src="../fraction-math-js-es5.min.js"></script>
<!--load babel-polyfill , bignumber.js and fraction-math-js-->
<!--fraction-math-js bind to window.FractionMathJs-->
<script>
var F=window.FractionMathJs.builder;
document.write(F("1 + 1 / 3").toString());
</script>
#!/usr/bin/env node --harmony --harmony_array_includes
"use strict"
let F = require("../").builder;
let x=F("1+2/3*5");
let y=F("1+",x);
let z=F("+",1,y);
let a=F(y,z,"+");
console.log(a.toString());//35/3
console.log(a.n.toString());//35
console.log(a.d.toString());//3
let b=F(a,"+",1.1);
console.log(b.toString());//383/30