UNPKG

mathjs

Version:

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with dif

27 lines 509 kB
/** * 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 4.1.1 * @date 2018-04-11 * * @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=149)}([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";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";var n=r(3),i=r(9),a=r(10),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.resize=function(e,t,r){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new Error("Resizing to scalar is not supported");return t.forEach(function(e){if(!n.isNumber(e)||!n.isInteger(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+i.format(t)+")")}),function e(t,r,n,i){var a;var o;var s=t.length;var u=r[n];var c=Math.min(s,u);t.length=u;if(n<r.length-1){var f=n+1;for(a=0;a<c;a++)o=t[a],Array.isArray(o)||(o=[o],t[a]=o),e(o,r,f,i);for(a=c;a<u;a++)o=[],t[a]=o,e(o,r,f,i)}else{for(a=0;a<c;a++)for(;Array.isArray(t[a]);)t[a]=t[a][0];for(a=c;a<u;a++)t[a]=i}}(e,t,0,void 0!==r?r: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":if(r&&r.exponential&&(void 0!==r.exponential.lower||void 0!==r.exponential.upper)){var a=Object.assign({},r);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)),t.toPrecision(e,i,a)}return t.toPrecision(e,i,r&&r).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:"",m=o.slice(0,f).join("")+p+"e"+(a>=0?"+":"")+s.toString();return i.sign+m},t.toFixed=function(e,r){if(isNaN(e)||!isFinite(e))return String(e);var i=t.splitNumber(e),a="number"==typeof r?t.roundDigits(i,i.exponent+1+r):i,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),s<o.length&&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.lowerExp?i.lowerExp:-3,o=i&&void 0!==i.upperExp?i.upperExp:5,s=t.splitNumber(e);if(s.exponent<a||s.exponent>=o)return t.toExponential(e,r);var u=r?t.roundDigits(s,r):s,c=u.coefficients,f=u.exponent;c.length<r&&(c=c.concat(n(r-c.length))),c=c.concat(n(f-c.length+1+(c.length<r?r-c.length:0)));var l=f>0?f:0;return l<(c=n(-f).concat(c)).length-1&&c.splice(l+1,0,"."),u.sign+c.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(171);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(72);t.clone=function e(r){var i=typeof r;if("number"===i||"string"===i||"boolean"===i||null==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 m=f.length>0?o(p,0,f,f[0],c,t,s):[];return new a({data:m,size:n(f),datatype:u})}}},function(e,t,r){"use strict";var n=r(24),i=r(10);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,m=t._datatype,h=[];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+")");h[d]=c[d]}var y=r;"string"==typeof f&&f===m&&(s=f,t=n.convert(t,s),y=n.find(r,[s,s]));var g=h.length>0?o(y,0,h,h[0],u,l):[];return new a({data:g,size:h,datatype:s})}}},function(e,t,r){"use strict";var n=r(3).nearlyEqual,i=r(35);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)}});return o}},function(e,t,r){"use strict";var n=r(3).format,i=r(166).format,a=r(72);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,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}},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(1)),c=a(r(16)),f=a(r(21)),l=a(r(8)),p=a(r(20)),m=a(r(6)),h=e.DenseMatrix,d=e.SparseMatrix,y=o("multiply",n({"Array, Array":function(t,r){g(i.size(t),i.size(r));var n=y(u(t),u(r));return e.isMatrix(n)?n.valueOf():n},"Matrix, Matrix":function(e,t){var r=e.size(),n=t.size();return g(r,n),1===r.length?1===n.length?v(e,t,r[0]):x(e,t):1===n.length?b(e,t):N(e,t)},"Matrix, Array":function(e,t){return y(e,u(t))},"Array, Matrix":function(e,t){return y(u(e,t.storage()),t)},"SparseMatrix, any":function(e,t){return p(e,t,f,!1)},"DenseMatrix, any":function(e,t){return m(e,t,f,!1)},"any, SparseMatrix":function(e,t){return p(t,e,f,!0)},"any, DenseMatrix":function(e,t){return m(t,e,f,!0)},"Array, any":function(e,t){return m(u(e),t,f,!1).valueOf()},"any, Array":function(e,t){return m(u(t),e,f,!0).valueOf()},"any, any":f,"any, any, ...any":function(e,t,r){for(var n=y(e,t),i=0;i<r.length;i++)n=y(n,r[i]);return n}},f.signatures)),g=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)")}},v=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 m=p(i[0],s[0]),h=1;h<r;h++)m=l(m,p(i[h],s[h]));return m},x=function(e,t){if("dense"!==t.storage())throw new Error("Support for SparseMatrix not implemented");return w(e,t)},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],m=u[1],d=c,y=f;a&&l&&a===l&&"string"==typeof a&&(r=a,d=o.find(c,[r,r]),y=o.find(f,[r,r]));for(var g=[],v=0;v<m;v++){for(var x=y(n[0],s[0][v]),w=1;w<p;w++)x=d(x,y(n[w],s[w][v]));g[v]=x}return new h({data:g,size:[m],datatype:r})},b=o("_multiplyMatrixVector",{"DenseMatrix, any":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],m=c,d=f;a&&u&&a===u&&"string"==typeof a&&(r=a,m=o.find(c,[r,r]),d=o.find(f,[r,r]));for(var y=[],g=0;g<l;g++){for(var v=n[g],x=d(v[0],s[0]),w=1;w<p;w++)x=m(x,d(v[w],s[w]));y[g]=x}return new h({data:y,size:[l],datatype:r})},"SparseMatrix, any":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,m=e._size[0],h=t._size[0],y=[],g=[],v=[],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 M=[],E=[];v[0]=0;for(var A=0;A<h;A++){var O=u[A];if(!b(O,N))for(var S=i[A],_=i[A+1],T=S;T<_;T++){var C=n[T];E[C]?M[C]=x(M[C],w(O,r[T])):(E[C]=!0,g.push(C),M[C]=w(O,r[T]))}}for(var z=g.length,B=0;B<z;B++){var I=g[B];y[B]=M[I]}return v[1]=g.length,new d({values:y,index:g,ptr:v,size:[m,1],datatype:s})}}),N=o("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":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],m=i[1],d=u[1],y=c,g=f;a&&l&&a===l&&"string"==typeof a&&(r=a,y=o.find(c,[r,r]),g=o.find(f,[r,r]));for(var v=[],x=0;x<p;x++){var w=n[x];v[x]=[];for(var b=0;b<d;b++){for(var N=g(w[0],s[0][b]),M=1;M<m;M++)N=y(N,g(w[M],s[M][b]));v[x][b]=N}}return new h({data:v,size:[p,d],datatype:r})},"DenseMatrix, SparseMatrix":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,m=t._datatype;if(!a)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var h,y=n[0],g=p[1],v=c,x=f,w=l,b=0;i&&m&&i===m&&"string"==typeof i&&(h=i,v=o.find(c,[h,h]),x=o.find(f,[h,h]),w=o.find(l,[h,h]),b=o.convert(0,h));for(var N=[],M=[],E=[],A=new d({values:N,index:M,ptr:E,size:[y,g],datatype:h}),O=0;O<g;O++){E[O]=M.length;var S=u[O],_=u[O+1];if(_>S)for(var T=0,C=0;C<y;C++){for(var z,B=C+1,I=S;I<_;I++){var P=s[I];T!==B?(z=x(r[C][P],a[I]),T=B):z=v(z,x(r[C][P],a[I]))}T!==B||w(z,b)||(M.push(C),N.push(z))}}return E[g]=M.length,A},"SparseMatrix, DenseMatrix":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,m=e._size[0],h=t._size[0],y=t._size[1],g=c,v=f,x=l,w=0;a&&p&&a===p&&"string"==typeof a&&(s=a,g=o.find(c,[s,s]),v=o.find(f,[s,s]),x=o.find(l,[s,s]),w=o.convert(0,s));for(var b=[],N=[],M=[],E=new d({values:b,index:N,ptr:M,size:[m,y],datatype:s}),A=[],O=[],S=0;S<y;S++){M[S]=N.length;for(var _=S+1,T=0;T<h;T++){var C=u[T][S];if(!x(C,w))for(var z=i[T],B=i[T+1],I=z;I<B;I++){var P=n[I];O[P]!==_?(O[P]=_,N.push(P),A[P]=v(C,r[I])):A[P]=g(A[P],v(C,r[I]))}}for(var R=M[S],U=N.length,k=R;k<U;k++){var D=N[k];b[k]=A[D]}}return M[y]=N.length,E},"SparseMatrix, SparseMatrix":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,m=t._datatype,h=e._size[0],y=t._size[1],g=n&&u,v=c,x=f;s&&m&&s===m&&"string"==typeof s&&(r=s,v=o.find(c,[r,r]),x=o.find(f,[r,r]));for(var w,b,N,M,E,A,O,S,_=g?[]:void 0,T=[],C=[],z=new d({values:_,index:T,ptr:C,size:[h,y],datatype:r}),B=g?[]:void 0,I=[],P=0;P<y;P++){C[P]=T.length;var R=P+1;for(E=p[P],A=p[P+1],M=E;M<A;M++)if(S=l[M],g)for(b=a[S],N=a[S+1],w=b;w<N;w++)O=i[w],I[O]!==R?(I[O]=R,T.push(O),B[O]=x(u[M],n[w])):B[O]=v(B[O],x(u[M],n[w]));else for(b=a[S],N=a[S+1],w=b;w<N;w++)O=i[w],I[O]!==R&&(I[O]=R,T.push(O));if(g)for(var U=C[P],k=T.length,D=U;D<k;D++){var q=T[D];_[D]=B[q]}}return C[y]=T.length,z}});return y.toTex={2:"\\left(${args[0]}"+s.operators.multiply+"${args[1]}\\right)"},y}},function(e,t,r){"use strict";t.factory=function(e,t,n,i){var a=n(r(21)),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(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";var n=r(101),i=r(5).deepEqual,a=r(5).hasOwnProperty;t.name="Node",t.path="expression.node",t.math=!0,t.factory=function(e,t,r,o,s){function u(){if(!(this instanceof u))throw new SyntaxError("Constructor must be called with the new operator")}return u.prototype.eval=function(e){return this.compile().eval(e)},u.prototype.type="Node",u.prototype.isNode=!0,u.prototype.comment="",u.prototype.compile=function(){var e=this._compile(s.expression.mathWithTransform,{}),t={};return{eval:function(r){var i=r||{};return function(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')}(i),e(i,t,null)}}},u.prototype._compile=function(e,t){throw new Error("Method _compile should be implemented by type "+this.type)},u.prototype.forEach=function(e){throw new Error("Cannot run forEach on a Node interface")},u.prototype.map=function(e){throw new Error("Cannot run map on a Node interface")},u.prototype._ifNode=function(t){if(!e.isNode(t))throw new TypeError("Callback function must return a Node");return t},u.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)},u.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)},u.prototype.filter=function(e){var t=[];return this.traverse(function(r,n,i){e(r,n,i)&&t.push(r)}),t},u.prototype.find=function(){throw new Error("Function Node.find is deprecated. Use Node.filter instead.")},u.prototype.match=function(){throw new Error("Function Node.match is deprecated. See functions Node.filter, Node.transform, Node.traverse.")},u.prototype.clone=function(){throw new Error("Cannot clone a Node interface")},u.prototype.cloneDeep=function(){return this.map(function(e){return e.cloneDeep()})},u.prototype.equals=function(e){return!!e&&i(this,e)},u.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)},u.prototype.toJSON=function(){throw new Error("Cannot serialize object: toJSON not implemented by "+this.type)},u.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)},u.prototype._toString=function(){throw new Error("_toString not implemented for "+this.type)},u.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)},u.prototype._toTex=function(e){throw new Error("_toTex not implemented for "+this.type)},u.prototype.getIdentifier=function(){return this.type},u.prototype.getContent=function(){return this},u}},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(1)),s=i(r(16)),u=r(4),c=i(r(31)),f=i(r(74)),l=i(r(36)),p=i(r(7)),m=i(r(6)),h=a("add",n({"DenseMatrix, DenseMatrix":function(e,t){return p(e,t,s)},"DenseMatrix, SparseMatrix":function(e,t){return c(e,t,s,!1)},"SparseMatrix, DenseMatrix":function(e,t){return c(t,e,s,!0)},"SparseMatrix, SparseMatrix":function(e,t){return f(e,t,s)},"Array, Array":function(e,t){return h(o(e),o(t)).valueOf()},"Array, Matrix":function(e,t){return h(o(e),t)},"Matrix, Array":function(e,t){return h(e,o(t))},"DenseMatrix, any":function(e,t){return m(e,t,s,!1)},"SparseMatrix, any":function(e,t){return l(e,t,s,!1)},"any, DenseMatrix":function(e,t){return m(t,e,s,!0)},"any, SparseMatrix":function(e,t){return l(t,e,s,!0)},"Array, any":function(e,t){return m(o(e),t,s,!1).valueOf()},"any, Array":function(e,t){return m(o(t),e,s,!0).valueOf()},"any, any":s,"any, any, ...any":function(e,t,r){for(var n=h(e,t),i=0;i<r.length;i++)n=h(n,r[i]);return n}},s.signatures));return h.toTex={2:"\\left(${args[0]}"+u.operators.add+"${args[1]}\\right)"},h}},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(10);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,m=t._size,h=t._datatype;if(u.length!==m.length)throw new n(u.length,m.length);if(u[0]!==m[0]||u[1]!==m[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+m+")");if(!f)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,y=u[0],g=u[1],v=0,x=r;"string"==typeof c&&c===h&&(d=c,v=i.convert(0,d),x=i.find(r,[d,d]));for(var w=[],b=0;b<y;b++)w[b]=[];for(var N=[],M=[],E=0;E<g;E++){for(var A=E+1,O=p[E],S=p[E+1],_=O;_<S;_++){var T=l[_];N[T]=o?x(f[_],s[T][E]):x(s[T][E],f[_]),M[T]=A}for(var C=0;C<y;C++)M[C]===A?w[C][E]=N[C]:w[C][E]=o?x(v,s[C][E]):x(s[C][E],v)}return new a({data:w,size:[y,g],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],m=c[1],h=r;"string"==typeof f&&(l=f,t=n.convert(t,l),h=n.find(r,[l,l]));for(var d=[],y=new i({data:d,size:[p,m],datatype:l}),g=[],v=[],x=0;x<m;x++){for(var w=x+1,b=u[x],N=u[x+1],M=b;M<N;M++){var E=s[M];g[E]=o[M],v[E]=w}for(var A=0;A<p;A++)0===x&&(d[A]=[]),v[A]===w?d[A][x]=a?h(t,g[A]):h(g[A],t):d[A][x]=a?h(t,0):h(0,t)}return y}}},function(e,t,r){"use strict";var n=r(10);function i(e,t){var r=e.size(),i=t.size();if(r.length!==i.length)throw new n(r.length,i.length)}t.name="subtract",t.factory=function(e,t,n,a){var o=r(4),s=n(r(1)),u=n(r(16)),c=n(r(33)),f=n(r(31)),l=n(r(17)),p=n(r(62)),m=n(r(36)),h=n(r(7)),d=n(r(6)),y=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=y(r.value,t.value),r.fixPrefix=!1,r},"SparseMatrix, SparseMatrix":function(e,t){return i(e,t),p(e,t,y)},"SparseMatrix, DenseMatrix":function(e,t){return i(e,t),l(t,e,y,!0)},"DenseMatrix, SparseMatrix":function(e,t){return i(e,t),f(e,t,y,!1)},"DenseMatrix, DenseMatrix":function(e,t){return i(e,t),h(e,t,y)},"Array, Array":function(e,t){return y(s(e),s(t)).valueOf()},"Array, Matrix":function(e,t){return y(s(e),t)},"Matrix, Array":function(e,t){return y(e,s(t))},"SparseMatrix, any":function(e,t){return m(e,c(t),u)},"DenseMatrix, any":function(e,t){return d(e,t,y)},"any, SparseMatrix":function(e,t){return m(t,e,y,!0)},"any, DenseMatrix":function(e,t){return d(t,e,y,!0)},"Array, any":function(e,t){return d(s(e),t,y,!1).valueOf()},"any, Array":function(e,t){return d(s(t),e,y,!0).valueOf()}});return y.toTex={2:"\\left(${args[0]}"+o.operators.subtract+"${args[1]}\\right)"},y}},function(e,t,r){"use strict";t.name="algorithm11",t.factory=function(e,t,n,i){var a=n(r(8)),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,m=f[0],h=f[1],d=a,y=0,g=r;"string"==typeof l&&(p=l,d=i.find(a,[p,p]),y=i.convert(0,p),t=i.convert(t,p),g=i.find(r,[p,p]));for(var v=[],x=[],w=[],b=new o({values:v,index:x,ptr:w,size:[m,h],datatype:p}),N=0;N<h;N++){w[N]=x.length;for(var M=c[N],E=c[N+1],A=M;A<E;A++){var O=u[A],S=n?g(t,s[A]):g(s[A],t);d(S,y)||(x.push(O),v.push(S))}}return w[h]=x.length,b}}},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(10);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(1)),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=r.dimension(0),o="";return a.forEach(function(e){o+=t.charAt(e)}),o},"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(10);t.name="algorithm02",t.factory=function(e,t,i,a){var o=i(r(8)),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,m=t._ptr,h=t._size,d=t._datatype;if(c.length!==h.length)throw new n(c.length,h.length);if(c[0]!==h[0]||c[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+c+") must match Matrix B ("+h+")");if(!l)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var y,g=c[0],v=c[1],x=o,w=0,b=r;"string"==typeof f&&f===d&&(y=f,x=a.find(o,[y,y]),w=a.convert(0,y),b=a.find(r,[y,y]));for(var N=[],M=[],E=[],A=0;A<v;A++){E[A]=M.length;for(var O=m[A],S=m[A+1],_=O;_<S;_++){var T=p[_],C=i?b(l[_],u[T][A]):b(u[T][A],l[_]);x(C,w)||(M.push(T),N.push(C))}}return E[v]=M.length,new s({values:N,index:M,ptr:E,size:[g,v],datatype:y})}}},function(e,t,r){"use strict";t.array=r(2),t.boolean=r(176),t.function=r(30),t.number=r(3),t.object=r(5),t.string=r(9),t.emitter=r(87)},function(e,t,r){"use strict";var n=r(10);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,m,h=s[0],d=s[1],y=0,g=r;"string"==typeof u&&u===f&&(l=u,y=i.convert(0,l),g=i.find(r,[l,l]));var v=[];for(p=0;p<h;p++)v[p]=[];var x=new a({data:v,size:[h,d],datatype:l}),w=[],b=[],N=[],M=[];for(m=0;m<d;m++){var E=m+1;for(o(e,m,N,w,E),o(t,m,M,b,E),p=0;p<h;p++){var A=N[p]===E?w[p]:y,O=M[p]===E?b[p]:y;v[p][m]=g(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(0);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(1)),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";var n=r(485);t.name="compareNatural",t.factory=function(e,t,i,a){var o=i(r(47)),s=i(r(52)),u=s.signatures["boolean,boolean"],c=a("compareNatural",{"any, any":function(t,r){var i,a,l,p=o(t),m=o(r);if(!("number"!==p&&"BigNumber"!==p&&"Fraction"!==p||"number"!==m&&"BigNumber"!==m&&"Fraction"!==m))return"0"!==(i=s(t,r)).toString()?i>0?1:-1:n(p,m);if("Array"===p||"Matrix"===p||"Array"===m||"Matrix"===m)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,m);if(p!==m)return n(p,m);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(10);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,m=t._size,h=t._datatype;if(u.length!==m.length)throw new n(u.length,m.length);if(u[0]!==m[0]||u[1]!==m[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+m+")");if(!f)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,y,g=u[0],v=u[1],x="string"==typeof c&&c===h?c:void 0,w=x?i.find(r,[x,x]):r,b=[];for(d=0;d<g;d++)b[d]=[];var N=[],M=[];for(y=0;y<v;y++){for(var E=y+1,A=p[y],O=p[y+1],S=A;S<O;S++)N[d=l[S]]=o?w(f[S],s[d][y]):w(s[d][y],f[S]),M[d]=E;for(d=0;d<g;d++)M[d]===E?b[d][y]=N[d]:b[d][y]=s[d][y]}return new a({data:b,size:[g,v],datatype:x})}}},function(e,t,r){"use strict";var n=r(3).nearlyEqual,i=r(35);t.name="larger",t.factory=function(e,t,a,o){var s=a(r(1)),u=a(r(17)),c=a(r(25)),f=a(r(18)),l=a(r(7)),p=a(r(6)),m=r(4),h=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 h(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return c(e,t,h)},"SparseMatrix, DenseMatrix":function(e,t){return u(t,e,h,!0)},"DenseMatrix, SparseMatrix":function(e,t){return u(e,t,h,!1)},"DenseMatrix, DenseMatrix":function(e,t){return l(e,t,h)},"Array, Array":function(e,t){return h(s(e),s(t)).valueOf()},"Array, Matrix":function(e,t){return h(s(e),t)},"Matrix, Array":function(e,t){return h(e,s(t))},"SparseMatrix, any":function(e,t){return f(e,t,h,!1)},"DenseMatrix, any":function(e,t){return p(e,t,h,!1)},"any, SparseMatrix":function(e,t){return f(t,e,h,!0)},"any, DenseMatrix":function(e,t){return p(t,e,h,!0)},"Array, any":function(e,t){return p(s(e),t,h,!1).valueOf()},"any, Array":function(e,t){return p(s(t),e,h,!0).valueOf()}});return h.toTex={2:"\\left(${args[0]}"+m.operators.larger+"${args[1]}\\right)"},h}},function(e,t,r){"use strict";var n=r(0);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){t.factory=function(e,t,n,i){var a=n(r(47));return function(e,t,r){var n;return-1!==String(e).indexOf("Unexpected type")?(n=arguments.length>2?" (type: "+a(r)+", value: "+JSON.stringify(r)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+t+", unexpected type of argument"+n)):-1!==String(e).indexOf("complex numbers")?(n=arguments.length>2?" (type: "+a(r)+", value: "+JSON.stringify(r)+")":"",new TypeError("Cannot calculate "+t+", no ordering relation is defined for complex numbers"+n)):e}}},function(e,t,r){"use strict";e.exports=function(e,t,r){if(null==r)return e.eq(t);if(e.eq(t))return!0;if(e.isNaN()||t.isNaN())return!1;if(e.isFinite()&&t.isFinite()){var n=e.minus(t).abs();if(n.isZero())return!0;var i=e.constructor.max(e.abs(),t.abs());return n.lte(i.times(r))}return!1}},function(e,t,r){"use strict";t.name="algorithm10",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],m=c[1],h=r;"string"==typeof f&&(l=f,t=n.convert(t,l),h=n.find(r,[l,l]));for(var d=[],y=new i({data:d,size:[p,m],datatype:l}),g=[],v=[],x=0;x<m;x++){for(var w=x+1,b=u[x],N=u[x+1],M=b;M<N;M++){var E=s[M];g[E]=o[M],v[E]=w}for(var A=0;A<p;A++)0===x&&(d[A]=[]),v[A]===w?d[A][x]=a?h(t,g[A]):h(g[A],t):d[A][x]=t}return y}}},function(e,t,r){"use strict";var n=r(3).nearlyEqual,i=r(35);t.name="smaller",t.factory=function(e,t,a,o){var s=a(r(1)),u=a(r(17)),c=a(r(25)),f=a(r(18)),l=a(r(7)),p=a(r(6)),m=r(4),h=o("smaller",{"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.lt(r)&&!i(e,r,t.epsilon)},"Fraction, Fraction":function(e,t){return-1===e.compare(t)},"Complex, Complex":function(e,t){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 h(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return c(e,t,h)},"SparseMatrix, DenseMatrix":function(e,t){return u(t,e,h,!0)},"DenseMatrix, SparseMatrix":function(e,t){return u(e,t,h,!1)},"DenseMatrix, DenseMatrix":function(e,t){return l(e,t,h)},"Array, Array":function(e,t){return h(s(e),s(t)).valueOf()},"Array, Matrix":function(e,t){return h(s(e),t)},"Matrix, Array":function(e,t){return h(e,s(t))},"SparseMatrix, any":function(e,t){return f(e,t,h,!1)},"DenseMatrix, any":function(e,t){return p(e,t,h,!1)},"any, SparseMatrix":function(e,t){return f(t,e,h,!0)},"any, DenseMatrix":function(e,t){return p(t,e,h,!0)},"Array, any":function(e,t){return p(s(e),t,h,!1).valueOf()},"any, Array":function(e,t){return p(s(t),e,h,!0).valueOf()}});return h.toTex={2:"\\left(${args[0]}"+m.operators.smaller+"${args[1]}\\right)"},h}},function(e,t,r){"use strict";var n=r(3).isInteger,i=r(2).size;t.name="pow",t.factory=function(e,t,a,o){var s=r(4),u=a(r(63)),c=a(r(11)),f=a(r(1)),l=a(r(89)),p=a(r(75)),m=o("pow",{"number, number":h,"Complex, Complex":function(e,t){return e.pow(t)},"BigNumber, BigNumber":function(r,n){return n.isIntege