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 • 537 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 5.7.0
* @date 2019-03-10
*
* @license
* Copyright (C) 2013-2019 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
*
* https://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()}(this,function(){return function(r){var n={};function i(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}return i.m=r,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=157)}([function(e,t,r){"use strict";e.exports=function t(e,r,n){return e&&"function"==typeof e.map?e.map(function(e){return t(e,r,n)}):r(e)}},function(e,t,r){"use strict";t.name="matrix",t.factory=function(n,e,t,r){var i=r("matrix",{"":function(){return o([])},string:function(e){return o([],e)},"string, string":function(e,t){return o([],e,t)},Array:function(e){return o(e)},Matrix:function(e){return o(e,e.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});return i.toTex={0:"\\begin{bmatrix}\\end{bmatrix}",1:"\\left(${args[0]}\\right)",2:"\\left(${args[0]}\\right)"},i;function o(e,t,r){return new(n.Matrix.storage(t||"default"))(e,r)}}},function(e,t,r){"use strict";r.r(t),r.d(t,"size",function(){return l}),r.d(t,"validate",function(){return p}),r.d(t,"validateIndex",function(){return m}),r.d(t,"resize",function(){return h}),r.d(t,"reshape",function(){return d}),r.d(t,"squeeze",function(){return y}),r.d(t,"unsqueeze",function(){return g}),r.d(t,"flatten",function(){return v}),r.d(t,"map",function(){return x}),r.d(t,"forEach",function(){return b}),r.d(t,"filter",function(){return w}),r.d(t,"filterRegExp",function(){return N}),r.d(t,"join",function(){return M}),r.d(t,"identify",function(){return E}),r.d(t,"generalize",function(){return A});var n=r(3),i=r.n(n),o=r(9),a=r.n(o),s=r(8),u=r.n(s),c=r(55),f=r.n(c);function l(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function p(e,t){if(0===t.length){if(Array.isArray(e))throw new u.a(e.length,0)}else!function e(t,r,n){var i,o=t.length;if(o!==r[n])throw new u.a(o,r[n]);if(n<r.length-1){var a=n+1;for(i=0;i<o;i++){var s=t[i];if(!Array.isArray(s))throw new u.a(r.length-1,r.length,"<");e(t[i],r,a)}}else for(i=0;i<o;i++)if(Array.isArray(t[i]))throw new u.a(r.length+1,r.length,">")}(e,t,0)}function m(e,t){if(!i.a.isNumber(e)||!i.a.isInteger(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"==typeof t&&t<=e)throw new f.a(e,t)}function h(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(!i.a.isNumber(e)||!i.a.isInteger(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+a.a.format(t)+")")}),function e(t,r,n,i){var o;var a;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(o=0;o<c;o++)a=t[o],Array.isArray(a)||(a=[a],t[o]=a),e(a,r,f,i);for(o=c;o<u;o++)a=[],t[o]=a,e(a,r,f,i)}else{for(o=0;o<c;o++)for(;Array.isArray(t[o]);)t[o]=t[o][0];for(o=c;o<u;o++)t[o]=i}}(e,t,0,void 0!==r?r:0),e}function d(t,r){var e,n=v(t);function i(e){return e.reduce(function(e,t){return e*t})}if(!Array.isArray(t)||!Array.isArray(r))throw new TypeError("Array expected");if(0===r.length)throw new u.a(0,i(l(t)),"!=");for(var o=1,a=0;a<r.length;a++)o*=r[a];if(n.length!==o)throw new u.a(i(r),i(l(t)),"!=");try{e=function(e,t){for(var r,n=e,i=t.length-1;0<i;i--){var o=t[i];r=[];for(var a=n.length/o,s=0;s<a;s++)r.push(n.slice(s*o,(s+1)*o));n=r}return n}(n,r)}catch(e){if(e instanceof u.a)throw new u.a(i(r),i(l(t)),"!=");throw e}return e}function y(e,t){for(var r=t||l(e);Array.isArray(e)&&1===e.length;)e=e[0],r.shift();for(var n=r.length;1===r[n-1];)n--;return n<r.length&&(e=function e(t,r,n){var i,o;if(n<r){var a=n+1;for(i=0,o=t.length;i<o;i++)t[i]=e(t[i],r,a)}else for(;Array.isArray(t);)t=t[0];return t}(e,n,0),r.length=n),e}function g(e,t,r,n){var i=n||l(e);if(r)for(var o=0;o<r;o++)e=[e],i.unshift(1);for(e=function e(t,r,n){var i,o;if(Array.isArray(t)){var a=n+1;for(i=0,o=t.length;i<o;i++)t[i]=e(t[i],r,a)}else for(var s=n;s<r;s++)t=[t];return t}(e,t,0);i.length<t;)i.push(1);return e}function v(e){if(!Array.isArray(e))return e;var r=[];return e.forEach(function e(t){Array.isArray(t)?t.forEach(e):r.push(t)}),r}function x(e,t){return Array.prototype.map.call(e,t)}function b(e,t){Array.prototype.forEach.call(e,t)}function w(e,t){if(1!==l(e).length)throw new Error("Only one dimensional matrices supported");return Array.prototype.filter.call(e,t)}function N(e,t){if(1!==l(e).length)throw new Error("Only one dimensional matrices supported");return Array.prototype.filter.call(e,function(e){return t.test(e)})}function M(e,t){return Array.prototype.join.call(e,t)}function E(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}function A(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}},function(e,p,t){"use strict";var o=t(5);function m(e){for(var t=[],r=0;r<e;r++)t.push(0);return t}p.isNumber=function(e){return"number"==typeof e},p.isInteger=function(e){return"boolean"==typeof e||!!isFinite(e)&&e===Math.round(e)},p.sign=Math.sign||function(e){return 0<e?1:e<0?-1:0},p.format=function(e,t){if("function"==typeof t)return t(e);if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var r,n="auto";switch(t&&(t.notation&&(n=t.notation),p.isNumber(t)?r=t:p.isNumber(t.precision)&&(r=t.precision)),n){case"fixed":return p.toFixed(e,r);case"exponential":return p.toExponential(e,r);case"engineering":return p.toEngineering(e,r);case"auto":if(!t||!t.exponential||void 0===t.exponential.lower&&void 0===t.exponential.upper)return p.toPrecision(e,r,t&&t).replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t});var i=o.map(t,function(e){return e});return(i.exponential=void 0)!==t.exponential.lower&&(i.lowerExp=Math.round(Math.log(t.exponential.lower)/Math.LN10)),void 0!==t.exponential.upper&&(i.upperExp=Math.round(Math.log(t.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(t)+" with "+JSON.stringify(i)),p.toPrecision(e,r,i);default:throw new Error('Unknown notation "'+n+'". Choose "auto", "exponential", or "fixed".')}},p.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"),o=n.indexOf(".");i+=-1!==o?o-1:n.length-1;var a=n.replace(".","").replace(/^0*/,function(e){return i-=e.length,""}).replace(/0*$/,"").split("").map(function(e){return parseInt(e)});return 0===a.length&&(a.push(0),i++),{sign:r,coefficients:a,exponent:i}},p.toEngineering=function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var r=p.roundDigits(p.splitNumber(e),t),n=r.exponent,i=r.coefficients,o=n%3==0?n:n<0?n-3-n%3:n-n%3;if(p.isNumber(t))t>i.length&&(i=i.concat(m(t-i.length)));else{var a=0<=n?n:Math.abs(o);i.length-1<a&&(i=i.concat(m(a-(i.length-1))))}for(var s=Math.abs(n-o),u=1;0<=--s;)u++;var c=i.slice(u).join(""),f=p.isNumber(t)&&c.length||c.match(/[1-9]/)?"."+c:"",l=i.slice(0,u).join("")+f+"e"+(0<=n?"+":"")+o.toString();return r.sign+l},p.toFixed=function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var r=p.splitNumber(e),n="number"==typeof t?p.roundDigits(r,r.exponent+1+t):r,i=n.coefficients,o=n.exponent+1,a=o+(t||0);return i.length<a&&(i=i.concat(m(a-i.length))),o<0&&(i=m(1-o).concat(i),o=1),o<i.length&&i.splice(o,0,0===o?"0.":"."),n.sign+i.join("")},p.toExponential=function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var r=p.splitNumber(e),n=t?p.roundDigits(r,t):r,i=n.coefficients,o=n.exponent;i.length<t&&(i=i.concat(m(t-i.length)));var a=i.shift();return n.sign+a+(0<i.length?"."+i.join(""):"")+"e"+(0<=o?"+":"")+o},p.toPrecision=function(e,t,r){if(isNaN(e)||!isFinite(e))return String(e);var n=r&&void 0!==r.lowerExp?r.lowerExp:-3,i=r&&void 0!==r.upperExp?r.upperExp:5,o=p.splitNumber(e);if(o.exponent<n||o.exponent>=i)return p.toExponential(e,t);var a=t?p.roundDigits(o,t):o,s=a.coefficients,u=a.exponent;s.length<t&&(s=s.concat(m(t-s.length))),s=s.concat(m(u-s.length+1+(s.length<t?t-s.length:0)));var c=0<u?u:0;return c<(s=m(-u).concat(s)).length-1&&s.splice(c+1,0,"."),a.sign+s.join("")},p.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&&5<=n.splice(t,n.length-t)[0]){var i=t-1;for(n[i]++;10===n[i];)n.pop(),0===i&&(n.unshift(0),r.exponent++,i++),n[--i]++}return r},p.digits=function(e){return e.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length},p.DBL_EPSILON=Number.EPSILON||2220446049250313e-31,p.nearlyEqual=function(e,t,r){if(null==r)return e===t;if(e===t)return!0;if(isNaN(e)||isNaN(t))return!1;if(isFinite(e)&&isFinite(t)){var n=Math.abs(e-t);return n<p.DBL_EPSILON||n<=Math.max(Math.abs(e),Math.abs(t))*r}return!1}},function(e,r,t){"use strict";var n=t(176);r.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{?}"},r.operators={transpose:"^\\top",ctranspose:"^H",factorial:"!",pow:"^",dotPow:".^\\wedge",unaryPlus:"+",unaryMinus:"-",bitNot:"\\~",not:"\\neg",multiply:"\\cdot",divide:"\\frac",dotMultiply:".\\cdot",dotDivide:".:",mod:"\\mod",add:"+",subtract:"-",to:"\\rightarrow",leftShift:"<<",rightArithShift:">>",rightLogShift:">>>",equal:"=",unequal:"\\neq",smaller:"<",larger:">",smallerEq:"\\leq",largerEq:"\\geq",bitAnd:"\\&",bitXor:"\\underline{|}",bitOr:"|",and:"\\wedge",xor:"\\veebar",or:"\\vee"},r.defaultTemplate="\\mathrm{${name}}\\left(${args}\\right)";var i={deg:"^\\circ"};r.escape=function(e){return n(e,{preserveFormatting:!0})},r.toSymbol=function(e,t){return(t=void 0!==t&&t)?i.hasOwnProperty(e)?i[e]:"\\mathrm{"+r.escape(e)+"}":r.symbols.hasOwnProperty(e)?r.symbols[e]:r.escape(e)}},function(e,o,t){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i=t(80);o.clone=function t(e){var r=n(e);if("number"===r||"string"===r||"boolean"===r||null==e)return e;if("function"==typeof e.clone)return e.clone();if(Array.isArray(e))return e.map(function(e){return t(e)});if(e instanceof Date)return new Date(e.valueOf());if(i(e))return e;if(e instanceof RegExp)throw new TypeError("Cannot clone "+e);return o.map(e,t)},o.map=function(e,t){var r={};for(var n in e)o.hasOwnProperty(e,n)&&(r[n]=t(e[n]));return r},o.extend=function(e,t){for(var r in t)o.hasOwnProperty(t,r)&&(e[r]=t[r]);return e},o.deepExtend=function e(t,r){if(Array.isArray(r))throw new TypeError("Arrays are not supported by deepExtend");for(var n in r)if(o.hasOwnProperty(r,n))if(r[n]&&r[n].constructor===Object)void 0===t[n]&&(t[n]={}),t[n].constructor===Object?e(t[n],r[n]):t[n]=r[n];else{if(Array.isArray(r[n]))throw new TypeError("Arrays are not supported by deepExtend");t[n]=r[n]}return t},o.deepEqual=function(e,t){var r,n,i;if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!==t.length)return!1;for(n=0,i=e.length;n<i;n++)if(!o.deepEqual(e[n],t[n]))return!1;return!0}if(e instanceof Object){if(Array.isArray(t)||!(t instanceof Object))return!1;for(r in e)if(!o.deepEqual(e[r],t[r]))return!1;for(r in t)if(!o.deepEqual(e[r],t[r]))return!1;return!0}return e===t},o.canDefineProperty=function(){try{if(Object.defineProperty)return Object.defineProperty({},"x",{get:function(){}}),!0}catch(e){}return!1},o.lazy=function(e,t,r){if(o.canDefineProperty()){var n,i=!0;Object.defineProperty(e,t,{get:function(){return i&&(n=r(),i=!1),n},set:function(e){n=e,i=!1},configurable:!0,enumerable:!0})}else e[t]=r()},o.traverse=function(e,t){var r=e;if(t)for(var n=t.split("."),i=0;i<n.length;i++){var o=n[i];o in r||(r[o]={}),r=r[o]}return r},o.hasOwnProperty=function(e,t){return e&&Object.hasOwnProperty.call(e,t)},o.isFactory=function(e){return e&&"function"==typeof e.factory}},function(e,t,r){"use strict";var p=r(5).clone;t.name="algorithm14",t.factory=function(e,t,r,f){var l=e.DenseMatrix;return function(e,t,r,n){var i,o=e._data,a=e._size,s=e._datatype,u=r;"string"==typeof s&&(i=s,t=f.convert(t,i),u=f.find(r,[i,i]));var c=0<a.length?function e(t,r,n,i,o,a,s){var u=[];if(r===n.length-1)for(var c=0;c<i;c++)u[c]=s?t(a,o[c]):t(o[c],a);else for(var f=0;f<i;f++)u[f]=e(t,r+1,n,n[r+1],o[f],a,s);return u}(u,0,a,a[0],o,t,n):[];return new l({data:c,size:p(a),datatype:i})}}},function(e,t,r){"use strict";var y=r(8);t.name="algorithm13",t.factory=function(e,t,r,h){var d=e.DenseMatrix;return function(e,t,r){var n,i=e._data,o=e._size,a=e._datatype,s=t._data,u=t._size,c=t._datatype,f=[];if(o.length!==u.length)throw new y(o.length,u.length);for(var l=0;l<o.length;l++){if(o[l]!==u[l])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+u+")");f[l]=o[l]}var p=r;"string"==typeof a&&a===c&&(n=a,p=h.find(r,[n,n]));var m=0<f.length?function e(t,r,n,i,o,a){var s=[];if(r===n.length-1)for(var u=0;u<i;u++)s[u]=t(o[u],a[u]);else for(var c=0;c<i;c++)s[c]=e(t,r+1,n,n[r+1],o[c],a[c]);return s}(p,0,f,f[0],i,s):[];return new d({data:m,size:f,datatype:n})}}},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).constructor=RangeError,n.prototype.name="DimensionError",n.prototype.isDimensionError=!0,e.exports=n},function(e,a,t){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=t(3).format,u=t(171).format,c=t(80);a.isString=function(e){return"string"==typeof e},a.endsWith=function(e,t){var r=e.length-t.length,n=e.length;return e.substring(r,n)===t},a.format=function(e,t){if("number"==typeof e)return s(e,t);if(c(e))return u(e,t);if((r=e)&&"object"===o(r)&&"number"==typeof r.s&&"number"==typeof r.n&&"number"==typeof r.d)return t&&"decimal"===t.fraction?e.toString():e.s*e.n+"/"+e.d;var r;if(Array.isArray(e))return function e(t,r){{if(Array.isArray(t)){for(var n="[",i=t.length,o=0;o<i;o++)0!==o&&(n+=", "),n+=e(t[o],r);return n+="]"}return a.format(t,r)}}(e,t);if(a.isString(e))return'"'+e+'"';if("function"==typeof e)return e.syntax?String(e.syntax):"function";if(e&&"object"===o(e)){if("function"==typeof e.format)return e.format(t);if(e&&e.toString()!=={}.toString())return e.toString();var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push('"'+i+'": '+a.format(e[i],t));return"{"+n.join(", ")+"}"}return String(e)},a.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+'"'},a.escape=function(e){var t=String(e);return t=t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}},function(e,t,l){"use strict";var p=l(5).extend,m=l(2);t.name="multiply",t.factory=function(n,e,t,R){var r=l(4),i=t(l(1)),U=t(l(17)),q=t(l(21)),k=t(l(11)),o=t(l(20)),a=t(l(6)),b=n.DenseMatrix,D=n.SparseMatrix,s=R("multiply",p({"Array, Array":function(e,t){u(m.size(e),m.size(t));var r=s(i(e),i(t));return n.isMatrix(r)?r.valueOf():r},"Matrix, Matrix":function(e,t){var r=e.size(),n=t.size();return u(r,n),1===r.length?1===n.length?function(e,t,r){if(0===r)throw new Error("Cannot multiply two empty vectors");var n,i=e._data,o=e._datatype,a=t._data,s=t._datatype,u=U,c=q;o&&s&&o===s&&"string"==typeof o&&(n=o,u=R.find(U,[n,n]),c=R.find(q,[n,n]));for(var f=c(i[0],a[0]),l=1;l<r;l++)f=u(f,c(i[l],a[l]));return f}(e,t,r[0]):function(e,t){if("dense"===t.storage())return function(e,t){var r,n=e._data,i=e._size,o=e._datatype,a=t._data,s=t._size,u=t._datatype,c=i[0],f=s[1],l=U,p=q;o&&u&&o===u&&"string"==typeof o&&(r=o,l=R.find(U,[r,r]),p=R.find(q,[r,r]));for(var m=[],h=0;h<f;h++){for(var d=p(n[0],a[0][h]),y=1;y<c;y++)d=l(d,p(n[y],a[y][h]));m[h]=d}return new b({data:m,size:[f],datatype:r})}(e,t);throw new Error("Support for SparseMatrix not implemented")}(e,t):1===n.length?c(e,t):f(e,t)},"Matrix, Array":function(e,t){return s(e,i(t))},"Array, Matrix":function(e,t){return s(i(e,t.storage()),t)},"SparseMatrix, any":function(e,t){return o(e,t,q,!1)},"DenseMatrix, any":function(e,t){return a(e,t,q,!1)},"any, SparseMatrix":function(e,t){return o(t,e,q,!0)},"any, DenseMatrix":function(e,t){return a(t,e,q,!0)},"Array, any":function(e,t){return a(i(e),t,q,!1).valueOf()},"any, Array":function(e,t){return a(i(t),e,q,!0).valueOf()},"any, any":q,"any, any, ...any":function(e,t,r){for(var n=s(e,t),i=0;i<r.length;i++)n=s(n,r[i]);return n}},q.signatures));function u(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)")}}var c=R("_multiplyMatrixVector",{"DenseMatrix, any":function(e,t){var r,n=e._data,i=e._size,o=e._datatype,a=t._data,s=t._datatype,u=i[0],c=i[1],f=U,l=q;o&&s&&o===s&&"string"==typeof o&&(r=o,f=R.find(U,[r,r]),l=R.find(q,[r,r]));for(var p=[],m=0;m<u;m++){for(var h=n[m],d=l(h[0],a[0]),y=1;y<c;y++)d=f(d,l(h[y],a[y]));p[m]=d}return new b({data:p,size:[u],datatype:r})},"SparseMatrix, any":function(e,t){var r=e._values,n=e._index,i=e._ptr,o=e._datatype;if(!r)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var a,s=t._data,u=t._datatype,c=e._size[0],f=t._size[0],l=[],p=[],m=[],h=U,d=q,y=k,g=0;o&&u&&o===u&&"string"==typeof o&&(a=o,h=R.find(U,[a,a]),d=R.find(q,[a,a]),y=R.find(k,[a,a]),g=R.convert(0,a));for(var v=[],x=[],b=m[0]=0;b<f;b++){var w=s[b];if(!y(w,g))for(var N=i[b],M=i[b+1],E=N;E<M;E++){var A=n[E];x[A]?v[A]=h(v[A],d(w,r[E])):(x[A]=!0,p.push(A),v[A]=d(w,r[E]))}}for(var S=p.length,O=0;O<S;O++){var T=p[O];l[O]=v[T]}return m[1]=p.length,new D({values:l,index:p,ptr:m,size:[c,1],datatype:a})}}),f=R("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(e,t){var r,n=e._data,i=e._size,o=e._datatype,a=t._data,s=t._size,u=t._datatype,c=i[0],f=i[1],l=s[1],p=U,m=q;o&&u&&o===u&&"string"==typeof o&&(r=o,p=R.find(U,[r,r]),m=R.find(q,[r,r]));for(var h=[],d=0;d<c;d++){var y=n[d];h[d]=[];for(var g=0;g<l;g++){for(var v=m(y[0],a[0][g]),x=1;x<f;x++)v=p(v,m(y[x],a[x][g]));h[d][g]=v}}return new b({data:h,size:[c,l],datatype:r})},"DenseMatrix, SparseMatrix":function(e,t){var r=e._data,n=e._size,i=e._datatype,o=t._values,a=t._index,s=t._ptr,u=t._size,c=t._datatype;if(!o)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var f,l=n[0],p=u[1],m=U,h=q,d=k,y=0;i&&c&&i===c&&"string"==typeof i&&(f=i,m=R.find(U,[f,f]),h=R.find(q,[f,f]),d=R.find(k,[f,f]),y=R.convert(0,f));for(var g=[],v=[],x=[],b=new D({values:g,index:v,ptr:x,size:[l,p],datatype:f}),w=0;w<p;w++){x[w]=v.length;var N=s[w],M=s[w+1];if(N<M)for(var E=0,A=0;A<l;A++){for(var S=A+1,O=void 0,T=N;T<M;T++){var _=a[T];E!==S?(O=h(r[A][_],o[T]),E=S):O=m(O,h(r[A][_],o[T]))}E!==S||d(O,y)||(v.push(A),g.push(O))}}return x[p]=v.length,b},"SparseMatrix, DenseMatrix":function(e,t){var r=e._values,n=e._index,i=e._ptr,o=e._datatype;if(!r)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var a,s=t._data,u=t._datatype,c=e._size[0],f=t._size[0],l=t._size[1],p=U,m=q,h=k,d=0;o&&u&&o===u&&"string"==typeof o&&(a=o,p=R.find(U,[a,a]),m=R.find(q,[a,a]),h=R.find(k,[a,a]),d=R.convert(0,a));for(var y=[],g=[],v=[],x=new D({values:y,index:g,ptr:v,size:[c,l],datatype:a}),b=[],w=[],N=0;N<l;N++){v[N]=g.length;for(var M=N+1,E=0;E<f;E++){var A=s[E][N];if(!h(A,d))for(var S=i[E],O=i[E+1],T=S;T<O;T++){var _=n[T];w[_]!==M?(w[_]=M,g.push(_),b[_]=m(A,r[T])):b[_]=p(b[_],m(A,r[T]))}}for(var C=v[N],z=g.length,B=C;B<z;B++){var I=g[B];y[B]=b[I]}}return v[l]=g.length,x},"SparseMatrix, SparseMatrix":function(e,t){var r,n=e._values,i=e._index,o=e._ptr,a=e._datatype,s=t._values,u=t._index,c=t._ptr,f=t._datatype,l=e._size[0],p=t._size[1],m=n&&s,h=U,d=q;a&&f&&a===f&&"string"==typeof a&&(r=a,h=R.find(U,[r,r]),d=R.find(q,[r,r]));for(var y,g,v,x,b,w,N,M,E=m?[]:void 0,A=[],S=[],O=new D({values:E,index:A,ptr:S,size:[l,p],datatype:r}),T=m?[]:void 0,_=[],C=0;C<p;C++){S[C]=A.length;var z=C+1;for(b=c[C],w=c[C+1],x=b;x<w;x++)if(M=u[x],m)for(g=o[M],v=o[M+1],y=g;y<v;y++)N=i[y],_[N]!==z?(_[N]=z,A.push(N),T[N]=d(s[x],n[y])):T[N]=h(T[N],d(s[x],n[y]));else for(g=o[M],v=o[M+1],y=g;y<v;y++)N=i[y],_[N]!==z&&(_[N]=z,A.push(N));if(m)for(var B=S[C],I=A.length,k=B;k<I;k++){var P=A[k];E[k]=T[P]}}return S[p]=A.length,O}});return s.toTex={2:"\\left(${args[0]}".concat(r.operators.multiply,"${args[1]}\\right)")},s}},function(e,t,r){"use strict";var o=r(3).nearlyEqual,a=r(31);t.factory=function(e,r,t,n){var i=n("equalScalar",{"boolean, boolean":function(e,t){return e===t},"number, number":function(e,t){return e===t||o(e,t,r.epsilon)},"BigNumber, BigNumber":function(e,t){return e.eq(t)||a(e,t,r.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 i(e.value,t.value)}});return i}},function(e,t,s){"use strict";t.factory=function(e,t,r,n){var i=r(s(65)),o=r(s(24)),a=n("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(),n=i(1,o(t));return r.value=a(null===r.value?r._normalize(n):r.value,t),r},"number | Fraction | BigNumber, Unit":function(e,t){var r=t.clone();r=r.pow(-1);var n=i(1,o(e));return r.value=a(e,null===t.value?t._normalize(n):t.value),r},"Unit, Unit":function(e,t){return e.divide(t)}});return a}},function(e,t,r){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i=r(5).hasOwnProperty;function o(e,t){return!(!e||"object"!==n(e))&&(!!i(u,t)||!(t in Object.prototype)&&!(t in Function.prototype))}function a(e,t){return!(!e||"function"!=typeof e[t])&&(!(i(e,t)&&Object.getPrototypeOf&&t in Object.getPrototypeOf(e))&&(!!i(c,t)||!(t in Object.prototype)&&!(t in Function.prototype)))}function s(e){return"object"===n(e)&&e&&e.constructor===Object}var u={length:!0,name:!0},c={toString:!0,valueOf:!0,toLocaleString:!0};t.getSafeProperty=function(e,t){if(s(e)&&o(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(s(e)&&o(e,t))return e[t]=r;throw new Error('No access to property "'+t+'"')},t.isSafeProperty=o,t.validateSafeMethod=function(e,t){if(!a(e,t))throw new Error('No access to method "'+t+'"')},t.isSafeMethod=a,t.isPlainObject=s},function(e,t,m){"use strict";var h=m(5).extend;t.name="add",t.factory=function(e,t,r,n){var i=r(m(1)),o=r(m(17)),a=m(4),s=r(m(34)),u=r(m(84)),c=r(m(40)),f=r(m(7)),l=r(m(6)),p=n("add",h({"DenseMatrix, DenseMatrix":function(e,t){return f(e,t,o)},"DenseMatrix, SparseMatrix":function(e,t){return s(e,t,o,!1)},"SparseMatrix, DenseMatrix":function(e,t){return s(t,e,o,!0)},"SparseMatrix, SparseMatrix":function(e,t){return u(e,t,o)},"Array, Array":function(e,t){return p(i(e),i(t)).valueOf()},"Array, Matrix":function(e,t){return p(i(e),t)},"Matrix, Array":function(e,t){return p(e,i(t))},"DenseMatrix, any":function(e,t){return l(e,t,o,!1)},"SparseMatrix, any":function(e,t){return c(e,t,o,!1)},"any, DenseMatrix":function(e,t){return l(t,e,o,!0)},"any, SparseMatrix":function(e,t){return c(t,e,o,!0)},"Array, any":function(e,t){return l(i(e),t,o,!1).valueOf()},"any, Array":function(e,t){return l(i(t),e,o,!0).valueOf()},"any, any":o,"any, any, ...any":function(e,t,r){for(var n=p(e,t),i=0;i<r.length;i++)n=p(n,r[i]);return n}},o.signatures));return p.toTex={2:"\\left(${args[0]}".concat(a.operators.add,"${args[1]}\\right)")},p}},function(e,t,d){"use strict";var i=d(8);function y(e,t){var r=e.size(),n=t.size();if(r.length!==n.length)throw new i(r.length,n.length)}t.name="subtract",t.factory=function(e,t,r,n){var i=d(4),o=r(d(1)),a=r(d(17)),s=r(d(36)),u=r(d(34)),c=r(d(18)),f=r(d(66)),l=r(d(40)),p=r(d(7)),m=r(d(6)),h=n("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=h(r.value,t.value),r.fixPrefix=!1,r},"SparseMatrix, SparseMatrix":function(e,t){return y(e,t),f(e,t,h)},"SparseMatrix, DenseMatrix":function(e,t){return y(e,t),c(t,e,h,!0)},"DenseMatrix, SparseMatrix":function(e,t){return y(e,t),u(e,t,h,!1)},"DenseMatrix, DenseMatrix":function(e,t){return y(e,t),p(e,t,h)},"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))},"SparseMatrix, any":function(e,t){return l(e,s(t),a)},"DenseMatrix, any":function(e,t){return m(e,t,h)},"any, SparseMatrix":function(e,t){return l(t,e,h,!0)},"any, DenseMatrix":function(e,t){return m(t,e,h,!0)},"Array, any":function(e,t){return m(o(e),t,h,!1).valueOf()},"any, Array":function(e,t){return m(o(t),e,h,!0).valueOf()}});return h.toTex={2:"\\left(${args[0]}".concat(i.operators.subtract,"${args[1]}\\right)")},h}},function(e,t,r){"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=r(111),u=r(5).deepEqual,c=r(5).hasOwnProperty;t.name="Node",t.path="expression.node",t.math=!0,t.factory=function(t,e,r,n,i){function o(){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator")}return o.prototype.eval=function(e){return this.compile().eval(e)},o.prototype.type="Node",o.prototype.isNode=!0,o.prototype.comment="",o.prototype.compile=function(){var r=this._compile(i.expression.mathWithTransform,{}),n={};return{eval:function(e){var t=e||{};return function(e){for(var t in e)if(c(e,t)&&t in s)throw new Error('Scope contains an illegal symbol, "'+t+'" is a reserved keyword')}(t),r(t,n,null)}}},o.prototype._compile=function(e,t){throw new Error("Method _compile should be implemented by type "+this.type)},o.prototype.forEach=function(e){throw new Error("Cannot run forEach on a Node interface")},o.prototype.map=function(e){throw new Error("Cannot run map on a Node interface")},o.prototype._ifNode=function(e){if(!t.isNode(e))throw new TypeError("Callback function must return a Node");return e},o.prototype.traverse=function(e){e(this,null,null),function n(e,i){e.forEach(function(e,t,r){i(e,t,r),n(e,i)})}(this,e)},o.prototype.transform=function(e){return function n(e,i){return e.map(function(e,t,r){return n(i(e,t,r),i)})}(e(this,null,null),e)},o.prototype.filter=function(n){var i=[];return this.traverse(function(e,t,r){n(e,t,r)&&i.push(e)}),i},o.prototype.find=function(){throw new Error("Function Node.find is deprecated. Use Node.filter instead.")},o.prototype.match=function(){throw new Error("Function Node.match is deprecated. See functions Node.filter, Node.transform, Node.traverse.")},o.prototype.clone=function(){throw new Error("Cannot clone a Node interface")},o.prototype.cloneDeep=function(){return this.map(function(e){return e.cloneDeep()})},o.prototype.equals=function(e){return!!e&&u(this,e)},o.prototype.toString=function(e){var t;if(e&&"object"===a(e))switch(a(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)},o.prototype.toJSON=function(){throw new Error("Cannot serialize object: toJSON not implemented by "+this.type)},o.prototype.toHTML=function(e){var t;if(e&&"object"===a(e))switch(a(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)},o.prototype._toString=function(){throw new Error("_toString not implemented for "+this.type)},o.prototype.toTex=function(e){var t;if(e&&"object"===a(e))switch(a(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)},o.prototype._toTex=function(e){throw new Error("_toTex not implemented for "+this.type)},o.prototype.getIdentifier=function(){return this.type},o.prototype.getContent=function(){return this},o}},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||void 0===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value||void 0===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 C=r(8);t.name="algorithm03",t.factory=function(e,t,r,T){var _=e.DenseMatrix;return function(e,t,r,n){var i=e._data,o=e._size,a=e._datatype,s=t._values,u=t._index,c=t._ptr,f=t._size,l=t._datatype;if(o.length!==f.length)throw new C(o.length,f.length);if(o[0]!==f[0]||o[1]!==f[1])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+f+")");if(!s)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p,m=o[0],h=o[1],d=0,y=r;"string"==typeof a&&a===l&&(p=a,d=T.convert(0,p),y=T.find(r,[p,p]));for(var g=[],v=0;v<m;v++)g[v]=[];for(var x=[],b=[],w=0;w<h;w++){for(var N=w+1,M=c[w],E=c[w+1],A=M;A<E;A++){var S=u[A];x[S]=n?y(s[A],i[S][w]):y(i[S][w],s[A]),b[S]=N}for(var O=0;O<m;O++)b[O]===N?g[O][w]=x[O]:g[O][w]=n?y(d,i[O][w]):y(i[O][w],d)}return new _({data:g,size:[m,h],datatype:p})}}},function(e,t,r){"use strict";t.name="algorithm12",t.factory=function(e,t,r,E){var A=e.DenseMatrix;return function(e,t,r,n){var i=e._values,o=e._index,a=e._ptr,s=e._size,u=e._datatype;if(!i)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var c,f=s[0],l=s[1],p=r;"string"==typeof u&&(c=u,t=E.convert(t,c),p=E.find(r,[c,c]));for(var m=[],h=new A({data:m,size:[f,l],datatype:c}),d=[],y=[],g=0;g<l;g++){for(var v=g+1,x=a[g],b=a[g+1],w=x;w<b;w++){var N=o[w];d[N]=i[w],y[N]=v}for(var M=0;M<f;M++)0===g&&(m[M]=[]),y[M]===v?m[M][g]=n?p(t,d[M]):p(d[M],t):m[M][g]=n?p(t,0):p(0,t)}return h}}},function(e,t,n){"use strict";t.name="algorithm11",t.factory=function(e,t,r,A){var S=r(n(11)),O=e.SparseMatrix;return function(e,t,r,n){var i=e._values,o=e._index,a=e._ptr,s=e._size,u=e._datatype;if(!i)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var c,f=s[0],l=s[1],p=S,m=0,h=r;"string"==typeof u&&(c=u,p=A.find(S,[c,c]),m=A.convert(0,c),t=A.convert(t,c),h=A.find(r,[c,c]));for(var d=[],y=[],g=[],v=new O({values:d,index:y,ptr:g,size:[f,l],datatype:c}),x=0;x<l;x++){g[x]=y.length;for(var b=a[x],w=a[x+1],N=b;N<w;N++){var M=o[N],E=n?h(t,i[N]):h(i[N],t);p(E,m)||(y.push(M),d.push(E))}}return g[l]=y.length,v}}},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,s){"use strict";var u=s(5).clone,f=s(2).validateIndex,n=s(13).getSafeProperty,o=s(13).setSafeProperty,l=s(8);function c(e,t){if(1!==t.size().length)throw new l(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 n(e,r)}function p(e,t,r){if(1!==t.size().length)throw new l(t.size(),1);var n=t.dimension(0);if("string"!=typeof n)throw new TypeError("String expected as index to retrieve an object property");var i=u(e);return o(i,n,r),i}t.name="subset",t.factory=function(o,e,t,r){var i=t(s(1)),n=r("subset",{"Array, Index":function(e,t){var r=i(e).subset(t);return t.isScalar()?r:r.valueOf()},"Matrix, Index":function(e,t){return e.subset(t)},"Object, Index":c,"string, Index":function(t,e){if(!o.isIndex(e))throw new TypeError("Index expected");if(1!==e.size().length)throw new l(e.size().length,1);var r=t.length;f(e.min()[0],r),f(e.max()[0],r);var n=e.dimension(0),i="";return n.forEach(function(e){i+=t.charAt(e)}),i},"Array, Index, any":function(e,t,r){return i(u(e)).subset(t,r,void 0).valueOf()},"Array, Index, any, any":function(e,t,r,n){return i(u(e)).subset(t,r,n).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":a,"string, Index, string, string":a,"Object, Index, any":p});return n.toTex=void 0,n;function a(e,t,r,n){if(!t||!0!==t.isIndex)throw new TypeError("Index expected");if(1!==t.size().length)throw new l(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 i=t.dimension(0);if(i.size()[0]!==r.length)throw new l(i.size()[0],r.length);var o=e.length;f(t.min()[0]),f(t.max()[0]);for(var a=[],s=0;s<o;s++)a[s]=e.charAt(s);if(i.forEach(function(e,t){a[e]=r.charAt(t[0])}),a.length>o)for(var u=o-1,c=a.length;u<c;u++)a[u]||(a[u]=n);return a.join("")}}},function(e,t,r){"use strict";var o=r(0);t.name="abs",t.factory=function(e,t,r,n){var i=n("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 o(e,i,!0)},Unit:function(e){return e.abs()}});return i.toTex={1:"\\left|${args[0]}\\right|"},i}},function(e,t,r){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.name="typeof",t.factory=function(r,e,t,n){var i=n("_typeof",{any:function(e){var t=o(e);return"object"===t?null===e?"null":Array.isArray(e)?"Array":e instanceof Date?"Date":e instanceof RegExp?"RegExp":r.isBigNumber(e)?"BigNumber":r.isComplex(e)?"Complex":r.isFraction(e)?"Fraction":r.isMatrix(e)?"Matrix":r.isUnit(e)?"Unit":r.isIndex(e)?"Index":r.isRange(e)?"Range":r.isResultSet(e)?"ResultSet":r.isNode(e)?e.type:r.isChain(e)?"Chain":r.isHelp(e)?"Help":"Object":"function"===t?"Function":t}});return i.toTex=void 0,i}},function(e,t,n){"use strict";var C=n(8);t.name="algorithm02",t.factory=function(e,t,r,O){var T=r(n(11)),_=e.SparseMatrix;return function(e,t,r,n){var i=e._data,o=e._size,a=e._datatype,s=t._values,u=t._index,c=t._ptr,f=t._size,l=t._datatype;if(o.length!==f.length)throw new C(o.length,f.length);if(o[0]!==f[0]||o[1]!==f[1])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+f+")");if(!s)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p,m=o[0],h=o[1],d=T,y=0,g=r;"string"==typeof a&&a===l&&(p=a,d=O.find(T,[p,p]),y=O.convert(0,p),g=O.find(r,[p,p]));for(var v=[],x=[],b=[],w=0;w<h;w++){b[w]=x.length;for(var N=c[w],M=c[w+1],E=N;E<M;E++){var A=u[E],S=n?g(s[E],i[A][w]):g(i[A][w],s[E]);d(S,y)||(x.push(A),v.push(S))}}return b[h]=x.length,new _({values:v,index:x,ptr:b,size:[m,h],datatype:p})}}},function(e,t,a){"use strict";var s=a(2);t.name="size",t.factory=function(e,t,r,n){var i=r(a(1)),o=n("size",{Matrix:function(e){return i(e.size())},Array:s.size,string:function(e){return"Array"===t.matrix?[e.length]:i([e.length])},"number | Complex | BigNumber | Unit | boolean | null":function(e){return"Array"===t.matrix?[]:i([])}});return o.toTex=void 0,o}},function(e,t,r){"use strict";var S=r(8);t.name="algorithm07",t.factory=function(e,t,r,M){var E=e.DenseMatrix;function A(e,t,r,n,i){for(var o=e._values,a=e._index,s=e._ptr,u=s[t],c=s[t+1];u<c;u++){var f=a[u];r[f]=i,n[f]=o[u]}}return function(e,t,r){var n=e._size,i=e._datatype,o=t._size,a=t._datatype;if(n.length!==o.length)throw new S(n.length,o.length);if(n[0]!==o[0]||n[1]!==o[1])throw new RangeError("Dimension mismatch. Matrix A ("+n+") must match Matrix B ("+o+")");var s,u,c,f=n[0],l=n[1],p=0,m=r;"string"==typeof i&&i===a&&(s=i,p=M.convert(0,s),m=M.find(r,[s,s]));var h=[];for(u=0;u<f;u++)h[u]=[];var d=new E({data:h,size:[f,l],datatype:s}),y=[],g=[],v=[],x=[];for(c=0;c<l;c++){var b=c+1;for(A(e,c,v,y,b),A(t,c,x,g,b),u=0;u<f;u++){var w=v[u]===b?y[u]:p,N=x[u]===b?g[u]:p;h[u][c]=m(w,N)}}return d}}},function(e,t,r){"use strict";var n=r(5).clone,i=r(3).isInteger;t.name="Index",t.path="type",t.factory=function(a){function s(e){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this._dimensions=[],this._isScalar=!0;for(var t=0,r=arguments.length;t<r;t++){var n=arguments[t];if(a.isRange(n))this._dimensions.push(n),this._isScalar=!1;else if(Array.isArray(n)||a.isMatrix(n)){var i=u(n.valueOf());this._dimensions.push(i);var o=i.size();1===o.length&&1===o[0]||(this._isScalar=!1)}else if("number"==typeof n)this._dimensions.push(u([n]));else{if("string"!=typeof n)throw new TypeError("Dimension must be an Array, Matrix, number, string, or Range");this._dimensions.push(n)}}}function u(e){for(var t=0,r=e.length;t<r;t++)if("number"!=typeof e[t]||!i(e[t]))throw new TypeError("Index parameters must be positive integer numbers");return new a.ImmutableDenseMatrix(e)}return s.prototype.type="Index",s.prototype.isIndex=!0,s.prototype.clone=function(){var e=new s;return e._dimensions=n(this._dimensions),e._isScalar=this._isScalar,e},s.create=function(e){var t=new s;return s.apply(t,e),t},s.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},s.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},s.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},s.prototype.forEach=function(e){for(var t=0,r=this._dimensions.length;t<r;t++)e(this._dimensions[t],t,this)},s.prototype.dimension=function(e){return this._dimensions[e]||null},s.prototype.isObjectProperty=function(){return 1===this._dimensions.length&&"string"==typeof this._dimensions[0]},s.prototype.getObjectProperty=function(){return this.isObjectProperty()?this._dimensions[0]:null},s.prototype.isScalar=function(){return this._isScalar},s.prototype.valueOf=s.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},s.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(", ")+"]"},s.prototype.toJSON=function(){return{mathjs:"Index",dimensions:this._dimensions}},s.fromJSON=function(e){return s.create(e.dimensions)},s}},function(e,t,n){"use strict";var m=n(284);t.name="compareNatural",t.factory=function(s,e,t,r){var u=t(n(24)),c=t(n(54)),f=c.signatures["boolean,boolean"],l=r("compareNatural",{"any, any":function(e,t){var r,n,i,o=u(e),a=u(t);if(!("number"!==o&&"BigNumber"!==o&&"Fraction"!==o||"number"!==a&&"BigNumber"!==a&&"Fraction"!==a))return"0"!==(r=c(e,t)).toString()?0<r?1:-1:m(o,a);if("Array"===o||"Matrix"===o||"Array"===a||"Matrix"===a)return 0!==(r=function e(t,r){return s.isSparseMatrix(t)&&s.isSparseMatrix(r)?p(t.toJSON().values,r.toJSON().values):s.isSparseMatrix(t)?e(t.toArray(),r):s.isSparseMatrix(r)?e(t,r.toArray()):s.isDenseMatrix(t)?e(t.toJSON().data,r):s.isDenseMatrix(r)?e(t,r.toJSON().data):Array.isArray(t)?Array.isArray(r)?p(t,r):e(t,[r]):e([t],r)}(e,t))?r:m(o,a);if(o!==a)return m(o,a);if("Complex"===o)return i=t,(n=e).re>i.re?1:n.re<i.re?-1:n.im>i.im?1:n.im<i.im?-1:0;if("Unit"===o)return e.equalBase(t)?l(e.value,t.value):p(e.formatUnits(),t.formatUnits());if("boolean"===o)return f(e,t);if("string"===o)return m(e,t);if("Object"===o)return function(e,t){var r=Object.keys(e),n=Object.keys(t);r.sort(m),n.sort(m);var i=p(r,n);if(0!==i)return i;for(var o=0;o<r.length;o++){var a=l(e[r[o]],t[n[o]]);if(0!==a)return a}return 0}(e,t);if("null"===o)return 0;if("undefined"===o)return 0;throw new TypeError('Unsupported type of value "'+o+'"')}});function p(e,t){for(var r=0,n=Math.min(e.length,t.length);r<n;r++){var i=l(e[r],t[r]);if(0!==i)return i}return e.length>t.length?1:e.length<t.length?-1:0}return l.toTex=void 0,l}},function(e,t,r){"use strict";t.array=r(2),t.boolean=r(181),t.function=r(33),t.number=r(3),t.object=r(5),t.string=r(9),t.emitter=r(101)},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,p){"use strict";var m=p(3).nearlyEqual,h=p(31);t.name="larger",t.factory=function(e,r,t,n){var i=t(p(1)),o=t(p(18)),a=t(p(27)),s=t(p(19)),u=t(p(7)),c=t(p(6)),f=p(4),l=n("larger",{"boolean, boolean":function(e,t){return t<e},"number, number":function(e,t){return t<e&&!m(e,t,r.epsilon)},"BigNumber, BigNumber":function(e,t){return e.gt(t)&&!h(e,t,r.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 l(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return a(e,t,l)},"SparseMatrix, DenseMatrix":function(e,t){return o(t,e,l,!0)},"DenseMatrix, SparseMatrix":function(e,t){return o(e,t,l,!1)},"DenseMatrix, DenseMatrix":function(e,t){return u(e,t,l)},"Array, Array":function(e,t){return l(i(e),i(t)).valueOf()},"Array, Matrix":function(e,t){return l(i(e),t)},"Matrix, Array":function(e,t){return l(e,i(t))},"SparseMatrix, any":function(e,t){return s(e,t,l,!1)},"DenseMatrix, any":function(e,t){return c(e,t,l,!1)},"any, SparseMatrix":function(e,t){return s(t,e,l,!0)},"any, DenseMatrix":function(e,t){return c(t,e,l,!0)},"Array, any":function(e,t){return c(i(e),t,l,!1).valueOf()},"any, Array":function(e,t){return c(i(t),e,l,!0).valueOf()}});return l.toTex={2:"\\left(${args[0]}".concat(f.operators.larger,"${args[1]}\\right)")},l}},function(e,t,r){"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.memoize=function(i,o){return function e(){"object"!==a(e.cache)&&(e.cache={});for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=o?o(t):JSON.stringify(t);return n in e.cache||(e.cache[n]=i.apply(i,t)),e.cache[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 O=r(8);t.name="algorithm01",t.factory=function(e,t,r,A){var S=e.DenseMatrix;return function(e,t,r,n){var i=e._data,o=e._size,a=e._datatype,s=t._values,u=t._index,c=t._ptr,f=t._size,l=t._datatype;if(o.length!==f.length)throw new O(o.length,f.length);if(o[0]!==f[0]||o[1]!==f[1])throw new RangeError("Dimension mismatch. Matrix A ("+o+") must match Matrix B ("+f+")");if(!s)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p,m,h=o[0],d=o[1],y="string"==typeof a&&a===l?a:void 0,g=y?A.find(r,[y,y]):r,v=[];for(p=0;p<h;p++)v[p]=[];var x=[],b=[];for(m=0;m<d;m++){for(var w=m+1,N=c[m],M=c[m+1],E=N;E<M;E++)x[p=u[E]]=n?g(s[E],i[p][m]):g(i[p][m],s[E]),b[p]=w;for(p=0;p<h;p++)b[p]===w?v[p][m]=x[p]:v[p][m]=i[p][m]}return new S({data:v,size:[h,d],datatype:y})}}},function(e,t,p){"use strict";var m=p(3).nearlyEqual,h=p(31);t.name="smaller",t.factory=function(e,r,t,n){var i=t(p(1)),o=t(p(18)),a=t(p(27)),s=t(p(19)),u=t(p(7)),c=t(p(6)),f=p(4),l=n("smaller",{"boolean, boolean":function(e,t){return e<t},"number, number":function(e,t){return e<t&&!m(e,t,r.epsilon)},"BigNumber, BigNumber":function(e,t){return e.lt(t)&&!h(e,t,r.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, Uni