ubique
Version:
A mathematical and quantitative library for Javascript and Node.js
2 lines • 246 kB
JavaScript
!function(n,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):"object"==typeof exports?exports.ubique=e():n.ubique=e()}(this,function(){return function(n){function e(r){if(t[r])return t[r].exports;var a=t[r]={exports:{},id:r,loaded:!1};return n[r].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var t={};return e.m=n,e.c=t,e.p="",e(0)}([function(n,e,t){n.exports=t(1)},function(n,e,t){var r={};t(2)(r),t(3)(r),t(4)(r),t(5)(r),t(6)(r),t(7)(r),t(8)(r),t(9)(r),t(10)(r),t(11)(r),t(12)(r),t(13)(r),t(14)(r),t(15)(r),t(16)(r),t(17)(r),t(18)(r),t(19)(r),t(20)(r),t(21)(r),t(22)(r),t(23)(r),t(24)(r),t(25)(r),t(26)(r),t(27)(r),t(28)(r),t(29)(r),t(30)(r),t(31)(r),t(32)(r),t(33)(r),t(34)(r),t(35)(r),t(36)(r),t(37)(r),t(38)(r),t(39)(r),t(40)(r),t(41)(r),t(42)(r),t(43)(r),t(44)(r),t(45)(r),t(46)(r),t(47)(r),t(48)(r),t(49)(r),t(50)(r),t(51)(r),t(52)(r),t(53)(r),t(54)(r),t(55)(r),t(56)(r),t(57)(r),t(58)(r),t(59)(r),t(60)(r),t(61)(r),t(62)(r),t(63)(r),t(64)(r),t(65)(r),t(66)(r),t(67)(r),t(68)(r),t(69)(r),t(70)(r),t(71)(r),t(72)(r),t(73)(r),t(74)(r),t(75)(r),t(76)(r),t(77)(r),t(78)(r),t(79)(r),t(80)(r),t(81)(r),t(82)(r),t(83)(r),t(84)(r),t(85)(r),t(86)(r),t(87)(r),t(88)(r),t(89)(r),t(90)(r),t(91)(r),t(92)(r),t(93)(r),t(94)(r),t(95)(r),t(96)(r),t(97)(r),t(98)(r),t(99)(r),t(100)(r),t(101)(r),t(102)(r),t(103)(r),t(104)(r),t(105)(r),t(106)(r),t(107)(r),t(108)(r),t(109)(r),t(110)(r),t(111)(r),t(112)(r),t(113)(r),t(114)(r),t(115)(r),t(116)(r),t(117)(r),t(118)(r),t(119)(r),t(120)(r),t(121)(r),t(122)(r),t(123)(r),t(124)(r),t(125)(r),t(126)(r),t(127)(r),t(128)(r),t(129)(r),t(130)(r),t(131)(r),t(132)(r),t(133)(r),t(134)(r),t(135)(r),t(136)(r),t(137)(r),t(138)(r),t(139)(r),t(140)(r),t(141)(r),t(142)(r),t(143)(r),t(144)(r),t(145)(r),t(146)(r),t(147)(r),t(148)(r),t(149)(r),t(150)(r),t(151)(r),t(152)(r),t(153)(r),t(154)(r),t(155)(r),t(156)(r),t(157)(r),t(158)(r),t(159)(r),t(160)(r),t(161)(r),t(162)(r),t(163)(r),t(164)(r),t(165)(r),t(166)(r),t(167)(r),t(168)(r),t(169)(r),t(170)(r),t(171)(r),t(172)(r),t(173)(r),t(174)(r),t(175)(r),t(176)(r),t(177)(r),t(178)(r),t(179)(r),t(180)(r),t(181)(r),t(182)(r),t(183)(r),t(184)(r),t(185)(r),t(186)(r),t(187)(r),t(188)(r),t(189)(r),t(190)(r),t(191)(r),t(192)(r),t(193)(r),t(194)(r),t(195)(r),t(196)(r),n.exports=r},function(n){n.exports=function(n){n.Inf=Number.POSITIVE_INFINITY,n.maxval=Number.MAX_VALUE,n.minval=Number.MIN_VALUE,n.PI=Math.PI,n.E=Math.E,n.LN2=Math.LN2,n.LN10=Math.LN10,n.LOG2E=Math.LOG2E,n.LOG10E=Math.LOG10E,n.SQRT1_2=Math.SQRT1_2,n.SQRT2=Math.SQRT2,n.eps=2.220446049250313e-16,n.phi=1.618033988749895}},function(n,e,t){n.exports=function(n){n.__moment=t(198),n.__request=t(197),n.__syncrequest=t(199)}},function(n){n.exports=function(n){n.arrayfun=function(){if(arguments.length<2)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments),t=e[0],r=e[1];if(!n.isfunction(r))throw new Error("second input argument must be a function");return n.isarray(t)?t.map(function(n){return r.apply(null,[].concat(n,e.slice(2,e.length)))}):n.ismatrix(t)?t.map(function(n){return n.map(function(n){return r.apply(null,[].concat(n,e.slice(2,e.length)))})}):r.apply(null,[].concat(t,e.slice(2,e.length)))}}},function(n){n.exports=function(n){n.clock=function(){var e=n.__moment().toArray();return e[1]=e[1]+1,e}}},function(n){n.exports=function(n){n.datevec=function(e,t){if(arguments.length<1)throw new Error("not enough input arguments");if(n.isstring(e)&&!t)throw new Error("insert format for date string");var r=function(e,t){if(n.isstring(e))var r=n.__moment(e,t).toArray();else{if(!n.isnumber(e))throw new Error("input must be a string or unix timestamp");var r=n.__moment.utc(e,"X").toArray()}return r[1]=r[1]+1,r};return n.arrayfun(e,r,t)}}},function(n){n.exports=function(n){n.datenum=function(e,t){if(arguments.length<1)throw new Error("not enough input arguments");if(n.isstring(e)&&!t)throw new Error("insert format for date string");var r=function(e,t){return n.__moment.utc(e,t).unix()};if(n.isstring(e))return r(e,t);if(n.isarray(e)){var a=e.filter(function(e){return n.isnumber(e)});return a.length===e.length?n.__moment.utc(e,"YYYYMMDDhhmmss").unix():n.arrayfun(e,r,t)}return n.ismatrix(e)?n.isarray(e[0])?e.map(function(e){return n.datenum(e,t)}):n.arrayfun(e,r,t):void 0}}},function(n){n.exports=function(n){n.datestr=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?"YYYY-MM-DD":t;var r=function(e,t){return n.__moment.utc(e,"X").format(t)};return n.arrayfun(e,r,t)}}},function(n){n.exports=function(n){n.isarray=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return Array.isArray(n)&&!Array.isArray(n[0])}}},function(n){n.exports=function(n){n.isempty=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.isarray(e)&&0===e.length?!0:n.ismatrix(e)&&0===e[0].length?!0:!1}}},function(n){n.exports=function(n){n.isfunction=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return"function"==typeof n}}},function(n){n.exports=function(n){n.isinteger=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.isnumber(e)&&Math.round(e)===e}}},function(n){n.exports=function(n){n.islogical=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return"boolean"==typeof n}}},function(n){n.exports=function(n){n.ismatrix=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.isundefined(e)||n.isnull(e)||!n.isarray(e[0])?!1:n.isarray(e[0])}}},function(n){n.exports=function(n){n.isnan=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return n!=n}}},function(n){n.exports=function(n){n.isnull=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return null===n}}},function(n){n.exports=function(n){n.isnumber=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return"number"==typeof n}}},function(n){n.exports=function(n){n.isscalar=function(e){return 1===n.nrows(e)&&1===n.ncols(e)?!0:!1}}},function(n){n.exports=function(n){n.issingular=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e)||n.isarray(e))throw new Error("input must be a matrix");if(!n.issquare(e))throw new Error("input must be a square matrix");for(var t=n.ncols(e),r=0;t>r;r++)if(0===e[r][r])return!0;return!1}}},function(n){n.exports=function(n){n.isstring=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return"string"==typeof n}}},function(n){n.exports=function(n){n.isundefined=function(n){if(0===arguments.length)throw new Error("not enough input arguments");return void 0===n}}},function(n){n.exports=function(n){n.isvector=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.ismatrix(e)&&(n.iscolumn(e)===!0||n.isrow(e)===!0)?!0:!1}}},function(n){n.exports=function(n){n.month=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=function(e){return n.__moment.unix(e).month()};return n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.now=function(){return n.datenum(n.clock())}}},function(n){n.exports=function(n){n.randchar=function(n,e){return 0===arguments.length?"":(e=null==e?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789":e,Array.apply(0,Array(n)).map(function(){return function(n){return n.charAt(Math.floor(Math.random()*n.length))}(e)}).join(""))}}},function(n){n.exports=function(n){n.strfind=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");if(n.isstring(e)&&n.isstring(t)&&e.length>=t.length){for(var r=e.indexOf(t),a=[];r>=0;)a.push(r),r=e.indexOf(t,r+1);return a}throw new Error("unknown arguments")}}},function(n){n.exports=function(n){n.today=function(){var e=n.clock();return n.datenum([e[0],e[1],e[2]])}}},function(n){n.exports=function(n){n.vectorfun=function(){if(arguments.length<3)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments),t=(e.length,e[0]),r=e[1],a=e[2],o=e.slice(3,e.length);if(0!==t&&1!==t)throw new Error("dimension must be 0 (rows) or 1 (columns)");if(!n.isfunction(a))throw new Error("third input argument must be a function");if(1===t)var i=n.ncols(r),s=n.getcol;if(0===t)var i=n.nrows(r),s=n.getrow;if(n.isarray(r))return n.isempty(o)?a.apply(null,[r]):a.apply(null,[].concat([r]).concat(o));var u=[];if(n.ismatrix(r))for(var d=0;i>d;d++){var _=s(r,d),l=a.apply(null,[].concat([_]).concat(o));u.push(l)}return 1===t?n.isarray(u)?[u]:n.squeeze(n.transpose(u)):0===t&&n.isarray(u)?n.transpose(u):n.squeeze(u)}}},function(n){n.exports=function(n){n.weekday=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=function(e){return n.__moment.utc(e,"X").isoWeekday()};return n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.ceil=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t;var r=Math.pow(10,t),a=function(n){return Math.ceil(n*r)/r};return n.arrayfun(e,a)}}},function(n){n.exports=function(n){n.cumdev=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(e){return n.cumsum(n.minus(e,n.mean(e)))};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.cummax=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(n){var e=[];e[0]=n[0];for(var t=1;t<n.length;t++)e[t]=n[t]>=e[t-1]?n[t]:e[t-1];return e};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.cummin=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(n){var e=[];e[0]=n[0];for(var t=1;t<n.length;t++)e[t]=n[t]<e[t-1]?n[t]:e[t-1];return e};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.cumprod=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(n){var e=[];e[0]=n[0];for(var t=1;t<n.length;t++)e[t]=e[t-1]*n[t];return e};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.cumsum=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(n){var e=[];e[0]=n[0];for(var t=1;t<n.length;t++)e[t]=e[t-1]+n[t];return e};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.diff=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(n){for(var e=[],t=1;t<n.length;t++)e[t-1]=n[t]-n[t-1];return e};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.dot=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(n.size(e)[0]!==n.size(t)[0]||n.size(e)[1]!==n.size(t)[1])throw new Error("input size mismatch");return n.sum(n.times(e,t))}}},function(n){n.exports=function(n){n.eq=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");var r=function(n){return 0===n},a=n.minus(e,t);return n.arrayfun(a,r)}}},function(n){n.exports=function(n){n.floor=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t;var r=Math.pow(10,t),a=function(n){return Math.round(n*r)/r};return n.arrayfun(e,a)}}},function(n){n.exports=function(n){n.ge=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");var r=function(n){return n>=0},a=n.minus(e,t);return n.arrayfun(a,r)}}},function(n){n.exports=function(n){n.gt=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");var r=function(n){return n>0},a=n.minus(e,t);return n.arrayfun(a,r)}}},function(n){n.exports=function(n){n.ldivide=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");if(n.isnumber(t)){if(n.isnumber(e))return t/e;if(n.ismatrix(e)){for(var r=[],a=0;a<n.nrows(e);a++){var o=n.getrow(e,a);r[a]=n.arrayfun(o,function(n){return t/n})}return r}return n.arrayfun(e,function(n){return t/n})}if(n.isnumber(e)){if(n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(t);a++){var o=n.getrow(t,a);r[a]=n.arrayfun(o,function(n){return n/e})}return r}return n.arrayfun(t,function(n){return n/e})}if(n.isarray(t)&&n.isarray(e)){for(var r=[],a=0;a<t.length;a++)r[a]=t[a]/e[a];return r}if(n.ismatrix(t)&&n.ismatrix(e)){for(var r=[],a=0;a<n.nrows(t);a++){var i=n.getrow(t,a),s=n.getrow(e,a);r[a]=n.rdivide(i,s)}return r}}}},function(n){n.exports=function(n){n.le=function(e,t){if(arguments.lenleh<2)throw new Error("not enough input arguments");var r=function(n){return 0>=n},a=n.minus(e,t);return n.arrayfun(a,r)}}},function(n){n.exports=function(n){n.lt=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");var r=function(n){return 0>n},a=n.minus(e,t);return n.arrayfun(a,r)}}},function(n){n.exports=function(n){n.minus=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e)){if(n.isnumber(t))return e-t;if(n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(t);a++){var o=n.getrow(t,a);r[a]=n.arrayfun(o,function(n){return e-n})}return r}return n.arrayfun(t,function(n){return e-n})}if(n.isnumber(t)){if(n.ismatrix(e)){for(var r=[],a=0;a<n.nrows(e);a++){var o=n.getrow(e,a);r[a]=n.arrayfun(o,function(n){return n-t})}return r}return n.arrayfun(e,function(n){return n-t})}if(n.isarray(e)&&n.isarray(t)){for(var r=[],a=0;a<e.length;a++)r[a]=e[a]-t[a];return r}if(n.ismatrix(e)&&n.ismatrix(t)){if(n.nrows(e)===n.nrows(t)&&n.ncols(e)===n.ncols(t)){for(var r=[],a=0;a<n.nrows(e);a++){var i=n.getrow(e,a),s=n.getrow(t,a);r[a]=n.minus(i,s)}return r}throw new Error("input dimensions must agree")}}}},function(n){n.exports=function(n){n.mldivide=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");if(n.isnumber(t)&&n.isnumber(e))return t/e;if(n.isnumber(e))return n.ldivide(e,t);if(n.issquare(e)){if(n.ncols(e)!==n.nrows(t))throw new Error("matrix dimensions mismatch");return n.mtimes(n.inv(e),t)}throw new Error("first argument must be square")}}},function(n){n.exports=function(n){n.mod=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");var r=n.floor(n.rdivide(e,t));return n.minus(e,n.times(r,t))}}},function(n){n.exports=function(n){n.mpower=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(!n.issquare(e))throw new Error("input must be a square matrix");if(!n.isnumber(t))throw new Error("exponent must be a scalar value");for(var r=e,a=1;t>a;)r=n.mtimes(e,r),a++;return r}}},function(n){n.exports=function(n){n.mrdivide=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");if(n.isnumber(e)&&n.isnumber(t))return e/t;if(n.isnumber(t))return n.rdivide(e,t);if(n.issquare(t)){if(n.ncols(e)!==n.nrows(t))throw new Error("matrix dimensions mismatch");return n.mtimes(e,n.inv(t))}throw new Error("second argument must be square")}}},function(n){n.exports=function(n){n.mtimes=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(!n.isnumber(e)&&!n.isnumber(t)){var r=n.size(e),a=n.size(t);if(r[1]!==a[0])throw new Error("inner dimension mismatch");for(var o=n.matrix(r[0],a[1]),i=0;i<r[0];i++)for(var s=n.getrow(e,i),u=0;u<a[1];u++){var d=n.getcol(t,u);o[i][u]=n.squeeze(n.dot(s,d))}return o}return n.times(e,t)}}},function(n){n.exports=function(n){n.ne=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");var r=function(n){return 0!==n},a=n.minus(e,t);return n.arrayfun(a,r)}}},function(n){n.exports=function(n){n.plus=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e)){if(n.isnumber(t))return e+t;if(n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(t);a++){var o=n.getrow(t,a);r[a]=n.arrayfun(o,function(n){return e+n})}return r}return n.arrayfun(t,function(n){return e+n})}if(n.isnumber(t)){if(n.ismatrix(e)){for(var r=[],a=0;a<n.nrows(e);a++){var o=n.getrow(e,a);r[a]=n.arrayfun(o,function(n){return n+t})}return r}return n.arrayfun(e,function(n){return n+t})}if(n.isarray(e)&&n.isarray(t)){for(var r=[],a=0;a<e.length;a++)r[a]=e[a]+t[a];return r}if(n.ismatrix(e)&&n.ismatrix(t)){if(n.nrows(e)===n.nrows(t)&&n.ncols(e)===n.ncols(t)){for(var r=[],a=0;a<n.nrows(e);a++){var i=n.getrow(e,a),s=n.getrow(t,a);r[a]=n.plus(i,s)}return r}throw new Error("input dimensions must agree")}}}},function(n){n.exports=function(n){n.power=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");if(n.isnumber(e)){if(n.isnumber(t))return Math.pow(e,t);if(n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(t);a++){var o=n.getrow(t,a);r[a]=n.arrayfun(o,function(n){return Math.pow(e,n)})}return r}return n.arrayfun(t,function(n){return Math.pow(e,n)})}if(n.isnumber(t)){if(n.ismatrix(e)){for(var r=[],a=0;a<n.nrows(e);a++){var o=n.getrow(e,a);r[a]=n.arrayfun(o,function(n){return Math.pow(n,t)})}return r}return n.arrayfun(e,function(n){return Math.pow(n,t)})}if(n.isarray(e)&&n.isarray(t)){for(var r=[],a=0;a<e.length;a++)r[a]=Math.pow(e[a],t[a]);return r}if(n.ismatrix(e)&&n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(e);a++){var i=n.getrow(e,a),s=n.getrow(t,a);r[a]=n.power(i,s)}return r}}}},function(n){n.exports=function(n){n.prod=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(n){for(var e=1,t=0;t<n.length;t++)e*=n[t];return e};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.rdivide=function(e,t){if(arguments.length<2)throw new Error("not enough input arguments");if(n.isnumber(e)){if(n.isnumber(t))return e/t;if(n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(t);a++){var o=n.getrow(t,a);r[a]=n.arrayfun(o,function(n){return e/n})}return r}return n.arrayfun(t,function(n){return e/n})}if(n.isnumber(t)){if(n.ismatrix(e)){for(var r=[],a=0;a<n.nrows(e);a++){var o=n.getrow(e,a);r[a]=n.arrayfun(o,function(n){return n/t})}return r}return n.arrayfun(e,function(n){return n/t})}if(n.isarray(e)&&n.isarray(t)){for(var r=[],a=0;a<e.length;a++)r[a]=e[a]/t[a];return r}if(n.ismatrix(e)&&n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(e);a++){var i=n.getrow(e,a),s=n.getrow(t,a);r[a]=n.rdivide(i,s)}return r}}}},function(n){n.exports=function(n){n.rem=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");var r=n.fix(n.rdivide(e,t));return n.minus(e,n.times(r,t))}}},function(n){n.exports=function(n){n.round=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t;var r=Math.pow(10,t),a=function(n){return Math.round(n*r)/r};return n.arrayfun(e,a)}}},function(n){n.exports=function(n){n.sum=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t;var r=function(n){for(var e=0,t=0;t<n.length;t++)e+=n[t];return e};return n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.times=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e)){if(n.isnumber(t))return e*t;if(n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(t);a++){var o=n.getrow(t,a);r[a]=n.arrayfun(o,function(n){return e*n})}return r}return n.arrayfun(t,function(n){return e*n})}if(n.isnumber(t)){if(n.ismatrix(e)){for(var r=[],a=0;a<n.nrows(e);a++){var o=n.getrow(e,a);r[a]=n.arrayfun(o,function(n){return n*t})}return r}return n.arrayfun(e,function(n){return n*t})}if(n.isarray(e)&&n.isarray(t)){for(var r=[],a=0;a<e.length;a++)r[a]=e[a]*t[a];return r}if(n.ismatrix(e)&&n.ismatrix(t)){for(var r=[],a=0;a<n.nrows(e);a++){var i=n.getrow(e,a),s=n.getrow(t,a);r[a]=n.times(i,s)}return r}throw new Error("unknown input arguments")}}},function(n){n.exports=function(n){n.uminus=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.arrayfun(e,function(n){return-1*n})}}},function(n){n.exports=function(n){n.unique=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,n.ismatrix&&(e=n.flatten(e));for(var r=n.mergesort(e),a=[r[0][1]],o=[r[1][0]],i=1;i<r[0].length;i++)r[0][i]!==r[0][i-1]&&(a.push(r[0][i]),o.push(r[1][i]));if(0===t)return a;if(1===t)return[a,o];throw new Error("flag can be only 0 (default) or 1")}}},function(n){n.exports=function(n){n.abs=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=Math.abs;return n.isnumber(e)?t(e):n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.erf=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return 1-n.erfc(e)}}},function(n){n.exports=function(n){n.erfc=function(n){if(0===arguments.length)throw new Error("not enough input arguments");var e=Math.abs(n),t=1/(.5*e+1),r=.17087277*t+-.82215223,a=t*r+1.48851587,o=t*a+-1.13520398,i=t*o+.27886807,s=t*i+-.18628806,u=t*s+.09678418,d=t*u+.37409196,_=t*d+1.00002368,l=t*_,m=-e*e-1.26551223+l,c=t*Math.exp(m);return 0>n&&(c=2-c),c}}},function(n){n.exports=function(n){n.erfcinv=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(e>=2)return-1/0;if(0>=e)return 1/0;var t=0,r=1>e?e:2-e,a=Math.sqrt(-2*Math.log(r/2));x=-.70711*((2.30753+.27061*a)/(1+a*(.99229+.04481*a))-a);for(var o=0;2>o;o++)t=n.erfc(x)-r,x+=t/(1.1283791670955126*Math.exp(-x*x)-x*t);return 1>e?x:-x}}},function(n){n.exports=function(n){n.erfinv=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t,r,a,o,i,s,u,d,_,l,m,c,f,h;return-1>=e?t=-1/0:e>=1?t=1/0:(-.7>e?(c=(1+e)/2,f=Math.log(c)/Math.log(Math.E),h=Math.sqrt(-f),m=h,r=1.641345311*m+3.429567803,a=r*m+-1.624906493,o=a*m+-1.970840454,i=1.6370678*m+3.5438892,s=i*m+1,u=-o/s,t=u):.7>e?(m=e*e,r=-.140543331*m+.914624893,a=r*m+-1.645349621,o=a*m+.886226899,i=.012229801*m+-.329097515,s=i*m+-.329097515,u=s*m+1.442710462,d=u*m+-2.118377725,_=d*m+1,l=e*o/_,t=l):(c=(1+e)/2,f=Math.log(c),h=Math.sqrt(-f),m=h,r=1.641345311*m+3.429567803,a=r*m+-1.624906493,o=a*m+-1.970840454,i=1.6370678*m+3.5438892,s=i*m+1,u=o/s,t=u),t-=(n.erf(t)-e)/(2/Math.sqrt(Math.PI)*Math.exp(-t*t)),t-=(n.erf(t)-e)/(2/Math.sqrt(Math.PI)*Math.exp(-t*t)))}}},function(n){n.exports=function(n){n.exp=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=Math.exp;return n.isnumber(e)?t(e):n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.log=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=Math.log;return n.isnumber(e)?t(e):n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.sign=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=function(e){return n.isnumber(e)?e>0?1:0>e?-1:0:0/0};return n.isnumber(e)?t(e):n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.sqrt=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=Math.sqrt;return n.isnumber(e)?t(e):n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.det=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e)||n.isarray(e))throw new Error("input must be a matrix");if(!n.issquare(e))throw new Error("matrix must be square");if(n.issingular(e))throw new Error("matrix is singular");for(var t=n.ncols(e),r=n.lu(e),a=r.S,o=0;t>o;o++)a*=r.LU[o][o];return a}}},function(n){n.exports=function(n){n.inv=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(!n.issquare(e))throw new Error("matrix must be square");if(n.isnumber(e))return 1/e;var t=n.nrows(e),r=n.eye(t);return n.linsolve(e,r)}}},function(n){n.exports=function(n){n.linsolve=function(e,t){if(arguments.length<=1)throw new Error("not enough input arguments");if(n.nrows(e)!==n.nrows(t))throw new Error("matrix dimensions must agree");if(!n.issquare(e))throw new Error("matrix must be square");if(n.isnumber(e)&&n.isnumber(t))return t/e;var r=n.lu(e);if(n.issingular(r.LU))throw new Error("matrix is singular");var a=r.LU,o=n.nrows(a),i=n.ncols(t),s=n.colon(0,i-1);n.isarray(t)?x=n.subset(t,r.P):n.ismatrix(t)&&(x=n.subset(t,r.P,s));for(var u=function(n,e,t){sum=0;for(var r=1;e>r;r++){sum=t[r];for(var a=0;r>a;a++)sum-=n[r][a]*t[a];t[r]=sum}t[e-1]/=n[e-1][e-1];for(var r=e-2;r>=0;r--){sum=t[r];for(var a=r+1;e>a;a++)sum-=n[r][a]*t[a];t[r]=sum/n[r][r]}return t},d=0;i>d;d++){var _=n.getcol(x,d);out=0===d?n.transpose(u(a,o,_)):n.cat(1,out,n.transpose(u(a,o,_)))}return out}}},function(n){n.exports=function(n){n.lu=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=function(e){for(var t=n.clone(e),r=n.nrows(t),a=n.ncols(t),o=n.colon(0,r-1),i=1,s=[],u=[],d=0;a>d;d++){u=n.getcol(t,d);for(var _=0;r>_;_++){s=n.getrow(t,_);for(var l=Math.min(_,d),m=0,c=0;l>c;c++)m+=s[c]*u[c];s[d]=u[_]-=m}for(var f=d,_=d+1;r>_;_++)Math.abs(u[_])>Math.abs(u[f])&&(f=_);if(f!==d){for(var c=0;a>c;c++){var h=t[f][c];t[f][c]=t[d][c],t[d][c]=h}var c=o[f];o[f]=o[d],o[d]=c,i=-i}if(r>d&&0!==t[d][d])for(var _=d+1;r>_;_++)t[_][d]/=t[d][d]}return{Y:t,P:o,S:i}},r=function(e){var t=n.nrows(e),r=n.ncols(e);if(r>t)var a=n.zeros(t,t);else var a=n.zeros(t,r);for(var o=0;o<n.nrows(a);o++)for(var i=0;i<n.ncols(a);i++)o>i?a[o][i]=e[o][i]:o==i&&(a[o][i]=1);return a},a=function(e){var t=n.nrows(e),r=n.ncols(e);if(r>t)var a=n.zeros(t,r);else var a=n.zeros(r,r);for(var o=0;t>o;o++)for(var i=0;r>i;i++)i>=o&&(a[o][i]=e[o][i]);return a},o=t(e);return{LU:o.Y,L:r(o.Y),U:a(o.Y),P:o.P,S:o.S}}}},function(n){n.exports=function(n){n.array=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(!n.isnumber(e))throw new Error("number of elements must be a positive integer");t=null==t?null:t;for(var r=[],a=0;e>a;a++)r[a]=t;return r}}},function(n){n.exports=function(n){n.cat=function(){var e=arguments,t=arguments.length,r=[];if(2>t)throw new Error("not enough input arguments");var a=e[0];if(0!==a&&1!==a)throw new Error("dimension must be 0 (rows) or 1 (columns)");if(0===a){for(var o=1;t-1>o;o++){var i=e[o+1];if(n.isnumber(e[1]))if(1===o&&(r=[[e[1]]]),n.isnumber(i))r.push([i]);else if(n.isarray(i)&&1===n.ncols(i))r.push(i);else{if(!n.ismatrix(i)||1!==n.ncols(i))throw new Error("concatenation dimension mismatch");r=r.concat(i)}else if(n.isarray(e[1]))if(1===o&&(r=[e[1]]),n.isnumber(i)&&1===n.ncols(r))r.push([i]);else if(n.isarray(i)&&n.ncols(i)===n.ncols(r))r.push(i);else{if(!n.ismatrix(i)||n.ncols(i)!==n.ncols(r))throw new Error("concatenation dimension mismatch");r=r.concat(i)}else{if(!n.ismatrix(e[1]))throw new Error("unknown input arguments");if(1===o&&(r=e[1]),n.isnumber(i)&&1===n.ncols(r))r.push([i]);else if(n.isarray(i)&&n.ncols(i)===n.ncols(r))r.push(i);else{if(!n.ismatrix(i)||n.ncols(i)!==n.ncols(r))throw new Error("concatenation dimension mismatch");r=r.concat(i)}}}return r}if(1===a){for(var r=[],o=0;t-1>o;o++){var i=e[o+1];if(n.isnumber(i)&&(i=[[i]]),n.isarray(i)&&(i=[i]),0===o)r=n.clone(i);else for(var s=0;s<n.nrows(r);s++){var u=r[s];u=u.concat(i[s]),r[s]=u}}return r}}}},function(n){n.exports=function(n){n.clone=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e))return e;if(n.isarray(e)){for(var t=new Array(e.length),r=0;r<e.length;r++)t[r]=e[r];return t}if(n.ismatrix(e)){for(var a=n.size(e),t=new Array(a[0]),r=0;r<a[0];r++)for(t[r]=new Array(a[1]),j=0;j<a[1];j++)t[r][j]=e[r][j];return t}}}},function(n){n.exports=function(n){n.colon=function(e,t,r){if(arguments.length<2)throw new Error("not enough input arguments");if(r=null==r?1:r,0===r||r>0&&e>t||0>r&&t>e)return[];var a=n.fix((t-e)/r),o=[];o[0]=e;for(var i=1;a>=i;i++)o[i]=o[i-1]+r;return o}}},function(n){n.exports=function(n){n.diag=function(e,t){if(arguments.length<1)throw new Error("not enough input arguments");t=null==t?0:t;var r=Math.abs;if(n.isarray(e)){for(var a=e.length,o=n.zeros(a+r(t),a+r(t)),i=0;a>i;i++)t>=0&&(o[i][i+r(t)]=e[i]),0>t&&(o[i+r(t)][i]=e[i]);return o}if(n.ismatrix(e)){for(var o=[],i=0;i<n.nrows(e)-r(t);i++)t>=0&&o.push(e[i][i+r(t)]),0>t&&o.push(e[i+r(t)][i]);return o}throw new Error("unknown input")}}},function(n){n.exports=function(n){n.end=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(t=null==t?-1:t,n.isnumber(e))return e;if(n.isarray(e))return e.length-1;if(n.ismatrix(e)){if(!n.isinteger(t)||-1>t||t>1)throw new Error("dimension must be -1,0,1");var r=[n.nrows(e)-1,n.ncols(e)-1];return-1===t?r:r[t]}throw new Error("unkown input arguments")}}},function(n){n.exports=function(n){n.eye=function(){if(0===arguments.length)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments);n.ismatrix(e)&&(e=e[0]),1===e.length&&(e=[e[0],e[0]]);var t=n.matrix(e,0);if(n.isnumber(t))return 1;for(var r=0;r<Math.min.apply(Math,n.size(t));r++)t[r][r]=1;return t}}},function(n){n.exports=function(n){n.falses=function(){if(0===arguments.length)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments);return n.ismatrix(e)&&(e=e[0]),1===e.length&&(e=[e[0],e[0]]),n.matrix(e,!1)}}},function(n){n.exports=function(n){n.find=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e))throw Error("input must be an array or matrix");n.ismatrix(e)&&(e=n.flatten(e));var t=n.colon(0,e.length);return t.filter(function(n){return e[n]===!0})}}},function(n){n.exports=function(n){n.fix=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=function(n){return 0>n?Math.ceil(n):Math.floor(n)};return n.arrayfun(e,t)}}},function(n){n.exports=function(n){n.flatten=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(t=null==t?0:t,n.isnumber(e)||n.isarray(e))return e;if(n.ismatrix(e))return 1===t&&(e=n.transpose(e)),e=Array.prototype.concat.apply([],e),e.some(Array.isArray)?this.flatten(e):e;throw new Error("unknown input arguments")}}},function(n){n.exports=function(n){n.flipdim=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t;var r=function(e){return n.clone(e.reverse())};if(n.isnumber(e))return e;if(n.isarray(e))return 1===t?r(e):e;if(n.ismatrix(e))return n.vectorfun(1-t,e,r);throw new Error("unknown input arguments")}}},function(n){n.exports=function(n){n.fliplr=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.flipdim(e,1)}}},function(n){n.exports=function(n){n.flipud=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.flipdim(e,0)}}},function(n){n.exports=function(n){n.getcol=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(t=null==t?0:t,n.isarray(e))throw new Error("input must be a matrix");if(!n.isinteger(t)||0>t||t>=n.ncols(e))throw new Error("col must be an integer between 0 and N - 1 columns");for(var r=[],a=0;a<e.length;a++)r[a]=e[a][t];return r}}},function(n){n.exports=function(n){n.getrow=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");if(t=null==t?0:t,n.isarray(e))throw new Error("input must be a matrix");if(!n.isinteger(t)||0>t||t>=n.nrows(e))throw new Error("row must be an integer between 0 and N - 1 rows");return e[t]}}},function(n){n.exports=function(n){n.horzcat=function(){var e=n.argsarray.apply(null,arguments);return n.cat.apply(null,[].concat(1,e))}}},function(n){n.exports=function(n){n.ind2sub=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");var r=function(e,t){var r=n.rem(t,e[0]);return[r,(t-r)/e[0]]};if(n.isarray(t)){for(var a=[],o=0;o<t.length;o++)a.push(r(e,t[o]));return a}return r(e,t)}}},function(n){n.exports=function(n){n.iscolumn=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.nrows(e)>1&&1===n.ncols(e)?!0:!1}}},function(n){n.exports=function(n){n.isrow=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return 1===n.nrows(e)&&n.ncols(e)>1?!0:!1
}}},function(n){n.exports=function(n){n.issquare=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.nrows(e)===n.ncols(e)?!0:!1}}},function(n){n.exports=function(n){n.length=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return Math.max.apply(null,n.size(e))}}},function(n){n.exports=function(n){n.linspace=function(n,e,t){if(arguments.length<2)throw new Error("not enough input arguments");t=null==t?10:t;var r=[],a=(e-n)/(t-1);r[0]=n,r[t-1]=e;for(var o=0;t>o;o++)r[o]=n+a*o;return r}}},function(n){n.exports=function(n){n.logspace=function(e,t,r){if(arguments.length<2)throw new Error("not enough input arguments");return r=null==r?10:r,n.linspace(e,t,r).map(function(n){return Math.pow(10,n)})}}},function(n){n.exports=function(n){n.matrix=function(){if(0===arguments.length)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments),t=e.length,r=function(n,e,t){for(var r=[],a=0;n>a;a++){r[a]=[];for(var o=0;e>o;o++)r[a][o]=t}return r};if(n.isempty(e))return[[]];if(1===t){if(n.isnumber(e[0]))return 0===e[0]?[[]]:r(e[0],e[0],null);if(n.isarray(e[0]))return 1===e[0].length?0===e[0][0]?[[]]:r(e[0][0],e[0][0],null):0===e[0][0]||0===e[0][1]?[[]]:r(e[0][0],e[0][1],null);throw new Error("unknwon input type")}if(2===t)return n.isnumber(e[0])&&n.isnumber(e[1])?r(e[0],e[1],null):r(e[0][0],e[0][1],e[1]);if(3===t)return 0===e[0]||0===e[1]?[[]]:r(e[0],e[1],e[2]);throw new Error("too manny input arguments")}}},function(n){n.exports=function(n){n.mergesort=function(e,t){var r=this;if(0===arguments.length)throw new Error("not enough input arguments");n.isarray(e)&&(e=[e,n.colon(0,e.length-1)]);var a=e[0].length;if(t=t||"ascend",2>a)return e;var o=parseInt(a/2),i=e[0].slice(0,o),s=e[1].slice(0,o),u=e[0].slice(o,a),d=e[1].slice(o,a),_=[i,s],l=[u,d],m=function(n,e,t){for(var r=[],a=[];n[0].length&&e[0].length;){if("ascend"===t)var o=n[0][0]<=e[0][0];else{if("descend"!==t)throw new Error('sorting must be "ascend" or "descend"');var o=n[0][0]>=e[0][0]}o?(r.push(n[0].shift()),a.push(n[1].shift())):(r.push(e[0].shift()),a.push(e[1].shift()))}for(;n[0].length;)r.push(n[0].shift()),a.push(n[1].shift());for(;e[0].length;)r.push(e[0].shift()),a.push(e[1].shift());return[r,a]};return m(r.mergesort(_,t),r.mergesort(l,t),t)}}},function(n){n.exports=function(n){n.ncols=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.size(e)[1]}}},function(n){n.exports=function(n){n.ndims=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.length(n.size(e))}}},function(n){n.exports=function(n){n.nrows=function(e){if(0===arguments.length)throw new Error("not enough input arguments");return n.size(e)[0]}}},function(n){n.exports=function(n){n.numel=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=n.size(e);return t[0]*t[1]}}},function(n){n.exports=function(n){n.ones=function(){if(0===arguments.length)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments);return n.ismatrix(e)&&(e=e[0]),1===e.length&&(e=[e[0],e[0]]),n.matrix(e,1)}}},function(n){n.exports=function(n){n.rand=function(){var e=arguments,t=arguments.length,r=function(n,e){for(var t=new Array(n),r=0;n>r;r++)for(t[r]=new Array(e),j=0;j<e;j++)t[r][j]=Math.random();return t};if(0===t)return Math.random();if(1===t){if(n.isnumber(e[0]))return r(e[0],e[0]);if(n.isarray(e[0]))return r(e[0][0],e[0][1]);throw new Error("unknwon input type")}if(2===t)return n.isnumber(e[0])&&n.isnumber(e[1])?r(e[0],e[1]):r(e[0][0],e[0][1],e[1]);if(3===t)return r(e[0],e[1],e[2]);throw new Error("too manny input arguments")}}},function(n){n.exports=function(n){n.repmat=function(e,t,r){if(arguments.length<2)throw new Error("not enough input arguments");2===arguments.length&&(r=t),(n.isnumber(e)||n.isarray(e)||n.islogical(e))&&(e=n.tomat(e));for(var a=n.size(e),o=n.matrix(a[0]*t,a[1]*r),i=0;t>i;i++)for(var s=0;r>s;s++)for(var u=0;u<a[0];u++)for(var d=0;d<a[1];d++)o[i*a[0]+u][s*a[1]+d]=e[u][d];return o}}},function(n){n.exports=function(n){n.reshape=function(e,t,r,a){if(arguments.length<3)throw new Error("not enough input arguments");if(a=null==a?0:a,!n.isinteger(t)||!n.isinteger(r))throw new Error("dimensions must be integer numbers");var o=n.nrows(e),i=n.ncols(e),s=o*i;if(t*r!==s)throw new Error("total number of elements must be the same");if(n.isnumber(e))return e;if(n.isarray(e))return t===o&&r===i?e:n.transpose(e);if(n.ismatrix(e)){for(var u=n.matrix(t,r,0/0),d=n.flatten(e,a),_=0;t*r>_;_++){var l=n.ind2sub([t,r],_);u[l[0]][l[1]]=d[_]}return u}throw new Error("unknown input arguments")}}},function(n){n.exports=function(n){n.setcol=function(e,t,r){if(arguments.length<2)throw new Error("not enough input arguments");if(r=null==r?0:r,n.isarray(e)&&(e=n.transpose(e)),!n.isinteger(r)||0>r||r>=n.ncols(t))throw new Error("col must be an integer between 0 and N - 1 columns");for(var a=0;a<n.nrows(t);a++)t[a][r]=e[a][0];return t}}},function(n){n.exports=function(n){n.setrow=function(e,t,r){if(arguments.length<2)throw new Error("not enough input arguments");if(r=null==r?0:r,n.isarray(e)&&(e=[e]),!n.isinteger(r)||0>r||r>=n.nrows(t))throw new Error("row must be an integer between 0 and N - 1 rows");for(var a=0;a<n.ncols(t);a++)t[r][a]=e[0][a];return t}}},function(n){n.exports=function(n){n.size=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnull(e)||n.isundefined(e))throw new Error("unknown input type");if(n.isstring(e))return[1,e.length];if(n.isnumber(e))return[1,1];if(n.isarray(e))return[1,e.length];for(var t=e.length,r=[];!n.isundefined(t)&&!n.isstring(e);)r.push(t),e=e[0],t=e.length;return r}}},function(n){n.exports=function(n){n.sort=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?"ascend":t,r=null==r?1:r;var a=function(e,t){var r=n.mergesort(e,t);return r[0]};return n.isnumber(e)?e:n.isarray(e)?a(e,t):n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.squeeze=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(arguments.length>1)throw new Error("too many input arguments");if(n.isnumber(e)||n.isstring(e))return e;for(var t=n.size(e);t.length>2;)e=e[0],t=n.size(e);return e}}},function(n){n.exports=function(n){n.sub2ind=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");n.isarray(t)&&(t=[t]);for(var r=n.getcol(t,0),a=n.getcol(t,1),o=[],i=0;i<r.length;i++)o[i]=r[i]+a[i]*e[0];return 1===n.numel(o)?n.squeeze(o)[0]:n.squeeze(o)}}},function(n){n.exports=function(n){n.subset=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");if(arguments.length>3)throw new Error("too many input arguments");if(1===arguments.length)return e;if(2===arguments.length){if(n.isnumber(e))return e;if(n.isarray(e))return n.isnumber(t)?e[t]:t.map(function(n){return e[n]})}if(3===arguments.length){if(n.ismatrix(e)){":"===t&&(t=n.colon(0,n.nrows(e)-1)),":"===r&&(r=n.colon(0,n.ncols(e)-1)),n.isnumber(t)&&(t=[t]),n.isnumber(r)&&(r=[r]),out=1===t.length&&1===r.length?[[0]]:n.zeros(t.length,r.length);for(var a=0;a<t.length;a++)for(var o=t[a],i=0;i<r.length;i++)out[a][i]=e[o][r[i]];return n.squeeze(out)}throw new Error("input must be a matrix")}}}},function(n){n.exports=function(n){n.subsetlin=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");if(1===arguments.length||n.isnumber(e))return e;r=null==r?0:r,n.isnumber(t)&&(t=[t]);var a=n.flatten(e,r);return n.squeeze(n.arrayfun(t,function(n){return a[n]}))}}},function(n){n.exports=function(n){n.tomat=function(e){if(0===arguments.length)throw new Error("not enough input arguments");if(n.isnumber(e)||n.islogical(e))return[[e]];if(n.isarray(e))return[e];if(n.ismatrix(e))return e;throw new Error("unknown input arguments")}}},function(n){n.exports=function(n){n.transpose=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=function(e,t,r){for(var a=n.matrix(t,r),o=0;t>o;o++)for(var i=0;r>i;i++)a[o][i]=e[i][o];return a};return n.isnumber(e)?e:n.isarray(e)?t([e],e.length,1):t(e,n.ncols(e),n.nrows(e))}}},function(n){n.exports=function(n){n.trues=function(){if(0===arguments.length)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments);return n.ismatrix(e)&&(e=e[0]),1===e.length&&(e=[e[0],e[0]]),n.matrix(e,!0)}}},function(n){n.exports=function(n){n.vertcat=function(){var e=n.argsarray.apply(null,arguments);return n.cat.apply(null,[].concat(0,e))}}},function(n){n.exports=function(n){n.zeros=function(){if(0===arguments.length)throw new Error("not enough input arguments");var e=n.argsarray.apply(null,arguments);return n.ismatrix(e)&&(e=e[0]),1===e.length&&(e=[e[0],e[0]]),n.matrix(e,0)}}},function(n){n.exports=function(n){n.jbtest=function(e){if(0===arguments.length)throw new Error("not enough input arguments");var t=e.length,r=n.skewness(e),a=n.xkurtosis(e);return t/6*(Math.pow(r,2)+Math.pow(a,2)/4)}}},function(n){n.exports=function(n){n.normcdf=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");return t=null==t?0:t,r=null==r?1:r,.5*(1+n.erf((e-t)/Math.sqrt(2*r*r)))}}},function(n){n.exports=function(n){n.norminv=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");if(t=null==t?0:t,r=null==r?1:r,0>=e||e>=1)throw new Error("invalid input argument");var a=-Math.sqrt(2)*n.erfcinv(2*e);return a*r+t}}},function(n){n.exports=function(n){n.normpdf=function(n,e,t){if(0===arguments.length)throw new Error("not enough input arguments");return e=null==e?0:e,t=null==t?1:t,Math.exp(-.5*Math.pow((n-e)/t,2))/(Math.sqrt(2*Math.PI)*t)}}},function(n){n.exports=function(n){n.activereturn=function(e,t,r,a,o){if(arguments.length<2)throw new Error("not enough input arguments");r=null==r?252:r,a=null==a?"geometric":a,o=null==o?0:o;var i=function(e,t,r,a){return n.annreturn(e,r,a)-n.annreturn(t,r,a)};if(n.isnumber(e)||n.isnumber(t))throw new Error("input must be an array or matrix");return n.vectorfun(o,e,i,t,r,a)}}},function(n){n.exports=function(n){n.adjsharpe=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?0:r;var a=function(e,t){var r=n.sharpe(e,t),a=n.skewness(e),o=n.kurtosis(e);return r*(1+a/6*r-(o-3)/24*Math.sqrt(r))};return n.isnumber(e)?0/0:n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.annadjsharpe=function(e,t,r,a,o){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?252:r,a=null==a?"geometric":a,o=null==o?0:o;var i=function(e,t,r,a){var o=n.annreturn(e,r,a),i=n.annrisk(e,r),s=(o-t)/i,u=n.skewness(e),d=n.kurtosis(e);return s*(1+u/6*s-(d-3)/24*Math.sqrt(s))};if(n.isnumber(e))throw 0/0;return n.vectorfun(o,e,i,t,r,a)}}},function(n){n.exports=function(n){n.annreturn=function(e,t,r,a){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?252:t,r=null==r?"geometric":r,a=null==a?0:a;var o=function(e,t,r){var a=e.length;if("geometric"===r)return n.power(n.prod(n.plus(1,e)),t/a)-1;if("simple"===r)return n.mean(e)*t;throw new Error("unknown mode")};return n.isnumber(e)?0/0:n.vectorfun(a,e,o,t,r)}}},function(n){n.exports=function(n){n.annrisk=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?252:t,r=null==r?0:r;var a=function(e,t){return Math.sqrt(t)*n.std(e)};return n.isnumber(e)?0/0:n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.avgdrawdown=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?0:r;var a=function(e,t){var r=n.cdrawdown(e);if(0===t)return n.mean(r);if(t>0&&t<=r.length){var a=n.sort(r,"descend");return n.mean(n.subsetlin(a,n.colon(0,t-1)))}return 0/0};return n.isnumber(e)?0:n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.burkeratio=function(e,t,r,a,o){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?252:r,a=null==a?"simple":a,o=null==o?0:o;var i=function(e,t,r,a){var o=n.annreturn(e,r),i=n.sqrt(n.sum(n.power(n.cdrawdown(e),2)));if("simple"===a)return(o-t)/i;if("modified"===a)return(o-t)/i*n.sqrt(e.length);throw new Error("unknown mode")};if(n.isnumber(e))throw new Error("input arguments must be an array or matrix");return n.vectorfun(o,e,i,t,r,a)}}},function(n){n.exports=function(n){n.cagr=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t,r=null==r?0:r;var o=function(e,t){return n.power(1+n.ror(e,"ret"),1/t)-1};return n.isnumber(e)?n.power(a,1/t)-1:n.vectorfun(r,e,o,t)}}},function(n){n.exports=function(n){n.calmarratio=function(e,t,r,a){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?252:r,a=null==a?0:a;var o=function(e,t,r){var a=n.annreturn(e,r),o=n.drawdown(e).maxdd;return(a-t)/o};if(n.isnumber(e))throw new Error("input arguments must be an array or matrix");return n.vectorfun(a,e,o,t,r)}}},function(n){n.exports=function(n){n.cdrawdown=function(e,t){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t;var r=function(n){for(var e=[],t=0,r=0,a=0;a<n.length;a++)0===a&&n[a]<0&&(t=1+n[a]),a>0&&(n[a]<0&&(0===t?t=1+n[a]:t*=1+n[a]),n[a]>=0&&0!==t&&(e[r]=1-t,r++,t=0));return 0!==t&&(e.push(1-t),t=0),e};return n.isnumber(e)?0:n.vectorfun(t,e,r)}}},function(n){n.exports=function(n){n.downsidepot=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?0:r;var a=function(n,e){for(var t=0,r=0;r<n.length;r++)t+=Math.max(e-n[r],0)/n.length;return t};return n.isnumber(e)?e:n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.downsiderisk=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?0:r;var a=function(n,e){for(var t=0,r=0;r<n.length;r++)t+=Math.pow(Math.min(n[r]-e,0),2)/n.length;return Math.sqrt(t)};return n.isnumber(e)?e:n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.drawdown=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?"return":t,r=null==r?0:r;var a=function(e,t){if("return"===t)_a=n.cumprod(n.plus(e,1));else{if("geometric"!==t)throw new Error("unknown drawdown mode");_a=n.log(n.cumprod(n.plus(e,1)))}var r=_a[0],a=1,o=n.array(_a.length,0),i=n.array(_a.length,0),s=0,u=[1,_a.length],d=[],_=0;d[_]=0;for(var l=0;l<_a.length;l++)r<=_a[l]&&(r=_a[l],a=l+1),"return"===t?o[l]=(r-_a[l])/r:"geometric"===t&&(o[l]=r-_a[l]),0!==o[l]&&(i[l]=l+1),o[l]>s&&(s=o[l],u[0]=a,u[1]=l+1);return{dd:o,ddrecov:i,maxdd:s,maxddrecov:u}};return n.isnumber(e)?0:n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.histcondvar=function(e,t,r,a,o){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?.95:t,r=null==r?1:r,a=null==a?1:a,o=null==o?0:o;var i=function(e,t,r,a){for(var o=-n.histvar(e,t),i=[],s=0,u=0;u<e.length;u++)e[u]<=o&&(i[s]=e[u],s++);return-n.mean(i)*Math.sqrt(a)*r};return n.isnumber(e)?e:n.vectorfun(o,e,i,t,r,a)}}},function(n){n.exports=function(n){n.histvar=function(e,t,r,a,o){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?.95:t,r=null==r?1:r,a=null==a?1:a,o=null==o?0:o;var i=function(e,t,r,a){return-n.quantile(e,1-t)*Math.sqrt(a)*r};return n.isnumber(e)?e:n.vectorfun(o,e,i,t,r,a)}}},function(n){n.exports=function(n){n.hurst=function(e,t,r){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?1:t,r=null==r?0:r;var a=function(e,t){var r=n.cumdev(e),a=(n.max(r)-n.min(r))/n.std(e,t);return Math.log(a)/Math.log(e.length)};return n.isnumber(e)?0:n.vectorfun(r,e,a,t)}}},function(n){n.exports=function(n){n.inforatio=function(e,t,r){if(arguments.length<2)throw new Error("not enough input arguments");r=null==r?0:r;var a=function(e,t){return n.mean(n.minus(e,t))/n.std(n.minus(e,t))};if(n.isarray(e)&&n.isarray(t))return a(e,t);if(n.ismatrix(e)&&n.isarray(t))return n.vectorfun(r,e,a,t);throw new Error("first input must be an array/matrix, the second one an array")}}},function(n){n.exports=function(n){n.irr=function(e,t,r,a){if(arguments.length<1)throw new Error("not enough input arguments");var o=function(n,e,t,r){for(var a=0,o=0;o<n.length;o++)a+=n[o]/Math.pow(1+r,e[o]/t);return a},i=function(n,e,t,r){for(var a=0,o=0;o<n.length;o++)a-=e[o]/t*n[o]/Math.pow(1+r,e[o]/t);return a};1===arguments.length&&(t=n.colon(0,e.length-1,1),r=1,a=.1),2===arguments.length&&(r=1,a=.1),3===arguments.length&&(a=.1);var s=a,u=1e-6,d=50,_=0,l=0,m=0,c=0,f=!0;do m=o(e,t,r,s),_=s-m/i(e,t,r,s),l=Math.abs(_-s),s=_,f=l>u&&Math.abs(m)>u;while(f&&c++<d);if(f)throw new Error("number error");return s}}},function(n){n.exports=function(n){n.jensenalpha=function(e,t,r,a){if(arguments.length<2)throw new Error("not enough input arguments");r=null==r?0:r,a=null==a?0:a;var o=function(e,t,r){var a=n.linearreg(e,t).beta;return n.mean(e)-r-a*(n.mean(t)-r)};if(n.isarray(e)&&n.isarray(t))return o(e,t,r);if(n.ismatrix(e)&&n.isarray(t))return n.vectorfun(a,e,o,t,r);throw new Error("first input must be an array/matrix, the second one an array")}}},function(n){n.exports=function(n){n.m2sortino=function(e,t,r,a,o,i){if(arguments.length<2)throw new Error("not enough input arguments");r=null==r?0:r,a=null==a?0:a,o=null==o?252:o,i=null==i?0:i;var s=function(e,t,r,a,o){return n.annreturn(e,o)+n.sortino(e,r,a)*(n.downsiderisk(t,a)*n.sqrt(o)-n.downsiderisk(e,a)*n.sqrt(o))};if(n.isarray(e)&&n.isarray(t))return s(e,t,r,a,o);if(n.ismatrix(e)&&n.isarray(t))return n.vectorfun(i,e,s,t,r,a,o);throw new Error("first input must be an array/matrix, the second one an array")}}},function(n){n.exports=function(n){n.martinratio=function(e,t,r,a,o){if(0===arguments.length)throw new Error("not enough input arguments");t=null==t?0:t,r=null==r?252:r,a=null==a?"return":a,o=null==o?0:o;var i=fun