(function(a,b){typeof exports=="object"?module.exports=b():typeof define=="function"&&define.amd?define(b):a.jStat=b()})(this,function(){var a=function(a,b){function f(b,c){var d=b>c?b:c;return a.pow(10,17-~~(a.log(d>0?d:-d)*a.LOG10E))}function h(a){return e.call(a)==="[object Function]"}function j(a){return typeof a=="number"&&a===a}function k(a){return c.apply([],a)}function l(){return new l._init(arguments)}function m(){return 0}function n(){return 1}function o(a,b){return a===b?1:0}var c=Array.prototype.concat,d=Array.prototype.slice,e=Object.prototype.toString,g=Array.isArray||function(b){return e.call(b)==="[object Array]"};l.fn=l.prototype,l._init=function(b){var c;if(g(b[0]))if(g(b[0][0])){h(b[1])&&(b[0]=l.map(b[0],b[1]));for(var c=0;c=0;c--,e++)d[e]=[b[e][c]];return d},l.transpose=function(b){var c=[],d,e,f,h,i;g(b[0])||(b=[b]),e=b.length,f=b[0].length;for(var i=0;i0&&(i[e][0]=b[e][0]);for(j=1;jd&&e>0)return[];if(e>0)for(i=c;id;i+=e)f.push(i);return f},l.slice=function(){function a(a,c,d,e){var f,g=[],h=a.length;if(c===b&&d===b&&e===b)return l.copy(a);c=c||0,d=d||a.length,c=c>=0?c:h+c,d=d>=0?d:h+d,e=e||1;if(c===d||e===0)return[];if(cd&&e>0)return[];if(e>0)for(f=c;fd;f+=e)g.push(a[f]);return g}function c(b,c){c=c||{};if(j(c.row)){if(j(c.col))return b[c.row][c.col];var d=l.rowa(b,c.row),e=c.col||{};return a(d,e.start,e.end,e.step)}if(j(c.col)){var f=l.cola(b,c.col),g=c.row||{};return a(f,g.start,g.end,g.step)}var g=c.row||{},e=c.col||{},h=a(b,g.start,g.end,g.step);return h.map(function(b){return a(b,e.start,e.end,e.step)})}return c}(),l.sliceAssign=function(d,e,f){if(j(e.row)){if(j(e.col))return d[e.row][e.col]=f;e.col=e.col||{},e.col.start=e.col.start||0,e.col.end=e.col.end||d[0].length,e.col.step=e.col.step||1;var g=l.arange(e.col.start,a.min(d.length,e.col.end),e.col.step),h=e.row;return g.forEach(function(a,b){d[h][a]=f[b]}),d}if(j(e.col)){e.row=e.row||{},e.row.start=e.row.start||0,e.row.end=e.row.end||d.length,e.row.step=e.row.step||1;var i=l.arange(e.row.start,a.min(d[0].length,e.row.end),e.row.step),k=e.col;return i.forEach(function(a,b){d[a][k]=f[b]}),d}f[0].length===b&&(f=[f]),e.row.start=e.row.start||0,e.row.end=e.row.end||d.length,e.row.step=e.row.step||1,e.col.start=e.col.start||0,e.col.end=e.col.end||d[0].length,e.col.step=e.col.step||1;var i=l.arange(e.row.start,a.min(d.length,e.row.end),e.row.step),g=l.arange(e.col.start,a.min(d[0].length,e.col.end),e.col.step);return i.forEach(function(a,b){g.forEach(function(c,e){d[a][c]=f[b][e]})}),d},l.diagonal=function(b){var c=l.zeros(b.length,b.length);return b.forEach(function(a,b){c[b][b]=a}),c},l.copy=function(b){return b.map(function(a){return j(a)?a:a.map(function(a){return a})})};var p=l.prototype;return p.length=0,p.push=Array.prototype.push,p.sort=Array.prototype.sort,p.splice=Array.prototype.splice,p.slice=Array.prototype.slice,p.toArray=function(){return this.length>1?d.call(this):d.call(this)[0]},p.map=function(b,c){return l(l.map(this,b,c))},p.cumreduce=function(b,c){return l(l.cumreduce(this,b,c))},p.alter=function(b){return l.alter(this,b),this},function(a){for(var b=0;b=0)g+=a[b];return g},a.sumsqrd=function(b){var c=0,d=b.length;while(--d>=0)c+=b[d]*b[d];return c},a.sumsqerr=function(c){var d=a.mean(c),e=0,f=c.length,g;while(--f>=0)g=c[f]-d,e+=g*g;return e},a.sumrow=function(b){var c=0,d=b.length;while(--d>=0)c+=b[d];return c},a.product=function(b){var c=1,d=b.length;while(--d>=0)c*=b[d];return c},a.min=function(b){var c=b[0],d=0;while(++dc&&(c=b[d]);return c},a.unique=function(b){var c={},d=[];for(var e=0;eg?(i=[e[j]],g=f,h=0):f===g&&(i.push(e[j]),h++),f=1);return h===0?i[0]:i},a.range=function(c){return a.max(c)-a.min(c)},a.variance=function(c,d){return a.sumsqerr(c)/(c.length-(d?1:0))},a.pooledvariance=function(c){var d=c.reduce(function(b,c){return b+a.sumsqerr(c)},0),e=c.reduce(function(a,b){return a+b.length},0);return d/(e-c.length)},a.deviation=function(b){var c=a.mean(b),d=b.length,e=new Array(d);for(var f=0;f=0;g--)f.push(b.abs(d[g]-e));return a.mean(f)},a.meddev=function(d){var e=a.median(d),f=[];for(var g=d.length-1;g>=0;g--)f.push(b.abs(d[g]-e));return a.median(f)},a.coeffvar=function(c){return a.stdev(c)/a.mean(c)},a.quartiles=function(c){var e=c.length,f=c.slice().sort(d);return[f[b.round(e/4)-1],f[b.round(e/2)-1],f[b.round(e*3/4)-1]]},a.quantiles=function(c,f,g,h){var i=c.slice().sort(d),j=[f.length],k=c.length,l,m,n,o,p,q;typeof g=="undefined"&&(g=3/8),typeof h=="undefined"&&(h=3/8);for(var l=0;l1){i=d===!0?this:this.transpose();for(;h1){b!=="sumrow"&&(i=d===!0?this:this.transpose());for(;h1){g=g.transpose();for(;ej)for(var k=0;k=1?d:1/d)*8.5+d*.4+17),p,q;if(e<0||d<=0)return NaN;if(e170||e>170?b.exp(a.combinationln(d,e)):a.factorial(d)/a.factorial(e)/a.factorial(d-e)},a.combinationln=function(c,d){return a.factorialln(c)-a.factorialln(d)-a.factorialln(c-d)},a.permutation=function(c,d){return a.factorial(c)/a.factorial(c-d)},a.betafn=function(d,e){return d<=0||e<=0?undefined:d+e>170?b.exp(a.betaln(d,e)):a.gammafn(d)*a.gammafn(e)/a.gammafn(d+e)},a.betaln=function(c,d){return a.gammaln(c)+a.gammaln(d)-a.gammaln(c+d)},a.betacf=function(c,d,e){var f=1e-30,g=1,h=d+e,i=d+1,j=d-1,k=1,l=1-h*c/i,m,n,o,p;b.abs(l)=1)return b.max(100,e+100*b.sqrt(e));if(d<=0)return 0;e>1?(o=b.log(g),p=b.exp(g*(o-1)-i),n=d<.5?d:1-d,l=b.sqrt(-2*b.log(n)),j=(2.30753+l*.27061)/(1+l*(.99229+l*.04481))-l,d<.5&&(j=-j),j=b.max(.001,e*b.pow(1-1/(9*e)-j/(3*b.sqrt(e)),3))):(l=1-e*(.253+e*.12),d1?l=p*b.exp(-(j-g)+g*(b.log(j)-o)):l=b.exp(-j+g*b.log(j)-i),m=k/l,j-=l=m/(1-.5*b.min(1,m*((e-1)/j-1))),j<=0&&(j=.5*(j+l));if(b.abs(l)0;e--)k=g,g=j*g-h+d[e],h=k;return l=i*b.exp(-c*c+.5*(d[0]+j*g)-h),f?l-1:1-l},a.erfc=function(c){return 1-a.erf(c)},a.erfcinv=function(d){var e=0,f,g,h,i;if(d>=2)return-100;if(d<=0)return 100;i=d<1?d:2-d,h=b.sqrt(-2*b.log(i/2)),f=-0.70711*((2.30753+h*.27061)/(1+h*(.99229+h*.04481))-h);for(;e<2;e++)g=a.erfc(f)-i,f+=g/(1.1283791670955126*b.exp(-f*f)-f*g);return d<1?f:-f},a.ibetainv=function(d,e,f){var g=1e-8,h=e-1,i=f-1,j=0,k,l,m,n,o,p,q,r,s,t,u;if(d<=0)return 0;if(d>=1)return 1;e>=1&&f>=1?(m=d<.5?d:1-d,n=b.sqrt(-2*b.log(m)),q=(2.30753+n*.27061)/(1+n*(.99229+n*.04481))-n,d<.5&&(q=-q),r=(q*q-3)/6,s=2/(1/(2*e-1)+1/(2*f-1)),t=q*b.sqrt(r+s)/s-(1/(2*f-1)-1/(2*e-1))*(r+5/6-2/(3*s)),q=e/(e+f*b.exp(2*t))):(k=b.log(e/(e+f)),l=b.log(f/(e+f)),n=b.exp(e*k)/e,o=b.exp(f*l)/f,t=n+o,d=1&&(q=.5*(q+n+1));if(b.abs(n)0)break}return q},a.ibeta=function(d,e,f){var g=d===0||d===1?0:b.exp(a.gammaln(e+f)-a.gammaln(e)-a.gammaln(f)+e*b.log(d)+f*b.log(1-d));return d<0||d>1?!1:d<(e+1)/(e+f+2)?g*a.betacf(d,e,f)/e:1-g*a.betacf(1-d,f,e)/f},a.randn=function(d,e){var f,g,h,i,j,k;e||(e=d);if(d)return a.create(d,e,function(){return a.randn()});do f=b.random(),g=1.7156*(b.random()-.5),h=f-.449871,i=b.abs(g)+.386595,j=h*h+i*(.196*i-.25472*h);while(j>.27597&&(j>.27846||g*g>-4*b.log(f)*f*f));return g/f},a.randg=function(d,e,f){var g=d,h,i,j,k,l,m;f||(f=e),d||(d=1);if(e)return m=a.zeros(e,f),m.alter(function(){return a.randg(d)}),m;d<1&&(d+=1),h=d-1/3,i=1/b.sqrt(9*h);do{do l=a.randn(),k=1+i*l;while(k<=0);k=k*k*k,j=b.random()}while(j>1-.331*b.pow(l,4)&&b.log(j)>.5*l*l+h*(1-k+b.log(k)));if(d==g)return h*k;do j=b.random();while(j===0);return b.pow(j,1/g)*h*k},function(b){for(var c=0;c=k)return 1;var r=2*a.normal.cdf(q,0,1,1,0)-1;r>=b.exp(i/e)?r=b.pow(r,e):r=0;var s;c>l?s=m:s=n;var t=q,u=(k-q)/s,v=t+u,w=0,x=e-1;for(var y=1;y<=s;y++){var z=0,A=.5*(v+t),B=.5*(v-t);for(var C=1;C<=f;C++){var D,E;gj)break;var I=2*a.normal.cdf(G,0,1,1,0),J=2*a.normal.cdf(G,c,1,1,0),K=I*.5-J*.5;K>=b.exp(h/x)&&(K=p[D-1]*b.exp(-(.5*H))*b.pow(K,x),z+=K)}z*=2*B*e/b.sqrt(2*b.PI),w+=z,t=v,v+=u}return r+=w,r<=b.exp(h/d)?0:(r=b.pow(r,d),r>=1?1:r)}function e(a,c,d){var e=.322232421088,f=.099348462606,g=-1,h=.588581570495,i=-0.342242088547,j=.531103462366,k=-0.204231210125,l=.10353775285,m=-0.0000453642210148,n=.0038560700634,o=.8832,p=.2368,q=1.214,r=1.208,s=1.4142,t=120,u=.5-.5*a,v=b.sqrt(b.log(1/(u*u))),w=v+((((v*m+k)*v+i)*v+g)*v+e)/((((v*n+l)*v+j)*v+h)*v+f);d1||d<0?0:e==1&&f==1?1:e<512&&f<512?b.pow(d,e-1)*b.pow(1-d,f-1)/a.betafn(e,f):b.exp((e-1)*b.log(d)+(f-1)*b.log(1-d)-a.betaln(e,f))},cdf:function(c,d,e){return c>1||c<0?(c>1)*1:a.ibeta(c,d,e)},inv:function(c,d,e){return a.ibetainv(c,d,e)},mean:function(b,c){return b/(b+c)},median:function(c,d){return a.ibetainv(.5,c,d)},mode:function(b,c){return(b-1)/(b+c-2)},sample:function(c,d){var e=a.randg(c);return e/(e+a.randg(d))},variance:function(c,d){return c*d/(b.pow(c+d,2)*(c+d+1))}}),a.extend(a.centralF,{pdf:function(d,e,f){var g,h,i;return d<0?0:e<=2?d===0&&e<2?Infinity:d===0&&e===2?1:1/a.betafn(e/2,f/2)*b.pow(e/f,e/2)*b.pow(d,e/2-1)*b.pow(1+e/f*d,-(e+f)/2):(g=e*d/(f+d*e),h=f/(f+d*e),i=e*h/2,i*a.binomial.pdf((e-2)/2,(e+f-2)/2,g))},cdf:function(c,d,e){return c<0?0:a.ibeta(d*c/(d*c+e),d/2,e/2)},inv:function(c,d,e){return e/(d*(1/a.ibetainv(c,d/2,e/2)-1))},mean:function(b,c){return c>2?c/(c-2):undefined},mode:function(b,c){return b>2?c*(b-2)/(b*(c+2)):undefined},sample:function(c,d){var e=a.randg(c/2)*2,f=a.randg(d/2)*2;return e/c/(f/d)},variance:function(b,c){return c<=4?undefined:2*c*c*(b+c-2)/(b*(c-2)*(c-2)*(c-4))}}),a.extend(a.cauchy,{pdf:function(c,d,e){return e<0?0:e/(b.pow(c-d,2)+b.pow(e,2))/b.PI},cdf:function(c,d,e){return b.atan((c-d)/e)/b.PI+.5},inv:function(a,c,d){return c+d*b.tan(b.PI*(a-.5))},median:function(b,c){return b},mode:function(b,c){return b},sample:function(d,e){return a.randn()*b.sqrt(1/(2*a.randg(.5)))*e+d}}),a.extend(a.chisquare,{pdf:function(d,e){return d<0?0:d===0&&e===2?.5:b.exp((e/2-1)*b.log(d)-d/2-e/2*b.log(2)-a.gammaln(e/2))},cdf:function(c,d){return c<0?0:a.lowRegGamma(d/2,c/2)},inv:function(b,c){return 2*a.gammapinv(b,.5*c)},mean:function(a){return a},median:function(c){return c*b.pow(1-2/(9*c),3)},mode:function(b){return b-2>0?b-2:0},sample:function(c){return a.randg(c/2)*2},variance:function(b){return 2*b}}),a.extend(a.exponential,{pdf:function(c,d){return c<0?0:d*b.exp(-d*c)},cdf:function(c,d){return c<0?0:1-b.exp(-d*c)},inv:function(a,c){return-b.log(1-a)/c},mean:function(a){return 1/a},median:function(a){return 1/a*b.log(2)},mode:function(b){return 0},sample:function(c){return-1/c*b.log(b.random())},variance:function(a){return b.pow(a,-2)}}),a.extend(a.gamma,{pdf:function(d,e,f){return d<0?0:d===0&&e===1?1/f:b.exp((e-1)*b.log(d)-d/f-a.gammaln(e)-e*b.log(f))},cdf:function(c,d,e){return c<0?0:a.lowRegGamma(d,c/e)},inv:function(b,c,d){return a.gammapinv(b,c)*d},mean:function(a,b){return a*b},mode:function(b,c){return b>1?(b-1)*c:undefined},sample:function(c,d){return a.randg(c)*d},variance:function(b,c){return b*c*c}}),a.extend(a.invgamma,{pdf:function(d,e,f){return d<=0?0:b.exp(-(e+1)*b.log(d)-f/d-a.gammaln(e)+e*b.log(f))},cdf:function(c,d,e){return c<=0?0:1-a.lowRegGamma(d,e/c)},inv:function(b,c,d){return d/a.gammapinv(1-b,c)},mean:function(a,b){return a>1?b/(a-1):undefined},mode:function(b,c){return c/(b+1)},sample:function(c,d){return d/a.randg(c)},variance:function(b,c){return b<=2?undefined:c*c/((b-1)*(b-1)*(b-2))}}),a.extend(a.kumaraswamy,{pdf:function(c,d,e){return c===0&&d===1?e:c===1&&e===1?d:b.exp(b.log(d)+b.log(e)+(d-1)*b.log(c)+(e-1)*b.log(1-b.pow(c,d)))},cdf:function(c,d,e){return c<0?0:c>1?1:1-b.pow(1-b.pow(c,d),e)},inv:function(c,d,e){return b.pow(1-b.pow(1-c,1/e),1/d)},mean:function(b,c){return c*a.gammafn(1+1/b)*a.gammafn(c)/a.gammafn(1+1/b+c)},median:function(c,d){return b.pow(1-b.pow(2,-1/d),1/c)},mode:function(c,d){return c>=1&&d>=1&&c!==1&&d!==1?b.pow((c-1)/(c*d-1),1/c):undefined},variance:function(b,c){throw new Error("variance not yet implemented")}}),a.extend(a.lognormal,{pdf:function(c,d,e){return c<=0?0:b.exp(-b.log(c)-.5*b.log(2*b.PI)-b.log(e)-b.pow(b.log(c)-d,2)/(2*e*e))},cdf:function(d,e,f){return d<0?0:.5+.5*a.erf((b.log(d)-e)/b.sqrt(2*f*f))},inv:function(c,d,e){return b.exp(-1.4142135623730951*e*a.erfcinv(2*c)+d)},mean:function(c,d){return b.exp(c+d*d/2)},median:function(c,d){return b.exp(c)},mode:function(c,d){return b.exp(c-d*d)},sample:function(d,e){return b.exp(a.randn()*e+d)},variance:function(c,d){return(b.exp(d*d)-1)*b.exp(2*c+d*d)}}),a.extend(a.noncentralt,{pdf:function(d,e,f){var g=1e-14;return b.abs(f)g||k>g)l=k,n>0&&(o*=f*f/(2*n),p*=f*f/(2*(n+.5))),k=o*a.beta.cdf(m,n+.5,e/2)+p*a.beta.cdf(m,n+1,e/2),j+=.5*k,n++;return i?1-j:j}}),a.extend(a.normal,{pdf:function(c,d,e){return b.exp(-0.5*b.log(2*b.PI)-b.log(e)-b.pow(c-d,2)/(2*e*e))},cdf:function(d,e,f){return.5*(1+a.erf((d-e)/b.sqrt(2*f*f)))},inv:function(b,c,d){return-1.4142135623730951*d*a.erfcinv(2*b)+c},mean:function(a,b){return a},median:function(b,c){return b},mode:function(a,b){return a},sample:function(c,d){return a.randn()*d+c},variance:function(a,b){return b*b}}),a.extend(a.pareto,{pdf:function(c,d,e){return c1e+100?1e+100:e,1/(b.sqrt(e)*a.betafn(.5,e/2))*b.pow(1+d*d/e,-((e+1)/2))},cdf:function(d,e){var f=e/2;return a.ibeta((d+b.sqrt(d*d+e))/(2*b.sqrt(d*d+e)),f,f)},inv:function(c,d){var e=a.ibetainv(2*b.min(c,1-c),.5*d,.5);return e=b.sqrt(d*(1-e)/e),c>.5?e:-e},mean:function(b){return b>1?0:undefined},median:function(b){return 0},mode:function(b){return 0},sample:function(d){return a.randn()*b.sqrt(d/(2*a.randg(d/2)))},variance:function(b){return b>2?b/(b-2):b>1?Infinity:undefined}}),a.extend(a.weibull,{pdf:function(c,d,e){return c<0||d<0||e<0?0:e/d*b.pow(c/d,e-1)*b.exp(-b.pow(c/d,e))},cdf:function(c,d,e){return c<0?0:1-b.exp(-b.pow(c/d,e))},inv:function(a,c,d){return c*b.pow(-b.log(1-a),1/d)},mean:function(b,c){return b*a.gammafn(1+1/c)},median:function(c,d){return c*b.pow(b.log(2),1/d)},mode:function(c,d){return d<=1?0:c*b.pow((d-1)/d,1/d)},sample:function(c,d){return c*b.pow(-b.log(b.random()),1/d)},variance:function(d,e){return d*d*a.gammafn(1+2/e)-b.pow(a.weibull.mean(d,e),2)}}),a.extend(a.uniform,{pdf:function(b,c,d){return bd?0:1/(d-c)},cdf:function(b,c,d){return b>>0?!1:d<0?0:a.combination(d+e-1,e-1)*b.pow(1-f,d)*b.pow(f,e)},cdf:function(c,d,e){var f=0,g=0;if(c<0)return 0;for(;g<=c;g++)f+=a.negbin.pdf(g,d,e);return f}}),a.extend(a.hypgeom,{pdf:function(d,e,f,g){if(d!==d|0)return!1;if(d<0||dg||d>f)return 0;if(f*2>e)return g*2>e?a.hypgeom.pdf(e-f-g+d,e,e-f,e-g):a.hypgeom.pdf(g-d,e,e-f,g);if(g*2>e)return a.hypgeom.pdf(f-d,e,f,e-g);if(f1&&i=g||d>=f)return 1;if(f*2>e)return g*2>e?a.hypgeom.cdf(e-f-g+d,e,e-f,e-g):1-a.hypgeom.cdf(g-d-1,e,e-f,g);if(g*2>e)return 1-a.hypgeom.cdf(f-d-1,e,f,e-g);if(f1&&jf);return e-1}}),a.extend(a.triangular,{pdf:function(b,c,d,e){return d<=c||ed?NaN:bd?0:be?NaN:c<=d?0:c>=e?1:c<=f?b.pow(c-d,2)/((e-d)*(f-d)):1-b.pow(e-c,2)/((e-d)*(e-f))},inv:function(c,d,e,f){return e<=d||fe?NaN:c<=(f-d)/(e-d)?d+(e-d)*b.sqrt(c*((f-d)/(e-d))):d+(e-d)*(1-b.sqrt((1-c)*(1-(f-d)/(e-d))))},mean:function(b,c,d){return(b+c+d)/3},median:function(c,d,e){if(e<=(c+d)/2)return d-b.sqrt((d-c)*(d-e))/b.sqrt(2);if(e>(c+d)/2)return c+b.sqrt((d-c)*(e-c))/b.sqrt(2)},mode:function(b,c,d){return d},sample:function(c,d,e){var f=b.random();return f<(e-c)/(d-c)?c+b.sqrt(f*(d-c)*(e-c)):d-b.sqrt((1-f)*(d-c)*(d-e))},variance:function(b,c,d){return(b*b+c*c+d*d-b*c-b*d-c*d)/18}}),a.extend(a.arcsine,{pdf:function(c,d,e){return e<=d?NaN:c<=d||c>=e?0:2/b.PI*b.pow(b.pow(e-d,2)-b.pow(2*c-d-e,2),-0.5)},cdf:function(c,d,e){return cq)return d(e,h,i);var x=g*.5,y=x*b.log(g)-g*b.log(2)-a.gammaln(x),z=x-1,A=g*.25,B;g<=n?B=r:g<=o?B=s:g<=p?B=t:B=u,y+=b.log(B);var C=0;for(var D=1;D<=50;D++){var E=0,F=(2*D-1)*B;for(var G=1;G<=j;G++){var H,I;k=l){k=1&&E<=m)break;C+=E}if(E>m)throw new Error("tukey.cdf failed to converge");return C>1&&(C=1),C},inv:function(c,d,f){var g=1,h=d,i=1e-4,j=50;if(f<2||g<1||h<2)return NaN;if(c<0||c>1)return NaN;if(c===0)return 0;if(c===1)return Infinity;var k=e(c,h,f),l=a.tukey.cdf(k,d,f)-c,m;l>0?m=b.max(0,k-1):m=k+1;var n=a.tukey.cdf(m,d,f)-c,o;for(var p=1;p=0;f--){k=0;for(g=f+1;g<=h-1;g++)k+=l[g]*d[f][g];l[f]=(d[f][m-1]-k)/d[f][f]}return l},gauss_jordan:function(d,e){var f=a.aug(d,e),g=f.length,h=f[0].length,i=0;for(var j=0;jb.abs(f[k][j])&&(k=l);var m=f[j];f[j]=f[k],f[k]=m;for(var l=j+1;l=0;j--){i=f[j][j];for(var l=0;lj-1;n--)f[l][n]-=f[j][n]*f[l][j]/i;f[j][j]/=i;for(var n=g;ni?(k[h][i]=d[h][i],l[h][i]=m[h][i]=0):hg)n=q,q=a.add(a.multiply(p,n),o),h++;return q},gauss_seidel:function(d,e,f,g){var h=0,i=d.length,j=[],k=[],l=[],m,n,o,p,q;for(;hm?(j[h][m]=d[h][m],k[h][m]=l[h][m]=0):hg)n=q,q=a.add(a.multiply(p,n),o),h+=1;return q},SOR:function(d,e,f,g,h){var i=0,j=d.length,k=[],l=[],m=[],n,o,p,q,r;for(;in?(k[i][n]=d[i][n],l[i][n]=m[i][n]=0):ig)o=r,r=a.add(a.multiply(q,o),p),i++;return r},householder:function(d){var e=d.length,f=d[0].length,g=0,h=[],i=[],j,k,l,m,n;for(;g0?-1:1,j=n*b.sqrt(j),k=b.sqrt((j*j-d[g+1][g]*j)/2),h=a.zeros(e,1),h[g+1][0]=(d[g+1][g]-j)/(2*k);for(l=g+2;l0?b.PI/4:-b.PI/4:p=b.atan(2*d[m][n]/(d[m][m]-d[n][n]))/2,q=a.identity(g,g),q[m][m]=b.cos(p),q[m][n]=-b.sin(p),q[n][m]=b.sin(p),q[n][n]=b.cos(p),h=a.multiply(h,q),j=a.multiply(a.multiply(a.inv(q),d),q),d=j,e=0;for(var k=1;k.001&&(e=1)}for(var k=0;k=i)m=g(c,e+f),n=g(c,e),k[j]=(d[m]-2*d[n]+d[2*n-m])/(f*f),f/=2,j++;p=k.length,o=1;while(p!=1){for(q=0;qe)break;return h-=1,d[h]+(e-c[h])*n[h]+a.sq(e-c[h])*l[h]+(e-c[h])*a.sq(e-c[h])*o[h]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(c){var d=c.length,e=c[0].length,f=!1,g=0,h,i,j=[],k=[],l=[],m=[],n=[],o=[],p=[],q=[],r=[],s=[];for(var g=0;g1||d>1||a<=0||d<=0)throw new Error("Proportions should be greater than 0 and less than 1");var f=(a*c+d*e)/(c+e),g=b.sqrt(f*(1-f)*(1/c+1/e));return(a-d)/g}var c=[].slice,d=a.utils.isNumber,e=a.utils.isArray;a.extend({zscore:function(){var e=c.call(arguments);return d(e[1])?(e[0]-e[1])/e[2]:(e[0]-a.mean(e[1]))/a.stdev(e[1],e[2])},ztest:function(){var f=c.call(arguments),g;return e(f[1])?(g=a.zscore(f[0],f[1],f[3]),f[2]===1?a.normal.cdf(-b.abs(g),0,1):a.normal.cdf(-b.abs(g),0,1)*2):f.length>2?(g=a.zscore(f[0],f[1],f[2]),f[3]===1?a.normal.cdf(-b.abs(g),0,1):a.normal.cdf(-b.abs(g),0,1)*2):(g=f[0],f[1]===1?a.normal.cdf(-b.abs(g),0,1):a.normal.cdf(-b.abs(g),0,1)*2)}}),a.extend(a.fn,{zscore:function(b,c){return(b-this.mean())/this.stdev(c)},ztest:function(d,e,f){var g=b.abs(this.zscore(d,f));return e===1?a.normal.cdf(-g,0,1):a.normal.cdf(-g,0,1)*2}}),a.extend({tscore:function(){var e=c.call(arguments);return e.length===4?(e[0]-e[1])/(e[2]/b.sqrt(e[3])):(e[0]-a.mean(e[1]))/(a.stdev(e[1],!0)/b.sqrt(e[1].length))},ttest:function(){var f=c.call(arguments),g;return f.length===5?(g=b.abs(a.tscore(f[0],f[1],f[2],f[3])),f[4]===1?a.studentt.cdf(-g,f[3]-1):a.studentt.cdf(-g,f[3]-1)*2):d(f[1])?(g=b.abs(f[0]),f[2]==1?a.studentt.cdf(-g,f[1]-1):a.studentt.cdf(-g,f[1]-1)*2):(g=b.abs(a.tscore(f[0],f[1])),f[2]==1?a.studentt.cdf(-g,f[1].length-1):a.studentt.cdf(-g,f[1].length-1)*2)}}),a.extend(a.fn,{tscore:function(c){return(c-this.mean())/(this.stdev(!0)/b.sqrt(this.cols()))},ttest:function(d,e){return e===1?1-a.studentt.cdf(b.abs(this.tscore(d)),this.cols()-1):a.studentt.cdf(-b.abs(this.tscore(d)),this.cols()-1)*2}}),a.extend({anovafscore:function(){var e=c.call(arguments),f,g,h,i,j,k,l,m;if(e.length===1){j=new Array(e[0].length);for(var l=0;l.5?1-d:d)*2}),i=a.studentt.inv(.975,c.df_resid),j=c.coef.map(function(a,b){var c=i*f[b];return[a-c,a+c]});return{se:f,t:g,p:h,sigmaHat:e,interval95:j}}function e(b){var c=b.R2/b.df_model/((1-b.R2)/b.df_resid),d=function(b,c,d){return a.beta.cdf(b/(d/c+b),c/2,d/2)},e=1-d(c,b.df_model,b.df_resid);return{F_statistic:c,pvalue:e}}function f(a,b){var f=c(a,b),g=d(f),h=e(f),i=1-(1-f.R2)*((f.nobs-1)/f.df_resid);return f.t=g,f.f=h,f.adjust_R2=i,f}return{ols:f}}(),a.jStat=a,a});