UNPKG

adsoda

Version:

ADSODA - Arbitrary-Dimensional Solid Object Display Algorithm - after a Greg Ferrar algorithm

1 lines 145 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("adsoda",[],e):"object"==typeof exports?exports.adsoda=e():t.adsoda=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=71)}([function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var i=r(12);e.clone=function t(r){var o=n(r);if("number"===o||"string"===o||"boolean"===o||null==r)return r;if("function"==typeof r.clone)return r.clone();if(Array.isArray(r))return r.map(function(e){return t(e)});if(r instanceof Date)return new Date(r.valueOf());if(i(r))return r;if(r instanceof RegExp)throw new TypeError("Cannot clone "+r);return e.map(r,t)},e.map=function(t,r){var n={};for(var i in t)e.hasOwnProperty(t,i)&&(n[i]=r(t[i]));return n},e.extend=function(t,r){for(var n in r)e.hasOwnProperty(r,n)&&(t[n]=r[n]);return t},e.deepExtend=function t(r,n){if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var i in n)if(e.hasOwnProperty(n,i))if(n[i]&&n[i].constructor===Object)void 0===r[i]&&(r[i]={}),r[i].constructor===Object?t(r[i],n[i]):r[i]=n[i];else{if(Array.isArray(n[i]))throw new TypeError("Arrays are not supported by deepExtend");r[i]=n[i]}return r},e.deepEqual=function(t,r){var n,i,o;if(Array.isArray(t)){if(!Array.isArray(r))return!1;if(t.length!==r.length)return!1;for(i=0,o=t.length;i<o;i++)if(!e.deepEqual(t[i],r[i]))return!1;return!0}if(t instanceof Object){if(Array.isArray(r)||!(r instanceof Object))return!1;for(n in t)if(!e.deepEqual(t[n],r[n]))return!1;for(n in r)if(!e.deepEqual(t[n],r[n]))return!1;return!0}return t===r},e.canDefineProperty=function(){try{if(Object.defineProperty)return Object.defineProperty({},"x",{get:function(){}}),!0}catch(t){}return!1},e.lazy=function(t,r,n){if(e.canDefineProperty()){var i,o=!0;Object.defineProperty(t,r,{get:function(){return o&&(i=n(),o=!1),i},set:function(t){i=t,o=!1},configurable:!0,enumerable:!0})}else t[r]=n()},e.traverse=function(t,e){var r=t;if(e)for(var n=e.split("."),i=0;i<n.length;i++){var o=n[i];o in r||(r[o]={}),r=r[o]}return r},e.hasOwnProperty=function(t,e){return t&&Object.hasOwnProperty.call(t,e)},e.isFactory=function(t){return t&&"function"==typeof t.factory}},function(t,e,r){"use strict";var n=r(0);function i(t){for(var e=[],r=0;r<t;r++)e.push(0);return e}e.isNumber=function(t){return"number"==typeof t},e.isInteger=function(t){return"boolean"==typeof t||!!isFinite(t)&&t===Math.round(t)},e.sign=Math.sign||function(t){return t>0?1:t<0?-1:0},e.format=function(t,r){if("function"==typeof r)return r(t);if(t===1/0)return"Infinity";if(t===-1/0)return"-Infinity";if(isNaN(t))return"NaN";var i,o="auto";switch(r&&(r.notation&&(o=r.notation),e.isNumber(r)?i=r:e.isNumber(r.precision)&&(i=r.precision)),o){case"fixed":return e.toFixed(t,i);case"exponential":return e.toExponential(t,i);case"engineering":return e.toEngineering(t,i);case"auto":if(r&&r.exponential&&(void 0!==r.exponential.lower||void 0!==r.exponential.upper)){var a=n.map(r,function(t){return t});return a.exponential=void 0,void 0!==r.exponential.lower&&(a.lowerExp=Math.round(Math.log(r.exponential.lower)/Math.LN10)),void 0!==r.exponential.upper&&(a.upperExp=Math.round(Math.log(r.exponential.upper)/Math.LN10)),console.warn("Deprecation warning: Formatting options exponential.lower and exponential.upper (minimum and maximum value) are replaced with exponential.lowerExp and exponential.upperExp (minimum and maximum exponent) since version 4.0.0. Replace "+JSON.stringify(r)+" with "+JSON.stringify(a)),e.toPrecision(t,i,a)}return e.toPrecision(t,i,r&&r).replace(/((\.\d*?)(0+))($|e)/,function(){var t=arguments[2],e=arguments[4];return"."!==t?t+e:e});default:throw new Error('Unknown notation "'+o+'". Choose "auto", "exponential", or "fixed".')}},e.splitNumber=function(t){var e=String(t).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!e)throw new SyntaxError("Invalid number "+t);var r=e[1],n=e[2],i=parseFloat(e[4]||"0"),o=n.indexOf(".");i+=-1!==o?o-1:n.length-1;var a=n.replace(".","").replace(/^0*/,function(t){return i-=t.length,""}).replace(/0*$/,"").split("").map(function(t){return parseInt(t)});return 0===a.length&&(a.push(0),i++),{sign:r,coefficients:a,exponent:i}},e.toEngineering=function(t,r){if(isNaN(t)||!isFinite(t))return String(t);var n=e.roundDigits(e.splitNumber(t),r),o=n.exponent,a=n.coefficients,u=o%3==0?o:o<0?o-3-o%3:o-o%3;if(e.isNumber(r))r>a.length&&(a=a.concat(i(r-a.length)));else{var s=o>=0?o:Math.abs(u);a.length-1<s&&(a=a.concat(i(s-(a.length-1))))}for(var c=Math.abs(o-u),f=1;--c>=0;)f++;var l=a.slice(f).join(""),p=e.isNumber(r)&&l.length||l.match(/[1-9]/)?"."+l:"",h=a.slice(0,f).join("")+p+"e"+(o>=0?"+":"")+u.toString();return n.sign+h},e.toFixed=function(t,r){if(isNaN(t)||!isFinite(t))return String(t);var n=e.splitNumber(t),o="number"==typeof r?e.roundDigits(n,n.exponent+1+r):n,a=o.coefficients,u=o.exponent+1,s=u+(r||0);return a.length<s&&(a=a.concat(i(s-a.length))),u<0&&(a=i(1-u).concat(a),u=1),u<a.length&&a.splice(u,0,0===u?"0.":"."),o.sign+a.join("")},e.toExponential=function(t,r){if(isNaN(t)||!isFinite(t))return String(t);var n=e.splitNumber(t),o=r?e.roundDigits(n,r):n,a=o.coefficients,u=o.exponent;a.length<r&&(a=a.concat(i(r-a.length)));var s=a.shift();return o.sign+s+(a.length>0?"."+a.join(""):"")+"e"+(u>=0?"+":"")+u},e.toPrecision=function(t,r,n){if(isNaN(t)||!isFinite(t))return String(t);var o=n&&void 0!==n.lowerExp?n.lowerExp:-3,a=n&&void 0!==n.upperExp?n.upperExp:5,u=e.splitNumber(t);if(u.exponent<o||u.exponent>=a)return e.toExponential(t,r);var s=r?e.roundDigits(u,r):u,c=s.coefficients,f=s.exponent;c.length<r&&(c=c.concat(i(r-c.length))),c=c.concat(i(f-c.length+1+(c.length<r?r-c.length:0)));var l=f>0?f:0;return l<(c=i(-f).concat(c)).length-1&&c.splice(l+1,0,"."),s.sign+c.join("")},e.roundDigits=function(t,e){for(var r={sign:t.sign,coefficients:t.coefficients,exponent:t.exponent},n=r.coefficients;e<=0;)n.unshift(0),r.exponent++,e++;if(n.length>e&&n.splice(e,n.length-e)[0]>=5){var i=e-1;for(n[i]++;10===n[i];)n.pop(),0===i&&(n.unshift(0),r.exponent++,i++),n[--i]++}return r},e.digits=function(t){return t.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length},e.DBL_EPSILON=Number.EPSILON||2.220446049250313e-16,e.nearlyEqual=function(t,r,n){if(null==n)return t===r;if(t===r)return!0;if(isNaN(t)||isNaN(r))return!1;if(isFinite(t)&&isFinite(r)){var i=Math.abs(t-r);return i<e.DBL_EPSILON||i<=Math.max(Math.abs(t),Math.abs(r))*n}return!1}},function(t,e,r){"use strict";e.name="matrix",e.factory=function(t,e,r,n){var i=n("matrix",{"":function(){return o([])},string:function(t){return o([],t)},"string, string":function(t,e){return o([],t,e)},Array:function(t){return o(t)},Matrix:function(t){return o(t,t.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});return i.toTex={0:"\\begin{bmatrix}\\end{bmatrix}",1:"\\left(${args[0]}\\right)",2:"\\left(${args[0]}\\right)"},i;function o(e,r,n){return new(t.Matrix.storage(r||"default"))(e,n)}}},function(t,e,r){"use strict";function n(t,e,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.actual=t,this.expected=e,this.relation=r,this.message="Dimension mismatch ("+(Array.isArray(t)?"["+t.join(", ")+"]":t)+" "+(this.relation||"!=")+" "+(Array.isArray(e)?"["+e.join(", ")+"]":e)+")",this.stack=(new Error).stack}n.prototype=new RangeError,n.prototype.constructor=RangeError,n.prototype.name="DimensionError",n.prototype.isDimensionError=!0,t.exports=n},function(t,e,r){"use strict";var n=r(51);e.symbols={Alpha:"A",alpha:"\\alpha",Beta:"B",beta:"\\beta",Gamma:"\\Gamma",gamma:"\\gamma",Delta:"\\Delta",delta:"\\delta",Epsilon:"E",epsilon:"\\epsilon",varepsilon:"\\varepsilon",Zeta:"Z",zeta:"\\zeta",Eta:"H",eta:"\\eta",Theta:"\\Theta",theta:"\\theta",vartheta:"\\vartheta",Iota:"I",iota:"\\iota",Kappa:"K",kappa:"\\kappa",varkappa:"\\varkappa",Lambda:"\\Lambda",lambda:"\\lambda",Mu:"M",mu:"\\mu",Nu:"N",nu:"\\nu",Xi:"\\Xi",xi:"\\xi",Omicron:"O",omicron:"o",Pi:"\\Pi",pi:"\\pi",varpi:"\\varpi",Rho:"P",rho:"\\rho",varrho:"\\varrho",Sigma:"\\Sigma",sigma:"\\sigma",varsigma:"\\varsigma",Tau:"T",tau:"\\tau",Upsilon:"\\Upsilon",upsilon:"\\upsilon",Phi:"\\Phi",phi:"\\phi",varphi:"\\varphi",Chi:"X",chi:"\\chi",Psi:"\\Psi",psi:"\\psi",Omega:"\\Omega",omega:"\\omega",true:"\\mathrm{True}",false:"\\mathrm{False}",i:"i",inf:"\\infty",Inf:"\\infty",infinity:"\\infty",Infinity:"\\infty",oo:"\\infty",lim:"\\lim",undefined:"\\mathbf{?}"},e.operators={transpose:"^\\top",ctranspose:"^H",factorial:"!",pow:"^",dotPow:".^\\wedge",unaryPlus:"+",unaryMinus:"-",bitNot:"\\~",not:"\\neg",multiply:"\\cdot",divide:"\\frac",dotMultiply:".\\cdot",dotDivide:".:",mod:"\\mod",add:"+",subtract:"-",to:"\\rightarrow",leftShift:"<<",rightArithShift:">>",rightLogShift:">>>",equal:"=",unequal:"\\neq",smaller:"<",larger:">",smallerEq:"\\leq",largerEq:"\\geq",bitAnd:"\\&",bitXor:"\\underline{|}",bitOr:"|",and:"\\wedge",xor:"\\veebar",or:"\\vee"},e.defaultTemplate="\\mathrm{${name}}\\left(${args}\\right)";var i={deg:"^\\circ"};e.escape=function(t){return n(t,{preserveFormatting:!0})},e.toSymbol=function(t,r){return(r=void 0!==r&&r)?i.hasOwnProperty(t)?i[t]:"\\mathrm{"+e.escape(t)+"}":e.symbols.hasOwnProperty(t)?e.symbols[t]:e.escape(t)}},function(t,e,r){"use strict";var n=r(1).nearlyEqual,i=r(16);e.factory=function(t,e,r,o){var a=o("equalScalar",{"boolean, boolean":function(t,e){return t===e},"number, number":function(t,r){return t===r||n(t,r,e.epsilon)},"BigNumber, BigNumber":function(t,r){return t.eq(r)||i(t,r,e.epsilon)},"Fraction, Fraction":function(t,e){return t.equals(e)},"Complex, Complex":function(t,e){return t.equals(e)},"Unit, Unit":function(t,e){if(!t.equalBase(e))throw new Error("Cannot compare units with different base");return a(t.value,e.value)}});return a}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.size=s,e.validate=function(t,e){if(0===e.length){if(Array.isArray(t))throw new o.default(t.length,0)}else!function t(e,r,n){var i;var a=e.length;if(a!==r[n])throw new o.default(a,r[n]);if(n<r.length-1){var u=n+1;for(i=0;i<a;i++){var s=e[i];if(!Array.isArray(s))throw new o.default(r.length-1,r.length,"<");t(e[i],r,u)}}else for(i=0;i<a;i++)if(Array.isArray(e[i]))throw new o.default(r.length+1,r.length,">")}(t,e,0)},e.validateIndex=function(t,e){if(!n.default.isNumber(t)||!n.default.isInteger(t))throw new TypeError("Index must be an integer (value: "+t+")");if(t<0||"number"==typeof e&&t>=e)throw new a.default(t,e)},e.resize=function(t,e,r){if(!Array.isArray(t)||!Array.isArray(e))throw new TypeError("Array expected");if(0===e.length)throw new Error("Resizing to scalar is not supported");e.forEach(function(t){if(!n.default.isNumber(t)||!n.default.isInteger(t)||t<0)throw new TypeError("Invalid size, must contain positive integers (size: "+i.default.format(e)+")")});var o=void 0!==r?r:0;return function t(e,r,n,i){var o,a,u=e.length,s=r[n],c=Math.min(u,s);if(e.length=s,n<r.length-1){var f=n+1;for(o=0;o<c;o++)a=e[o],Array.isArray(a)||(a=[a],e[o]=a),t(a,r,f,i);for(o=c;o<s;o++)a=[],e[o]=a,t(a,r,f,i)}else{for(o=0;o<c;o++)for(;Array.isArray(e[o]);)e[o]=e[o][0];for(o=c;o<s;o++)e[o]=i}}(t,e,0,o),t},e.reshape=function(t,e){var r,n=c(t);function i(t){return t.reduce(function(t,e){return t*e})}if(!Array.isArray(t)||!Array.isArray(e))throw new TypeError("Array expected");if(0===e.length)throw new o.default(0,i(s(t)),"!=");for(var a=1,u=0;u<e.length;u++)a*=e[u];if(n.length!==a)throw new o.default(i(e),i(s(t)),"!=");try{r=function(t,e){for(var r,n=t,i=e.length-1;i>0;i--){var o=e[i];r=[];for(var a=n.length/o,u=0;u<a;u++)r.push(n.slice(u*o,(u+1)*o));n=r}return n}(n,e)}catch(r){if(r instanceof o.default)throw new o.default(i(e),i(s(t)),"!=");throw r}return r},e.squeeze=function(t,e){var r=e||s(t);for(;Array.isArray(t)&&1===t.length;)t=t[0],r.shift();var n=r.length;for(;1===r[n-1];)n--;n<r.length&&(t=function t(e,r,n){var i,o;if(n<r){var a=n+1;for(i=0,o=e.length;i<o;i++)e[i]=t(e[i],r,a)}else for(;Array.isArray(e);)e=e[0];return e}(t,n,0),r.length=n);return t},e.unsqueeze=function(t,e,r,n){var i=n||s(t);if(r)for(var o=0;o<r;o++)t=[t],i.unshift(1);t=function t(e,r,n){var i,o;if(Array.isArray(e)){var a=n+1;for(i=0,o=e.length;i<o;i++)e[i]=t(e[i],r,a)}else for(var u=n;u<r;u++)e=[e];return e}(t,e,0);for(;i.length<e;)i.push(1);return t},e.flatten=c,e.map=function(t,e){return Array.prototype.map.call(t,e)},e.forEach=function(t,e){Array.prototype.forEach.call(t,e)},e.filter=function(t,e){if(1!==s(t).length)throw new Error("Only one dimensional matrices supported");return Array.prototype.filter.call(t,e)},e.filterRegExp=function(t,e){if(1!==s(t).length)throw new Error("Only one dimensional matrices supported");return Array.prototype.filter.call(t,function(t){return e.test(t)})},e.join=function(t,e){return Array.prototype.join.call(t,e)},e.identify=function(t){if(!Array.isArray(t))throw new TypeError("Array input expected");if(0===t.length)return t;var e=[],r=0;e[0]={value:t[0],identifier:0};for(var n=1;n<t.length;n++)t[n]===t[n-1]?r++:r=0,e.push({value:t[n],identifier:r});return e},e.generalize=function(t){if(!Array.isArray(t))throw new TypeError("Array input expected");if(0===t.length)return t;for(var e=[],r=0;r<t.length;r++)e.push(t[r].value);return e};var n=u(r(1)),i=u(r(14)),o=u(r(3)),a=u(r(45));function u(t){return t&&t.__esModule?t:{default:t}}function s(t){for(var e=[];Array.isArray(t);)e.push(t.length),t=t[0];return e}function c(t){if(!Array.isArray(t))return t;var e=[];return t.forEach(function t(r){Array.isArray(r)?r.forEach(t):e.push(r)}),e}},function(t,e,r){"use strict";var n=r(0).extend,i=r(6);e.name="multiply",e.factory=function(t,e,o,a){var u=r(4),s=o(r(2)),c=o(r(18)),f=o(r(59)),l=o(r(5)),p=o(r(60)),h=o(r(9)),m=t.DenseMatrix,y=t.SparseMatrix,v=a("multiply",n({"Array, Array":function(e,r){d(i.size(e),i.size(r));var n=v(s(e),s(r));return t.isMatrix(n)?n.valueOf():n},"Matrix, Matrix":function(t,e){var r=t.size(),n=e.size();return d(r,n),1===r.length?1===n.length?function(t,e,r){if(0===r)throw new Error("Cannot multiply two empty vectors");var n,i=t._data,o=t._datatype,u=e._data,s=e._datatype,l=c,p=f;o&&s&&o===s&&"string"==typeof o&&(n=o,l=a.find(c,[n,n]),p=a.find(f,[n,n]));for(var h=p(i[0],u[0]),m=1;m<r;m++)h=l(h,p(i[m],u[m]));return h}(t,e,r[0]):function(t,e){if("dense"!==e.storage())throw new Error("Support for SparseMatrix not implemented");return function(t,e){var r,n=t._data,i=t._size,o=t._datatype,u=e._data,s=e._size,l=e._datatype,p=i[0],h=s[1],y=c,v=f;o&&l&&o===l&&"string"==typeof o&&(r=o,y=a.find(c,[r,r]),v=a.find(f,[r,r]));for(var d=[],g=0;g<h;g++){for(var x=v(n[0],u[0][g]),w=1;w<p;w++)x=y(x,v(n[w],u[w][g]));d[g]=x}return new m({data:d,size:[h],datatype:r})}(t,e)}(t,e):1===n.length?g(t,e):x(t,e)},"Matrix, Array":function(t,e){return v(t,s(e))},"Array, Matrix":function(t,e){return v(s(t,e.storage()),e)},"SparseMatrix, any":function(t,e){return p(t,e,f,!1)},"DenseMatrix, any":function(t,e){return h(t,e,f,!1)},"any, SparseMatrix":function(t,e){return p(e,t,f,!0)},"any, DenseMatrix":function(t,e){return h(e,t,f,!0)},"Array, any":function(t,e){return h(s(t),e,f,!1).valueOf()},"any, Array":function(t,e){return h(s(e),t,f,!0).valueOf()},"any, any":f,"any, any, ...any":function(t,e,r){for(var n=v(t,e),i=0;i<r.length;i++)n=v(n,r[i]);return n}},f.signatures));function d(t,e){switch(t.length){case 1:switch(e.length){case 1:if(t[0]!==e[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(t[0]!==e[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+t[0]+") must match Matrix rows ("+e[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+e.length+" dimensions)")}break;case 2:switch(e.length){case 1:if(t[1]!==e[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+t[1]+") must match Vector length ("+e[0]+")");break;case 2:if(t[1]!==e[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+t[1]+") must match Matrix B rows ("+e[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+e.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+t.length+" dimensions)")}}var g=a("_multiplyMatrixVector",{"DenseMatrix, any":function(t,e){var r,n=t._data,i=t._size,o=t._datatype,u=e._data,s=e._datatype,l=i[0],p=i[1],h=c,y=f;o&&s&&o===s&&"string"==typeof o&&(r=o,h=a.find(c,[r,r]),y=a.find(f,[r,r]));for(var v=[],d=0;d<l;d++){for(var g=n[d],x=y(g[0],u[0]),w=1;w<p;w++)x=h(x,y(g[w],u[w]));v[d]=x}return new m({data:v,size:[l],datatype:r})},"SparseMatrix, any":function(t,e){var r=t._values,n=t._index,i=t._ptr,o=t._datatype;if(!r)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var u,s=e._data,p=e._datatype,h=t._size[0],m=e._size[0],v=[],d=[],g=[],x=c,w=f,b=l,_=0;o&&p&&o===p&&"string"==typeof o&&(u=o,x=a.find(c,[u,u]),w=a.find(f,[u,u]),b=a.find(l,[u,u]),_=a.convert(0,u));var E=[],S=[];g[0]=0;for(var M=0;M<m;M++){var N=s[M];if(!b(N,_))for(var A=i[M],z=i[M+1],O=A;O<z;O++){var C=n[O];S[C]?E[C]=x(E[C],w(N,r[O])):(S[C]=!0,d.push(C),E[C]=w(N,r[O]))}}for(var k=d.length,j=0;j<k;j++){var F=d[j];v[j]=E[F]}return g[1]=d.length,new y({values:v,index:d,ptr:g,size:[h,1],datatype:u})}}),x=a("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(t,e){var r,n=t._data,i=t._size,o=t._datatype,u=e._data,s=e._size,l=e._datatype,p=i[0],h=i[1],y=s[1],v=c,d=f;o&&l&&o===l&&"string"==typeof o&&(r=o,v=a.find(c,[r,r]),d=a.find(f,[r,r]));for(var g=[],x=0;x<p;x++){var w=n[x];g[x]=[];for(var b=0;b<y;b++){for(var _=d(w[0],u[0][b]),E=1;E<h;E++)_=v(_,d(w[E],u[E][b]));g[x][b]=_}}return new m({data:g,size:[p,y],datatype:r})},"DenseMatrix, SparseMatrix":function(t,e){var r=t._data,n=t._size,i=t._datatype,o=e._values,u=e._index,s=e._ptr,p=e._size,h=e._datatype;if(!o)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var m,v=n[0],d=p[1],g=c,x=f,w=l,b=0;i&&h&&i===h&&"string"==typeof i&&(m=i,g=a.find(c,[m,m]),x=a.find(f,[m,m]),w=a.find(l,[m,m]),b=a.convert(0,m));for(var _=[],E=[],S=[],M=new y({values:_,index:E,ptr:S,size:[v,d],datatype:m}),N=0;N<d;N++){S[N]=E.length;var A=s[N],z=s[N+1];if(z>A)for(var O=0,C=0;C<v;C++){for(var k=C+1,j=void 0,F=A;F<z;F++){var I=u[F];O!==k?(j=x(r[C][I],o[F]),O=k):j=g(j,x(r[C][I],o[F]))}O!==k||w(j,b)||(E.push(C),_.push(j))}}return S[d]=E.length,M},"SparseMatrix, DenseMatrix":function(t,e){var r=t._values,n=t._index,i=t._ptr,o=t._datatype;if(!r)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var u,s=e._data,p=e._datatype,h=t._size[0],m=e._size[0],v=e._size[1],d=c,g=f,x=l,w=0;o&&p&&o===p&&"string"==typeof o&&(u=o,d=a.find(c,[u,u]),g=a.find(f,[u,u]),x=a.find(l,[u,u]),w=a.convert(0,u));for(var b=[],_=[],E=[],S=new y({values:b,index:_,ptr:E,size:[h,v],datatype:u}),M=[],N=[],A=0;A<v;A++){E[A]=_.length;for(var z=A+1,O=0;O<m;O++){var C=s[O][A];if(!x(C,w))for(var k=i[O],j=i[O+1],F=k;F<j;F++){var I=n[F];N[I]!==z?(N[I]=z,_.push(I),M[I]=g(C,r[F])):M[I]=d(M[I],g(C,r[F]))}}for(var T=E[A],P=_.length,D=T;D<P;D++){var B=_[D];b[D]=M[B]}}return E[v]=_.length,S},"SparseMatrix, SparseMatrix":function(t,e){var r,n=t._values,i=t._index,o=t._ptr,u=t._datatype,s=e._values,l=e._index,p=e._ptr,h=e._datatype,m=t._size[0],v=e._size[1],d=n&&s,g=c,x=f;u&&h&&u===h&&"string"==typeof u&&(r=u,g=a.find(c,[r,r]),x=a.find(f,[r,r]));for(var w,b,_,E,S,M,N,A,z=d?[]:void 0,O=[],C=[],k=new y({values:z,index:O,ptr:C,size:[m,v],datatype:r}),j=d?[]:void 0,F=[],I=0;I<v;I++){C[I]=O.length;var T=I+1;for(S=p[I],M=p[I+1],E=S;E<M;E++)if(A=l[E],d)for(b=o[A],_=o[A+1],w=b;w<_;w++)N=i[w],F[N]!==T?(F[N]=T,O.push(N),j[N]=x(s[E],n[w])):j[N]=g(j[N],x(s[E],n[w]));else for(b=o[A],_=o[A+1],w=b;w<_;w++)N=i[w],F[N]!==T&&(F[N]=T,O.push(N));if(d)for(var P=C[I],D=O.length,B=P;B<D;B++){var q=O[B];z[B]=j[q]}}return C[v]=O.length,k}});return v.toTex={2:"\\left(${args[0]}".concat(u.operators.multiply,"${args[1]}\\right)")},v}},function(t,e,r){"use strict";t.exports=function t(e,r,n){return e&&"function"==typeof e.map?e.map(function(e){return t(e,r,n)}):r(e)}},function(t,e,r){"use strict";var n=r(0).clone;e.name="algorithm14",e.factory=function(t,e,r,i){var o=t.DenseMatrix;return function(t,e,r,a){var u,s=t._data,c=t._size,f=t._datatype,l=r;"string"==typeof f&&(u=f,e=i.convert(e,u),l=i.find(r,[u,u]));var p=c.length>0?function t(e,r,n,i,o,a,u){var s=[];if(r===n.length-1)for(var c=0;c<i;c++)s[c]=u?e(a,o[c]):e(o[c],a);else for(var f=0;f<i;f++)s[f]=t(e,r+1,n,n[r+1],o[f],a,u);return s}(l,0,c,c[0],s,e,a):[];return new o({data:p,size:n(c),datatype:u})}}},function(t,e,r){"use strict";e.array=r(6),e.boolean=r(46),e.function=r(47),e.number=r(1),e.object=r(0),e.string=r(14),e.emitter=r(22)},function(t,e,r){"use strict";var n=r(3);e.name="algorithm13",e.factory=function(t,e,r,i){var o=t.DenseMatrix;return function(t,e,r){var a,u=t._data,s=t._size,c=t._datatype,f=e._data,l=e._size,p=e._datatype,h=[];if(s.length!==l.length)throw new n(s.length,l.length);for(var m=0;m<s.length;m++){if(s[m]!==l[m])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+l+")");h[m]=s[m]}var y=r;"string"==typeof c&&c===p&&(a=c,y=i.find(r,[a,a]));var v=h.length>0?function t(e,r,n,i,o,a){var u=[];if(r===n.length-1)for(var s=0;s<i;s++)u[s]=e(o[s],a[s]);else for(var c=0;c<i;c++)u[c]=t(e,r+1,n,n[r+1],o[c],a[c]);return u}(y,0,h,h[0],u,f):[];return new o({data:v,size:h,datatype:a})}}},function(t,e,r){"use strict";t.exports=function(t){return t&&t.constructor.prototype.isBigNumber||!1}},function(t,e,r){"use strict";var n=r(10).string.isString;e.name="Matrix",e.path="type",e.factory=function(t,e,r,i){function o(){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator")}return o.prototype.type="Matrix",o.prototype.isMatrix=!0,o.storage=function(t){if(!n(t))throw new TypeError("format must be a string value");var e=o._storage[t];if(!e)throw new SyntaxError("Unsupported matrix storage format: "+t);return e},o._storage={},o.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},o.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},o.prototype.create=function(t,e){throw new Error("Cannot invoke create on a Matrix interface")},o.prototype.subset=function(t,e,r){throw new Error("Cannot invoke subset on a Matrix interface")},o.prototype.get=function(t){throw new Error("Cannot invoke get on a Matrix interface")},o.prototype.set=function(t,e,r){throw new Error("Cannot invoke set on a Matrix interface")},o.prototype.resize=function(t,e){throw new Error("Cannot invoke resize on a Matrix interface")},o.prototype.reshape=function(t,e){throw new Error("Cannot invoke reshape on a Matrix interface")},o.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},o.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},o.prototype.map=function(t,e){throw new Error("Cannot invoke map on a Matrix interface")},o.prototype.forEach=function(t){throw new Error("Cannot invoke forEach on a Matrix interface")},o.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},o.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},o.prototype.format=function(t){throw new Error("Cannot invoke format on a Matrix interface")},o.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},o}},function(t,e,r){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var i=r(1).format,o=r(44).format,a=r(12);e.isString=function(t){return"string"==typeof t},e.endsWith=function(t,e){var r=t.length-e.length,n=t.length;return t.substring(r,n)===e},e.format=function(t,r){if("number"==typeof t)return i(t,r);if(a(t))return o(t,r);if(function(t){return t&&"object"===n(t)&&"number"==typeof t.s&&"number"==typeof t.n&&"number"==typeof t.d||!1}(t))return r&&"decimal"===r.fraction?t.toString():t.s*t.n+"/"+t.d;if(Array.isArray(t))return function t(r,n){if(Array.isArray(r)){for(var i="[",o=r.length,a=0;a<o;a++)0!==a&&(i+=", "),i+=t(r[a],n);return i+="]"}return e.format(r,n)}(t,r);if(e.isString(t))return'"'+t+'"';if("function"==typeof t)return t.syntax?String(t.syntax):"function";if(t&&"object"===n(t)){if("function"==typeof t.format)return t.format(r);if(t&&t.toString()!=={}.toString())return t.toString();var u=[];for(var s in t)t.hasOwnProperty(s)&&u.push('"'+s+'": '+e.format(t[s],r));return"{"+u.join(", ")+"}"}return String(t)},e.stringify=function(t){for(var e=String(t),r="",n=0;n<e.length;){var i=e.charAt(n);"\\"===i?(r+=i,n++,""!==(i=e.charAt(n))&&-1!=='"\\/bfnrtu'.indexOf(i)||(r+="\\"),r+=i):r+='"'===i?'\\"':i,n++}return'"'+r+'"'},e.escape=function(t){var e=String(t);return e=e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}},function(t,e,r){"use strict";e.factory=function(t,e,n,i){var o=n(r(48));return function t(e){for(var r,n=0,i=0;i<e.length;i++){var a=e[i],u=Array.isArray(a);if(0===i&&u&&(n=a.length),u&&a.length!==n)return;var s=u?t(a):o(a);if(void 0===r)r=s;else if(r!==s)return"mixed"}return r}}},function(t,e,r){"use strict";t.exports=function(t,e,r){if(null==r)return t.eq(e);if(t.eq(e))return!0;if(t.isNaN()||e.isNaN())return!1;if(t.isFinite()&&e.isFinite()){var n=t.minus(e).abs();if(n.isZero())return!0;var i=t.constructor.max(t.abs(),e.abs());return n.lte(i.times(r))}return!1}},function(t,e,r){"use strict";var n=r(0).extend;e.name="add",e.factory=function(t,e,i,o){var a=i(r(2)),u=i(r(18)),s=r(4),c=i(r(25)),f=i(r(52)),l=i(r(26)),p=i(r(11)),h=i(r(9)),m=o("add",n({"DenseMatrix, DenseMatrix":function(t,e){return p(t,e,u)},"DenseMatrix, SparseMatrix":function(t,e){return c(t,e,u,!1)},"SparseMatrix, DenseMatrix":function(t,e){return c(e,t,u,!0)},"SparseMatrix, SparseMatrix":function(t,e){return f(t,e,u)},"Array, Array":function(t,e){return m(a(t),a(e)).valueOf()},"Array, Matrix":function(t,e){return m(a(t),e)},"Matrix, Array":function(t,e){return m(t,a(e))},"DenseMatrix, any":function(t,e){return h(t,e,u,!1)},"SparseMatrix, any":function(t,e){return l(t,e,u,!1)},"any, DenseMatrix":function(t,e){return h(e,t,u,!0)},"any, SparseMatrix":function(t,e){return l(e,t,u,!0)},"Array, any":function(t,e){return h(a(t),e,u,!1).valueOf()},"any, Array":function(t,e){return h(a(e),t,u,!0).valueOf()},"any, any":u,"any, any, ...any":function(t,e,r){for(var n=m(t,e),i=0;i<r.length;i++)n=m(n,r[i]);return n}},u.signatures));return m.toTex={2:"\\left(${args[0]}".concat(s.operators.add,"${args[1]}\\right)")},m}},function(t,e,r){"use strict";e.factory=function(t,e,r,n){var i=n("add",{"number, number":function(t,e){return t+e},"Complex, Complex":function(t,e){return t.add(e)},"BigNumber, BigNumber":function(t,e){return t.plus(e)},"Fraction, Fraction":function(t,e){return t.add(e)},"Unit, Unit":function(t,e){if(null===t.value||void 0===t.value)throw new Error("Parameter x contains a unit with undefined value");if(null===e.value||void 0===e.value)throw new Error("Parameter y contains a unit with undefined value");if(!t.equalBase(e))throw new Error("Units do not match");var r=t.clone();return r.value=i(r.value,e.value),r.fixPrefix=!1,r}});return i}},function(t,e,r){"use strict";var n=r(1).nearlyEqual,i=r(16);e.name="smaller",e.factory=function(t,e,o,a){var u=o(r(2)),s=o(r(20)),c=o(r(27)),f=o(r(28)),l=o(r(11)),p=o(r(9)),h=r(4),m=a("smaller",{"boolean, boolean":function(t,e){return t<e},"number, number":function(t,r){return t<r&&!n(t,r,e.epsilon)},"BigNumber, BigNumber":function(t,r){return t.lt(r)&&!i(t,r,e.epsilon)},"Fraction, Fraction":function(t,e){return-1===t.compare(e)},"Complex, Complex":function(t,e){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(t,e){if(!t.equalBase(e))throw new Error("Cannot compare units with different base");return m(t.value,e.value)},"SparseMatrix, SparseMatrix":function(t,e){return c(t,e,m)},"SparseMatrix, DenseMatrix":function(t,e){return s(e,t,m,!0)},"DenseMatrix, SparseMatrix":function(t,e){return s(t,e,m,!1)},"DenseMatrix, DenseMatrix":function(t,e){return l(t,e,m)},"Array, Array":function(t,e){return m(u(t),u(e)).valueOf()},"Array, Matrix":function(t,e){return m(u(t),e)},"Matrix, Array":function(t,e){return m(t,u(e))},"SparseMatrix, any":function(t,e){return f(t,e,m,!1)},"DenseMatrix, any":function(t,e){return p(t,e,m,!1)},"any, SparseMatrix":function(t,e){return f(e,t,m,!0)},"any, DenseMatrix":function(t,e){return p(e,t,m,!0)},"Array, any":function(t,e){return p(u(t),e,m,!1).valueOf()},"any, Array":function(t,e){return p(u(e),t,m,!0).valueOf()}});return m.toTex={2:"\\left(${args[0]}".concat(h.operators.smaller,"${args[1]}\\right)")},m}},function(t,e,r){"use strict";var n=r(3);e.name="algorithm03",e.factory=function(t,e,r,i){var o=t.DenseMatrix;return function(t,e,r,a){var u=t._data,s=t._size,c=t._datatype,f=e._values,l=e._index,p=e._ptr,h=e._size,m=e._datatype;if(s.length!==h.length)throw new n(s.length,h.length);if(s[0]!==h[0]||s[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+h+")");if(!f)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var y,v=s[0],d=s[1],g=0,x=r;"string"==typeof c&&c===m&&(y=c,g=i.convert(0,y),x=i.find(r,[y,y]));for(var w=[],b=0;b<v;b++)w[b]=[];for(var _=[],E=[],S=0;S<d;S++){for(var M=S+1,N=p[S],A=p[S+1],z=N;z<A;z++){var O=l[z];_[O]=a?x(f[z],u[O][S]):x(u[O][S],f[z]),E[O]=M}for(var C=0;C<v;C++)E[C]===M?w[C][S]=_[C]:w[C][S]=a?x(g,u[C][S]):x(u[C][S],g)}return new o({data:w,size:[v,d],datatype:y})}}},function(t,e,r){t.exports=r(35)},function(t,e,r){"use strict";var n=r(40);e.mixin=function(t){var e=new n;return t.on=e.on.bind(e),t.off=e.off.bind(e),t.once=e.once.bind(e),t.emit=e.emit.bind(e),t}},function(t,e,r){"use strict";t.exports=[r(13),r(24),r(49),r(50),r(53),r(54),r(55),r(56),r(57),r(2),r(58),r(15)]},function(t,e,r){"use strict";var n=r(10),i=r(3),o=n.string,a=n.array,u=n.object,s=n.number,c=Array.isArray,f=s.isNumber,l=s.isInteger,p=o.isString,h=a.validateIndex;e.name="DenseMatrix",e.path="type",e.factory=function(t,e,s,m){var y=s(r(15)),v=s(r(13));function d(e,r){if(!(this instanceof d))throw new SyntaxError("Constructor must be called with the new operator");if(r&&!p(r))throw new Error("Invalid datatype: "+r);if(t.isMatrix(e))"DenseMatrix"===e.type?(this._data=u.clone(e._data),this._size=u.clone(e._size),this._datatype=r||e._datatype):(this._data=e.toArray(),this._size=e.size(),this._datatype=r||e._datatype);else if(e&&c(e.data)&&c(e.size))this._data=e.data,this._size=e.size,this._datatype=r||e.datatype;else if(c(e))this._data=function t(e){for(var r=0,n=e.length;r<n;r++){var i=e[r];c(i)?e[r]=t(i):i&&!0===i.isMatrix&&(e[r]=t(i.valueOf()))}return e}(e),this._size=a.size(this._data),a.validate(this._data,this._size),this._datatype=r;else{if(e)throw new TypeError("Unsupported type of data ("+n.types.type(e)+")");this._data=[],this._size=[0],this._datatype=r}}function g(t,e,r){if(0===e.length){for(var n=t._data;c(n);)n=n[0];return n}return t._size=e.slice(0),t._data=a.resize(t._data,t._size,r),t}function x(t,e,r){for(var n=t._size.slice(0),i=!1;n.length<e.length;)n.push(0),i=!0;for(var o=0,a=e.length;o<a;o++)e[o]>n[o]&&(n[o]=e[o],i=!0);i&&g(t,n,r)}return d.prototype=new v,d.prototype.type="DenseMatrix",d.prototype.isDenseMatrix=!0,d.prototype.getDataType=function(){return y(this._data)},d.prototype.storage=function(){return"dense"},d.prototype.datatype=function(){return this._datatype},d.prototype.create=function(t,e){return new d(t,e)},d.prototype.subset=function(e,r,n){switch(arguments.length){case 1:return function(e,r){if(!t.isIndex(r))throw new TypeError("Invalid index");if(r.isScalar())return e.get(r.min());var n=r.size();if(n.length!==e._size.length)throw new i(n.length,e._size.length);for(var o=r.min(),a=r.max(),u=0,s=e._size.length;u<s;u++)h(o[u],e._size[u]),h(a[u],e._size[u]);return new d(function t(e,r,n,i){var o=i===n-1,a=r.dimension(i);return o?a.map(function(t){return h(t,e.length),e[t]}).valueOf():a.map(function(o){h(o,e.length);var a=e[o];return t(a,r,n,i+1)}).valueOf()}(e._data,r,n.length,0),e._datatype)}(this,e);case 2:case 3:return function(e,r,n,o){if(!r||!0!==r.isIndex)throw new TypeError("Invalid index");var s,c=r.size(),f=r.isScalar();if(t.isMatrix(n)?(s=n.size(),n=n.valueOf()):s=a.size(n),f){if(0!==s.length)throw new TypeError("Scalar expected");e.set(r.min(),n,o)}else{if(c.length<e._size.length)throw new i(c.length,e._size.length,"<");if(s.length<c.length){for(var l=0,p=0;1===c[l]&&1===s[l];)l++;for(;1===c[l];)p++,l++;n=a.unsqueeze(n,c.length,p,s)}if(!u.deepEqual(c,s))throw new i(c,s,">");var m=r.max().map(function(t){return t+1});x(e,m,o);var y=c.length;!function t(e,r,n,i,o){var a=o===i-1,u=r.dimension(o);a?u.forEach(function(t,r){h(t),e[t]=n[r[0]]}):u.forEach(function(a,u){h(a),t(e[a],r,n[u[0]],i,o+1)})}(e._data,r,n,y,0)}return e}(this,e,r,n);default:throw new SyntaxError("Wrong number of arguments")}},d.prototype.get=function(t){if(!c(t))throw new TypeError("Array expected");if(t.length!==this._size.length)throw new i(t.length,this._size.length);for(var e=0;e<t.length;e++)h(t[e],this._size[e]);for(var r=this._data,n=0,o=t.length;n<o;n++){var a=t[n];h(a,r.length),r=r[a]}return r},d.prototype.set=function(t,e,r){if(!c(t))throw new TypeError("Array expected");if(t.length<this._size.length)throw new i(t.length,this._size.length,"<");var n,o,a;x(this,t.map(function(t){return t+1}),r);var u=this._data;for(n=0,o=t.length-1;n<o;n++)a=t[n],h(a,u.length),u=u[a];return a=t[t.length-1],h(a,u.length),u[a]=e,this},d.prototype.resize=function(t,e,r){if(!c(t))throw new TypeError("Array expected");return g(r?this.clone():this,t,e)},d.prototype.reshape=function(t,e){var r=e?this.clone():this;return r._data=a.reshape(r._data,t),r._size=t.slice(0),r},d.prototype.clone=function(){return new d({data:u.clone(this._data),size:u.clone(this._size),datatype:this._datatype})},d.prototype.size=function(){return this._size.slice(0)},d.prototype.map=function(t){var e=this;return new d({data:function r(n,i){return c(n)?n.map(function(t,e){return r(t,i.concat(e))}):t(n,i,e)}(this._data,[]),size:u.clone(this._size),datatype:this._datatype})},d.prototype.forEach=function(t){var e=this;!function r(n,i){c(n)?n.forEach(function(t,e){r(t,i.concat(e))}):t(n,i,e)}(this._data,[])},d.prototype.toArray=function(){return u.clone(this._data)},d.prototype.valueOf=function(){return this._data},d.prototype.format=function(t){return o.format(this._data,t)},d.prototype.toString=function(){return o.format(this._data)},d.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},d.prototype.diagonal=function(e){if(e){if(t.isBigNumber(e)&&(e=e.toNumber()),!f(e)||!l(e))throw new TypeError("The parameter k must be an integer number")}else e=0;for(var r=e>0?e:0,n=e<0?-e:0,i=this._size[0],o=this._size[1],a=Math.min(i-n,o-r),u=[],s=0;s<a;s++)u[s]=this._data[s+n][s+r];return new d({data:u,size:[a],datatype:this._datatype})},d.diagonal=function(e,r,n,i,o){if(!c(e))throw new TypeError("Array expected, size parameter");if(2!==e.length)throw new Error("Only two dimensions matrix are supported");if(e=e.map(function(e){if(t.isBigNumber(e)&&(e=e.toNumber()),!f(e)||!l(e)||e<1)throw new Error("Size values must be positive integers");return e}),n){if(t.isBigNumber(n)&&(n=n.toNumber()),!f(n)||!l(n))throw new TypeError("The parameter k must be an integer number")}else n=0;i&&p(o)&&(i=m.convert(i,o));var u,s=n>0?n:0,h=n<0?-n:0,y=e[0],v=e[1],g=Math.min(y-h,v-s);if(c(r)){if(r.length!==g)throw new Error("Invalid value array length");u=function(t){return r[t]}}else if(t.isMatrix(r)){var x=r.size();if(1!==x.length||x[0]!==g)throw new Error("Invalid matrix length");u=function(t){return r.get([t])}}else u=function(){return r};i||(i=t.isBigNumber(u(0))?new t.BigNumber(0):0);var w=[];if(e.length>0){w=a.resize(w,e,i);for(var b=0;b<g;b++)w[b+h][b+s]=u(b)}return new d({data:w,size:[y,v]})},d.fromJSON=function(t){return new d(t)},d.prototype.swapRows=function(t,e){if(!(f(t)&&l(t)&&f(e)&&l(e)))throw new Error("Row index must be positive integers");if(2!==this._size.length)throw new Error("Only two dimensional matrix is supported");return h(t,this._size[0]),h(e,this._size[0]),d._swapRows(t,e,this._data),this},d._swapRows=function(t,e,r){var n=r[t];r[t]=r[e],r[e]=n},t.Matrix._storage.dense=d,t.Matrix._storage.default=d,d},e.lazy=!1},function(t,e,r){"use strict";var n=r(3);e.name="algorithm01",e.factory=function(t,e,r,i){var o=t.DenseMatrix;return function(t,e,r,a){var u=t._data,s=t._size,c=t._datatype,f=e._values,l=e._index,p=e._ptr,h=e._size,m=e._datatype;if(s.length!==h.length)throw new n(s.length,h.length);if(s[0]!==h[0]||s[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+h+")");if(!f)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var y,v,d=s[0],g=s[1],x="string"==typeof c&&c===m?c:void 0,w=x?i.find(r,[x,x]):r,b=[];for(y=0;y<d;y++)b[y]=[];var _=[],E=[];for(v=0;v<g;v++){for(var S=v+1,M=p[v],N=p[v+1],A=M;A<N;A++)_[y=l[A]]=a?w(f[A],u[y][v]):w(u[y][v],f[A]),E[y]=S;for(y=0;y<d;y++)E[y]===S?b[y][v]=_[y]:b[y][v]=u[y][v]}return new o({data:b,size:[d,g],datatype:x})}}},function(t,e,r){"use strict";e.name="algorithm10",e.factory=function(t,e,r,n){var i=t.DenseMatrix;return function(t,e,r,o){var a=t._values,u=t._index,s=t._ptr,c=t._size,f=t._datatype;if(!a)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var l,p=c[0],h=c[1],m=r;"string"==typeof f&&(l=f,e=n.convert(e,l),m=n.find(r,[l,l]));for(var y=[],v=new i({data:y,size:[p,h],datatype:l}),d=[],g=[],x=0;x<h;x++){for(var w=x+1,b=s[x],_=s[x+1],E=b;E<_;E++){var S=u[E];d[S]=a[E],g[S]=w}for(var M=0;M<p;M++)0===x&&(y[M]=[]),g[M]===w?y[M][x]=o?m(e,d[M]):m(d[M],e):y[M][x]=e}return v}}},function(t,e,r){"use strict";var n=r(3);e.name="algorithm07",e.factory=function(t,e,r,i){var o=t.DenseMatrix;function a(t,e,r,n,i){for(var o=t._values,a=t._index,u=t._ptr,s=u[e],c=u[e+1];s<c;s++){var f=a[s];r[f]=i,n[f]=o[s]}}return function(t,e,r){var u=t._size,s=t._datatype,c=e._size,f=e._datatype;if(u.length!==c.length)throw new n(u.length,c.length);if(u[0]!==c[0]||u[1]!==c[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+c+")");var l,p,h,m=u[0],y=u[1],v=0,d=r;"string"==typeof s&&s===f&&(l=s,v=i.convert(0,l),d=i.find(r,[l,l]));var g=[];for(p=0;p<m;p++)g[p]=[];var x=new o({data:g,size:[m,y],datatype:l}),w=[],b=[],_=[],E=[];for(h=0;h<y;h++){var S=h+1;for(a(t,h,_,w,S),a(e,h,E,b,S),p=0;p<m;p++){var M=_[p]===S?w[p]:v,N=E[p]===S?b[p]:v;g[p][h]=d(M,N)}}return x}}},function(t,e,r){"use strict";e.name="algorithm12",e.factory=function(t,e,r,n){var i=t.DenseMatrix;return function(t,e,r,o){var a=t._values,u=t._index,s=t._ptr,c=t._size,f=t._datatype;if(!a)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var l,p=c[0],h=c[1],m=r;"string"==typeof f&&(l=f,e=n.convert(e,l),m=n.find(r,[l,l]));for(var y=[],v=new i({data:y,size:[p,h],datatype:l}),d=[],g=[],x=0;x<h;x++){for(var w=x+1,b=s[x],_=s[x+1],E=b;E<_;E++){var S=u[E];d[S]=a[E],g[S]=w}for(var M=0;M<p;M++)0===x&&(y[M]=[]),g[M]===w?y[M][x]=o?m(e,d[M]):m(d[M],e):y[M][x]=o?m(e,0):m(0,e)}return v}}},function(t,e,r){"use strict";var n=r(1).nearlyEqual,i=r(16);e.name="larger",e.factory=function(t,e,o,a){var u=o(r(2)),s=o(r(20)),c=o(r(27)),f=o(r(28)),l=o(r(11)),p=o(r(9)),h=r(4),m=a("larger",{"boolean, boolean":function(t,e){return t>e},"number, number":function(t,r){return t>r&&!n(t,r,e.epsilon)},"BigNumber, BigNumber":function(t,r){return t.gt(r)&&!i(t,r,e.epsilon)},"Fraction, Fraction":function(t,e){return 1===t.compare(e)},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(t,e){if(!t.equalBase(e))throw new Error("Cannot compare units with different base");return m(t.value,e.value)},"SparseMatrix, SparseMatrix":function(t,e){return c(t,e,m)},"SparseMatrix, DenseMatrix":function(t,e){return s(e,t,m,!0)},"DenseMatrix, SparseMatrix":function(t,e){return s(t,e,m,!1)},"DenseMatrix, DenseMatrix":function(t,e){return l(t,e,m)},"Array, Array":function(t,e){return m(u(t),u(e)).valueOf()},"Array, Matrix":function(t,e){return m(u(t),e)},"Matrix, Array":function(t,e){return m(t,u(e))},"SparseMatrix, any":function(t,e){return f(t,e,m,!1)},"DenseMatrix, any":function(t,e){return p(t,e,m,!1)},"any, SparseMatrix":function(t,e){return f(e,t,m,!0)},"any, DenseMatrix":function(t,e){return p(e,t,m,!0)},"Array, any":function(t,e){return p(u(t),e,m,!1).valueOf()},"any, Array":function(t,e){return p(u(e),t,m,!0).valueOf()}});return m.toTex={2:"\\left(${args[0]}".concat(h.operators.larger,"${args[1]}\\right)")},m}},function(t,e,r){"use strict";var n=r(0).clone,i=r(14).format;e.name="transpose",e.factory=function(t,e,o,a){var u=r(4),s=o(r(2)),c=t.DenseMatrix,f=t.SparseMatrix,l=a("transpose",{Array:function(t){return l(s(t)).valueOf()},Matrix:function(t){var e,r=t.size();switch(r.length){case 1:e=t.clone();break;case 2:var o=r[0],a=r[1];if(0===a)throw new RangeError("Cannot transpose a 2D matrix with no columns (size: "+i(r)+")");switch(t.storage()){case"dense":e=function(t,e,r){for(var i,o=t._data,a=[],u=0;u<r;u++){i=a[u]=[];for(var s=0;s<e;s++)i[s]=n(o[s][u])}return new c({data:a,size:[r,e],datatype:t._datatype})}(t,o,a);break;case"sparse":e=function(t,e,r){for(var i,o,a,u=t._values,s=t._index,c=t._ptr,l=u?[]:void 0,p=[],h=[],m=[],y=0;y<e;y++)m[y]=0;for(i=0,o=s.length;i<o;i++)m[s[i]]++;for(var v=0,d=0;d<e;d++)h.push(v),v+=m[d],m[d]=h[d];for(h.push(v),a=0;a<r;a++)for(var g=c[a],x=c[a+1],w=g;w<x;w++){var b=m[s[w]]++;p[b]=a,u&&(l[b]=n(u[w]))}return new f({values:l,index:p,ptr:h,size:[r,e],datatype:t._datatype})}(t,o,a)}break;default:throw new RangeError("Matrix must be a vector or two dimensional (size: "+i(this._size)+")")}return e},any:function(t){return n(t)}});return l.toTex={1:"\\left(${args[0]}\\right)".concat(u.operators.transpose)},l}},function(t,e,r){"use strict";var n=r(6).size;e.name="dot",e.factory=function(t,e,i,o){var a=i(r(17)),u=i(r(7)),s=o("dot",{"Matrix, Matrix":function(t,e){return c(t.toArray(),e.toArray())},"Matrix, Array":function(t,e){return c(t.toArray(),e)},"Array, Matrix":function(t,e){return c(t,e.toArray())},"Array, Array":c});return s.toTex={2:"\\left(${args[0]}\\cdot${args[1]}\\right)"},s;function c(t,e){var r=n(t),i=n(e),o=r[0];if(1!==r.length||1!==i.length)throw new RangeError("Vector expected");if(r[0]!==i[0])throw new RangeError("Vectors must have equal length ("+r[0]+" != "+i[0]+")");if(0===o)throw new RangeError("Cannot calculate the dot product of empty vectors");for(var s=0,c=0;c<o;c++)s=a(s,u(t[c],e[c]));return s}}},function(t,e,r){"use strict";var n=r(3);function i(t,e){var r=t.size(),i=e.size();if(r.length!==i.length)throw new n(r.length,i.length)}e.name="subtract",e.factory=function(t,e,n,o){var a=r(4),u=n(r(2)),s=n(r(18)),c=n(r(33)),f=n(r(25)),l=n(r(20)),p=n(r(61)),h=n(r(26)),m=n(r(11)),y=n(r(9)),v=o("subtract",{"number, number":function(t,e){return t-e},"Complex, Complex":function(t,e){return t.sub(e)},"BigNumber, BigNumber":function(t,e){return t.minus(e)},"Fraction, Fraction":function(t,e){return t.sub(e)},"Unit, Unit":function(t,e){if(null===t.value)throw new Error("Parameter x contains a unit with undefined value");if(null===e.value)throw new Error("Parameter y contains a unit with undefined value");if(!t.equalBase(e))throw new Error("Units do not match");var r=t.clone();return r.value=v(r.value,e.value),r.fixPrefix=!1,r},"SparseMatrix, SparseMatrix":function(t,e){return i(t,e),p(t,e,v)},"SparseMatrix, DenseMatrix":function(t,e){return i(t,e),l(e,t,v,!0)},"DenseMatrix, SparseMatrix":function(t,e){return i(t,e),f(t,e,v,!1)},"DenseMatrix, DenseMatrix":function(t,e){return i(t,e),m(t,e,v)},"Array, Array":function(t,e){return v(u(t),u(e)).valueOf()},"Array, Matrix":function(t,e){return v(u(t),e)},"Matrix, Array":function(t,e){return v(t,u(e))},"SparseMatrix, any":function(t,e){return h(t,c(e),s)},"DenseMatrix, any":function(t,e){return y(t,e,v)},"any, SparseMatrix":function(t,e){return h(e,t,v,!0)},"any, DenseMatrix":function(t,e){return y(e,t,v,!0)},"Array, any":function(t,e){return y(u(t),e,v,!1).valueOf()},"any, Array":function(t,e){return y(u(e),t,v,!0).valueOf()}});return v.toTex={2:"\\left(${args[0]}".concat(a.operators.subtract,"${args[1]}\\right)")},v}},function(t,e,r){"use strict";var n=r(8);e.name="unaryMinus",e.factory=function(t,e,i,o){var a=r(4),u=o("unaryMinus",{number:function(t){return-t},Complex:function(t){return t.neg()},BigNumber:function(t){return t.neg()},Fraction:function(t){return t.neg()},Unit:function(t){var e=t.clone();return e.value=u(t.value),e},"Array | Matrix":function(t){return n(t,u,!0)}});return u.toTex={1:"".concat(a.operators.unaryMinus,"\\left(${args[0]}\\right)")},u}},function(t,e,r){!function(t){"use strict";var e=function(t){for(var e=new Array(t.length),r=0;r<t.length;r++)e[r]=t[r];return e},r=function(t,e){var r,n="function"==typeof e?e:(r=t,function(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(!r(t[n],e[n]))return!1;return!0});return function(t,e){for(var r=0;r<t.length;r++)if(n(t[r],e))return r;return-1}},n=function(t,e){return t===e||t!=t&&e!=e},i=function(t,e,r){},o=function(t,e,r){for(var n=r;n--;)t[n+1]=t[n];t[0]=e},a=function(t,e,n){var i=t.keys[0];t.values[0]=t.values[0].then(function(r){return e.onCacheHit(t,e,n),e.onCacheChange(t,e,n),r}).catch(function(n){var o=r(e.isEqual)(t.keys,i);throw~o&&(t.keys.splice(o,1),t.values.splice(o,1)),n})},u={equals:void 0,isDeepEqual:!1,isPromise:!1,isReact:!1,isSerialized:!1,matchesKey:void 0,maxAge:void 0,maxArgs:void 0,maxSize:1/0,onExpire:void 0,profileName:void 0,serializer:void 0,shouldSerializeFunctions:!1,transformArgs:void 0,updateExpire:!1},s=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];if(e.length)return e.reduce(function(t,e){return"function"==typeof t?"function"==typeof e?function(){e.apply(this,arguments),t.apply(this,arguments)}:t:"function"==typeof e?e:void 0})},c=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];if(e.length)return e.reduce(function(t,e){return"function"==typeof t?"function"==typeof e?function(){return t(e.apply(this,arguments))}:t:"function"==typeof e?e:void 0})},f=function(t,e){for(var r=0;r<t.length;r++)if(t[r].key===e)return r;return-1},l=function(t,e){var r="function"==typeof e?e:function(e,r){for(var n=0;n<r.length;n++)if(!t(e[n],r[n]))return!1;return!0};return function(t,e){for(var n=0;n<t.length;n++)if(t[n].length===e.length&&r(t[n],e))return n;return-1}},p=function(t){return Array.isArray(t)?t:[t]},h=function(t,e){return e===u?t:Object.assign({},t,e,{onCacheAdd:s(t.onCacheAdd,e.onCacheAdd),onCacheChange:s(t.onCacheChange,e.onCacheChange),onCacheHit:s(t.onCacheHit,e.onCacheHit),transformArgs:c(t.transformArgs,e.transformArgs)})},m=function(t,e,r){var n=f(t,e);~n&&(clearTimeout(t[n].timeoutId),r&&t.splice(n,1))},y=function(t,e,r,n){var i,o,a,u=e.maxAge,s=e.updateExpire,c="number"==typeof u&&isFinite(u)?function t(e,r,n,i){var o=r.maxAge,a=r.onCacheChange,u=r.onExpire,s=l(n,i);return function(i,c,l){var p=i.keys[0];if(!~f(e,p)){var h=function(){var o=s(i.keys,p),f=i.values[o];~o&&(i.keys.splice(o,1),i.values.splice(o,1),"function"==typeof a&&a(i,c,l)),m(e,p,!0),"function"==typeof u&&!1===u(p)&&(i.keys.unshift(p),i.values.unshift(f),t(e,r,n)(i,c,l),"function"==typeof a&&a(i,c,l))};e.push({expirationMethod:h,key:p,timeoutId:setTimeout(h,o)})}}}(t,e,r,n):void 0;return{onCacheAdd:c,onCacheHit:c&&s?(i=t,o=e,a=o.maxAge,function(t){var e=t.keys[0],r=f(i,e);~r&&(m(i,e,!1),i[r].timeoutId=setTimeout(i[r].expirationMethod,a))}):void 0}},v={anonymousProfileNameCounter:1,isCollectingStats:!1,profiles:{}},d=!1,g=function(){v.isCollectingStats=!0},x=function(t){var e=(new Error).stack,r=t.displayName||t.name||"Anonymous "+v.anonymousProfileNameCounter++;if(!e)return r;for(var n,i,o=e.split("\n").slice(3),a=0;a<o.length;a++)if(!~(n=o[a]).indexOf("/moize/")&&!~n.indexOf(" (native)")&&!~n.indexOf(" Function.")){i=n.replace(/\n/g,"\\n").trim();break}return i?r+" "+i:r},w=function(t,e){return t?(e/t*100).toFixed(4)+"%":"0%"},b=function t(e){if(v.isCollectingStats||d||(console.warn('Stats are not currently being collected, please run "collectStats" to enable them.'),d=!0),e){if(!v.profiles[e])return{calls:0,hits:0,usage:"0%"};var r=v.profiles[e];return Obj