lml-main
Version:
This is now a mono repository published into many standalone packages.
27 lines • 509 kB
JavaScript
/**
* math.js
* https://github.com/josdejong/mathjs
*
* Math.js is an extensive math library for JavaScript and Node.js,
* It features real and complex numbers, units, matrices, a large set of
* mathematical functions, and a flexible expression parser.
*
* @version 3.20.2
* @date 2018-02-07
*
* @license
* Copyright (C) 2013-2018 Jos de Jong <wjosdejong@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.math=t():e.math=t()}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=151)}([function(e,t,r){"use strict";t.name="matrix",t.factory=function(e,t,r,n){var i=n("matrix",{"":function(){return a([])},string:function(e){return a([],e)},"string, string":function(e,t){return a([],e,t)},Array:function(e){return a(e)},Matrix:function(e){return a(e,e.storage())},"Array | Matrix, string":a,"Array | Matrix, string, string":a});return i.toTex={0:"\\begin{bmatrix}\\end{bmatrix}",1:"\\left(${args[0]}\\right)",2:"\\left(${args[0]}\\right)"},i;function a(t,r,n){return new(e.Matrix.storage(r||"default"))(t,n)}}},function(e,t,r){"use strict";e.exports=function e(t,r,n){return t&&"function"==typeof t.map?t.map(function(t){return e(t,r,n)}):r(t)}},function(e,t,r){"use strict";var n=r(3),i=r(9),a=(r(5),r(60),r(11)),o=r(53);t.size=function(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t},t.validate=function(e,t){if(0==t.length){if(Array.isArray(e))throw new a(e.length,0)}else!function e(t,r,n){var i,o=t.length;if(o!=r[n])throw new a(o,r[n]);if(n<r.length-1){var s=n+1;for(i=0;i<o;i++){var u=t[i];if(!Array.isArray(u))throw new a(r.length-1,r.length,"<");e(t[i],r,s)}}else for(i=0;i<o;i++)if(Array.isArray(t[i]))throw new a(r.length+1,r.length,">")}(e,t,0)},t.validateIndex=function(e,t){if(!n.isNumber(e)||!n.isInteger(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"==typeof t&&e>=t)throw new o(e,t)},t.UNINITIALIZED={},t.resize=function(e,r,a){if(!Array.isArray(e)||!Array.isArray(r))throw new TypeError("Array expected");if(0===r.length)throw new Error("Resizing to scalar is not supported");return r.forEach(function(e){if(!n.isNumber(e)||!n.isInteger(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+i.format(r)+")")}),function e(r,n,i,a){var o;var s;var u=r.length;var c=n[i];var f=Math.min(u,c);r.length=c;if(i<n.length-1){var l=i+1;for(o=0;o<f;o++)s=r[o],Array.isArray(s)||(s=[s],r[o]=s),e(s,n,l,a);for(o=f;o<c;o++)s=[],r[o]=s,e(s,n,l,a)}else{for(o=0;o<f;o++)for(;Array.isArray(r[o]);)r[o]=r[o][0];if(a!==t.UNINITIALIZED)for(o=f;o<c;o++)r[o]=a}}(e,r,0,void 0!==a?a:0),e},t.reshape=function(e,r){var n,i=t.flatten(e),o=function(e){return e.reduce(function(e,t){return e*t})};if(!Array.isArray(e)||!Array.isArray(r))throw new TypeError("Array expected");if(0===r.length)throw new a(0,o(t.size(e)),"!=");try{n=function e(t,r){var n=[];var i;if(0===r.length){if(0===t.length)throw new a(null,null,"!=");return t.shift()}for(i=0;i<r[0];i+=1)n.push(e(t,r.slice(1)));return n}(i,r)}catch(n){if(n instanceof a)throw new a(o(r),o(t.size(e)),"!=");throw n}if(i.length>0)throw new a(o(r),o(t.size(e)),"!=");return n},t.squeeze=function(e,r){for(var n=r||t.size(e);Array.isArray(e)&&1===e.length;)e=e[0],n.shift();for(var i=n.length;1===n[i-1];)i--;return i<n.length&&(e=function e(t,r,n){var i,a;if(n<r){var o=n+1;for(i=0,a=t.length;i<a;i++)t[i]=e(t[i],r,o)}else for(;Array.isArray(t);)t=t[0];return t}(e,i,0),n.length=i),e},t.unsqueeze=function(e,r,n,i){var a=i||t.size(e);if(n)for(var o=0;o<n;o++)e=[e],a.unshift(1);for(e=function e(t,r,n){var i,a;if(Array.isArray(t)){var o=n+1;for(i=0,a=t.length;i<a;i++)t[i]=e(t[i],r,o)}else for(var s=n;s<r;s++)t=[t];return t}(e,r,0);a.length<r;)a.push(1);return e},t.flatten=function(e){if(!Array.isArray(e))return e;var t=[];return e.forEach(function e(r){Array.isArray(r)?r.forEach(e):t.push(r)}),t},t.map=function(e,t){return Array.prototype.map.call(e,t)},t.forEach=function(e,t){Array.prototype.forEach.call(e,t)},t.filter=function(e,r){if(1!==t.size(e).length)throw new Error("Only one dimensional matrices supported");return Array.prototype.filter.call(e,r)},t.filterRegExp=function(e,r){if(1!==t.size(e).length)throw new Error("Only one dimensional matrices supported");return Array.prototype.filter.call(e,function(e){return r.test(e)})},t.join=function(e,t){return Array.prototype.join.call(e,t)},t.identify=function(e){if(!Array.isArray(e))throw new TypeError("Array input expected");if(0===e.length)return e;var t=[],r=0;t[0]={value:e[0],identifier:0};for(var n=1;n<e.length;n++)e[n]===e[n-1]?r++:r=0,t.push({value:e[n],identifier:r});return t},t.generalize=function(e){if(!Array.isArray(e))throw new TypeError("Array input expected");if(0===e.length)return e;for(var t=[],r=0;r<e.length;r++)t.push(e[r].value);return t},t.isArray=Array.isArray},function(e,t,r){"use strict";function n(e){for(var t=[],r=0;r<e;r++)t.push(0);return t}t.isNumber=function(e){return"number"==typeof e},t.isInteger=function(e){return!!isFinite(e)&&e==Math.round(e)},t.sign=Math.sign||function(e){return e>0?1:e<0?-1:0},t.format=function(e,r){if("function"==typeof r)return r(e);if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var n="auto",i=void 0;switch(r&&(r.notation&&(n=r.notation),t.isNumber(r)?i=r:r.precision&&(i=r.precision)),n){case"fixed":return t.toFixed(e,i);case"exponential":return t.toExponential(e,i);case"engineering":return t.toEngineering(e,i);case"auto":return t.toPrecision(e,i,r&&r.exponential).replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t});default:throw new Error('Unknown notation "'+n+'". Choose "auto", "exponential", or "fixed".')}},t.splitNumber=function(e){var t=String(e).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw new SyntaxError("Invalid number "+e);var r=t[1],n=t[2],i=parseFloat(t[4]||"0"),a=n.indexOf(".");i+=-1!==a?a-1:n.length-1;var o=n.replace(".","").replace(/^0*/,function(e){return i-=e.length,""}).replace(/0*$/,"").split("").map(function(e){return parseInt(e)});return 0===o.length&&(o.push(0),i++),{sign:r,coefficients:o,exponent:i}},t.toEngineering=function(e,r){if(isNaN(e)||!isFinite(e))return String(e);var i=t.roundDigits(t.splitNumber(e),r),a=i.exponent,o=i.coefficients,s=a%3==0?a:a<0?a-3-a%3:a-a%3,u=a>=0?a:Math.abs(s);o.length-1<u&&(o=o.concat(n(u-(o.length-1))));for(var c=Math.abs(a-s),f=1;--c>=0;)f++;var l=o.slice(f).join(""),p=l.match(/[1-9]/)?"."+l:"",h=o.slice(0,f).join("")+p+"e"+(a>=0?"+":"")+s.toString();return i.sign+h},t.toFixed=function(e,r){if(isNaN(e)||!isFinite(e))return String(e);var i=t.splitNumber(e),a=t.roundDigits(i,i.exponent+1+(r||0)),o=a.coefficients,s=a.exponent+1,u=s+(r||0);return o.length<u&&(o=o.concat(n(u-o.length))),s<0&&(o=n(1-s).concat(o),s=1),r&&o.splice(s,0,0===s?"0.":"."),a.sign+o.join("")},t.toExponential=function(e,r){if(isNaN(e)||!isFinite(e))return String(e);var i=t.splitNumber(e),a=r?t.roundDigits(i,r):i,o=a.coefficients,s=a.exponent;o.length<r&&(o=o.concat(n(r-o.length)));var u=o.shift();return a.sign+u+(o.length>0?"."+o.join(""):"")+"e"+(s>=0?"+":"")+s},t.toPrecision=function(e,r,i){if(isNaN(e)||!isFinite(e))return String(e);var a=i&&void 0!==i.lower?i.lower:.001,o=i&&void 0!==i.upper?i.upper:1e5,s=t.splitNumber(e),u=Math.abs(Math.pow(10,s.exponent));if(u<a||u>=o)return t.toExponential(e,r);var c=r?t.roundDigits(s,r):s,f=c.coefficients,l=c.exponent;f.length<r&&(f=f.concat(n(r-f.length))),f=f.concat(n(l-f.length+1+(f.length<r?r-f.length:0))),f=n(-l).concat(f);var p=l>0?l:0;return p<f.length-1&&f.splice(p+1,0,"."),c.sign+f.join("")},t.roundDigits=function(e,t){for(var r={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},n=r.coefficients;t<=0;)n.unshift(0),r.exponent++,t++;if(n.length>t&&n.splice(t,n.length-t)[0]>=5){var i=t-1;for(n[i]++;10===n[i];)n.pop(),0===i&&(n.unshift(0),r.exponent++,i++),n[--i]++}return r},t.digits=function(e){return e.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length},t.DBL_EPSILON=Number.EPSILON||2.220446049250313e-16,t.nearlyEqual=function(e,r,n){if(null==n)return e==r;if(e==r)return!0;if(isNaN(e)||isNaN(r))return!1;if(isFinite(e)&&isFinite(r)){var i=Math.abs(e-r);return i<t.DBL_EPSILON||i<=Math.max(Math.abs(e),Math.abs(r))*n}return!1}},function(e,t,r){"use strict";var n=r(173);t.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{?}"},t.operators={transpose:"^\\top",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"},t.defaultTemplate="\\mathrm{${name}}\\left(${args}\\right)";var i={deg:"^\\circ"};t.escape=function(e){return n(e,{preserveFormatting:!0})},t.toSymbol=function(e,r){return(r=void 0!==r&&r)?i.hasOwnProperty(e)?i[e]:"\\mathrm{"+t.escape(e)+"}":t.symbols.hasOwnProperty(e)?t.symbols[e]:t.escape(e)}},function(e,t,r){"use strict";var n=r(71);t.clone=function e(r){var i=typeof r;if("number"===i||"string"===i||"boolean"===i||null===r||void 0===r)return r;if("function"==typeof r.clone)return r.clone();if(Array.isArray(r))return r.map(function(t){return e(t)});if(r instanceof Number)return new Number(r.valueOf());if(r instanceof String)return new String(r.valueOf());if(r instanceof Boolean)return new Boolean(r.valueOf());if(r instanceof Date)return new Date(r.valueOf());if(n(r))return r;if(r instanceof RegExp)throw new TypeError("Cannot clone "+r);return t.map(r,e)},t.map=function(e,r){var n={};for(var i in e)t.hasOwnProperty(e,i)&&(n[i]=r(e[i]));return n},t.extend=function(e,r){for(var n in r)t.hasOwnProperty(r,n)&&(e[n]=r[n]);return e},t.deepExtend=function e(r,n){if(Array.isArray(n))throw new TypeError("Arrays are not supported by deepExtend");for(var i in n)if(t.hasOwnProperty(n,i))if(n[i]&&n[i].constructor===Object)void 0===r[i]&&(r[i]={}),r[i].constructor===Object?e(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},t.deepEqual=function(e,r){var n,i,a;if(Array.isArray(e)){if(!Array.isArray(r))return!1;if(e.length!=r.length)return!1;for(i=0,a=e.length;i<a;i++)if(!t.deepEqual(e[i],r[i]))return!1;return!0}if(e instanceof Object){if(Array.isArray(r)||!(r instanceof Object))return!1;for(n in e)if(!t.deepEqual(e[n],r[n]))return!1;for(n in r)if(!t.deepEqual(e[n],r[n]))return!1;return!0}return typeof e==typeof r&&e==r},t.canDefineProperty=function(){try{if(Object.defineProperty)return Object.defineProperty({},"x",{get:function(){}}),!0}catch(e){}return!1},t.lazy=function(e,r,n){if(t.canDefineProperty()){var i,a=!0;Object.defineProperty(e,r,{get:function(){return a&&(i=n(),a=!1),i},set:function(e){i=e,a=!1},configurable:!0,enumerable:!0})}else e[r]=n()},t.traverse=function(e,t){var r=e;if(t)for(var n=t.split("."),i=0;i<n.length;i++){var a=n[i];a in r||(r[a]={}),r=r[a]}return r},t.hasOwnProperty=function(e,t){return e&&Object.hasOwnProperty.call(e,t)},t.isFactory=function(e){return e&&"function"==typeof e.factory}},function(e,t,r){"use strict";var n=r(5).clone;t.name="algorithm14",t.factory=function(e,t,r,i){var a=e.DenseMatrix,o=function(e,t,r,n,i,a,s){var u=[];if(t===r.length-1)for(var c=0;c<n;c++)u[c]=s?e(a,i[c]):e(i[c],a);else for(var f=0;f<n;f++)u[f]=o(e,t+1,r,r[t+1],i[f],a,s);return u};return function(e,t,r,s){var u,c=e._data,f=e._size,l=e._datatype,p=r;"string"==typeof l&&(u=l,t=i.convert(t,u),p=i.find(r,[u,u]));var h=f.length>0?o(p,0,f,f[0],c,t,s):[];return new a({data:h,size:n(f),datatype:u})}}},function(e,t,r){var n=r(5).hasOwnProperty;t.factory=function(){var e={};return{register:function(t,r){if(void 0!==e[t])throw new Error('Cannot register type "'+t+'": already exists');e[t]=r},compile:function(t,r,i){if(n(e,t.type))return(0,e[t.type])(t,r,i);if("function"!=typeof t._compile||n(t,"_compile"))throw new Error('Cannot compile node: unknown type "'+t.type+'"');return t._compile(r,i)}}}},function(e,t,r){"use strict";var n=r(25),i=r(11);n.string.isString;t.name="algorithm13",t.factory=function(e,t,r,n){var a=e.DenseMatrix,o=function(e,t,r,n,i,a){var s=[];if(t===r.length-1)for(var u=0;u<n;u++)s[u]=e(i[u],a[u]);else for(var c=0;c<n;c++)s[c]=o(e,t+1,r,r[t+1],i[c],a[c]);return s};return function(e,t,r){var s,u=e._data,c=e._size,f=e._datatype,l=t._data,p=t._size,h=t._datatype,m=[];if(c.length!==p.length)throw new i(c.length,p.length);for(var d=0;d<c.length;d++){if(c[d]!==p[d])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+p+")");m[d]=c[d]}var g=r;"string"==typeof f&&f===h&&(s=f,t=n.convert(t,s),g=n.find(r,[s,s]));var v=m.length>0?o(g,0,m,m[0],u,l):[];return new a({data:v,size:m,datatype:s})}}},function(e,t,r){"use strict";var n=r(3).format,i=r(168).format,a=r(71);t.isString=function(e){return"string"==typeof e},t.endsWith=function(e,t){var r=e.length-t.length,n=e.length;return e.substring(r,n)===t},t.format=function(e,r){if("number"==typeof e)return n(e,r);if(a(e))return i(e,r);if((o=e)&&"object"==typeof o&&"number"==typeof o.s&&"number"==typeof o.n&&"number"==typeof o.d)return r&&"decimal"===r.fraction?e.toString():e.s*e.n+"/"+e.d;var o;if(Array.isArray(e))return function e(r,n){{if(Array.isArray(r)){for(var i="[",a=r.length,o=0;o<a;o++)0!=o&&(i+=", "),i+=e(r[o],n);return i+="]"}return t.format(r,n)}}(e,r);if(t.isString(e))return'"'+e+'"';if("function"==typeof e)return e.syntax?String(e.syntax):"function";if(e&&"object"==typeof e){if("function"==typeof e.format)return e.format(r);if(e&&e.toString()!=={}.toString())return e.toString();var s=[];for(var u in e)e.hasOwnProperty(u)&&s.push('"'+u+'": '+t.format(e[u],r));return"{"+s.join(", ")+"}"}return String(e)},t.stringify=function(e){for(var t=String(e),r="",n=0;n<t.length;){var i=t.charAt(n);"\\"===i?(r+=i,n++,""!==(i=t.charAt(n))&&-1!=='"\\/bfnrtu'.indexOf(i)||(r+="\\"),r+=i):r+='"'===i?'\\"':i,n++}return'"'+r+'"'},t.escape=function(e){var t=String(e);return t=t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}},function(e,t,r){"use strict";var n=r(3).nearlyEqual,i=r(37);t.factory=function(e,t,r,a){var o=a("equalScalar",{"boolean, boolean":function(e,t){return e===t},"number, number":function(e,r){return e===r||n(e,r,t.epsilon)},"BigNumber, BigNumber":function(e,r){return e.eq(r)||i(e,r,t.epsilon)},"Fraction, Fraction":function(e,t){return e.equals(t)},"Complex, Complex":function(e,t){return e.equals(t)},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return o(e.value,t.value)},"string, string":function(e,t){return e===t}});return o}},function(e,t,r){"use strict";function n(e,t,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.actual=e,this.expected=t,this.relation=r,this.message="Dimension mismatch ("+(Array.isArray(e)?"["+e.join(", ")+"]":e)+" "+(this.relation||"!=")+" "+(Array.isArray(t)?"["+t.join(", ")+"]":t)+")",this.stack=(new Error).stack}n.prototype=new RangeError,n.prototype.constructor=RangeError,n.prototype.name="DimensionError",n.prototype.isDimensionError=!0,e.exports=n},function(e,t,r){"use strict";var n=r(5).extend,i=r(2);t.name="multiply",t.factory=function(e,t,a,o){var s=r(4),u=a(r(0)),c=a(r(16)),f=a(r(22)),l=a(r(10)),p=a(r(19)),h=a(r(6)),m=e.DenseMatrix,d=e.SparseMatrix,g=o("multiply",n({"Array, Array":function(t,r){v(i.size(t),i.size(r));var n=g(u(t),u(r));return e.isMatrix(n)?n.valueOf():n},"Matrix, Matrix":function(e,t){var r=e.size(),n=t.size();return v(r,n),1===r.length?1===n.length?y(e,t,r[0]):x(e,t):1===n.length?b(e,t):N(e,t)},"Matrix, Array":function(e,t){return g(e,u(t))},"Array, Matrix":function(e,t){return g(u(e,t.storage()),t)},"Matrix, any":function(e,t){var r;switch(e.storage()){case"sparse":r=p(e,t,f,!1);break;case"dense":r=h(e,t,f,!1)}return r},"any, Matrix":function(e,t){var r;switch(t.storage()){case"sparse":r=p(t,e,f,!0);break;case"dense":r=h(t,e,f,!0)}return r},"Array, any":function(e,t){return h(u(e),t,f,!1).valueOf()},"any, Array":function(e,t){return h(u(t),e,f,!0).valueOf()},"any, any":f,"Array | Matrix | any, Array | Matrix | any, ...any":function(e,t,r){for(var n=g(e,t),i=0;i<r.length;i++)n=g(n,r[i]);return n}},f.signatures)),v=function(e,t){switch(e.length){case 1:switch(t.length){case 1:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+e[0]+") must match Matrix rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;case 2:switch(t.length){case 1:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+e[1]+") must match Vector length ("+t[0]+")");break;case 2:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+e[1]+") must match Matrix B rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+e.length+" dimensions)")}},y=function(e,t,r){if(0===r)throw new Error("Cannot multiply two empty vectors");var n,i=e._data,a=e._datatype,s=t._data,u=t._datatype,l=c,p=f;a&&u&&a===u&&"string"==typeof a&&(n=a,l=o.find(c,[n,n]),p=o.find(f,[n,n]));for(var h=p(i[0],s[0]),m=1;m<r;m++)h=l(h,p(i[m],s[m]));return h},x=function(e,t){switch(t.storage()){case"dense":return w(e,t)}throw new Error("Not implemented")},w=function(e,t){var r,n=e._data,i=e._size,a=e._datatype,s=t._data,u=t._size,l=t._datatype,p=i[0],h=u[1],d=c,g=f;a&&l&&a===l&&"string"==typeof a&&(r=a,d=o.find(c,[r,r]),g=o.find(f,[r,r]));for(var v=[],y=0;y<h;y++){for(var x=g(n[0],s[0][y]),w=1;w<p;w++)x=d(x,g(n[w],s[w][y]));v[y]=x}return new m({data:v,size:[h],datatype:r})},b=function(e,t){switch(e.storage()){case"dense":return E(e,t);case"sparse":return O(e,t)}},N=function(e,t){switch(e.storage()){case"dense":switch(t.storage()){case"dense":return M(e,t);case"sparse":return A(e,t)}break;case"sparse":switch(t.storage()){case"dense":return T(e,t);case"sparse":return S(e,t)}}},E=function(e,t){var r,n=e._data,i=e._size,a=e._datatype,s=t._data,u=t._datatype,l=i[0],p=i[1],h=c,d=f;a&&u&&a===u&&"string"==typeof a&&(r=a,h=o.find(c,[r,r]),d=o.find(f,[r,r]));for(var g=[],v=0;v<l;v++){for(var y=n[v],x=d(y[0],s[0]),w=1;w<p;w++)x=h(x,d(y[w],s[w]));g[v]=x}return new m({data:g,size:[l],datatype:r})},M=function(e,t){var r,n=e._data,i=e._size,a=e._datatype,s=t._data,u=t._size,l=t._datatype,p=i[0],h=i[1],d=u[1],g=c,v=f;a&&l&&a===l&&"string"==typeof a&&(r=a,g=o.find(c,[r,r]),v=o.find(f,[r,r]));for(var y=[],x=0;x<p;x++){var w=n[x];y[x]=[];for(var b=0;b<d;b++){for(var N=v(w[0],s[0][b]),E=1;E<h;E++)N=g(N,v(w[E],s[E][b]));y[x][b]=N}}return new m({data:y,size:[p,d],datatype:r})},A=function(e,t){var r=e._data,n=e._size,i=e._datatype,a=t._values,s=t._index,u=t._ptr,p=t._size,h=t._datatype;if(!a)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var m,g=n[0],v=p[1],y=c,x=f,w=l,b=0;i&&h&&i===h&&"string"==typeof i&&(m=i,y=o.find(c,[m,m]),x=o.find(f,[m,m]),w=o.find(l,[m,m]),b=o.convert(0,m));for(var N=[],E=[],M=[],A=new d({values:N,index:E,ptr:M,size:[g,v],datatype:m}),O=0;O<v;O++){M[O]=E.length;var T=u[O],S=u[O+1];if(S>T)for(var _=0,C=0;C<g;C++){for(var z,k=C+1,B=T;B<S;B++){var I=s[B];_!==k?(z=x(r[C][I],a[B]),_=k):z=y(z,x(r[C][I],a[B]))}_!==k||w(z,b)||(E.push(C),N.push(z))}}return M[v]=E.length,A},O=function(e,t){var r=e._values,n=e._index,i=e._ptr,a=e._datatype;if(!r)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var s,u=t._data,p=t._datatype,h=e._size[0],m=t._size[0],g=[],v=[],y=[],x=c,w=f,b=l,N=0;a&&p&&a===p&&"string"==typeof a&&(s=a,x=o.find(c,[s,s]),w=o.find(f,[s,s]),b=o.find(l,[s,s]),N=o.convert(0,s));var E=[],M=[];y[0]=0;for(var A=0;A<m;A++){var O=u[A];if(!b(O,N))for(var T=i[A],S=i[A+1],_=T;_<S;_++){var C=n[_];M[C]?E[C]=x(E[C],w(O,r[_])):(M[C]=!0,v.push(C),E[C]=w(O,r[_]))}}for(var z=v.length,k=0;k<z;k++){var B=v[k];g[k]=E[B]}return y[1]=v.length,new d({values:g,index:v,ptr:y,size:[h,1],datatype:s})},T=function(e,t){var r=e._values,n=e._index,i=e._ptr,a=e._datatype;if(!r)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var s,u=t._data,p=t._datatype,h=e._size[0],m=t._size[0],g=t._size[1],v=c,y=f,x=l,w=0;a&&p&&a===p&&"string"==typeof a&&(s=a,v=o.find(c,[s,s]),y=o.find(f,[s,s]),x=o.find(l,[s,s]),w=o.convert(0,s));for(var b=[],N=[],E=[],M=new d({values:b,index:N,ptr:E,size:[h,g],datatype:s}),A=[],O=[],T=0;T<g;T++){E[T]=N.length;for(var S=T+1,_=0;_<m;_++){var C=u[_][T];if(!x(C,w))for(var z=i[_],k=i[_+1],B=z;B<k;B++){var I=n[B];O[I]!==S?(O[I]=S,N.push(I),A[I]=y(C,r[B])):A[I]=v(A[I],y(C,r[B]))}}for(var P=E[T],R=N.length,U=P;U<R;U++){var q=N[U];b[U]=A[q]}}return E[g]=N.length,M},S=function(e,t){var r,n=e._values,i=e._index,a=e._ptr,s=e._datatype,u=t._values,l=t._index,p=t._ptr,h=t._datatype,m=e._size[0],g=t._size[1],v=n&&u,y=c,x=f;s&&h&&s===h&&"string"==typeof s&&(r=s,y=o.find(c,[r,r]),x=o.find(f,[r,r]));for(var w,b,N,E,M,A,O,T,S=v?[]:void 0,_=[],C=[],z=new d({values:S,index:_,ptr:C,size:[m,g],datatype:r}),k=v?[]:void 0,B=[],I=0;I<g;I++){C[I]=_.length;var P=I+1;for(M=p[I],A=p[I+1],E=M;E<A;E++)if(T=l[E],v)for(b=a[T],N=a[T+1],w=b;w<N;w++)B[O=i[w]]!==P?(B[O]=P,_.push(O),k[O]=x(u[E],n[w])):k[O]=y(k[O],x(u[E],n[w]));else for(b=a[T],N=a[T+1],w=b;w<N;w++)B[O=i[w]]!==P&&(B[O]=P,_.push(O));if(v)for(var R=C[I],U=_.length,q=R;q<U;q++){var L=_[q];S[q]=k[L]}}return C[g]=_.length,z};return g.toTex={2:"\\left(${args[0]}"+s.operators.multiply+"${args[1]}\\right)"},g}},function(e,t,r){"use strict";var n=r(5).hasOwnProperty;function i(e,t){return!(!e||"object"!=typeof e)&&(!!n(s,t)||!(t in Object.prototype)&&!(t in Function.prototype))}function a(e,t){return!(!e||"function"!=typeof e[t])&&(!(n(e,t)&&e.__proto__&&t in e.__proto__)&&(!!n(u,t)||!(t in Object.prototype)&&!(t in Function.prototype)))}function o(e){return"object"==typeof e&&e&&e.constructor===Object}var s={length:!0,name:!0},u={toString:!0,valueOf:!0,toLocaleString:!0};t.getSafeProperty=function(e,t){if(o(e)&&i(e,t))return e[t];if("function"==typeof e[t]&&a(e,t))throw new Error('Cannot access method "'+t+'" as a property');throw new Error('No access to property "'+t+'"')},t.setSafeProperty=function(e,t,r){if(o(e)&&i(e,t))return e[t]=r;throw new Error('No access to property "'+t+'"')},t.isSafeProperty=i,t.validateSafeMethod=function(e,t){if(!a(e,t))throw new Error('No access to method "'+t+'"')},t.isSafeMethod=a,t.isPlainObject=o},function(e,t,r){"use strict";t.factory=function(e,t,n,i){var a=n(r(22)),o=i("divide",{"number, number":function(e,t){return e/t},"Complex, Complex":function(e,t){return e.div(t)},"BigNumber, BigNumber":function(e,t){return e.div(t)},"Fraction, Fraction":function(e,t){return e.div(t)},"Unit, number | Fraction | BigNumber":function(e,t){var r=e.clone();return r.value=o(null===r.value?r._normalize(1):r.value,t),r},"number | Fraction | BigNumber, Unit":function(e,t){var r=t.pow(-1);return r.value=a(null===r.value?r._normalize(1):r.value,e),r},"Unit, Unit":function(e,t){return e.divide(t)}});return o}},function(e,t,r){"use strict";var n=r(77),i=r(5).deepEqual,a=r(5).hasOwnProperty;t.name="Node",t.path="expression.node",t.math=!0,t.factory=function(e,t,o,s,u){var c=o(r(7)).compile;function f(){if(!(this instanceof f))throw new SyntaxError("Constructor must be called with the new operator")}function l(e){for(var t in e)if(a(e,t)&&t in n)throw new Error('Scope contains an illegal symbol, "'+t+'" is a reserved keyword')}return f.prototype.eval=function(e){return this.compile().eval(e)},f.prototype.type="Node",f.prototype.isNode=!0,f.prototype.comment="",f.prototype.compile=function(){if(arguments.length>0)throw new Error("Calling compile(math) is deprecated. Call the function as compile() instead.");var e={math:u.expression.mathWithTransform,args:{},_validateScope:l},t=c(this,e,{}),r=Object.keys(e).map(function(e){return" var "+e+' = defs["'+e+'"];'}).join(" ")+'return { "eval": function (scope) { if (scope) _validateScope(scope); scope = scope || {}; return '+t+"; }};";return new Function("defs",r)(e)},f.prototype.forEach=function(e){throw new Error("Cannot run forEach on a Node interface")},f.prototype.map=function(e){throw new Error("Cannot run map on a Node interface")},f.prototype._ifNode=function(t){if(!e.isNode(t))throw new TypeError("Callback function must return a Node");return t},f.prototype.traverse=function(e){e(this,null,null),function e(t,r){t.forEach(function(t,n,i){r(t,n,i),e(t,r)})}(this,e)},f.prototype.transform=function(e){return function e(t,r){return t.map(function(t,n,i){return e(r(t,n,i),r)})}(e(this,null,null),e)},f.prototype.filter=function(e){var t=[];return this.traverse(function(r,n,i){e(r,n,i)&&t.push(r)}),t},f.prototype.find=function(){throw new Error("Function Node.find is deprecated. Use Node.filter instead.")},f.prototype.match=function(){throw new Error("Function Node.match is deprecated. See functions Node.filter, Node.transform, Node.traverse.")},f.prototype.clone=function(){throw new Error("Cannot clone a Node interface")},f.prototype.cloneDeep=function(){return this.map(function(e){return e.cloneDeep()})},f.prototype.equals=function(e){return!!e&&i(this,e)},f.prototype.toString=function(e){var t;if(e&&"object"==typeof e)switch(typeof e.handler){case"object":case"undefined":break;case"function":t=e.handler(this,e);break;default:throw new TypeError("Object or function expected as callback")}return void 0!==t?t:this._toString(e)},f.prototype.toHTML=function(e){var t;if(e&&"object"==typeof e)switch(typeof e.handler){case"object":case"undefined":break;case"function":t=e.handler(this,e);break;default:throw new TypeError("Object or function expected as callback")}return void 0!==t?t:this.toHTML(e)},f.prototype._toString=function(){throw new Error("_toString not implemented for "+this.type)},f.prototype.toTex=function(e){var t;if(e&&"object"==typeof e)switch(typeof e.handler){case"object":case"undefined":break;case"function":t=e.handler(this,e);break;default:throw new TypeError("Object or function expected as callback")}return void 0!==t?t:this._toTex(e)},f.prototype._toTex=function(e){throw new Error("_toTex not implemented for "+this.type)},f.prototype.getIdentifier=function(){return this.type},f.prototype.getContent=function(){return this},f}},function(e,t,r){"use strict";t.factory=function(e,t,r,n){var i=n("add",{"number, number":function(e,t){return e+t},"Complex, Complex":function(e,t){return e.add(t)},"BigNumber, BigNumber":function(e,t){return e.plus(t)},"Fraction, Fraction":function(e,t){return e.add(t)},"Unit, Unit":function(e,t){if(null==e.value)throw new Error("Parameter x contains a unit with undefined value");if(null==t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var r=e.clone();return r.value=i(r.value,t.value),r.fixPrefix=!1,r}});return i}},function(e,t,r){"use strict";var n=r(11);t.name="algorithm03",t.factory=function(e,t,r,i){var a=e.DenseMatrix;return function(e,t,r,o){var s=e._data,u=e._size,c=e._datatype,f=t._values,l=t._index,p=t._ptr,h=t._size,m=t._datatype;if(u.length!==h.length)throw new n(u.length,h.length);if(u[0]!==h[0]||u[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+h+")");if(!f)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,g=u[0],v=u[1],y=0,x=r;"string"==typeof c&&c===m&&(d=c,y=i.convert(0,d),x=i.find(r,[d,d]));for(var w=[],b=0;b<g;b++)w[b]=[];for(var N=[],E=[],M=0;M<v;M++){for(var A=M+1,O=p[M],T=p[M+1],S=O;S<T;S++){var _=l[S];N[_]=o?x(f[S],s[_][M]):x(s[_][M],f[S]),E[_]=A}for(var C=0;C<g;C++)E[C]===A?w[C][M]=N[C]:w[C][M]=o?x(y,s[C][M]):x(s[C][M],y)}return new a({data:w,size:[g,v],datatype:d})}}},function(e,t,r){"use strict";t.name="algorithm12",t.factory=function(e,t,r,n){var i=e.DenseMatrix;return function(e,t,r,a){var o=e._values,s=e._index,u=e._ptr,c=e._size,f=e._datatype;if(!o)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,t=n.convert(t,l),m=n.find(r,[l,l]));for(var d=[],g=new i({data:d,size:[p,h],datatype:l}),v=[],y=[],x=0;x<h;x++){for(var w=x+1,b=u[x],N=u[x+1],E=b;E<N;E++){var M=s[E];v[M]=o[E],y[M]=w}for(var A=0;A<p;A++)0===x&&(d[A]=[]),y[A]===w?d[A][x]=a?m(t,v[A]):m(v[A],t):d[A][x]=a?m(t,0):m(0,t)}return g}}},function(e,t,r){"use strict";t.name="algorithm11",t.factory=function(e,t,n,i){var a=n(r(10)),o=e.SparseMatrix;return function(e,t,r,n){var s=e._values,u=e._index,c=e._ptr,f=e._size,l=e._datatype;if(!s)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var p,h=f[0],m=f[1],d=a,g=0,v=r;"string"==typeof l&&(p=l,d=i.find(a,[p,p]),g=i.convert(0,p),t=i.convert(t,p),v=i.find(r,[p,p]));for(var y=[],x=[],w=[],b=new o({values:y,index:x,ptr:w,size:[h,m],datatype:p}),N=0;N<m;N++){w[N]=x.length;for(var E=c[N],M=c[N+1],A=E;A<M;A++){var O=u[A],T=n?v(t,s[A]):v(s[A],t);d(T,g)||(x.push(O),y.push(T))}}return w[m]=x.length,b}}},function(e,t,r){"use strict";var n=r(5).extend;t.name="add",t.factory=function(e,t,i,a){var o=i(r(0)),s=i(r(16)),u=r(4),c=i(r(33)),f=i(r(73)),l=i(r(38)),p=i(r(8)),h=i(r(6)),m=a("add",n({"Matrix, Matrix":function(e,t){var r;switch(e.storage()){case"sparse":switch(t.storage()){case"sparse":r=f(e,t,s);break;default:r=c(t,e,s,!0)}break;default:switch(t.storage()){case"sparse":r=c(e,t,s,!1);break;default:r=p(e,t,s)}}return r},"Array, Array":function(e,t){return m(o(e),o(t)).valueOf()},"Array, Matrix":function(e,t){return m(o(e),t)},"Matrix, Array":function(e,t){return m(e,o(t))},"Matrix, any":function(e,t){var r;switch(e.storage()){case"sparse":r=l(e,t,s,!1);break;default:r=h(e,t,s,!1)}return r},"any, Matrix":function(e,t){var r;switch(t.storage()){case"sparse":r=l(t,e,s,!0);break;default:r=h(t,e,s,!0)}return r},"Array, any":function(e,t){return h(o(e),t,s,!1).valueOf()},"any, Array":function(e,t){return h(o(t),e,s,!0).valueOf()},"any, any":s,"Array | Matrix | any, Array | Matrix | any, ...any":function(e,t,r){for(var n=m(e,t),i=0;i<r.length;i++)n=m(n,r[i]);return n}},s.signatures));return m.toTex={2:"\\left(${args[0]}"+u.operators.add+"${args[1]}\\right)"},m}},function(e,t,r){"use strict";var n=r(11);t.name="subtract",t.factory=function(e,t,i,a){var o=r(4),s=i(r(0)),u=i(r(16)),c=i(r(35)),f=i(r(33)),l=i(r(17)),p=i(r(61)),h=i(r(38)),m=i(r(8)),d=i(r(6)),g=a("subtract",{"number, number":function(e,t){return e-t},"Complex, Complex":function(e,t){return e.sub(t)},"BigNumber, BigNumber":function(e,t){return e.minus(t)},"Fraction, Fraction":function(e,t){return e.sub(t)},"Unit, Unit":function(e,t){if(null==e.value)throw new Error("Parameter x contains a unit with undefined value");if(null==t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var r=e.clone();return r.value=g(r.value,t.value),r.fixPrefix=!1,r},"Matrix, Matrix":function(e,t){var r,i=e.size(),a=t.size();if(i.length!==a.length)throw new n(i.length,a.length);switch(e.storage()){case"sparse":switch(t.storage()){case"sparse":r=p(e,t,g);break;default:r=l(t,e,g,!0)}break;default:switch(t.storage()){case"sparse":r=f(e,t,g,!1);break;default:r=m(e,t,g)}}return r},"Array, Array":function(e,t){return g(s(e),s(t)).valueOf()},"Array, Matrix":function(e,t){return g(s(e),t)},"Matrix, Array":function(e,t){return g(e,s(t))},"Matrix, any":function(e,t){var r;switch(e.storage()){case"sparse":r=h(e,c(t),u);break;default:r=d(e,t,g)}return r},"any, Matrix":function(e,t){var r;switch(t.storage()){case"sparse":r=h(t,e,g,!0);break;default:r=d(t,e,g,!0)}return r},"Array, any":function(e,t){return d(s(e),t,g,!1).valueOf()},"any, Array":function(e,t){return d(s(t),e,g,!0).valueOf()}});return g.toTex={2:"\\left(${args[0]}"+o.operators.subtract+"${args[1]}\\right)"},g}},function(e,t,r){"use strict";t.factory=function(e,t,r,n){var i=n("multiplyScalar",{"number, number":function(e,t){return e*t},"Complex, Complex":function(e,t){return e.mul(t)},"BigNumber, BigNumber":function(e,t){return e.times(t)},"Fraction, Fraction":function(e,t){return e.mul(t)},"number | Fraction | BigNumber | Complex, Unit":function(e,t){var r=t.clone();return r.value=null===r.value?r._normalize(e):i(r.value,e),r},"Unit, number | Fraction | BigNumber | Complex":function(e,t){var r=e.clone();return r.value=null===r.value?r._normalize(t):i(r.value,t),r},"Unit, Unit":function(e,t){return e.multiply(t)}});return i}},function(e,t,r){"use strict";var n=r(5).clone,i=r(2).validateIndex,a=r(13).getSafeProperty,o=r(13).setSafeProperty,s=r(11);function u(e,t){if(1!==t.size().length)throw new s(t.size(),1);var r=t.dimension(0);if("string"!=typeof r)throw new TypeError("String expected as index to retrieve an object property");return a(e,r)}function c(e,t,r){if(1!==t.size().length)throw new s(t.size(),1);var i=t.dimension(0);if("string"!=typeof i)throw new TypeError("String expected as index to retrieve an object property");var a=n(e);return o(a,i,r),a}t.name="subset",t.factory=function(e,t,a,o){var f=a(r(0)),l=o("subset",{"Array, Index":function(e,t){var r=f(e).subset(t);return t.isScalar()?r:r.valueOf()},"Matrix, Index":function(e,t){return e.subset(t)},"Object, Index":u,"string, Index":function(t,r){if(!e.isIndex(r))throw new TypeError("Index expected");if(1!=r.size().length)throw new s(r.size().length,1);var n=t.length;i(r.min()[0],n),i(r.max()[0],n);var a="";return r.dimension(0).forEach(function(e){a+=t.charAt(e)}),a},"Array, Index, any":function(e,t,r){return f(n(e)).subset(t,r,void 0).valueOf()},"Array, Index, any, any":function(e,t,r,i){return f(n(e)).subset(t,r,i).valueOf()},"Matrix, Index, any":function(e,t,r){return e.clone().subset(t,r)},"Matrix, Index, any, any":function(e,t,r,n){return e.clone().subset(t,r,n)},"string, Index, string":p,"string, Index, string, string":p,"Object, Index, any":c});return l.toTex=void 0,l;function p(e,t,r,n){if(!t||!0!==t.isIndex)throw new TypeError("Index expected");if(1!=t.size().length)throw new s(t.size().length,1);if(void 0!==n){if("string"!=typeof n||1!==n.length)throw new TypeError("Single character expected as defaultValue")}else n=" ";var a=t.dimension(0),o=a.size()[0];if(o!=r.length)throw new s(a.size()[0],r.length);var u=e.length;i(t.min()[0]),i(t.max()[0]);for(var c=[],f=0;f<u;f++)c[f]=e.charAt(f);if(a.forEach(function(e,t){c[e]=r.charAt(t[0])}),c.length>u)for(f=u-1,o=c.length;f<o;f++)c[f]||(c[f]=n);return c.join("")}}},function(e,t,r){"use strict";var n=r(11);t.name="algorithm02",t.factory=function(e,t,i,a){var o=i(r(10)),s=e.SparseMatrix;return function(e,t,r,i){var u=e._data,c=e._size,f=e._datatype,l=t._values,p=t._index,h=t._ptr,m=t._size,d=t._datatype;if(c.length!==m.length)throw new n(c.length,m.length);if(c[0]!==m[0]||c[1]!==m[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+m+")");if(!l)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var g,v=c[0],y=c[1],x=o,w=0,b=r;"string"==typeof f&&f===d&&(g=f,x=a.find(o,[g,g]),w=a.convert(0,g),b=a.find(r,[g,g]));for(var N=[],E=[],M=[],A=0;A<y;A++){M[A]=E.length;for(var O=h[A],T=h[A+1],S=O;S<T;S++){var _=p[S],C=i?b(l[S],u[_][A]):b(u[_][A],l[S]);x(C,w)||(E.push(_),N.push(C))}}return M[y]=E.length,new s({values:N,index:E,ptr:M,size:[v,y],datatype:g})}}},function(e,t,r){"use strict";t.array=r(2),t.boolean=r(178),t.function=r(32),t.number=r(3),t.object=r(5),t.string=r(9),t.types=r(60),t.emitter=r(91)},function(e,t,r){"use strict";var n=r(11);t.name="algorithm07",t.factory=function(e,t,r,i){var a=e.DenseMatrix,o=function(e,t,r,n,i){for(var a=e._values,o=e._index,s=e._ptr,u=s[t],c=s[t+1];u<c;u++){var f=o[u];r[f]=i,n[f]=a[u]}};return function(e,t,r){var s=e._size,u=e._datatype,c=t._size,f=t._datatype;if(s.length!==c.length)throw new n(s.length,c.length);if(s[0]!==c[0]||s[1]!==c[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+c+")");var l,p,h,m=s[0],d=s[1],g=0,v=r;"string"==typeof u&&u===f&&(l=u,g=i.convert(0,l),v=i.find(r,[l,l]));var y=[];for(p=0;p<m;p++)y[p]=[];var x=new a({data:y,size:[m,d],datatype:l}),w=[],b=[],N=[],E=[];for(h=0;h<d;h++){var M=h+1;for(o(e,h,N,w,M),o(t,h,E,b,M),p=0;p<m;p++){var A=N[p]===M?w[p]:g,O=E[p]===M?b[p]:g;y[p][h]=v(A,O)}}return x}}},function(e,t,r){"use strict";var n=r(5).clone,i=r(3).isInteger;t.name="Index",t.path="type",t.factory=function(e){function t(n){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this._dimensions=[],this._isScalar=!0;for(var i=0,a=arguments.length;i<a;i++){var o=arguments[i];if(e.isRange(o))this._dimensions.push(o),this._isScalar=!1;else if(Array.isArray(o)||e.isMatrix(o)){var s=r(o.valueOf());this._dimensions.push(s);var u=s.size();1===u.length&&1===u[0]||(this._isScalar=!1)}else if("number"==typeof o)this._dimensions.push(r([o]));else{if("string"!=typeof o)throw new TypeError("Dimension must be an Array, Matrix, number, string, or Range");this._dimensions.push(o)}}}function r(t){for(var r=0,n=t.length;r<n;r++)if("number"!=typeof t[r]||!i(t[r]))throw new TypeError("Index parameters must be positive integer numbers");return new e.ImmutableDenseMatrix(t)}return t.prototype.type="Index",t.prototype.isIndex=!0,t.prototype.clone=function(){var e=new t;return e._dimensions=n(this._dimensions),e._isScalar=this._isScalar,e},t.create=function(e){var r=new t;return t.apply(r,e),r},t.prototype.size=function(){for(var e=[],t=0,r=this._dimensions.length;t<r;t++){var n=this._dimensions[t];e[t]="string"==typeof n?1:n.size()[0]}return e},t.prototype.max=function(){for(var e=[],t=0,r=this._dimensions.length;t<r;t++){var n=this._dimensions[t];e[t]="string"==typeof n?n:n.max()}return e},t.prototype.min=function(){for(var e=[],t=0,r=this._dimensions.length;t<r;t++){var n=this._dimensions[t];e[t]="string"==typeof n?n:n.min()}return e},t.prototype.forEach=function(e){for(var t=0,r=this._dimensions.length;t<r;t++)e(this._dimensions[t],t,this)},t.prototype.dimension=function(e){return this._dimensions[e]||null},t.prototype.isObjectProperty=function(){return 1===this._dimensions.length&&"string"==typeof this._dimensions[0]},t.prototype.getObjectProperty=function(){return this.isObjectProperty()?this._dimensions[0]:null},t.prototype.isScalar=function(){return this._isScalar},t.prototype.toArray=function(){for(var e=[],t=0,r=this._dimensions.length;t<r;t++){var n=this._dimensions[t];e.push("string"==typeof n?n:n.toArray())}return e},t.prototype.valueOf=t.prototype.toArray,t.prototype.toString=function(){for(var e=[],t=0,r=this._dimensions.length;t<r;t++){var n=this._dimensions[t];"string"==typeof n?e.push(JSON.stringify(n)):e.push(n.toString())}return"["+e.join(", ")+"]"},t.prototype.toJSON=function(){return{mathjs:"Index",dimensions:this._dimensions}},t.fromJSON=function(e){return t.create(e.dimensions)},t}},function(e,t,r){"use strict";var n=r(1);t.name="abs",t.factory=function(e,t,r,i){var a=i("abs",{number:Math.abs,Complex:function(e){return e.abs()},BigNumber:function(e){return e.abs()},Fraction:function(e){return e.abs()},"Array | Matrix":function(e){return n(e,a,!0)},Unit:function(e){return e.abs()}});return a.toTex={1:"\\left|${args[0]}\\right|"},a}},function(e,t,r){"use strict";var n=r(2);t.name="size",t.factory=function(e,t,i,a){var o=i(r(0)),s=a("size",{Matrix:function(e){return o(e.size())},Array:n.size,string:function(e){return"Array"===t.matrix?[e.length]:o([e.length])},"number | Complex | BigNumber | Unit | boolean | null":function(e){return"Array"===t.matrix?[]:o([])}});return s.toTex=void 0,s}},function(e,t,r){"use strict";t.name="equal",t.factory=function(e,t,n,i){var a=n(r(0)),o=n(r(10)),s=n(r(17)),u=n(r(26)),c=n(r(18)),f=n(r(8)),l=n(r(6)),p=r(4),h=i("equal",{"any, any":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:o(e,t)},"Matrix, Matrix":function(e,t){var r;switch(e.storage()){case"sparse":switch(t.storage()){case"sparse":r=u(e,t,o);break;default:r=s(t,e,o,!0)}break;default:switch(t.storage()){case"sparse":r=s(e,t,o,!1);break;default:r=f(e,t,o)}}return r},"Array, Array":function(e,t){return h(a(e),a(t)).valueOf()},"Array, Matrix":function(e,t){return h(a(e),t)},"Matrix, Array":function(e,t){return h(e,a(t))},"Matrix, any":function(e,t){var r;switch(e.storage()){case"sparse":r=c(e,t,o,!1);break;default:r=l(e,t,o,!1)}return r},"any, Matrix":function(e,t){var r;switch(t.storage()){case"sparse":r=c(t,e,o,!0);break;default:r=l(t,e,o,!0)}return r},"Array, any":function(e,t){return l(a(e),t,o,!1).valueOf()},"any, Array":function(e,t){return l(a(t),e,o,!0).valueOf()}});return h.toTex={2:"\\left(${args[0]}"+p.operators.equal+"${args[1]}\\right)"},h}},function(e,t,r){"use strict";var n=r(486);t.name="compareNatural",t.factory=function(e,t,i,a){var o=i(r(76)),s=(i(r(0)),i(r(52))),u=s.signatures["boolean,boolean"],c=a("compareNatural",{"any, any":function(t,r){var i,a,l,p=o(t),h=o(r);if(!("number"!==p&&"BigNumber"!==p&&"Fraction"!==p||"number"!==h&&"BigNumber"!==h&&"Fraction"!==h))return"0"!==(i=s(t,r)).toString()?i>0?1:-1:n(p,h);if("Array"===p||"Matrix"===p||"Array"===h||"Matrix"===h)return 0!==(i=function t(r,n){return e.isSparseMatrix(r)&&e.isSparseMatrix(n)?f(r.toJSON().values,n.toJSON().values):e.isSparseMatrix(r)?t(r.toArray(),n):e.isSparseMatrix(n)?t(r,n.toArray()):e.isDenseMatrix(r)?t(r.toJSON().data,n):e.isDenseMatrix(n)?t(r,n.toJSON().data):Array.isArray(r)?Array.isArray(n)?f(r,n):t(r,[n]):t([r],n)}(t,r))?i:n(p,h);if(p!==h)return n(p,h);if("Complex"===p)return l=r,(a=t).re>l.re?1:a.re<l.re?-1:a.im>l.im?1:a.im<l.im?-1:0;if("Unit"===p)return t.equalBase(r)?c(t.value,r.value):f(t.formatUnits(),r.formatUnits());if("boolean"===p)return u(t,r);if("string"===p)return n(t,r);if("Object"===p)return function(e,t){var r=Object.keys(e),i=Object.keys(t);r.sort(n),i.sort(n);var a=f(r,i);if(0!==a)return a;for(var o=0;o<r.length;o++){var s=c(e[r[o]],t[i[o]]);if(0!==s)return s}return 0}(t,r);if("null"===p)return 0;if("undefined"===p)return 0;throw new TypeError('Unsupported type of value "'+p+'"')}});function f(e,t){for(var r=0,n=Math.min(e.length,t.length);r<n;r++){var i=c(e[r],t[r]);if(0!==i)return i}return e.length>t.length?1:e.length<t.length?-1:0}return c.toTex=void 0,c}},function(e,t){t.memoize=function(e,t){return function r(){"object"!=typeof r.cache&&(r.cache={});for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var a=t?t(n):JSON.stringify(n);return a in r.cache?r.cache[a]:r.cache[a]=e.apply(e,n)}},t.maxArgumentCount=function(e){return Object.keys(e.signatures||{}).reduce(function(e,t){var r=(t.match(/,/g)||[]).length+1;return Math.max(e,r)},-1)},t.callWithRightArgumentCount=function(e,t,r){return Object.keys(e.signatures||{}).reduce(function(e,t){var r=(t.match(/,/g)||[]).length+1;return Math.max(e,r)},-1)}},function(e,t,r){"use strict";var n=r(11);t.name="algorithm01",t.factory=function(e,t,r,i){var a=e.DenseMatrix;return function(e,t,r,o){var s=e._data,u=e._size,c=e._datatype,f=t._values,l=t._index,p=t._ptr,h=t._size,m=t._datatype;if(u.length!==h.length)throw new n(u.length,h.length);if(u[0]!==h[0]||u[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+h+")");if(!f)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,g,v=u[0],y=u[1],x="string"==typeof c&&c===m?c:void 0,w=x?i.find(r,[x,x]):r,b=[];for(d=0;d<v;d++)b[d]=[];var N=[],E=[];for(g=0;g<y;g++){for(var M=g+1,A=p[g],O=p[g+1],T=A;T<O;T++)N[d=l[T]]=o?w(f[T],s[d][g]):w(s[d][g],f[T]),E[d]=M;for(d=0;d<v;d++)E[d]===M?b[d][g]=N[d]:b[d][g]=s[d][g]}return new a({data:b,size:[v,y],datatype:x})}}},function(e,t,r){"use strict";var n=r(3).nearlyEqual,i=r(37);t.name="larger",t.factory=function(e,t,a,o){var s=a(r(0)),u=a(r(17)),c=a(r(26)),f=a(r(18)),l=a(r(8)),p=a(r(6)),h=r(4),m=o("larger",{"boolean, boolean":function(e,t){return e>t},"number, number":function(e,r){return e>r&&!n(e,r,t.epsilon)},"BigNumber, BigNumber":function(e,r){return e.gt(r)&&!i(e,r,t.epsilon)},"Fraction, Fraction":function(e,t){return 1===e.compare(t)},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return m(e.value,t.value)},"string, string":function(e,t){return e>t},"Matrix, Matrix":function(e,t){var r;switch(e.storage()){case"sparse":switch(t.storage()){case"sparse":r=c(e,t,m);break;default:r=u(t,e,m,!0)}break;default:switch(t.storage()){case"sparse":r=u(e,t,m,!1);break;default:r=l(e,t,m)}}return r},"Array, Array":function(e,t){return m(s(e),s(t)).valueOf()},"Array, Matrix":function(e,t){return m(s(e),t)},"Matrix, Array":function(e,t){return m(e,s(t))},"Matrix, any":function(e,t){var r;switch(e.storage()){case"sparse":r=f(e,t,m,!1);break;default:r=p(e,t,m,!1)}return r},"any, Matrix":function(e,t){var r;switch(t.storage()){case"sparse":r=f(t,e,m,!0);break;default:r=p(t,e,m,!0)}return r},"Array, any":function(e,t){return p(s(e),t,m,!1).valueOf()},"any, Array":function(e,t){return p(s(t),e,m,!0).valueOf()}});return m.toTex={2:"\\left(${args[0]}"+h.operators.larger+"${args[1]}\\right)"},m}},function(e,t,r){"use strict";var n=r(1);t.name="unaryMinus",t.factory=function(e,t,i,a){var o=r(4),s=a("unaryMinus",{number:function(e){return-e},Complex:function(e){return e.neg()},BigNumber:function(e){return e.neg()},Fraction:function(e){return e.neg()},Unit:function(e){var t=e.clone();return t.value=s(e.value),t},"Array | Matrix":function(e){return n(e,s,!0)}});return s.toTex={1:o.operators.unaryMinus+"\\left(${args[0]}\\right)"},s}},function(e,t,r){"use strict";var n=r(4),i=r(9).stringify,a=r(9).escape,o=r(5).hasOwnProperty,s=r(13).getSafeProperty;t.name="SymbolNode",t.path="expression.node",t.math=!0,t.factory=function(e,t,u,c,f){var l=u(r(7)).register,p=(u(r(7)).compile,u(r(15)));function h(t){return!!e.Unit&&e.Unit.isValuelessUnit(t)}function m(e){if(!(this instanceof m))throw new SyntaxError("Constructor must be called with the new operator");if("string"!=typeof e)throw new TypeError('String expected for parameter "name"');this.name=e}function d(e){throw new Error("Undefined symbol "+e)}return m.prototype=new p,m.prototype.type="SymbolNode",m.prototype.isSymbolNode=!0,l(m.prototype.type,function(t,r,n){if(!(t instanceof m))throw new TypeError("No valid SymbolNode");r.undef=d,r.Unit=e.Unit,r.getSafeProperty=s,r.hasOwnProperty=o;var a=i(t.name);return o(n,t.name)?n[t.name]:t.name in r.math?"("+a+" in scope ? getSafeProperty(scope, "+a+") : getSafeProperty(math, "+a+"))":"("+a+" in scope ? getSafeProperty(scope, "+a+") : "+(h(t.name)?"new Unit(null, "+a+")":"undef("+a+")")+")"}),m.prototype.forEach=function(e){},m.prototype.map=function(e){return this.clone()},m.prototype.clone=function(){return new m(this.name)},m.prototype._toString=function(e){return this.name},m.prototype.toHTML=function(e){var t=a(this.name);return"true"==t||"false"==t?'<span class="math-symbol math-boolean">'+t+"</span>":"i"==t?'<span class="math-symbol math-imaginary-symbol">'+t+"</span>":"Infinity"==t?'<span class="math-symbol math-infinity-symbol">'+t+"</span>":"NaN"==t?'<span class="math-symbol math-nan-symbol">'+t+"</span>":"null"==t?'<span class="math-symbol math-null-symbol">'+t+"</span>":"uninitialized"==t?'<span class="math-symbol math-uninitialized-symbol">'+t+"</span>":'<span class="math-symbol">'+t+"</span>"},m.prototype._toTex=function(e){var t=!