@decidables/detectable-math
Version:
detectable-math: Equations for calculating Signal Detection Theory
1 lines • 53.2 kB
JavaScript
function n(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var r={exports:{}};r.exports=function(){var n=function(n,r){var t=Array.prototype.concat,e=Array.prototype.slice,o=Object.prototype.toString;function a(r,t){var e=r>t?r:t;return n.pow(10,17-~~(n.log(e>0?e:-e)*n.LOG10E))}var u=Array.isArray||function(n){return"[object Array]"===o.call(n)};function i(n){return"[object Function]"===o.call(n)}function f(n){return"number"==typeof n&&n-n===0}function c(n){return t.apply([],n)}function l(){return new l._init(arguments)}function s(){return 0}function m(){return 1}function p(n,r){return n===r?1:0}l.fn=l.prototype,l._init=function(n){if(u(n[0]))if(u(n[0][0])){i(n[1])&&(n[0]=l.map(n[0],n[1]));for(var r=0;r<n[0].length;r++)this[r]=n[0][r];this.length=n[0].length}else this[0]=i(n[1])?l.map(n[0],n[1]):n[0],this.length=1;else if(f(n[0]))this[0]=l.seq.apply(null,n),this.length=1;else{if(n[0]instanceof l)return l(n[0].toArray());this[0]=[],this.length=1}return this},l._init.prototype=l.prototype,l._init.constructor=l,l.utils={calcRdx:a,isArray:u,isFunction:i,isNumber:f,toVector:c},l._random_fn=n.random,l.setRandom=function(n){if("function"!=typeof n)throw new TypeError("fn is not a function");l._random_fn=n},l.extend=function(n){var r,t;if(1===arguments.length){for(t in n)l[t]=n[t];return this}for(r=1;r<arguments.length;r++)for(t in arguments[r])n[t]=arguments[r][t];return n},l.rows=function(n){return n.length||1},l.cols=function(n){return n[0].length||1},l.dimensions=function(n){return{rows:l.rows(n),cols:l.cols(n)}},l.row=function(n,r){return u(r)?r.map(function(r){return l.row(n,r)}):n[r]},l.rowa=function(n,r){return l.row(n,r)},l.col=function(n,r){if(u(r)){var t=l.arange(n.length).map(function(){return new Array(r.length)});return r.forEach(function(r,e){l.arange(n.length).forEach(function(o){t[o][e]=n[o][r]})}),t}for(var e=new Array(n.length),o=0;o<n.length;o++)e[o]=[n[o][r]];return e},l.cola=function(n,r){return l.col(n,r).map(function(n){return n[0]})},l.diag=function(n){for(var r=l.rows(n),t=new Array(r),e=0;e<r;e++)t[e]=[n[e][e]];return t},l.antidiag=function(n){for(var r=l.rows(n)-1,t=new Array(r),e=0;r>=0;r--,e++)t[e]=[n[e][r]];return t},l.transpose=function(n){var r,t,e,o,a,i=[];for(u(n[0])||(n=[n]),t=n.length,e=n[0].length,a=0;a<e;a++){for(r=new Array(t),o=0;o<t;o++)r[o]=n[o][a];i.push(r)}return 1===i.length?i[0]:i},l.map=function(n,r,t){var e,o,a,i,f;for(u(n[0])||(n=[n]),o=n.length,a=n[0].length,i=t?n:new Array(o),e=0;e<o;e++)for(i[e]||(i[e]=new Array(a)),f=0;f<a;f++)i[e][f]=r(n[e][f],e,f);return 1===i.length?i[0]:i},l.cumreduce=function(n,r,t){var e,o,a,i,f;for(u(n[0])||(n=[n]),o=n.length,a=n[0].length,i=t?n:new Array(o),e=0;e<o;e++)for(i[e]||(i[e]=new Array(a)),a>0&&(i[e][0]=n[e][0]),f=1;f<a;f++)i[e][f]=r(i[e][f-1],n[e][f]);return 1===i.length?i[0]:i},l.alter=function(n,r){return l.map(n,r,!0)},l.create=function(n,r,t){var e,o,a=new Array(n);for(i(r)&&(t=r,r=n),e=0;e<n;e++)for(a[e]=new Array(r),o=0;o<r;o++)a[e][o]=t(e,o);return a},l.zeros=function(n,r){return f(r)||(r=n),l.create(n,r,s)},l.ones=function(n,r){return f(r)||(r=n),l.create(n,r,m)},l.rand=function(n,r){return f(r)||(r=n),l.create(n,r,l._random_fn)},l.identity=function(n,r){return f(r)||(r=n),l.create(n,r,p)},l.symmetric=function(n){var r,t,e=n.length;if(n.length!==n[0].length)return!1;for(r=0;r<e;r++)for(t=0;t<e;t++)if(n[t][r]!==n[r][t])return!1;return!0},l.clear=function(n){return l.alter(n,s)},l.seq=function(n,r,t,e){i(e)||(e=!1);var o,u=[],f=a(n,r),c=(r*f-n*f)/((t-1)*f),l=n;for(o=0;l<=r&&o<t;l=(n*f+c*f*++o)/f)u.push(e?e(l,o):l);return u},l.arange=function(n,t,e){var o,a=[];if(e=e||1,t===r&&(t=n,n=0),n===t||0===e)return[];if(n<t&&e<0)return[];if(n>t&&e>0)return[];if(e>0)for(o=n;o<t;o+=e)a.push(o);else for(o=n;o>t;o+=e)a.push(o);return a},l.slice=function(){function n(n,t,e,o){var a,u=[],i=n.length;if(t===r&&e===r&&o===r)return l.copy(n);if(o=o||1,(t=(t=t||0)>=0?t:i+t)===(e=(e=e||n.length)>=0?e:i+e)||0===o)return[];if(t<e&&o<0)return[];if(t>e&&o>0)return[];if(o>0)for(a=t;a<e;a+=o)u.push(n[a]);else for(a=t;a>e;a+=o)u.push(n[a]);return u}function t(r,t){var e,o;return f((t=t||{}).row)?f(t.col)?r[t.row][t.col]:n(l.rowa(r,t.row),(e=t.col||{}).start,e.end,e.step):f(t.col)?n(l.cola(r,t.col),(o=t.row||{}).start,o.end,o.step):(o=t.row||{},e=t.col||{},n(r,o.start,o.end,o.step).map(function(r){return n(r,e.start,e.end,e.step)}))}return t}(),l.sliceAssign=function(t,e,o){var a,u;if(f(e.row)){if(f(e.col))return t[e.row][e.col]=o;e.col=e.col||{},e.col.start=e.col.start||0,e.col.end=e.col.end||t[0].length,e.col.step=e.col.step||1,a=l.arange(e.col.start,n.min(t.length,e.col.end),e.col.step);var i=e.row;return a.forEach(function(n,r){t[i][n]=o[r]}),t}if(f(e.col)){e.row=e.row||{},e.row.start=e.row.start||0,e.row.end=e.row.end||t.length,e.row.step=e.row.step||1,u=l.arange(e.row.start,n.min(t[0].length,e.row.end),e.row.step);var c=e.col;return u.forEach(function(n,r){t[n][c]=o[r]}),t}return o[0].length===r&&(o=[o]),e.row.start=e.row.start||0,e.row.end=e.row.end||t.length,e.row.step=e.row.step||1,e.col.start=e.col.start||0,e.col.end=e.col.end||t[0].length,e.col.step=e.col.step||1,u=l.arange(e.row.start,n.min(t.length,e.row.end),e.row.step),a=l.arange(e.col.start,n.min(t[0].length,e.col.end),e.col.step),u.forEach(function(n,r){a.forEach(function(e,a){t[n][e]=o[r][a]})}),t},l.diagonal=function(n){var r=l.zeros(n.length,n.length);return n.forEach(function(n,t){r[t][t]=n}),r},l.copy=function(n){return n.map(function(n){return f(n)?n:n.map(function(n){return n})})};var g=l.prototype;return g.length=0,g.push=Array.prototype.push,g.sort=Array.prototype.sort,g.splice=Array.prototype.splice,g.slice=Array.prototype.slice,g.toArray=function(){return this.length>1?e.call(this):e.call(this)[0]},g.map=function(n,r){return l(l.map(this,n,r))},g.cumreduce=function(n,r){return l(l.cumreduce(this,n,r))},g.alter=function(n){return l.alter(this,n),this},function(n){for(var r=0;r<n.length;r++)(function(n){g[n]=function(r){var t,e=this;return r?(setTimeout(function(){r.call(e,g[n].call(e))}),this):(t=l[n](this),u(t)?l(t):t)}})(n[r])}("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")),function(n){for(var r=0;r<n.length;r++)(function(n){g[n]=function(r,t){var e=this;return t?(setTimeout(function(){t.call(e,g[n].call(e,r))}),this):l(l[n](this,r))}})(n[r])}("row col".split(" ")),function(n){for(var r=0;r<n.length;r++)(function(n){g[n]=function(){return l(l[n].apply(null,arguments))}})(n[r])}("create zeros ones rand identity".split(" ")),l}(Math);return function(n,r){var t=n.utils.isFunction;function e(n,r){return n-r}function o(n,t,e){return r.max(t,r.min(n,e))}n.sum=function(n){for(var r=0,t=n.length;--t>=0;)r+=n[t];return r},n.sumsqrd=function(n){for(var r=0,t=n.length;--t>=0;)r+=n[t]*n[t];return r},n.sumsqerr=function(r){for(var t,e=n.mean(r),o=0,a=r.length;--a>=0;)o+=(t=r[a]-e)*t;return o},n.sumrow=function(n){for(var r=0,t=n.length;--t>=0;)r+=n[t];return r},n.product=function(n){for(var r=1,t=n.length;--t>=0;)r*=n[t];return r},n.min=function(n){for(var r=n[0],t=0;++t<n.length;)n[t]<r&&(r=n[t]);return r},n.max=function(n){for(var r=n[0],t=0;++t<n.length;)n[t]>r&&(r=n[t]);return r},n.unique=function(n){for(var r={},t=[],e=0;e<n.length;e++)r[n[e]]||(r[n[e]]=!0,t.push(n[e]));return t},n.mean=function(r){return n.sum(r)/r.length},n.meansqerr=function(r){return n.sumsqerr(r)/r.length},n.geomean=function(t){var e=t.map(r.log),o=n.mean(e);return r.exp(o)},n.median=function(n){var r=n.length,t=n.slice().sort(e);return 1&r?t[r/2|0]:(t[r/2-1]+t[r/2])/2},n.cumsum=function(r){return n.cumreduce(r,function(n,r){return n+r})},n.cumprod=function(r){return n.cumreduce(r,function(n,r){return n*r})},n.diff=function(n){var r,t=[],e=n.length;for(r=1;r<e;r++)t.push(n[r]-n[r-1]);return t},n.rank=function(n){var r,t=[],o={};for(r=0;r<n.length;r++)o[f=n[r]]?o[f]++:(o[f]=1,t.push(f));var a=t.sort(e),u={},i=1;for(r=0;r<a.length;r++){var f,c=o[f=a[r]],l=(i+(i+c-1))/2;u[f]=l,i+=c}return n.map(function(n){return u[n]})},n.mode=function(n){var r,t=n.length,o=n.slice().sort(e),a=1,u=0,i=0,f=[];for(r=0;r<t;r++)o[r]===o[r+1]?a++:(a>u?(f=[o[r]],u=a,i=0):a===u&&(f.push(o[r]),i++),a=1);return 0===i?f[0]:f},n.range=function(r){return n.max(r)-n.min(r)},n.variance=function(r,t){return n.sumsqerr(r)/(r.length-(t?1:0))},n.pooledvariance=function(r){return r.reduce(function(r,t){return r+n.sumsqerr(t)},0)/(r.reduce(function(n,r){return n+r.length},0)-r.length)},n.deviation=function(r){for(var t=n.mean(r),e=r.length,o=new Array(e),a=0;a<e;a++)o[a]=r[a]-t;return o},n.stdev=function(t,e){return r.sqrt(n.variance(t,e))},n.pooledstdev=function(t){return r.sqrt(n.pooledvariance(t))},n.meandev=function(t){for(var e=n.mean(t),o=[],a=t.length-1;a>=0;a--)o.push(r.abs(t[a]-e));return n.mean(o)},n.meddev=function(t){for(var e=n.median(t),o=[],a=t.length-1;a>=0;a--)o.push(r.abs(t[a]-e));return n.median(o)},n.coeffvar=function(r){return n.stdev(r)/n.mean(r)},n.quartiles=function(n){var t=n.length,o=n.slice().sort(e);return[o[r.round(t/4)-1],o[r.round(t/2)-1],o[r.round(3*t/4)-1]]},n.quantiles=function(n,t,a,u){var i,f,c,l,s,m=n.slice().sort(e),p=[t.length],g=n.length;for(void 0===a&&(a=3/8),void 0===u&&(u=3/8),i=0;i<t.length;i++)c=g*(f=t[i])+(a+f*(1-a-u)),l=r.floor(o(c,1,g-1)),s=o(c-l,0,1),p[i]=(1-s)*m[l-1]+s*m[l];return p},n.percentile=function(n,r,t){var o=n.slice().sort(e),a=r*(o.length+(t?1:-1))+(t?0:1),u=parseInt(a),i=a-u;return u+1<o.length?o[u-1]+i*(o[u]-o[u-1]):o[u-1]},n.percentileOfScore=function(n,r,t){var e,o,a=0,u=n.length,i=!1;for("strict"===t&&(i=!0),o=0;o<u;o++)e=n[o],(i&&e<r||!i&&e<=r)&&a++;return a/u},n.histogram=function(t,e){e=e||4;var o,a=n.min(t),u=(n.max(t)-a)/e,i=t.length,f=[];for(o=0;o<e;o++)f[o]=0;for(o=0;o<i;o++)f[r.min(r.floor((t[o]-a)/u),e-1)]+=1;return f},n.covariance=function(r,t){var e,o=n.mean(r),a=n.mean(t),u=r.length,i=new Array(u);for(e=0;e<u;e++)i[e]=(r[e]-o)*(t[e]-a);return n.sum(i)/(u-1)},n.corrcoeff=function(r,t){return n.covariance(r,t)/n.stdev(r,1)/n.stdev(t,1)},n.spearmancoeff=function(r,t){return r=n.rank(r),t=n.rank(t),n.corrcoeff(r,t)},n.stanMoment=function(t,e){for(var o=n.mean(t),a=n.stdev(t),u=t.length,i=0,f=0;f<u;f++)i+=r.pow((t[f]-o)/a,e);return i/t.length},n.skewness=function(r){return n.stanMoment(r,3)},n.kurtosis=function(r){return n.stanMoment(r,4)-3};var a=n.prototype;!function(r){for(var e=0;e<r.length;e++)(function(r){a[r]=function(e,o){var u=[],i=0,f=this;if(t(e)&&(o=e,e=!1),o)return setTimeout(function(){o.call(f,a[r].call(f,e))}),this;if(this.length>1){for(f=!0===e?this:this.transpose();i<f.length;i++)u[i]=n[r](f[i]);return u}return n[r](this[0],e)}})(r[e])}("cumsum cumprod".split(" ")),function(r){for(var e=0;e<r.length;e++)(function(r){a[r]=function(e,o){var u=[],i=0,f=this;if(t(e)&&(o=e,e=!1),o)return setTimeout(function(){o.call(f,a[r].call(f,e))}),this;if(this.length>1){for("sumrow"!==r&&(f=!0===e?this:this.transpose());i<f.length;i++)u[i]=n[r](f[i]);return!0===e?n[r](n.utils.toVector(u)):u}return n[r](this[0],e)}})(r[e])}("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")),function(r){for(var e=0;e<r.length;e++)(function(r){a[r]=function(){var e,o=[],u=0,i=this,f=Array.prototype.slice.call(arguments);if(t(f[f.length-1])){e=f[f.length-1];var c=f.slice(0,f.length-1);return setTimeout(function(){e.call(i,a[r].apply(i,c))}),this}e=void 0;var l=function(t){return n[r].apply(i,[t].concat(f))};if(this.length>1){for(i=i.transpose();u<i.length;u++)o[u]=l(i[u]);return o}return l(this[0])}})(r[e])}("quantiles percentileOfScore".split(" "))}(n,Math),function(n,r){n.gammaln=function(n){var t,e,o,a=0,u=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18],i=1.000000000190015;for(o=(e=t=n)+5.5,o-=(t+.5)*r.log(o);a<6;a++)i+=u[a]/++e;return r.log(2.5066282746310007*i/t)-o},n.loggam=function(n){var t,e,o,a,u,i,f,c=[.08333333333333333,-.002777777777777778,.0007936507936507937,-.0005952380952380952,.0008417508417508418,-.001917526917526918,.00641025641025641,-.02955065359477124,.1796443723688307,-1.3924322169059];if(t=n,f=0,1==n||2==n)return 0;for(n<=7&&(t=n+(f=r.floor(7-n))),e=1/(t*t),o=2*r.PI,u=c[9],i=8;i>=0;i--)u*=e,u+=c[i];if(a=u/t+.5*r.log(o)+(t-.5)*r.log(t)-t,n<=7)for(i=1;i<=f;i++)a-=r.log(t-1),t-=1;return a},n.gammafn=function(n){var t,e,o,a,u=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],i=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],f=!1,c=0,l=0,s=0,m=n;if(n>171.6243769536076)return 1/0;if(m<=0){if(!(a=m%1+36e-17))return 1/0;f=(1&m?-1:1)*r.PI/r.sin(r.PI*a),m=1-m}for(o=m,e=m<1?m++:(m-=c=(0|m)-1)-1,t=0;t<8;++t)s=(s+u[t])*e,l=l*e+i[t];if(a=s/l+1,o<m)a/=o;else if(o>m)for(t=0;t<c;++t)a*=m,m++;return f&&(a=f/a),a},n.gammap=function(r,t){return n.lowRegGamma(r,t)*n.gammafn(r)},n.lowRegGamma=function(t,e){var o,a=n.gammaln(t),u=t,i=1/t,f=i,c=e+1-t,l=1/1e-30,s=1/c,m=s,p=1,g=-~(8.5*r.log(t>=1?t:1/t)+.4*t+17);if(e<0||t<=0)return NaN;if(e<t+1){for(;p<=g;p++)i+=f*=e/++u;return i*r.exp(-e+t*r.log(e)-a)}for(;p<=g;p++)m*=(s=1/(s=(o=-p*(p-t))*s+(c+=2)))*(l=c+o/l);return 1-m*r.exp(-e+t*r.log(e)-a)},n.factorialln=function(r){return r<0?NaN:n.gammaln(r+1)},n.factorial=function(r){return r<0?NaN:n.gammafn(r+1)},n.combination=function(t,e){return t>170||e>170?r.exp(n.combinationln(t,e)):n.factorial(t)/n.factorial(e)/n.factorial(t-e)},n.combinationln=function(r,t){return n.factorialln(r)-n.factorialln(t)-n.factorialln(r-t)},n.permutation=function(r,t){return n.factorial(r)/n.factorial(r-t)},n.betafn=function(t,e){if(!(t<=0||e<=0))return t+e>170?r.exp(n.betaln(t,e)):n.gammafn(t)*n.gammafn(e)/n.gammafn(t+e)},n.betaln=function(r,t){return n.gammaln(r)+n.gammaln(t)-n.gammaln(r+t)},n.betacf=function(n,t,e){var o,a,u,i,f=1e-30,c=1,l=t+e,s=t+1,m=t-1,p=1,g=1-l*n/s;for(r.abs(g)<f&&(g=f),i=g=1/g;c<=100&&(g=1+(a=c*(e-c)*n/((m+(o=2*c))*(t+o)))*g,r.abs(g)<f&&(g=f),p=1+a/p,r.abs(p)<f&&(p=f),i*=(g=1/g)*p,g=1+(a=-(t+c)*(l+c)*n/((t+o)*(s+o)))*g,r.abs(g)<f&&(g=f),p=1+a/p,r.abs(p)<f&&(p=f),i*=u=(g=1/g)*p,!(r.abs(u-1)<3e-7));c++);return i},n.gammapinv=function(t,e){var o,a,u,i,f,c,l=0,s=e-1,m=1e-8,p=n.gammaln(e);if(t>=1)return r.max(100,e+100*r.sqrt(e));if(t<=0)return 0;for(e>1?(f=r.log(s),c=r.exp(s*(f-1)-p),i=t<.5?t:1-t,o=(2.30753+.27061*(a=r.sqrt(-2*r.log(i))))/(1+a*(.99229+.04481*a))-a,t<.5&&(o=-o),o=r.max(.001,e*r.pow(1-1/(9*e)-o/(3*r.sqrt(e)),3))):o=t<(a=1-e*(.253+.12*e))?r.pow(t/a,1/e):1-r.log(1-(t-a)/(1-a));l<12;l++){if(o<=0)return 0;if((o-=a=(u=(n.lowRegGamma(e,o)-t)/(a=e>1?c*r.exp(-(o-s)+s*(r.log(o)-f)):r.exp(-o+s*r.log(o)-p)))/(1-.5*r.min(1,u*((e-1)/o-1))))<=0&&(o=.5*(o+a)),r.abs(a)<m*o)break}return o},n.erf=function(n){var t,e,o,a,u=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18],i=u.length-1,f=!1,c=0,l=0;for(n<0&&(n=-n,f=!0),e=4*(t=2/(2+n))-2;i>0;i--)o=c,c=e*c-l+u[i],l=o;return a=t*r.exp(-n*n+.5*(u[0]+e*c)-l),f?a-1:1-a},n.erfc=function(r){return 1-n.erf(r)},n.erfcinv=function(t){var e,o,a,u,i=0;if(t>=2)return-100;if(t<=0)return 100;for(u=t<1?t:2-t,e=-.70711*((2.30753+.27061*(a=r.sqrt(-2*r.log(u/2))))/(1+a*(.99229+.04481*a))-a);i<2;i++)e+=(o=n.erfc(e)-u)/(1.1283791670955126*r.exp(-e*e)-e*o);return t<1?e:-e},n.ibetainv=function(t,e,o){var a,u,i,f,c,l,s,m,p,g,d=1e-8,h=e-1,v=o-1,w=0;if(t<=0)return 0;if(t>=1)return 1;for(e>=1&&o>=1?(i=t<.5?t:1-t,l=(2.30753+.27061*(f=r.sqrt(-2*r.log(i))))/(1+f*(.99229+.04481*f))-f,t<.5&&(l=-l),s=(l*l-3)/6,m=2/(1/(2*e-1)+1/(2*o-1)),p=l*r.sqrt(s+m)/m-(1/(2*o-1)-1/(2*e-1))*(s+5/6-2/(3*m)),l=e/(e+o*r.exp(2*p))):(a=r.log(e/(e+o)),u=r.log(o/(e+o)),l=t<(f=r.exp(e*a)/e)/(p=f+(c=r.exp(o*u)/o))?r.pow(e*p*t,1/e):1-r.pow(o*p*(1-t),1/o)),g=-n.gammaln(e)-n.gammaln(o)+n.gammaln(e+o);w<10;w++){if(0===l||1===l)return l;if((l-=f=(c=(n.ibeta(l,e,o)-t)/(f=r.exp(h*r.log(l)+v*r.log(1-l)+g)))/(1-.5*r.min(1,c*(h/l-v/(1-l)))))<=0&&(l=.5*(l+f)),l>=1&&(l=.5*(l+f+1)),r.abs(f)<d*l&&w>0)break}return l},n.ibeta=function(t,e,o){var a=0===t||1===t?0:r.exp(n.gammaln(e+o)-n.gammaln(e)-n.gammaln(o)+e*r.log(t)+o*r.log(1-t));return!(t<0||t>1)&&(t<(e+1)/(e+o+2)?a*n.betacf(t,e,o)/e:1-a*n.betacf(1-t,o,e)/o)},n.randn=function(t,e){var o,a,u,i,f;if(e||(e=t),t)return n.create(t,e,function(){return n.randn()});do{o=n._random_fn(),a=1.7156*(n._random_fn()-.5),f=(u=o-.449871)*u+(i=r.abs(a)+.386595)*(.196*i-.25472*u)}while(f>.27597&&(f>.27846||a*a>-4*r.log(o)*o*o));return a/o},n.randg=function(t,e,o){var a,u,i,f,c,l,s=t;if(o||(o=e),t||(t=1),e)return(l=n.zeros(e,o)).alter(function(){return n.randg(t)}),l;t<1&&(t+=1),a=t-1/3,u=1/r.sqrt(9*a);do{do{f=1+u*(c=n.randn())}while(f<=0);f*=f*f,i=n._random_fn()}while(i>1-.331*r.pow(c,4)&&r.log(i)>.5*c*c+a*(1-f+r.log(f)));if(t==s)return a*f;do{i=n._random_fn()}while(0===i);return r.pow(i,1/s)*a*f},function(r){for(var t=0;t<r.length;t++)(function(r){n.fn[r]=function(){return n(n.map(this,function(t){return n[r](t)}))}})(r[t])}("gammaln gammafn factorial factorialln".split(" ")),function(r){for(var t=0;t<r.length;t++)(function(r){n.fn[r]=function(){return n(n[r].apply(null,arguments))}})(r[t])}("randn".split(" "))}(n,Math),function(n,r){function t(n,t,e,o){for(var a,u=0,i=1,f=1,c=1,l=0,s=0;r.abs((f-s)/f)>o;)s=f,i=c+(a=-(t+l)*(t+e+l)*n/(t+2*l)/(t+2*l+1))*i,f=(u=f+a*u)+(a=(l+=1)*(e-l)*n/(t+2*l-1)/(t+2*l))*f,u/=c=i+a*c,i/=c,f/=c,c=1;return f/t}function e(n){return n/r.abs(n)}function o(t,e,o){var a=12,u=6,i=-30,f=-50,c=60,l=8,s=3,m=2,p=3,g=[.9815606342467192,.9041172563704749,.7699026741943047,.5873179542866175,.3678314989981802,.1252334085114689],d=[.04717533638651183,.10693932599531843,.16007832854334622,.20316742672306592,.2334925365383548,.24914704581340277],h=.5*t;if(h>=l)return 1;var v,w=2*n.normal.cdf(h,0,1,1,0)-1;w=w>=r.exp(f/o)?r.pow(w,o):0;for(var y=h,b=(l-h)/(v=t>s?m:p),x=y+b,q=0,_=o-1,A=1;A<=v;A++){for(var M=0,N=.5*(x+y),E=.5*(x-y),P=1;P<=a;P++){var S,k=N+E*(u<P?g[(S=a-P+1)-1]:-g[(S=P)-1]),F=k*k;if(F>c)break;var z=2*n.normal.cdf(k,0,1,1,0)*.5-2*n.normal.cdf(k,t,1,1,0)*.5;z>=r.exp(i/_)&&(M+=z=d[S-1]*r.exp(-.5*F)*r.pow(z,_))}q+=M*=2*E*o/r.sqrt(2*r.PI),y=x,x+=b}return(w+=q)<=r.exp(i/e)?0:(w=r.pow(w,e))>=1?1:w}function a(n,t,e){var o=.322232421088,a=.099348462606,u=-1,i=.588581570495,f=-.342242088547,c=.531103462366,l=-.204231210125,s=.10353775285,m=-453642210148e-16,p=.0038560700634,g=.8832,d=.2368,h=1.208,v=1.4142,w=120,y=.5-.5*n,b=r.sqrt(r.log(1/(y*y))),x=b+((((b*m+l)*b+f)*b+u)*b+o)/((((b*p+s)*b+c)*b+i)*b+a);e<w&&(x+=(x*x*x+x)/e/4);var q=g-d*x;return e<w&&(q+=-1.214/e+h*x/e),x*(q*r.log(t-1)+v)}!function(r){for(var t=0;t<r.length;t++)(function(r){n[r]=function n(r,t,e){return this instanceof n?(this._a=r,this._b=t,this._c=e,this):new n(r,t,e)},n.fn[r]=function(t,e,o){var a=n[r](t,e,o);return a.data=this,a},n[r].prototype.sample=function(t){var e=this._a,o=this._b,a=this._c;return t?n.alter(t,function(){return n[r].sample(e,o,a)}):n[r].sample(e,o,a)},function(t){for(var e=0;e<t.length;e++)(function(t){n[r].prototype[t]=function(e){var o=this._a,a=this._b,u=this._c;return e||0===e||(e=this.data),"number"!=typeof e?n.fn.map.call(e,function(e){return n[r][t](e,o,a,u)}):n[r][t](e,o,a,u)}})(t[e])}("pdf cdf inv".split(" ")),function(t){for(var e=0;e<t.length;e++)(function(t){n[r].prototype[t]=function(){return n[r][t](this._a,this._b,this._c)}})(t[e])}("mean median mode variance".split(" "))})(r[t])}("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")),n.extend(n.beta,{pdf:function(t,e,o){return t>1||t<0?0:1==e&&1==o?1:e<512&&o<512?r.pow(t,e-1)*r.pow(1-t,o-1)/n.betafn(e,o):r.exp((e-1)*r.log(t)+(o-1)*r.log(1-t)-n.betaln(e,o))},cdf:function(r,t,e){return r>1||r<0?1*(r>1):n.ibeta(r,t,e)},inv:function(r,t,e){return n.ibetainv(r,t,e)},mean:function(n,r){return n/(n+r)},median:function(r,t){return n.ibetainv(.5,r,t)},mode:function(n,r){return(n-1)/(n+r-2)},sample:function(r,t){var e=n.randg(r);return e/(e+n.randg(t))},variance:function(n,t){return n*t/(r.pow(n+t,2)*(n+t+1))}}),n.extend(n.centralF,{pdf:function(t,e,o){var a;return t<0?0:e<=2?0===t&&e<2?1/0:0===t&&2===e?1:1/n.betafn(e/2,o/2)*r.pow(e/o,e/2)*r.pow(t,e/2-1)*r.pow(1+e/o*t,-(e+o)/2):(a=e*t/(o+t*e),e*(o/(o+t*e))/2*n.binomial.pdf((e-2)/2,(e+o-2)/2,a))},cdf:function(r,t,e){return r<0?0:n.ibeta(t*r/(t*r+e),t/2,e/2)},inv:function(r,t,e){return e/(t*(1/n.ibetainv(r,t/2,e/2)-1))},mean:function(n,r){return r>2?r/(r-2):void 0},mode:function(n,r){return n>2?r*(n-2)/(n*(r+2)):void 0},sample:function(r,t){return 2*n.randg(r/2)/r/(2*n.randg(t/2)/t)},variance:function(n,r){if(!(r<=4))return 2*r*r*(n+r-2)/(n*(r-2)*(r-2)*(r-4))}}),n.extend(n.cauchy,{pdf:function(n,t,e){return e<0?0:e/(r.pow(n-t,2)+r.pow(e,2))/r.PI},cdf:function(n,t,e){return r.atan((n-t)/e)/r.PI+.5},inv:function(n,t,e){return t+e*r.tan(r.PI*(n-.5))},median:function(n){return n},mode:function(n){return n},sample:function(t,e){return n.randn()*r.sqrt(1/(2*n.randg(.5)))*e+t}}),n.extend(n.chisquare,{pdf:function(t,e){return t<0?0:0===t&&2===e?.5:r.exp((e/2-1)*r.log(t)-t/2-e/2*r.log(2)-n.gammaln(e/2))},cdf:function(r,t){return r<0?0:n.lowRegGamma(t/2,r/2)},inv:function(r,t){return 2*n.gammapinv(r,.5*t)},mean:function(n){return n},median:function(n){return n*r.pow(1-2/(9*n),3)},mode:function(n){return n-2>0?n-2:0},sample:function(r){return 2*n.randg(r/2)},variance:function(n){return 2*n}}),n.extend(n.exponential,{pdf:function(n,t){return n<0?0:t*r.exp(-t*n)},cdf:function(n,t){return n<0?0:1-r.exp(-t*n)},inv:function(n,t){return-r.log(1-n)/t},mean:function(n){return 1/n},median:function(n){return 1/n*r.log(2)},mode:function(){return 0},sample:function(t){return-1/t*r.log(n._random_fn())},variance:function(n){return r.pow(n,-2)}}),n.extend(n.gamma,{pdf:function(t,e,o){return t<0?0:0===t&&1===e?1/o:r.exp((e-1)*r.log(t)-t/o-n.gammaln(e)-e*r.log(o))},cdf:function(r,t,e){return r<0?0:n.lowRegGamma(t,r/e)},inv:function(r,t,e){return n.gammapinv(r,t)*e},mean:function(n,r){return n*r},mode:function(n,r){if(n>1)return(n-1)*r},sample:function(r,t){return n.randg(r)*t},variance:function(n,r){return n*r*r}}),n.extend(n.invgamma,{pdf:function(t,e,o){return t<=0?0:r.exp(-(e+1)*r.log(t)-o/t-n.gammaln(e)+e*r.log(o))},cdf:function(r,t,e){return r<=0?0:1-n.lowRegGamma(t,e/r)},inv:function(r,t,e){return e/n.gammapinv(1-r,t)},mean:function(n,r){return n>1?r/(n-1):void 0},mode:function(n,r){return r/(n+1)},sample:function(r,t){return t/n.randg(r)},variance:function(n,r){if(!(n<=2))return r*r/((n-1)*(n-1)*(n-2))}}),n.extend(n.kumaraswamy,{pdf:function(n,t,e){return 0===n&&1===t?e:1===n&&1===e?t:r.exp(r.log(t)+r.log(e)+(t-1)*r.log(n)+(e-1)*r.log(1-r.pow(n,t)))},cdf:function(n,t,e){return n<0?0:n>1?1:1-r.pow(1-r.pow(n,t),e)},inv:function(n,t,e){return r.pow(1-r.pow(1-n,1/e),1/t)},mean:function(r,t){return t*n.gammafn(1+1/r)*n.gammafn(t)/n.gammafn(1+1/r+t)},median:function(n,t){return r.pow(1-r.pow(2,-1/t),1/n)},mode:function(n,t){if(n>=1&&t>=1&&1!==n&&1!==t)return r.pow((n-1)/(n*t-1),1/n)},variance:function(){throw new Error("variance not yet implemented")}}),n.extend(n.lognormal,{pdf:function(n,t,e){return n<=0?0:r.exp(-r.log(n)-.5*r.log(2*r.PI)-r.log(e)-r.pow(r.log(n)-t,2)/(2*e*e))},cdf:function(t,e,o){return t<0?0:.5+.5*n.erf((r.log(t)-e)/r.sqrt(2*o*o))},inv:function(t,e,o){return r.exp(-1.4142135623730951*o*n.erfcinv(2*t)+e)},mean:function(n,t){return r.exp(n+t*t/2)},median:function(n){return r.exp(n)},mode:function(n,t){return r.exp(n-t*t)},sample:function(t,e){return r.exp(n.randn()*e+t)},variance:function(n,t){return(r.exp(t*t)-1)*r.exp(2*n+t*t)}}),n.extend(n.noncentralt,{pdf:function(t,e,o){var a=1e-14;return r.abs(o)<a?n.studentt.pdf(t,e):r.abs(t)<a?r.exp(n.gammaln((e+1)/2)-o*o/2-.5*r.log(r.PI*e)-n.gammaln(e/2)):e/t*(n.noncentralt.cdf(t*r.sqrt(1+2/e),e+2,o)-n.noncentralt.cdf(t,e,o))},cdf:function(t,e,o){var a=1e-14,u=200;if(r.abs(o)<a)return n.studentt.cdf(t,e);var i=!1;t<0&&(i=!0,o=-o);for(var f=n.normal.cdf(-o,0,1),c=a+1,l=c,s=t*t/(t*t+e),m=0,p=r.exp(-o*o/2),g=r.exp(-o*o/2-.5*r.log(2)-n.gammaln(1.5))*o;m<u||l>a||c>a;)l=c,m>0&&(p*=o*o/(2*m),g*=o*o/(2*(m+.5))),f+=.5*(c=p*n.beta.cdf(s,m+.5,e/2)+g*n.beta.cdf(s,m+1,e/2)),m++;return i?1-f:f}}),n.extend(n.normal,{pdf:function(n,t,e){return r.exp(-.5*r.log(2*r.PI)-r.log(e)-r.pow(n-t,2)/(2*e*e))},cdf:function(t,e,o){return.5*(1+n.erf((t-e)/r.sqrt(2*o*o)))},inv:function(r,t,e){return-1.4142135623730951*e*n.erfcinv(2*r)+t},mean:function(n){return n},median:function(n){return n},mode:function(n){return n},sample:function(r,t){return n.randn()*t+r},variance:function(n,r){return r*r}}),n.extend(n.pareto,{pdf:function(n,t,e){return n<t?0:e*r.pow(t,e)/r.pow(n,e+1)},cdf:function(n,t,e){return n<t?0:1-r.pow(t/n,e)},inv:function(n,t,e){return t/r.pow(1-n,1/e)},mean:function(n,t){if(!(t<=1))return t*r.pow(n,t)/(t-1)},median:function(n,t){return n*(t*r.SQRT2)},mode:function(n){return n},variance:function(n,t){if(!(t<=2))return n*n*t/(r.pow(t-1,2)*(t-2))}}),n.extend(n.studentt,{pdf:function(t,e){return e=e>1e100?1e100:e,1/(r.sqrt(e)*n.betafn(.5,e/2))*r.pow(1+t*t/e,-(e+1)/2)},cdf:function(t,e){var o=e/2;return n.ibeta((t+r.sqrt(t*t+e))/(2*r.sqrt(t*t+e)),o,o)},inv:function(t,e){var o=n.ibetainv(2*r.min(t,1-t),.5*e,.5);return o=r.sqrt(e*(1-o)/o),t>.5?o:-o},mean:function(n){return n>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(t){return n.randn()*r.sqrt(t/(2*n.randg(t/2)))},variance:function(n){return n>2?n/(n-2):n>1?1/0:void 0}}),n.extend(n.weibull,{pdf:function(n,t,e){return n<0||t<0||e<0?0:e/t*r.pow(n/t,e-1)*r.exp(-r.pow(n/t,e))},cdf:function(n,t,e){return n<0?0:1-r.exp(-r.pow(n/t,e))},inv:function(n,t,e){return t*r.pow(-r.log(1-n),1/e)},mean:function(r,t){return r*n.gammafn(1+1/t)},median:function(n,t){return n*r.pow(r.log(2),1/t)},mode:function(n,t){return t<=1?0:n*r.pow((t-1)/t,1/t)},sample:function(t,e){return t*r.pow(-r.log(n._random_fn()),1/e)},variance:function(t,e){return t*t*n.gammafn(1+2/e)-r.pow(n.weibull.mean(t,e),2)}}),n.extend(n.uniform,{pdf:function(n,r,t){return n<r||n>t?0:1/(t-r)},cdf:function(n,r,t){return n<r?0:n<t?(n-r)/(t-r):1},inv:function(n,r,t){return r+n*(t-r)},mean:function(n,r){return.5*(n+r)},median:function(r,t){return n.mean(r,t)},mode:function(){throw new Error("mode is not yet implemented")},sample:function(r,t){return r/2+t/2+(t/2-r/2)*(2*n._random_fn()-1)},variance:function(n,t){return r.pow(t-n,2)/12}}),n.extend(n.binomial,{pdf:function(t,e,o){return 0===o||1===o?e*o===t?1:0:n.combination(e,t)*r.pow(o,t)*r.pow(1-o,e-t)},cdf:function(e,o,a){var u,i=1e-10;if(e<0)return 0;if(e>=o)return 1;if(a<0||a>1||o<=0)return NaN;var f=a,c=(e=r.floor(e))+1,l=o-e,s=c+l,m=r.exp(n.gammaln(s)-n.gammaln(l)-n.gammaln(c)+c*r.log(f)+l*r.log(1-f));return u=f<(c+1)/(s+2)?m*t(f,c,l,i):1-m*t(1-f,l,c,i),r.round(1/i*(1-u))/(1/i)}}),n.extend(n.negbin,{pdf:function(t,e,o){return t===t>>>0&&(t<0?0:n.combination(t+e-1,e-1)*r.pow(1-o,t)*r.pow(o,e))},cdf:function(r,t,e){var o=0,a=0;if(r<0)return 0;for(;a<=r;a++)o+=n.negbin.pdf(a,t,e);return o}}),n.extend(n.hypgeom,{pdf:function(t,e,o,a){if(t!=t|0)return!1;if(t<0||t<o-(e-a))return 0;if(t>a||t>o)return 0;if(2*o>e)return 2*a>e?n.hypgeom.pdf(e-o-a+t,e,e-o,e-a):n.hypgeom.pdf(a-t,e,e-o,a);if(2*a>e)return n.hypgeom.pdf(o-t,e,o,e-a);if(o<a)return n.hypgeom.pdf(t,e,a,o);for(var u=1,i=0,f=0;f<t;f++){for(;u>1&&i<a;)u*=1-o/(e-i),i++;u*=(a-f)*(o-f)/((f+1)*(e-o-a+f+1))}for(;i<a;i++)u*=1-o/(e-i);return r.min(1,r.max(0,u))},cdf:function(t,e,o,a){if(t<0||t<o-(e-a))return 0;if(t>=a||t>=o)return 1;if(2*o>e)return 2*a>e?n.hypgeom.cdf(e-o-a+t,e,e-o,e-a):1-n.hypgeom.cdf(a-t-1,e,e-o,a);if(2*a>e)return 1-n.hypgeom.cdf(o-t-1,e,o,e-a);if(o<a)return n.hypgeom.cdf(t,e,a,o);for(var u=1,i=1,f=0,c=0;c<t;c++){for(;u>1&&f<a;){var l=1-o/(e-f);i*=l,u*=l,f++}u+=i*=(a-c)*(o-c)/((c+1)*(e-o-a+c+1))}for(;f<a;f++)u*=1-o/(e-f);return r.min(1,r.max(0,u))}}),n.extend(n.poisson,{pdf:function(t,e){return e<0||t%1!=0||t<0?0:r.pow(e,t)*r.exp(-e)/n.factorial(t)},cdf:function(r,t){var e=[],o=0;if(r<0)return 0;for(;o<=r;o++)e.push(n.poisson.pdf(o,t));return n.sum(e)},mean:function(n){return n},variance:function(n){return n},sampleSmall:function(t){var e=1,o=0,a=r.exp(-t);do{o++,e*=n._random_fn()}while(e>a);return o-1},sampleLarge:function(t){var e,o,a,u,i,f,c,l,s,m,p=t;for(u=r.sqrt(p),i=r.log(p),f=.02483*(c=.931+2.53*u)-.059,l=1.1239+1.1328/(c-3.4),s=.9277-3.6224/(c-2);;){if(o=r.random()-.5,a=r.random(),m=.5-r.abs(o),e=r.floor((2*f/m+c)*o+p+.43),m>=.07&&a<=s)return e;if(!(e<0||m<.013&&a>m)&&r.log(a)+r.log(l)-r.log(f/(m*m)+c)<=e*i-p-n.loggam(e+1))return e}},sample:function(n){return n<10?this.sampleSmall(n):this.sampleLarge(n)}}),n.extend(n.triangular,{pdf:function(n,r,t,e){return t<=r||e<r||e>t?NaN:n<r||n>t?0:n<e?2*(n-r)/((t-r)*(e-r)):n===e?2/(t-r):2*(t-n)/((t-r)*(t-e))},cdf:function(n,t,e,o){return e<=t||o<t||o>e?NaN:n<=t?0:n>=e?1:n<=o?r.pow(n-t,2)/((e-t)*(o-t)):1-r.pow(e-n,2)/((e-t)*(e-o))},inv:function(n,t,e,o){return e<=t||o<t||o>e?NaN:n<=(o-t)/(e-t)?t+(e-t)*r.sqrt(n*((o-t)/(e-t))):t+(e-t)*(1-r.sqrt((1-n)*(1-(o-t)/(e-t))))},mean:function(n,r,t){return(n+r+t)/3},median:function(n,t,e){return e<=(n+t)/2?t-r.sqrt((t-n)*(t-e))/r.sqrt(2):e>(n+t)/2?n+r.sqrt((t-n)*(e-n))/r.sqrt(2):void 0},mode:function(n,r,t){return t},sample:function(t,e,o){var a=n._random_fn();return a<(o-t)/(e-t)?t+r.sqrt(a*(e-t)*(o-t)):e-r.sqrt((1-a)*(e-t)*(e-o))},variance:function(n,r,t){return(n*n+r*r+t*t-n*r-n*t-r*t)/18}}),n.extend(n.arcsine,{pdf:function(n,t,e){return e<=t?NaN:n<=t||n>=e?0:2/r.PI*r.pow(r.pow(e-t,2)-r.pow(2*n-t-e,2),-.5)},cdf:function(n,t,e){return n<t?0:n<e?2/r.PI*r.asin(r.sqrt((n-t)/(e-t))):1},inv:function(n,t,e){return t+(.5-.5*r.cos(r.PI*n))*(e-t)},mean:function(n,r){return r<=n?NaN:(n+r)/2},median:function(n,r){return r<=n?NaN:(n+r)/2},mode:function(){throw new Error("mode is not yet implemented")},sample:function(t,e){return(t+e)/2+(e-t)/2*r.sin(2*r.PI*n.uniform.sample(0,1))},variance:function(n,t){return t<=n?NaN:r.pow(t-n,2)/8}}),n.extend(n.laplace,{pdf:function(n,t,e){return e<=0?0:r.exp(-r.abs(n-t)/e)/(2*e)},cdf:function(n,t,e){return e<=0?0:n<t?.5*r.exp((n-t)/e):1-.5*r.exp(-(n-t)/e)},mean:function(n){return n},median:function(n){return n},mode:function(n){return n},variance:function(n,r){return 2*r*r},sample:function(t,o){var a=n._random_fn()-.5;return t-o*e(a)*r.log(1-2*r.abs(a))}}),n.extend(n.tukey,{cdf:function(t,e,a){var u=1,i=e,f=16,c=8,l=-30,s=1e-14,m=100,p=800,g=5e3,d=25e3,h=1,v=.5,w=.25,y=.125,b=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],x=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(t<=0)return 0;if(a<2||u<1||i<2)return NaN;if(!Number.isFinite(t))return 1;if(a>d)return o(t,u,i);var q,_=.5*a,A=_*r.log(a)-a*r.log(2)-n.gammaln(_),M=_-1,N=.25*a;q=a<=m?h:a<=p?v:a<=g?w:y,A+=r.log(q);for(var E=0,P=1;P<=50;P++){for(var S=0,k=(2*P-1)*q,F=1;F<=f;F++){var z,I;c<F?(z=F-c-1,I=A+M*r.log(k+b[z]*q)-(b[z]*q+k)*N):(z=F-1,I=A+M*r.log(k-b[z]*q)+(b[z]*q-k)*N),I>=l&&(S+=o(c<F?t*r.sqrt(.5*(b[z]*q+k)):t*r.sqrt(.5*(-b[z]*q+k)),u,i)*x[z]*r.exp(I))}if(P*q>=1&&S<=s)break;E+=S}if(S>s)throw new Error("tukey.cdf failed to converge");return E>1&&(E=1),E},inv:function(t,e,o){var u=1e-4,i=50;if(o<2||e<2)return NaN;if(t<0||t>1)return NaN;if(0===t)return 0;if(1===t)return 1/0;var f,c=a(t,e,o),l=n.tukey.cdf(c,e,o)-t;f=l>0?r.max(0,c-1):c+1;for(var s,m=n.tukey.cdf(f,e,o)-t,p=1;p<i;p++)if(s=f-m*(f-c)/(m-l),l=m,c=f,s<0&&(s=0,m=-t),m=n.tukey.cdf(s,e,o)-t,f=s,r.abs(f-c)<u)return s;throw new Error("tukey.inv failed to converge")}})}(n,Math),function(n,r){var t=Array.prototype.push,e=n.utils.isArray;function o(r){return e(r)||r instanceof n}n.extend({add:function(r,t){return o(t)?(o(t[0])||(t=[t]),n.map(r,function(n,r,e){return n+t[r][e]})):n.map(r,function(n){return n+t})},subtract:function(r,t){return o(t)?(o(t[0])||(t=[t]),n.map(r,function(n,r,e){return n-t[r][e]||0})):n.map(r,function(n){return n-t})},divide:function(r,t){return o(t)?(o(t[0])||(t=[t]),n.multiply(r,n.inv(t))):n.map(r,function(n){return n/t})},multiply:function(r,t){var e,a,u,i,f,c,l,s;if(void 0===r.length&&void 0===t.length)return r*t;if(f=r.length,c=r[0].length,l=n.zeros(f,u=o(t)?t[0].length:c),s=0,o(t)){for(;s<u;s++)for(e=0;e<f;e++){for(i=0,a=0;a<c;a++)i+=r[e][a]*t[a][s];l[e][s]=i}return 1===f&&1===s?l[0][0]:l}return n.map(r,function(n){return n*t})},outer:function(r,t){return n.multiply(r.map(function(n){return[n]}),[t])},dot:function(r,t){o(r[0])||(r=[r]),o(t[0])||(t=[t]);for(var e,a,u=1===r[0].length&&1!==r.length?n.transpose(r):r,i=1===t[0].length&&1!==t.length?n.transpose(t):t,f=[],c=0,l=u.length,s=u[0].length;c<l;c++){for(f[c]=[],e=0,a=0;a<s;a++)e+=u[c][a]*i[c][a];f[c]=e}return 1===f.length?f[0]:f},pow:function(t,e){return n.map(t,function(n){return r.pow(n,e)})},exp:function(t){return n.map(t,function(n){return r.exp(n)})},log:function(t){return n.map(t,function(n){return r.log(n)})},abs:function(t){return n.map(t,function(n){return r.abs(n)})},norm:function(n,t){var e=0,a=0;for(isNaN(t)&&(t=2),o(n[0])&&(n=n[0]);a<n.length;a++)e+=r.pow(r.abs(n[a]),t);return r.pow(e,1/t)},angle:function(t,e){return r.acos(n.dot(t,e)/(n.norm(t)*n.norm(e)))},aug:function(n,r){var e,o=[];for(e=0;e<n.length;e++)o.push(n[e].slice());for(e=0;e<o.length;e++)t.apply(o[e],r[e]);return o},inv:function(r){for(var t,e=r.length,o=r[0].length,a=n.identity(e,o),u=n.gauss_jordan(r,a),i=[],f=0;f<e;f++)for(i[f]=[],t=o;t<u[0].length;t++)i[f][t-o]=u[f][t];return i},det:function n(r){if(2===r.length)return r[0][0]*r[1][1]-r[0][1]*r[1][0];for(var t=0,e=0;e<r.length;e++){for(var o=[],a=1;a<r.length;a++){o[a-1]=[];for(var u=0;u<r.length;u++)u<e?o[a-1][u]=r[a][u]:u>e&&(o[a-1][u-1]=r[a][u])}var i=e%2?-1:1;t+=n(o)*r[0][e]*i}return t},gauss_elimination:function(t,e){var o,a,u,i,f=0,c=0,l=t.length,s=t[0].length,m=1,p=0,g=[];for(o=(t=n.aug(t,e))[0].length,f=0;f<l;f++){for(a=t[f][f],c=f,i=f+1;i<s;i++)a<r.abs(t[i][f])&&(a=t[i][f],c=i);if(c!=f)for(i=0;i<o;i++)u=t[f][i],t[f][i]=t[c][i],t[c][i]=u;for(c=f+1;c<l;c++)for(m=t[c][f]/t[f][f],i=f;i<o;i++)t[c][i]=t[c][i]-m*t[f][i]}for(f=l-1;f>=0;f--){for(p=0,c=f+1;c<=l-1;c++)p+=g[c]*t[f][c];g[f]=(t[f][o-1]-p)/t[f][f]}return g},gauss_jordan:function(t,e){var o,a,u,i=n.aug(t,e),f=i.length,c=i[0].length,l=0;for(a=0;a<f;a++){var s=a;for(u=a+1;u<f;u++)r.abs(i[u][a])>r.abs(i[s][a])&&(s=u);var m=i[a];for(i[a]=i[s],i[s]=m,u=a+1;u<f;u++)for(l=i[u][a]/i[a][a],o=a;o<c;o++)i[u][o]-=i[a][o]*l}for(a=f-1;a>=0;a--){for(l=i[a][a],u=0;u<a;u++)for(o=c-1;o>a-1;o--)i[u][o]-=i[a][o]*i[u][a]/l;for(i[a][a]/=l,o=f;o<c;o++)i[a][o]/=l}return i},triaUpSolve:function(r,t){var e,o=r[0].length,a=n.zeros(1,o)[0],u=!1;return null!=t[0].length&&(t=t.map(function(n){return n[0]}),u=!0),n.arange(o-1,-1,-1).forEach(function(u){e=n.arange(u+1,o).map(function(n){return a[n]*r[u][n]}),a[u]=(t[u]-n.sum(e))/r[u][u]}),u?a.map(function(n){return[n]}):a},triaLowSolve:function(r,t){var e,o=r[0].length,a=n.zeros(1,o)[0],u=!1;return null!=t[0].length&&(t=t.map(function(n){return n[0]}),u=!0),n.arange(o).forEach(function(o){e=n.arange(o).map(function(n){return r[o][n]*a[n]}),a[o]=(t[o]-n.sum(e))/r[o][o]}),u?a.map(function(n){return[n]}):a},lu:function(r){var t,e=r.length,o=n.identity(e),a=n.zeros(r.length,r[0].length);return n.arange(e).forEach(function(n){a[0][n]=r[0][n]}),n.arange(1,e).forEach(function(u){n.arange(u).forEach(function(e){t=n.arange(e).map(function(n){return o[u][n]*a[n][e]}),o[u][e]=(r[u][e]-n.sum(t))/a[e][e]}),n.arange(u,e).forEach(function(e){t=n.arange(u).map(function(n){return o[u][n]*a[n][e]}),a[u][e]=r[t.length][e]-n.sum(t)})}),[o,a]},cholesky:function(t){var e,o=t.length,a=n.zeros(t.length,t[0].length);return n.arange(o).forEach(function(u){e=n.arange(u).map(function(n){return r.pow(a[u][n],2)}),a[u][u]=r.sqrt(t[u][u]-n.sum(e)),n.arange(u+1,o).forEach(function(r){e=n.arange(u).map(function(n){return a[u][n]*a[r][n]}),a[r][u]=(t[u][r]-n.sum(e))/a[u][u]})}),a},gauss_jacobi:function(t,e,o,a){for(var u,i,f,c,l=0,s=0,m=t.length,p=[],g=[],d=[];l<m;l++)for(p[l]=[],g[l]=[],d[l]=[],s=0;s<m;s++)l>s?(p[l][s]=t[l][s],g[l][s]=d[l][s]=0):l<s?(g[l][s]=t[l][s],p[l][s]=d[l][s]=0):(d[l][s]=t[l][s],p[l][s]=g[l][s]=0);for(f=n.multiply(n.multiply(n.inv(d),n.add(p,g)),-1),i=n.multiply(n.inv(d),e),u=o,c=n.add(n.multiply(f,o),i),l=2;r.abs(n.norm(n.subtract(c,u)))>a;)u=c,c=n.add(n.multiply(f,u),i),l++;return c},gauss_seidel:function(t,e,o,a){for(var u,i,f,c,l,s=0,m=t.length,p=[],g=[],d=[];s<m;s++)for(p[s]=[],g[s]=[],d[s]=[],u=0;u<m;u++)s>u?(p[s][u]=t[s][u],g[s][u]=d[s][u]=0):s<u?(g[s][u]=t[s][u],p[s][u]=d[s][u]=0):(d[s][u]=t[s][u],p[s][u]=g[s][u]=0);for(c=n.multiply(n.multiply(n.inv(n.add(d,p)),g),-1),f=n.multiply(n.inv(n.add(d,p)),e),i=o,l=n.add(n.multiply(c,o),f),s=2;r.abs(n.norm(n.subtract(l,i)))>a;)i=l,l=n.add(n.multiply(c,i),f),s+=1;return l},SOR:function(t,e,o,a,u){for(var i,f,c,l,s,m=0,p=t.length,g=[],d=[],h=[];m<p;m++)for(g[m]=[],d[m]=[],h[m]=[],i=0;i<p;i++)m>i?(g[m][i]=t[m][i],d[m][i]=h[m][i]=0):m<i?(d[m][i]=t[m][i],g[m][i]=h[m][i]=0):(h[m][i]=t[m][i],g[m][i]=d[m][i]=0);for(l=n.multiply(n.inv(n.add(h,n.multiply(g,u))),n.subtract(n.multiply(h,1-u),n.multiply(d,u))),c=n.multiply(n.multiply(n.inv(n.add(h,n.multiply(g,u))),e),u),f=o,s=n.add(n.multiply(l,o),c),m=2;r.abs(n.norm(n.subtract(s,f)))>a;)f=s,s=n.add(n.multiply(l,f),c),m++;return s},householder:function(t){for(var e,o,a,u,i=t.length,f=t[0].length,c=0,l=[],s=[];c<i-1;c++){for(e=0,u=c+1;u<f;u++)e+=t[u][c]*t[u][c];for(e=(t[c+1][c]>0?-1:1)*r.sqrt(e),o=r.sqrt((e*e-t[c+1][c]*e)/2),(l=n.zeros(i,1))[c+1][0]=(t[c+1][c]-e)/(2*o),a=c+2;a<i;a++)l[a][0]=t[a][c]/(2*o);s=n.subtract(n.identity(i,f),n.multiply(n.multiply(l,n.transpose(l)),2)),t=n.multiply(s,n.multiply(t,s))}return t},QR:function(){var t=n.sum,e=n.arange;function o(o){var a,u,i,f=o.length,c=o[0].length,l=n.zeros(c,c);for(o=n.copy(o),u=0;u<c;u++){for(l[u][u]=r.sqrt(t(e(f).map(function(n){return o[n][u]*o[n][u]}))),a=0;a<f;a++)o[a][u]=o[a][u]/l[u][u];for(i=u+1;i<c;i++)for(l[u][i]=t(e(f).map(function(n){return o[n][u]*o[n][i]})),a=0;a<f;a++)o[a][i]=o[a][i]-o[a][u]*l[u][i]}return[o,l]}return o}(),lstsq:function(){function r(r){var t=(r=n.copy(r)).length,e=n.identity(t);return n.arange(t-1,-1,-1).forEach(function(t){n.sliceAssign(e,{row:t},n.divide(n.slice(e,{row:t}),r[t][t])),n.sliceAssign(r,{row:t},n.divide(n.slice(r,{row:t}),r[t][t])),n.arange(t).forEach(function(o){var a=n.multiply(r[o][t],-1),u=n.slice(r,{row:o}),i=n.multiply(n.slice(r,{row:t}),a);n.sliceAssign(r,{row:o},n.add(u,i));var f=n.slice(e,{row:o}),c=n.multiply(n.slice(e,{row:t}),a);n.sliceAssign(e,{row:o},n.add(f,c))})}),e}function t(t,e){var o=!1;void 0===e[0].length&&(e=e.map(function(n){return[n]}),o=!0);var a=n.QR(t),u=a[0],i=a[1],f=t[0].length,c=n.slice(u,{col:{end:f}}),l=r(n.slice(i,{row:{end:f}})),s=n.transpose(c);void 0===s[0].length&&(s=[s]);var m=n.multiply(n.multiply(l,s),e);return void 0===m.length&&(m=[[m]]),o?m.map(function(n){return n[0]}):m}return t}(),jacobi:function(t){for(var e,o,a,u,i,f,c,l=1,s=t.length,m=n.identity(s,s),p=[];1===l;){for(i=t[0][1],a=0,u=1,e=0;e<s;e++)for(o=0;o<s;o++)e!=o&&i<r.abs(t[e][o])&&(i=r.abs(t[e][o]),a=e,u=o);for(f=t[a][a]===t[u][u]?t[a][u]>0?r.PI/4:-r.PI/4:r.atan(2*t[a][u]/(t[a][a]-t[u][u]))/2,(c=n.identity(s,s))[a][a]=r.cos(f),c[a][u]=-r.sin(f),c[u][a]=r.sin(f),c[u][u]=r.cos(f),m=n.multiply(m,c),t=n.multiply(n.multiply(n.inv(c),t),c),l=0,e=1;e<s;e++)for(o=1;o<s;o++)e!=o&&r.abs(t[e][o])>.001&&(l=1)}for(e=0;e<s;e++)p.push(t[e][e]);return[m,p]},rungekutta:function(n,r,t,e,o,a){var u,i,f;if(2===a)for(;e<=t;)o+=((u=r*n(e,o))+(i=r*n(e+r,o+u)))/2,e+=r;if(4===a)for(;e<=t;)o+=((u=r*n(e,o))+2*(i=r*n(e+r/2,o+u/2))+2*(f=r*n(e+r/2,o+i/2))+r*n(e+r,o+f))/6,e+=r;return o},romberg:function(n,t,e,o){for(var a,u,i,f,c,l=0,s=(e-t)/2,m=[],p=[],g=[];l<o/2;){for(c=n(t),i=t,f=0;i<=e;i+=s,f++)m[f]=i;for(a=m.length,i=1;i<a-1;i++)c+=(i%2!=0?4:2)*n(m[i]);c=s/3*(c+n(e)),g[l]=c,s/=2,l++}for(u=g.length,a=1;1!==u;){for(i=0;i<u-1;i++)p[i]=(r.pow(4,a)*g[i+1]-g[i])/(r.pow(4,a)-1);u=p.length,g=p,p=[],a++}return g},richardson:function(n,t,e,o){function a(n,r){for(var t,e=0,o=n.length;e<o;e++)n[e]===r&&(t=e);return t}for(var u,i,f,c,l,s=r.abs(e-n[a(n,e)+1]),m=0,p=[],g=[];o>=s;)u=a(n,e+o),i=a(n,e),p[m]=(t[u]-2*t[i]+t[2*i-u])/(o*o),o/=2,m++;for(c=p.length,f=1;1!=c;){for(l=0;l<c-1;l++)g[l]=(r.pow(4,f)*p[l+1]-p[l])/(r.pow(4,f)-1);c=g.length,p=g,g=[],f++}return p},simpson:function(n,r,t,e){for(var o,a=(t-r)/e,u=n(r),i=[],f=r,c=0,l=1;f<=t;f+=a,c++)i[c]=f;for(o=i.length;l<o-1;l++)u+=(l%2!=0?4:2)*n(i[l]);return a/3*(u+n(t))},hermite:function(n,r,t,e){for(var o,a=n.length,u=0,i=0,f=[],c=[],l=[],s=[];i<a;i++){for(f[i]=1,o=0;o<a;o++)i!=o&&(f[i]*=(e-n[o])/(n[i]-n[o]));for(c[i]=0,o=0;o<a;o++)i!=o&&(c[i]+=1/(n[i]-n[o]));l[i]=(1-2*(e-n[i])*c[i])*(f[i]*f[i]),s[i]=(e-n[i])*(f[i]*f[i]),u+=l[i]*r[i]+s[i]*t[i]}return u},lagrange:function(n,r,t){for(var e,o,a=0,u=0,i=n.length;u<i;u++){for(o=r[u],e=0;e<i;e++)u!=e&&(o*=(t-n[e])/(n[u]-n[e]));a+=o}return a},cubic_spline:function(r,t,e){for(var o,a=r.length,u=0,i=[],f=[],c=[],l=[],s=[],m=[],p=[];u<a-1;u++)s[u]=r[u+1]-r[u];for(c[0]=0,u=1;u<a-1;u++)c[u]=3/s[u]*(t[u+1]-t[u])-3/s[u-1]*(t[u]-t[u-1]);for(u=1;u<a-1;u++)i[u]=[],f[u]=[],i[u][u-1]=s[u-1],i[u][u]=2*(s[u-1]+s[u]),i[u][u+1]=s[u],f[u][0]=c[u];for(l=n.multiply(n.inv(i),f),o=0;o<a-1;o++)m[o]=(t[o+1]-t[o])/s[o]-s[o]*(l[o+1][0]+2*l[o][0])/3,p[o]=(l[o+1][0]-l[o][0])/(3*s[o]);for(o=0;o<a&&!(r[o]>e);o++);return t[o-=1]+(e-r[o])*m[o]+n.sq(e-r[o])*l[o]+(e-r[o])*n.sq(e-r[o])*p[o]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(r){var t,e,o=r.length,a=r[0].length,u=0,i=[],f=[],c=[],l=[],s=[],m=[],p=[],g=[],d=[],h=[];for(u=0;u<o;u++)i[u]=n.sum(r[u])/a;for(u=0;u<a;u++)for(p[u]=[],t=0;t<o;t++)p[u][t]=r[t][u]-i[t];for(p=n.transpose(p),u=0;u<o;u++)for(g[u]=[],t=0;t<o;t++)g[u][t]=n.dot([p[u]],[p[t]])/(a-1);for(d=(c=n.jacobi(g))[0],f=c[1],h=n.transpose(d),u=0;u<f.length;u++)for(t=u;t<f.length;t++)f[u]<f[t]&&(e=f[u],f[u]=f[t],f[t]=e,l=h[u],h[u]=h[t],h[t]=l);for(m=n.transpose(p),u=0;u<o;u++)for(s[u]=[],t=0;t<m.length;t++)s[u][t]=n.dot([h[u]],[m[t]]);return[r,f,h,s]}}),function(r){for(var t=0;t<r.length;t++)(function(r){n.fn[r]=function(t,e){var o=this;return e?(setTimeout(function(){e.call(o,n.fn[r].call(o,t))},15),this):"number"==typeof n[r](this,t)?n[r](this,t):n(n[r](this,t))}})(r[t])}("add divide multiply subtract dot pow exp log abs norm angle".split(" "))}(n,Math),function(n,r){var t=[].slice,e=n.utils.isNumber,o=n.utils.isArray;function a(n,t,e,o){if(n>1||e>1||n<=0||e<=0)throw new Error("Proportions should be greater than 0 and less than 1");var a=(n*t+e*o)/(t+o);return(n-e)/r.sqrt(a*(1-a)*(1/t+1/o))}n.extend({zscore:function(){var r=t.call(arguments);return e(r[1])?(r[0]-r[1])/r[2]:(r[0]-n.mean(r[1]))/n.stdev(r[1],r[2])},ztest:function(){var e,a=t.call(arguments);return o(a[1])?(e=n.zscore(a[0],a[1],a[3]),1===a[2]?n.normal.cdf(-r.abs(e),0,1):2*n.normal.cdf(-r.abs(e),0,1)):a.length>2?(e=n.zscore(a[0],a[1],a[2]),1===a[3]?n.normal.cdf(-r.abs(e),0,1):2*n.normal.cdf(-r.abs(e),0,1)):(e=a[0],1===a[1]?n.normal.cdf(-r.abs(e),0,1):2*n.normal.cdf(-r.abs(e),0,1))}}),n.extend(n.fn,{zscore:function(n,r){return(n-this.mean())/this.stdev(r)},ztest:function(t,e,o){var a=r.abs(this.zscore(t,o));return 1===e?n.normal.cdf(-a,0,1):2*n.normal.cdf(-a,0,1)}}),n.extend({tscore:function(){var e=t.call(arguments);return 4===e.length?(e[0]-e[1])/(e[2]/r.sqrt(e[3])):(e[0]-n.mean(e[1]))/(n.stdev(e[1],!0)/r.sqrt(e[1].length))},ttest:function(){var o,a=t.call(arguments);return 5===a.length?(o=r.abs(n.tscore(a[0],a[1],a[2],a[3])),1===a[4]?n.studentt.cdf(-o,a[3]-1):2*n.studentt.cdf(-o,a[3]-1)):e(a[1])?(o=r.abs(a[0]),1==a[2]?n.studentt.cdf(-o,a[1]-1):2*n.studentt.cdf(-o,a[1]-1)):(o=r.abs(n.tscore(a[0],a[1])),1==a[2]?n.studentt.cdf(-o,a[1].length-1):2*n.studentt.cdf(-o,a[1].length-1))}}),n.extend(n.fn,{tscore:function(n){return(n-this.mean())/(this.stdev(!0)/r.sqrt(this.cols()))},ttest:function(t,e){return 1===e?1-n.studentt.cdf(r.abs(this.tscore(t)),this.cols()-1):2*n.studentt.cdf(-r.abs(this.tscore(t)),this.cols()-1)}}),n.extend({anovafscore:function(){var e,o,a,u,i,f,c,l,s=t.call(arguments);if(1===s.length){for(i=new Array(s[0].length),c=0;c<s[0].length;c++)i[c]=s[0][c];s=i}for(o=new Array,c=0;c<s.length;c++)o=o.concat(s[c]);for(a=n.mean(o),e=0,c=0;c<s.length;c++)e+=s[c].length*r.pow(n.mean(s[c])-a,2);for(e/=s.length-1,f=0,c=0;c<s.length;c++)for(u=n.mean(s[c]),l=0;l<s[c].length;l++)f+=r.pow(s[c][l]-u,2);return e/(f/=o.length-s.length)},anovaftest:function(){var r,o,a,u,i=t.call(arguments);if(e(i[0]))return 1-n.centralF.cdf(i[0],i[1],i[2]);var f=n.anovafscore(i);for(r=i.length-1,a=0,u=0;u<i.length;u++)a+=i[u].length;return o=a-r-1,1-n.centralF.cdf(f,r,o)},ftest:function(r,t,e){return 1-n.centralF.cdf(r,t,e)}}),n.extend(n.fn,{anovafscore:function(){return n.anovafscore(this.toArray())},anovaftes:function(){var r,t=0;for(r=0;r<this.length;r++)t+=this[r].length;return n.ftest(this.anovafscore(),this.length-1,t-this.length)}}),n.extend({qscore:function(){var o,a,u,i,f,c=t.call(arguments);return e(c[0])?(o=c[0],a=c[1],u=c[2],i=c[3],f=c[4]):(o=n.mean(c[0]),a=n.mean(c[1]),u=c[0].length,i=c[1].length,f=c[2]),r.abs(o-a)/(f*r.sqrt((1/u+1/i)/2))},qtest:function(){var r,e=t.call(arguments);3===e.length?(r=e[0],e=e.slice(1)):7===e.length?(r=n.qscore(e[0],e[1],e[2],e[3],e[4]),e=e.slice(5)):(r=n.qscore(e[0],e[1],e[2]),e=e.slice(3));var o=e[0],a=e[1];return 1-n.tukey.cdf(r,a,o-a)},tukeyhsd:function(r){for(var t=n.pooledstdev(r),e=r.map(function(r){return n.mean(r)}),o=r.reduce(function(n,r){return n+r.length},0),a=[],u=0;u<r.length;++u)for(var i=u+1;i<r.length;++i){var f=n.qtest(e[u],e[i],r[u].length,r[i].length,t,o,r.length);a.push([[u,i],f])}return a}}),n.extend({normalci:function(){var e,o=t.call(arguments),a=new Array(2);return e=4===o.length?r.abs(n.normal.inv(o[1]/2,0,1)*o[2]/r.sqrt(o[3])):r.abs(n.normal.inv(o[1]/2,0,1)*n.stdev(o[2])/r.sqrt(o[2].length)),a[0]=o[0]-e,a[1]=o[0]+e,a},tci:function(){var e,o=t.call(arguments),a=new Array(2);return e=4===o.length?r.abs(n.studentt.inv(o[1]/2,o[3]-1)*o[2]/r.sqrt(o[3])):r.abs(n.studentt.inv(o[1]/2,o[2].length-1)*n.stdev(o[2],!0)/r.sqrt(o[2].length)),a[0]=o[0]-e,a[1]=o[0]+e,a},significant:function(n,r){return n<r}}),n.extend(n.fn,{normalci:function(r,t){return n.normalci(r,t,this.toArray())},tci:function(r,t){return n.tci(r,t,this.toArray())}}),n.extend(n.fn,{oneSidedDifferenceOfProportions:function(r,t,e,o){var u=a(r,t,e,o);return n.ztest(u,1)},twoSidedDifferenceOfProportions:function(r,t,e,o){var u=a(r,t,e,o);return n.ztest(u,2)}})}(n,Math),n.models=function(){function r(r){var e=r[0].length;return n.arange(e).map(function(o){var a=n.arange(e).filter(function(n){return n!==o});return t(n.col(r,o).map(function(n){return n[0]}),n.col(r,a))})}function t(r,t){var e=r.length,o=t[0].length-1,a=e-o-1,u=n.lstsq(t,r),i=n.multiply(t,u.map(function(n){return[n]})).map(function(n){return n[0]}),f=n.subtract(r,i),c=n.mean(r),l=n.sum(i.map(function(n){return Math.pow(n-c,2)})),s=n.sum(r.map(function(n,r){return Math.pow(n-i[r],2)})),m=l+s;return{exog:t,endog:r,nobs:e,df_model:o,df_resid:a,coef:u,predict:i,resid:f,ybar:c,SST:m,SSE:l,SSR:s,R2:l/m}}function e(t){var e=r(t.exog),o=Math.sqrt(t.SSR/t.df_resid),a=e.map(function(n){var r=n.SST,t=n.R2;return o/Math.sqrt(r*(1-t))}),u=t.coef.map(function(n,r){return(n-0)/a[r]}),i=u.map(function(r){var e=n.studentt.cdf(r,t.df_resid);return 2*(e>.5?1-e:e)}),f=n.studentt.inv(.975,t.df_resid),c=t.coef.map(function(n,r){var t=f*a[r];return[n-t,n+t]});return{se:a,t:u,p:i,sigmaHat:o,interval95:c}}function o(r){var t,e,o,a=r.R2/r.df_model/((1-r.R2)/r.df_resid);return{F_statistic:a,pvalue:1-(t=a,e=r.df_model,o=r.df_resid,n.beta.cdf(t/(o/e+t),e/2,o/2))}}function a(n,r){var a=t(n,r),u=e(a),i=o(a),f=1-(1-a.R2)*((a.nobs-1)/a.df_resid);return a.t=u,a.f=i,a.adjust_R2=f,a}return{ols:a}}(),n.extend({buildxmatrix:function(){for(var r=new Array(arguments.length),t=0;t<arguments.length;t++){var e=[1];r[t]=e.concat(arguments[t])}return n(r)},builddxmatrix:function(){for(var r=new Array(arguments[0].length),t=0;t<arguments[0].length;t++){var e=[1];r[t]=e.concat(arguments[0][t])}return n(r)},buildjxmatrix:function(r){for(var t=new Array(r.length),e=0;e<r.length;e++)t[e]=r[e];return n.builddxmatrix(t)},buildymatrix:function(r){return n(r).transpose()},buildjymatrix:function(n){return n.transpose()},matrixmult:function(r,t){var e,o,a,u,i;if(r.cols()==t.rows()){if(t.rows()>1){for(u=[],e=0;e<r.rows();e++)for(u[e]=[],o=0;o<t.cols();o++){for(i=0,a=0;a<r.cols();a++)i+=r.toArray()[e][a]*t.toArray()[a][o];u[e][o]=i}return n(u)}for(u=[],e=0;e<r.rows();e++)for(u[e]=[],o=0;o<t.cols();o++){for(i=0,a=0;a<r.cols();a++)i+=r.toArray()[e][a]*t.toArray()[o];u[e][o]=i}return n(u)}},regress:function(r,t){var e=n.xtranspxinv(r),o=r.transpose(),a=n.matrixmult(n(e),o);return n.matrixmult(a,t)},regresst:function(r,t,e){var o=n.regress(r,t),a={anova:{}},u=n.jMatYBar(r,o);a.yBar=u;var i=t.mean();a.anova.residuals=n.residuals(t,u),a.anova.ssr=n.ssr(u,i),a.anova.msr=a.anova.ssr/(r[0].length-1),a.anova.sse=n.sse(t,u),a.anova.mse=a.anova.sse/(t.length-(r[0].length-1)-1),a.anova.sst=n.sst(t,i),a.anova.mst=a.anova.sst/(t.length-1),a.anova.r2=1-a.anova.sse/a.anova.sst,a.anova.r2<0&&(a.anova.r2=0),a.anova.frati