diff --git a/bower.json b/bower.json index 515c7790e..05248c903 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "mathjs", - "version": "1.2.0", + "version": "1.2.1-SNAPSHOT", "main": "./dist/math.min.js", "ignore": [ "coverage", diff --git a/component.json b/component.json index ea29c1c08..5de6978d7 100644 --- a/component.json +++ b/component.json @@ -2,7 +2,7 @@ "name": "mathjs", "repo": "josdejong/mathjs", "description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser and offers an integrated solution to work with numbers, big numbers, complex numbers, units, and matrices.", - "version": "1.2.0", + "version": "1.2.1-SNAPSHOT", "main": "dist/math.min.js", "keywords": [ "math", diff --git a/dist/math.js b/dist/math.js index 1806eaeab..b1f3ca7d8 100644 --- a/dist/math.js +++ b/dist/math.js @@ -6,7 +6,7 @@ * It features real and complex numbers, units, matrices, a large set of * mathematical functions, and a flexible expression parser. * - * @version 1.2.0 + * @version 1.2.1-SNAPSHOT * @date 2014-12-25 * * @license @@ -203,7 +203,7 @@ return /******/ (function(modules) { // webpackBootstrap math.create = create; // create a new BigNumber factory for this instance of math.js - var BigNumber = __webpack_require__(159).constructor(); + var BigNumber = __webpack_require__(155).constructor(); // extend BigNumber with a function clone if (typeof BigNumber.prototype.clone !== 'function') { @@ -941,10 +941,10 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - exports.ArgumentsError = __webpack_require__(155); - exports.DimensionError = __webpack_require__(156); - exports.IndexError = __webpack_require__(157); - exports.UnsupportedTypeError = __webpack_require__(158); + exports.ArgumentsError = __webpack_require__(156); + exports.DimensionError = __webpack_require__(157); + exports.IndexError = __webpack_require__(158); + exports.UnsupportedTypeError = __webpack_require__(159); // TODO: implement an InvalidValueError? @@ -1950,7 +1950,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var util = __webpack_require__(160), - DimensionError = __webpack_require__(156), + DimensionError = __webpack_require__(157), Index = __webpack_require__(8), @@ -3489,8 +3489,8 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(160), - IndexError = __webpack_require__(157), - DimensionError = __webpack_require__(156), + IndexError = __webpack_require__(158), + DimensionError = __webpack_require__(157), Matrix = __webpack_require__(9), @@ -3755,7 +3755,7 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(160), - ArgumentsError = __webpack_require__(155), + ArgumentsError = __webpack_require__(156), isString = util.string.isString, isArray = Array.isArray, @@ -3773,13 +3773,13 @@ return /******/ (function(modules) { // webpackBootstrap BlockNode = __webpack_require__(163), ConditionalNode = __webpack_require__(164), ConstantNode = __webpack_require__(165), - FunctionAssignmentNode = __webpack_require__(166), - IndexNode = __webpack_require__(167), - OperatorNode = __webpack_require__(168), - FunctionNode = __webpack_require__(169), - RangeNode = __webpack_require__(170), - SymbolNode = __webpack_require__(171), - UpdateNode = __webpack_require__(172); + FunctionAssignmentNode = __webpack_require__(167), + IndexNode = __webpack_require__(166), + OperatorNode = __webpack_require__(170), + FunctionNode = __webpack_require__(168), + RangeNode = __webpack_require__(171), + SymbolNode = __webpack_require__(172), + UpdateNode = __webpack_require__(173); /** * Parse an expression. Returns a node tree, which can be evaluated by @@ -5295,14 +5295,14 @@ return /******/ (function(modules) { // webpackBootstrap exports.BlockNode = __webpack_require__(163); exports.ConditionalNode = __webpack_require__(164); exports.ConstantNode = __webpack_require__(165); - exports.IndexNode = __webpack_require__(167); - exports.FunctionAssignmentNode = __webpack_require__(166); - exports.FunctionNode = __webpack_require__(169); - exports.Node = __webpack_require__(173); - exports.OperatorNode = __webpack_require__(168); - exports.RangeNode = __webpack_require__(170); - exports.SymbolNode = __webpack_require__(171); - exports.UpdateNode = __webpack_require__(172); + exports.IndexNode = __webpack_require__(166); + exports.FunctionAssignmentNode = __webpack_require__(167); + exports.FunctionNode = __webpack_require__(168); + exports.Node = __webpack_require__(169); + exports.OperatorNode = __webpack_require__(170); + exports.RangeNode = __webpack_require__(171); + exports.SymbolNode = __webpack_require__(172); + exports.UpdateNode = __webpack_require__(173); /***/ }, @@ -5482,7 +5482,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var errorTransform = __webpack_require__(174).transform; var isNumber = __webpack_require__(4).isNumber; var argsToArray = __webpack_require__(153).argsToArray; @@ -5526,10 +5526,10 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var SymbolNode = __webpack_require__(171); + var SymbolNode = __webpack_require__(172); var isBoolean = __webpack_require__(175).isBoolean; var argsToArray = __webpack_require__(153).argsToArray; - var ArgumentsError = __webpack_require__(155); + var ArgumentsError = __webpack_require__(156); /** * Attach a transform function to math.filter @@ -5641,7 +5641,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var Range = __webpack_require__(7); var Index = __webpack_require__(8); var Matrix = __webpack_require__(9); @@ -5693,7 +5693,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var Matrix = __webpack_require__(9); - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var Range = __webpack_require__(7); var Index = __webpack_require__(8); var isNumber = __webpack_require__(4).isNumber; @@ -5745,7 +5745,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var errorTransform = __webpack_require__(174).transform; var isNumber = __webpack_require__(4).isNumber; var isCollection = __webpack_require__(13).isCollection; @@ -5790,7 +5790,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var errorTransform = __webpack_require__(174).transform; var isNumber = __webpack_require__(4).isNumber; var isCollection = __webpack_require__(13).isCollection; @@ -5835,7 +5835,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var errorTransform = __webpack_require__(174).transform; var isNumber = __webpack_require__(4).isNumber; var isCollection = __webpack_require__(13).isCollection; @@ -11998,7 +11998,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = function (math) { var util = __webpack_require__(160), - BigNumber = __webpack_require__(159), + BigNumber = __webpack_require__(155), Matrix = __webpack_require__(9), collection = __webpack_require__(13), @@ -18668,7 +18668,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var isNumber = __webpack_require__(4).isNumber; var digits = __webpack_require__(4).digits; @@ -19374,8 +19374,8 @@ return /******/ (function(modules) { // webpackBootstrap object = __webpack_require__(3), types = __webpack_require__(196), - DimensionError = __webpack_require__(156), - IndexError = __webpack_require__(157), + DimensionError = __webpack_require__(157), + IndexError = __webpack_require__(158), isArray = Array.isArray; @@ -19749,186 +19749,13 @@ return /******/ (function(modules) { // webpackBootstrap /* 154 */ /***/ function(module, exports, __webpack_require__) { - module.exports = '1.2.0'; + module.exports = '1.2.1-SNAPSHOT'; // Note: This file is automatically generated when building math.js. // Changes made in this file will be overwritten. /***/ }, /* 155 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - /** - * Create a syntax error with the message: - * 'Wrong number of arguments in function ( provided, - expected)' - * @param {String} fn Function name - * @param {Number} count Actual argument count - * @param {Number} min Minimum required argument count - * @param {Number} [max] Maximum required argument count - * @extends Error - */ - function ArgumentsError(fn, count, min, max) { - if (!(this instanceof ArgumentsError)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - this.fn = fn; - this.count = count; - this.min = min; - this.max = max; - - this.message = 'Wrong number of arguments in function ' + fn + - ' (' + count + ' provided, ' + - min + ((max != undefined) ? ('-' + max) : '') + ' expected)'; - - this.stack = (new Error()).stack; - } - - ArgumentsError.prototype = new Error(); - ArgumentsError.prototype.constructor = Error; - ArgumentsError.prototype.name = 'ArgumentsError'; - - module.exports = ArgumentsError; - - -/***/ }, -/* 156 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - /** - * Create a range error with the message: - * 'Dimension mismatch ( != )' - * @param {number | number[]} actual The actual size - * @param {number | number[]} expected The expected size - * @param {string} [relation='!='] Optional relation between actual - * and expected size: '!=', '<', etc. - * @extends RangeError - */ - function DimensionError(actual, expected, relation) { - if (!(this instanceof DimensionError)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - this.actual = actual; - this.expected = expected; - this.relation = relation; - - this.message = 'Dimension mismatch (' + - (Array.isArray(actual) ? ('[' + actual.join(', ') + ']') : actual) + - ' ' + (this.relation || '!=') + ' ' + - (Array.isArray(expected) ? ('[' + expected.join(', ') + ']') : expected) + - ')'; - - this.stack = (new Error()).stack; - } - - DimensionError.prototype = new RangeError(); - DimensionError.prototype.constructor = RangeError; - DimensionError.prototype.name = 'DimensionError'; - - module.exports = DimensionError; - - -/***/ }, -/* 157 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - /** - * Create a range error with the message: - * 'Index out of range (index < min)' - * 'Index out of range (index < max)' - * - * @param {number} index The actual index - * @param {number} [min=0] Minimum index (included) - * @param {number} [max] Maximum index (excluded) - * @extends RangeError - */ - function IndexError(index, min, max) { - if (!(this instanceof IndexError)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - this.index = index; - if (arguments.length < 3) { - this.min = 0; - this.max = min; - } - else { - this.min = min; - this.max = max; - } - - if (this.min !== undefined && this.index < this.min) { - this.message = 'Index out of range (' + this.index + ' < ' + this.min + ')'; - } - else if (this.max !== undefined && this.index >= this.max) { - this.message = 'Index out of range (' + this.index + ' > ' + (this.max - 1) + ')'; - } - else { - this.message = 'Index out of range (' + this.index + ')'; - } - - this.stack = (new Error()).stack; - } - - IndexError.prototype = new RangeError(); - IndexError.prototype.constructor = RangeError; - IndexError.prototype.name = 'IndexError'; - - module.exports = IndexError; - - -/***/ }, -/* 158 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - /** - * Create a TypeError with message: - * 'Function does not support a parameter of type '; - * @param {String} fn Function name - * @param {*...} [types] The types of the function arguments - * @extends TypeError - */ - function UnsupportedTypeError(fn, types) { - if (!(this instanceof UnsupportedTypeError)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - this.fn = fn; - this.types = Array.prototype.splice.call(arguments, 1); - - if (!fn) { - this.message = 'Unsupported type of argument'; - } - else { - if (this.types.length == 0) { - this.message = 'Unsupported type of argument in function ' + fn; - } - else { - this.message = 'Function ' + fn + '(' + this.types.join(', ') + ') not supported'; - } - } - - this.stack = (new Error()).stack; - } - - UnsupportedTypeError.prototype = new TypeError(); - UnsupportedTypeError.prototype.constructor = TypeError; - UnsupportedTypeError.prototype.name = 'UnsupportedTypeError'; - - module.exports = UnsupportedTypeError; - - -/***/ }, -/* 159 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;/*! decimal.js v4.0.1 https://github.com/MikeMcl/decimal.js/LICENCE */ @@ -23996,6 +23823,179 @@ return /******/ (function(modules) { // webpackBootstrap })(this); +/***/ }, +/* 156 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Create a syntax error with the message: + * 'Wrong number of arguments in function ( provided, - expected)' + * @param {String} fn Function name + * @param {Number} count Actual argument count + * @param {Number} min Minimum required argument count + * @param {Number} [max] Maximum required argument count + * @extends Error + */ + function ArgumentsError(fn, count, min, max) { + if (!(this instanceof ArgumentsError)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + this.fn = fn; + this.count = count; + this.min = min; + this.max = max; + + this.message = 'Wrong number of arguments in function ' + fn + + ' (' + count + ' provided, ' + + min + ((max != undefined) ? ('-' + max) : '') + ' expected)'; + + this.stack = (new Error()).stack; + } + + ArgumentsError.prototype = new Error(); + ArgumentsError.prototype.constructor = Error; + ArgumentsError.prototype.name = 'ArgumentsError'; + + module.exports = ArgumentsError; + + +/***/ }, +/* 157 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Create a range error with the message: + * 'Dimension mismatch ( != )' + * @param {number | number[]} actual The actual size + * @param {number | number[]} expected The expected size + * @param {string} [relation='!='] Optional relation between actual + * and expected size: '!=', '<', etc. + * @extends RangeError + */ + function DimensionError(actual, expected, relation) { + if (!(this instanceof DimensionError)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + this.actual = actual; + this.expected = expected; + this.relation = relation; + + this.message = 'Dimension mismatch (' + + (Array.isArray(actual) ? ('[' + actual.join(', ') + ']') : actual) + + ' ' + (this.relation || '!=') + ' ' + + (Array.isArray(expected) ? ('[' + expected.join(', ') + ']') : expected) + + ')'; + + this.stack = (new Error()).stack; + } + + DimensionError.prototype = new RangeError(); + DimensionError.prototype.constructor = RangeError; + DimensionError.prototype.name = 'DimensionError'; + + module.exports = DimensionError; + + +/***/ }, +/* 158 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Create a range error with the message: + * 'Index out of range (index < min)' + * 'Index out of range (index < max)' + * + * @param {number} index The actual index + * @param {number} [min=0] Minimum index (included) + * @param {number} [max] Maximum index (excluded) + * @extends RangeError + */ + function IndexError(index, min, max) { + if (!(this instanceof IndexError)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + this.index = index; + if (arguments.length < 3) { + this.min = 0; + this.max = min; + } + else { + this.min = min; + this.max = max; + } + + if (this.min !== undefined && this.index < this.min) { + this.message = 'Index out of range (' + this.index + ' < ' + this.min + ')'; + } + else if (this.max !== undefined && this.index >= this.max) { + this.message = 'Index out of range (' + this.index + ' > ' + (this.max - 1) + ')'; + } + else { + this.message = 'Index out of range (' + this.index + ')'; + } + + this.stack = (new Error()).stack; + } + + IndexError.prototype = new RangeError(); + IndexError.prototype.constructor = RangeError; + IndexError.prototype.name = 'IndexError'; + + module.exports = IndexError; + + +/***/ }, +/* 159 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * Create a TypeError with message: + * 'Function does not support a parameter of type '; + * @param {String} fn Function name + * @param {*...} [types] The types of the function arguments + * @extends TypeError + */ + function UnsupportedTypeError(fn, types) { + if (!(this instanceof UnsupportedTypeError)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + this.fn = fn; + this.types = Array.prototype.splice.call(arguments, 1); + + if (!fn) { + this.message = 'Unsupported type of argument'; + } + else { + if (this.types.length == 0) { + this.message = 'Unsupported type of argument in function ' + fn; + } + else { + this.message = 'Function ' + fn + '(' + this.types.join(', ') + ') not supported'; + } + } + + this.stack = (new Error()).stack; + } + + UnsupportedTypeError.prototype = new TypeError(); + UnsupportedTypeError.prototype.constructor = TypeError; + UnsupportedTypeError.prototype.name = 'UnsupportedTypeError'; + + module.exports = UnsupportedTypeError; + + /***/ }, /* 160 */ /***/ function(module, exports, __webpack_require__) { @@ -24017,7 +24017,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Node = __webpack_require__(173), + var Node = __webpack_require__(169), object = __webpack_require__(3), string = __webpack_require__(176), collection = __webpack_require__(13), @@ -24144,12 +24144,12 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Node = __webpack_require__(173), + var Node = __webpack_require__(169), ArrayNode = __webpack_require__(161), - keywords = __webpack_require__(314), + keywords = __webpack_require__(315), - latex = __webpack_require__(315), + latex = __webpack_require__(314), isString = __webpack_require__(176).isString; /** @@ -24245,7 +24245,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Node = __webpack_require__(173); + var Node = __webpack_require__(169); var ResultSet = __webpack_require__(12); var isBoolean = __webpack_require__(175).isBoolean; @@ -24384,9 +24384,9 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Node = __webpack_require__(173); - var latex = __webpack_require__(315); - var BigNumber = __webpack_require__(159); + var Node = __webpack_require__(169); + var latex = __webpack_require__(314); + var BigNumber = __webpack_require__(155); var Complex = __webpack_require__(6); var Unit = __webpack_require__(10); var util = __webpack_require__(160); @@ -24539,8 +24539,8 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Node = __webpack_require__(173), - BigNumber = __webpack_require__(159), + var Node = __webpack_require__(169), + BigNumber = __webpack_require__(155), type = __webpack_require__(196).type, isString = __webpack_require__(176).isString; @@ -24726,131 +24726,11 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Node = __webpack_require__(173); - var keywords = __webpack_require__(314); - var latex = __webpack_require__(315); - var isString = __webpack_require__(176).isString; - var isArray = Array.isArray; + var Node = __webpack_require__(169); + var RangeNode = __webpack_require__(171); + var SymbolNode = __webpack_require__(172); - /** - * @constructor FunctionAssignmentNode - * @extends {Node} - * Function assignment - * - * @param {String} name Function name - * @param {String[]} params Function parameter names - * @param {Node} expr The function expression - */ - function FunctionAssignmentNode(name, params, expr) { - if (!(this instanceof FunctionAssignmentNode)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - // validate input - if (!isString(name)) throw new TypeError('String expected for parameter "name"'); - if (!isArray(params) || !params.every(isString)) throw new TypeError('Array containing strings expected for parameter "params"'); - if (!(expr instanceof Node)) throw new TypeError('Node expected for parameter "expr"'); - if (name in keywords) throw new Error('Illegal function name, "' + name + '" is a reserved keyword'); - - this.name = name; - this.params = params; - this.expr = expr; - } - - FunctionAssignmentNode.prototype = new Node(); - - FunctionAssignmentNode.prototype.type = 'FunctionAssignmentNode'; - - /** - * Compile the node to javascript code - * @param {Object} defs Object which can be used to define functions - * or constants globally available for the compiled - * expression - * @return {String} js - * @private - */ - FunctionAssignmentNode.prototype._compile = function (defs) { - return 'scope["' + this.name + '"] = ' + - ' (function (scope) {' + - ' scope = Object.create(scope); ' + - ' var fn = function ' + this.name + '(' + this.params.join(',') + ') {' + - ' if (arguments.length != ' + this.params.length + ') {' + - // TODO: use util.error.ArgumentsError here - // TODO: test arguments error - ' throw new SyntaxError("Wrong number of arguments in function ' + this.name + ' (" + arguments.length + " provided, ' + this.params.length + ' expected)");' + - ' }' + - this.params.map(function (variable, index) { - return 'scope["' + variable + '"] = arguments[' + index + '];'; - }).join('') + - ' return ' + this.expr._compile(defs) + '' + - ' };' + - ' fn.syntax = "' + this.name + '(' + this.params.join(', ') + ')";' + - ' return fn;' + - ' })(scope);'; - }; - - /** - * Execute a callback for each of the child nodes of this node - * @param {function(child: Node, path: string, parent: Node)} callback - */ - FunctionAssignmentNode.prototype.forEach = function (callback) { - callback(this.expr, 'expr', this); - }; - - /** - * Create a new FunctionAssignmentNode having it's childs be the results of calling - * the provided callback function for each of the childs of the original node. - * @param {function(child: Node, path: string, parent: Node): Node} callback - * @returns {FunctionAssignmentNode} Returns a transformed copy of the node - */ - FunctionAssignmentNode.prototype.map = function (callback) { - var expr = this._ifNode(callback(this.expr, 'expr', this)); - - return new FunctionAssignmentNode(this.name, this.params.slice(0), expr); - }; - - /** - * Create a clone of this node, a shallow copy - * @return {FunctionAssignmentNode} - */ - FunctionAssignmentNode.prototype.clone = function() { - return new FunctionAssignmentNode(this.name, this.params.slice(0), this.expr); - }; - - /** - * get string representation - * @return {String} str - */ - FunctionAssignmentNode.prototype.toString = function() { - return 'function ' + this.name + - '(' + this.params.join(', ') + ') = ' + - this.expr.toString(); - }; - - /** - * get LaTeX representation - * @return {String} str - */ - FunctionAssignmentNode.prototype.toTex = function() { - return this.name + - latex.addBraces(this.params.map(latex.toSymbol).join(', '), true) + '=' + - latex.addBraces(this.expr.toTex()); - }; - - module.exports = FunctionAssignmentNode; - - -/***/ }, -/* 167 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var Node = __webpack_require__(173); - var RangeNode = __webpack_require__(170); - var SymbolNode = __webpack_require__(171); - - var BigNumber = __webpack_require__(159); + var BigNumber = __webpack_require__(155); var Range = __webpack_require__(7); var isNode = Node.isNode; @@ -25064,40 +24944,45 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = IndexNode; /***/ }, -/* 168 */ +/* 167 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Node = __webpack_require__(173), - ConstantNode = __webpack_require__(165), - SymbolNode = __webpack_require__(171), - FunctionNode = __webpack_require__(169), - latex = __webpack_require__(315); + var Node = __webpack_require__(169); + var keywords = __webpack_require__(315); + var latex = __webpack_require__(314); + var isString = __webpack_require__(176).isString; + var isArray = Array.isArray; /** - * @constructor OperatorNode + * @constructor FunctionAssignmentNode * @extends {Node} - * An operator with two arguments, like 2+3 + * Function assignment * - * @param {String} op Operator name, for example '+' - * @param {String} fn Function name, for example 'add' - * @param {Node[]} args Operator arguments + * @param {String} name Function name + * @param {String[]} params Function parameter names + * @param {Node} expr The function expression */ - function OperatorNode (op, fn, args) { - if (!(this instanceof OperatorNode)) { + function FunctionAssignmentNode(name, params, expr) { + if (!(this instanceof FunctionAssignmentNode)) { throw new SyntaxError('Constructor must be called with the new operator'); } - // TODO: validate input - this.op = op; - this.fn = fn; - this.args = args || []; + // validate input + if (!isString(name)) throw new TypeError('String expected for parameter "name"'); + if (!isArray(params) || !params.every(isString)) throw new TypeError('Array containing strings expected for parameter "params"'); + if (!(expr instanceof Node)) throw new TypeError('Node expected for parameter "expr"'); + if (name in keywords) throw new Error('Illegal function name, "' + name + '" is a reserved keyword'); + + this.name = name; + this.params = params; + this.expr = expr; } - OperatorNode.prototype = new Node(); + FunctionAssignmentNode.prototype = new Node(); - OperatorNode.prototype.type = 'OperatorNode'; + FunctionAssignmentNode.prototype.type = 'FunctionAssignmentNode'; /** * Compile the node to javascript code @@ -25107,181 +24992,87 @@ return /******/ (function(modules) { // webpackBootstrap * @return {String} js * @private */ - OperatorNode.prototype._compile = function (defs) { - if (!(this.fn in defs.math)) { - throw new Error('Function ' + this.fn + ' missing in provided namespace "math"'); - } - - var args = this.args.map(function (arg) { - return arg._compile(defs); - }); - return 'math.' + this.fn + '(' + args.join(', ') + ')'; + FunctionAssignmentNode.prototype._compile = function (defs) { + return 'scope["' + this.name + '"] = ' + + ' (function (scope) {' + + ' scope = Object.create(scope); ' + + ' var fn = function ' + this.name + '(' + this.params.join(',') + ') {' + + ' if (arguments.length != ' + this.params.length + ') {' + + // TODO: use util.error.ArgumentsError here + // TODO: test arguments error + ' throw new SyntaxError("Wrong number of arguments in function ' + this.name + ' (" + arguments.length + " provided, ' + this.params.length + ' expected)");' + + ' }' + + this.params.map(function (variable, index) { + return 'scope["' + variable + '"] = arguments[' + index + '];'; + }).join('') + + ' return ' + this.expr._compile(defs) + '' + + ' };' + + ' fn.syntax = "' + this.name + '(' + this.params.join(', ') + ')";' + + ' return fn;' + + ' })(scope);'; }; /** * Execute a callback for each of the child nodes of this node * @param {function(child: Node, path: string, parent: Node)} callback */ - OperatorNode.prototype.forEach = function (callback) { - for (var i = 0; i < this.args.length; i++) { - callback(this.args[i], 'args[' + i + ']', this); - } + FunctionAssignmentNode.prototype.forEach = function (callback) { + callback(this.expr, 'expr', this); }; /** - * Create a new OperatorNode having it's childs be the results of calling + * Create a new FunctionAssignmentNode having it's childs be the results of calling * the provided callback function for each of the childs of the original node. * @param {function(child: Node, path: string, parent: Node): Node} callback - * @returns {OperatorNode} Returns a transformed copy of the node + * @returns {FunctionAssignmentNode} Returns a transformed copy of the node */ - OperatorNode.prototype.map = function (callback) { - var args = []; - for (var i = 0; i < this.args.length; i++) { - args[i] = this._ifNode(callback(this.args[i], 'args[' + i + ']', this)); - } - return new OperatorNode(this.op, this.fn, args); + FunctionAssignmentNode.prototype.map = function (callback) { + var expr = this._ifNode(callback(this.expr, 'expr', this)); + + return new FunctionAssignmentNode(this.name, this.params.slice(0), expr); }; /** * Create a clone of this node, a shallow copy - * @return {OperatorNode} + * @return {FunctionAssignmentNode} */ - OperatorNode.prototype.clone = function() { - return new OperatorNode(this.op, this.fn, this.args.slice(0)); + FunctionAssignmentNode.prototype.clone = function() { + return new FunctionAssignmentNode(this.name, this.params.slice(0), this.expr); }; /** - * Get string representation + * get string representation * @return {String} str */ - OperatorNode.prototype.toString = function() { - var args = this.args; - - switch (args.length) { - case 1: - if (this.op == '-') { - // special case: unary minus - return '-' + args[0].toString(); - } - else { - // for example '5!' - return args[0].toString() + this.op; - } - - case 2: // for example '2+3' - var lhs = args[0].toString(); - if (args[0] instanceof OperatorNode) { - lhs = '(' + lhs + ')'; - } - var rhs = args[1].toString(); - if (args[1] instanceof OperatorNode) { - rhs = '(' + rhs + ')'; - } - return lhs + ' ' + this.op + ' ' + rhs; - - default: // this should not occur. format as a function call - return this.op + '(' + this.args.join(', ') + ')'; - } + FunctionAssignmentNode.prototype.toString = function() { + return 'function ' + this.name + + '(' + this.params.join(', ') + ') = ' + + this.expr.toString(); }; /** - * Get LaTeX representation + * get LaTeX representation * @return {String} str */ - OperatorNode.prototype.toTex = function() { - var args = this.args, - mop = latex.toOperator(this.op), - lp = args[0], - rp = args[1]; - - switch (args.length) { - case 1: - if (this.op === '-' || this.op === '+') { - // special case: unary minus - return this.op + lp.toTex(); - } - // for example '5!' - return lp.toTex() + this.op; - - case 2: // for example '2+3' - var lhs = lp.toTex(), - lhb = false, - rhs = rp.toTex(), - rhb = false, - lop = '', - rop = ''; - - switch (this.op) { - case '/': - lop = mop; - mop = ''; - - break; - - case '*': - if (lp instanceof OperatorNode) { - if (lp.op === '+' || lp.op === '-') { - lhb = true; - } - } - - if (rp instanceof OperatorNode) { - if (rp.op === '+' || rp.op === '-') { - rhb = true; - } - else if (rp.op === '*') { - rhb = true; - } - } - - if ((lp instanceof ConstantNode || lp instanceof OperatorNode) && - (rp instanceof ConstantNode || rp instanceof OperatorNode)) { - mop = ' \\cdot '; - } - else { - mop = ' \\, '; - } - - break; - - case '^': - if (lp instanceof OperatorNode || lp instanceof FunctionNode) { - lhb = true; - } - else if (lp instanceof SymbolNode) { - lhb = null; - } - - break; - - case 'to': - rhs = latex.toUnit(rhs, true); - break; - } - - lhs = latex.addBraces(lhs, lhb); - rhs = latex.addBraces(rhs, rhb); - - return lop + lhs + mop + rhs + rop; - - default: // this should not occur. format as a function call - return mop + '(' + this.args.map(latex.toSymbol).join(', ') + ')'; - } + FunctionAssignmentNode.prototype.toTex = function() { + return this.name + + latex.addBraces(this.params.map(latex.toSymbol).join(', '), true) + '=' + + latex.addBraces(this.expr.toTex()); }; - module.exports = OperatorNode; + module.exports = FunctionAssignmentNode; /***/ }, -/* 169 */ +/* 168 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Node = __webpack_require__(173); - var SymbolNode = __webpack_require__(171); + var Node = __webpack_require__(169); + var SymbolNode = __webpack_require__(172); - var latex = __webpack_require__(315); + var latex = __webpack_require__(314); var isNode = Node.isNode; var isArray = Array.isArray; @@ -25401,346 +25192,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 170 */ +/* 169 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Node = __webpack_require__(173); - - var isNode = Node.isNode; - - /** - * @constructor RangeNode - * @extends {Node} - * create a range - * @param {Node} start included lower-bound - * @param {Node} end included lower-bound - * @param {Node} [step] optional step - */ - function RangeNode (start, end, step) { - if (!(this instanceof RangeNode)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - // validate inputs - if (!isNode(start)) throw new TypeError('Node expected'); - if (!isNode(end)) throw new TypeError('Node expected'); - if (step && !isNode(step)) throw new TypeError('Node expected'); - if (arguments.length > 3) throw new Error('Too many arguments'); - - this.start = start; // included lower-bound - this.end = end; // included upper-bound - this.step = step || null; // optional step - } - - RangeNode.prototype = new Node(); - - RangeNode.prototype.type = 'RangeNode'; - - /** - * Compile the node to javascript code - * @param {Object} defs Object which can be used to define functions - * or constants globally available for the compiled - * expression - * @return {String} js - * @private - */ - RangeNode.prototype._compile = function (defs) { - return 'math.range(' + - this.start._compile(defs) + ', ' + - this.end._compile(defs) + - (this.step ? (', ' + this.step._compile(defs)) : '') + - ')'; - }; - - /** - * Execute a callback for each of the child nodes of this node - * @param {function(child: Node, path: string, parent: Node)} callback - */ - RangeNode.prototype.forEach = function (callback) { - callback(this.start, 'start', this); - callback(this.end, 'end', this); - if (this.step) { - callback(this.step, 'step', this); - } - }; - - /** - * Create a new RangeNode having it's childs be the results of calling - * the provided callback function for each of the childs of the original node. - * @param {function(child: Node, path: string, parent: Node): Node} callback - * @returns {RangeNode} Returns a transformed copy of the node - */ - RangeNode.prototype.map = function (callback) { - return new RangeNode( - this._ifNode(callback(this.start, 'start', this)), - this._ifNode(callback(this.end, 'end', this)), - this.step && this._ifNode(callback(this.step, 'step', this)) - ); - }; - - /** - * Create a clone of this node, a shallow copy - * @return {RangeNode} - */ - RangeNode.prototype.clone = function() { - return new RangeNode(this.start, this.end, this.step && this.step); - }; - - /** - * Get string representation - * @return {String} str - */ - RangeNode.prototype.toString = function() { - // format the range like "start:step:end" - var str = this.start.toString(); - if (this.step) { - str += ':' + this.step.toString(); - } - str += ':' + this.end.toString(); - - return str; - }; - - /** - * Get LaTeX representation - * @return {String} str - */ - RangeNode.prototype.toTex = function() { - var str = this.start.toTex(); - if (this.step) { - str += ':' + this.step.toTex(); - } - str += ':' + this.end.toTex(); - - return str; - }; - - module.exports = RangeNode; - - -/***/ }, -/* 171 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var Node = __webpack_require__(173), - Unit = __webpack_require__(10), - - latex = __webpack_require__(315), - isString = __webpack_require__(176).isString; - - /** - * @constructor SymbolNode - * @extends {Node} - * A symbol node can hold and resolve a symbol - * @param {String} name - * @extends {Node} - */ - function SymbolNode(name) { - if (!(this instanceof SymbolNode)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - // validate input - if (!isString(name)) throw new TypeError('String expected for parameter "name"'); - - this.name = name; - } - - SymbolNode.prototype = new Node(); - - SymbolNode.prototype.type = 'SymbolNode'; - - /** - * Compile the node to javascript code - * @param {Object} defs Object which can be used to define functions - * or constants globally available for the compiled - * expression - * @return {String} js - * @private - */ - SymbolNode.prototype._compile = function (defs) { - // add a function to the definitions - defs['undef'] = undef; - defs['Unit'] = Unit; - - if (this.name in defs.math) { - return '("' + this.name + '" in scope ? scope["' + this.name + '"] : math["' + this.name + '"])'; - } - else { - return '(' + - '"' + this.name + '" in scope ? scope["' + this.name + '"] : ' + - (Unit.isValuelessUnit(this.name) ? - 'new Unit(null, "' + this.name + '")' : - 'undef("' + this.name + '")') + - ')'; - } - }; - - /** - * Execute a callback for each of the child nodes of this node - * @param {function(child: Node, path: string, parent: Node)} callback - */ - SymbolNode.prototype.forEach = function (callback) { - // nothing to do, we don't have childs - }; - - /** - * Create a new SymbolNode having it's childs be the results of calling - * the provided callback function for each of the childs of the original node. - * @param {function(child: Node, path: string, parent: Node) : Node} callback - * @returns {SymbolNode} Returns a clone of the node - */ - SymbolNode.prototype.map = function (callback) { - return this.clone(); - }; - - /** - * Throws an error 'Undefined symbol {name}' - * @param {String} name - */ - function undef (name) { - throw new Error('Undefined symbol ' + name); - } - - /** - * Create a clone of this node, a shallow copy - * @return {SymbolNode} - */ - SymbolNode.prototype.clone = function() { - return new SymbolNode(this.name); - }; - - /** - * Get string representation - * @return {String} str - * @override - */ - SymbolNode.prototype.toString = function() { - return this.name; - }; - - /** - * Get LaTeX representation - * @return {String} str - * @override - */ - SymbolNode.prototype.toTex = function() { - return latex.toSymbol(this.name); - }; - - module.exports = SymbolNode; - - -/***/ }, -/* 172 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var Node = __webpack_require__(173), - IndexNode = __webpack_require__(167); - - /** - * @constructor UpdateNode - * @extends {Node} - * Update a matrix subset, like A[2,3] = 4.5 - * - * @param {IndexNode} index IndexNode containing symbol and ranges - * @param {Node} expr The expression defining the symbol - */ - function UpdateNode(index, expr) { - if (!(this instanceof UpdateNode)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } - - if (!(index instanceof IndexNode)) { - throw new TypeError('Expected IndexNode for parameter "index"'); - } - if (!(expr instanceof Node)) { - throw new TypeError('Expected Node for parameter "expr"'); - } - - this.index = index; - this.expr = expr; - } - - UpdateNode.prototype = new Node(); - - UpdateNode.prototype.type = 'UpdateNode'; - - /** - * Compile the node to javascript code - * @param {Object} defs Object which can be used to define functions - * or constants globally available for the compiled - * expression - * @return {String} js - * @private - */ - UpdateNode.prototype._compile = function (defs) { - return 'scope["' + this.index.objectName() + '\"] = ' + - this.index.compileSubset(defs, this.expr._compile(defs)); - }; - - /** - * Execute a callback for each of the child nodes of this node - * @param {function(child: Node, path: string, parent: Node)} callback - */ - UpdateNode.prototype.forEach = function (callback) { - callback(this.index, 'index', this); - callback(this.expr, 'expr', this); - }; - - /** - * Create a new UpdateNode having it's childs be the results of calling - * the provided callback function for each of the childs of the original node. - * @param {function(child: Node, path: string, parent: Node): Node} callback - * @returns {UpdateNode} Returns a transformed copy of the node - */ - UpdateNode.prototype.map = function (callback) { - return new UpdateNode( - this._ifNode(callback(this.index, 'index', this)), - this._ifNode(callback(this.expr, 'expr', this)) - ); - }; - - /** - * Create a clone of this node, a shallow copy - * @return {UpdateNode} - */ - UpdateNode.prototype.clone = function() { - return new UpdateNode(this.index, this.expr); - }; - - /** - * Get string representation - * @return {String} - */ - UpdateNode.prototype.toString = function() { - return this.index.toString() + ' = ' + this.expr.toString(); - }; - - /** - * Get LaTeX representation - * @return {String} - */ - UpdateNode.prototype.toTex = function() { - return this.index.toTex() + ' = ' + this.expr.toTex(); - }; - - module.exports = UpdateNode; - - -/***/ }, -/* 173 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var keywords = __webpack_require__(314); + var keywords = __webpack_require__(315); /** * Node @@ -26018,12 +25475,555 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Node; +/***/ }, +/* 170 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var Node = __webpack_require__(169), + ConstantNode = __webpack_require__(165), + SymbolNode = __webpack_require__(172), + FunctionNode = __webpack_require__(168), + latex = __webpack_require__(314); + + /** + * @constructor OperatorNode + * @extends {Node} + * An operator with two arguments, like 2+3 + * + * @param {String} op Operator name, for example '+' + * @param {String} fn Function name, for example 'add' + * @param {Node[]} args Operator arguments + */ + function OperatorNode (op, fn, args) { + if (!(this instanceof OperatorNode)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + // TODO: validate input + this.op = op; + this.fn = fn; + this.args = args || []; + } + + OperatorNode.prototype = new Node(); + + OperatorNode.prototype.type = 'OperatorNode'; + + /** + * Compile the node to javascript code + * @param {Object} defs Object which can be used to define functions + * or constants globally available for the compiled + * expression + * @return {String} js + * @private + */ + OperatorNode.prototype._compile = function (defs) { + if (!(this.fn in defs.math)) { + throw new Error('Function ' + this.fn + ' missing in provided namespace "math"'); + } + + var args = this.args.map(function (arg) { + return arg._compile(defs); + }); + return 'math.' + this.fn + '(' + args.join(', ') + ')'; + }; + + /** + * Execute a callback for each of the child nodes of this node + * @param {function(child: Node, path: string, parent: Node)} callback + */ + OperatorNode.prototype.forEach = function (callback) { + for (var i = 0; i < this.args.length; i++) { + callback(this.args[i], 'args[' + i + ']', this); + } + }; + + /** + * Create a new OperatorNode having it's childs be the results of calling + * the provided callback function for each of the childs of the original node. + * @param {function(child: Node, path: string, parent: Node): Node} callback + * @returns {OperatorNode} Returns a transformed copy of the node + */ + OperatorNode.prototype.map = function (callback) { + var args = []; + for (var i = 0; i < this.args.length; i++) { + args[i] = this._ifNode(callback(this.args[i], 'args[' + i + ']', this)); + } + return new OperatorNode(this.op, this.fn, args); + }; + + /** + * Create a clone of this node, a shallow copy + * @return {OperatorNode} + */ + OperatorNode.prototype.clone = function() { + return new OperatorNode(this.op, this.fn, this.args.slice(0)); + }; + + /** + * Get string representation + * @return {String} str + */ + OperatorNode.prototype.toString = function() { + var args = this.args; + + switch (args.length) { + case 1: + if (this.op == '-') { + // special case: unary minus + return '-' + args[0].toString(); + } + else { + // for example '5!' + return args[0].toString() + this.op; + } + + case 2: // for example '2+3' + var lhs = args[0].toString(); + if (args[0] instanceof OperatorNode) { + lhs = '(' + lhs + ')'; + } + var rhs = args[1].toString(); + if (args[1] instanceof OperatorNode) { + rhs = '(' + rhs + ')'; + } + return lhs + ' ' + this.op + ' ' + rhs; + + default: // this should not occur. format as a function call + return this.op + '(' + this.args.join(', ') + ')'; + } + }; + + /** + * Get LaTeX representation + * @return {String} str + */ + OperatorNode.prototype.toTex = function() { + var args = this.args, + mop = latex.toOperator(this.op), + lp = args[0], + rp = args[1]; + + switch (args.length) { + case 1: + if (this.op === '-' || this.op === '+') { + // special case: unary minus + return this.op + lp.toTex(); + } + // for example '5!' + return lp.toTex() + this.op; + + case 2: // for example '2+3' + var lhs = lp.toTex(), + lhb = false, + rhs = rp.toTex(), + rhb = false, + lop = '', + rop = ''; + + switch (this.op) { + case '/': + lop = mop; + mop = ''; + + break; + + case '*': + if (lp instanceof OperatorNode) { + if (lp.op === '+' || lp.op === '-') { + lhb = true; + } + } + + if (rp instanceof OperatorNode) { + if (rp.op === '+' || rp.op === '-') { + rhb = true; + } + else if (rp.op === '*') { + rhb = true; + } + } + + if ((lp instanceof ConstantNode || lp instanceof OperatorNode) && + (rp instanceof ConstantNode || rp instanceof OperatorNode)) { + mop = ' \\cdot '; + } + else { + mop = ' \\, '; + } + + break; + + case '^': + if (lp instanceof OperatorNode || lp instanceof FunctionNode) { + lhb = true; + } + else if (lp instanceof SymbolNode) { + lhb = null; + } + + break; + + case 'to': + rhs = latex.toUnit(rhs, true); + break; + } + + lhs = latex.addBraces(lhs, lhb); + rhs = latex.addBraces(rhs, rhb); + + return lop + lhs + mop + rhs + rop; + + default: // this should not occur. format as a function call + return mop + '(' + this.args.map(latex.toSymbol).join(', ') + ')'; + } + }; + + module.exports = OperatorNode; + + +/***/ }, +/* 171 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var Node = __webpack_require__(169); + + var isNode = Node.isNode; + + /** + * @constructor RangeNode + * @extends {Node} + * create a range + * @param {Node} start included lower-bound + * @param {Node} end included lower-bound + * @param {Node} [step] optional step + */ + function RangeNode (start, end, step) { + if (!(this instanceof RangeNode)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + // validate inputs + if (!isNode(start)) throw new TypeError('Node expected'); + if (!isNode(end)) throw new TypeError('Node expected'); + if (step && !isNode(step)) throw new TypeError('Node expected'); + if (arguments.length > 3) throw new Error('Too many arguments'); + + this.start = start; // included lower-bound + this.end = end; // included upper-bound + this.step = step || null; // optional step + } + + RangeNode.prototype = new Node(); + + RangeNode.prototype.type = 'RangeNode'; + + /** + * Compile the node to javascript code + * @param {Object} defs Object which can be used to define functions + * or constants globally available for the compiled + * expression + * @return {String} js + * @private + */ + RangeNode.prototype._compile = function (defs) { + return 'math.range(' + + this.start._compile(defs) + ', ' + + this.end._compile(defs) + + (this.step ? (', ' + this.step._compile(defs)) : '') + + ')'; + }; + + /** + * Execute a callback for each of the child nodes of this node + * @param {function(child: Node, path: string, parent: Node)} callback + */ + RangeNode.prototype.forEach = function (callback) { + callback(this.start, 'start', this); + callback(this.end, 'end', this); + if (this.step) { + callback(this.step, 'step', this); + } + }; + + /** + * Create a new RangeNode having it's childs be the results of calling + * the provided callback function for each of the childs of the original node. + * @param {function(child: Node, path: string, parent: Node): Node} callback + * @returns {RangeNode} Returns a transformed copy of the node + */ + RangeNode.prototype.map = function (callback) { + return new RangeNode( + this._ifNode(callback(this.start, 'start', this)), + this._ifNode(callback(this.end, 'end', this)), + this.step && this._ifNode(callback(this.step, 'step', this)) + ); + }; + + /** + * Create a clone of this node, a shallow copy + * @return {RangeNode} + */ + RangeNode.prototype.clone = function() { + return new RangeNode(this.start, this.end, this.step && this.step); + }; + + /** + * Get string representation + * @return {String} str + */ + RangeNode.prototype.toString = function() { + // format the range like "start:step:end" + var str = this.start.toString(); + if (this.step) { + str += ':' + this.step.toString(); + } + str += ':' + this.end.toString(); + + return str; + }; + + /** + * Get LaTeX representation + * @return {String} str + */ + RangeNode.prototype.toTex = function() { + var str = this.start.toTex(); + if (this.step) { + str += ':' + this.step.toTex(); + } + str += ':' + this.end.toTex(); + + return str; + }; + + module.exports = RangeNode; + + +/***/ }, +/* 172 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var Node = __webpack_require__(169), + Unit = __webpack_require__(10), + + latex = __webpack_require__(314), + isString = __webpack_require__(176).isString; + + /** + * @constructor SymbolNode + * @extends {Node} + * A symbol node can hold and resolve a symbol + * @param {String} name + * @extends {Node} + */ + function SymbolNode(name) { + if (!(this instanceof SymbolNode)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + // validate input + if (!isString(name)) throw new TypeError('String expected for parameter "name"'); + + this.name = name; + } + + SymbolNode.prototype = new Node(); + + SymbolNode.prototype.type = 'SymbolNode'; + + /** + * Compile the node to javascript code + * @param {Object} defs Object which can be used to define functions + * or constants globally available for the compiled + * expression + * @return {String} js + * @private + */ + SymbolNode.prototype._compile = function (defs) { + // add a function to the definitions + defs['undef'] = undef; + defs['Unit'] = Unit; + + if (this.name in defs.math) { + return '("' + this.name + '" in scope ? scope["' + this.name + '"] : math["' + this.name + '"])'; + } + else { + return '(' + + '"' + this.name + '" in scope ? scope["' + this.name + '"] : ' + + (Unit.isValuelessUnit(this.name) ? + 'new Unit(null, "' + this.name + '")' : + 'undef("' + this.name + '")') + + ')'; + } + }; + + /** + * Execute a callback for each of the child nodes of this node + * @param {function(child: Node, path: string, parent: Node)} callback + */ + SymbolNode.prototype.forEach = function (callback) { + // nothing to do, we don't have childs + }; + + /** + * Create a new SymbolNode having it's childs be the results of calling + * the provided callback function for each of the childs of the original node. + * @param {function(child: Node, path: string, parent: Node) : Node} callback + * @returns {SymbolNode} Returns a clone of the node + */ + SymbolNode.prototype.map = function (callback) { + return this.clone(); + }; + + /** + * Throws an error 'Undefined symbol {name}' + * @param {String} name + */ + function undef (name) { + throw new Error('Undefined symbol ' + name); + } + + /** + * Create a clone of this node, a shallow copy + * @return {SymbolNode} + */ + SymbolNode.prototype.clone = function() { + return new SymbolNode(this.name); + }; + + /** + * Get string representation + * @return {String} str + * @override + */ + SymbolNode.prototype.toString = function() { + return this.name; + }; + + /** + * Get LaTeX representation + * @return {String} str + * @override + */ + SymbolNode.prototype.toTex = function() { + return latex.toSymbol(this.name); + }; + + module.exports = SymbolNode; + + +/***/ }, +/* 173 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var Node = __webpack_require__(169), + IndexNode = __webpack_require__(166); + + /** + * @constructor UpdateNode + * @extends {Node} + * Update a matrix subset, like A[2,3] = 4.5 + * + * @param {IndexNode} index IndexNode containing symbol and ranges + * @param {Node} expr The expression defining the symbol + */ + function UpdateNode(index, expr) { + if (!(this instanceof UpdateNode)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } + + if (!(index instanceof IndexNode)) { + throw new TypeError('Expected IndexNode for parameter "index"'); + } + if (!(expr instanceof Node)) { + throw new TypeError('Expected Node for parameter "expr"'); + } + + this.index = index; + this.expr = expr; + } + + UpdateNode.prototype = new Node(); + + UpdateNode.prototype.type = 'UpdateNode'; + + /** + * Compile the node to javascript code + * @param {Object} defs Object which can be used to define functions + * or constants globally available for the compiled + * expression + * @return {String} js + * @private + */ + UpdateNode.prototype._compile = function (defs) { + return 'scope["' + this.index.objectName() + '\"] = ' + + this.index.compileSubset(defs, this.expr._compile(defs)); + }; + + /** + * Execute a callback for each of the child nodes of this node + * @param {function(child: Node, path: string, parent: Node)} callback + */ + UpdateNode.prototype.forEach = function (callback) { + callback(this.index, 'index', this); + callback(this.expr, 'expr', this); + }; + + /** + * Create a new UpdateNode having it's childs be the results of calling + * the provided callback function for each of the childs of the original node. + * @param {function(child: Node, path: string, parent: Node): Node} callback + * @returns {UpdateNode} Returns a transformed copy of the node + */ + UpdateNode.prototype.map = function (callback) { + return new UpdateNode( + this._ifNode(callback(this.index, 'index', this)), + this._ifNode(callback(this.expr, 'expr', this)) + ); + }; + + /** + * Create a clone of this node, a shallow copy + * @return {UpdateNode} + */ + UpdateNode.prototype.clone = function() { + return new UpdateNode(this.index, this.expr); + }; + + /** + * Get string representation + * @return {String} + */ + UpdateNode.prototype.toString = function() { + return this.index.toString() + ' = ' + this.expr.toString(); + }; + + /** + * Get LaTeX representation + * @return {String} + */ + UpdateNode.prototype.toTex = function() { + return this.index.toTex() + ' = ' + this.expr.toTex(); + }; + + module.exports = UpdateNode; + + /***/ }, /* 174 */ /***/ function(module, exports, __webpack_require__) { - var DimensionError = __webpack_require__(156); - var IndexError = __webpack_require__(157); + var DimensionError = __webpack_require__(157); + var IndexError = __webpack_require__(158); /** * Transform zero-based indices to one-based indices in errors @@ -26063,7 +26063,7 @@ return /******/ (function(modules) { // webpackBootstrap var number = __webpack_require__(4), bignumber = __webpack_require__(152), - BigNumber = __webpack_require__(159); + BigNumber = __webpack_require__(155); /** * Test whether value is a String @@ -29633,20 +29633,8 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - // Reserved keywords not allowed to use in the parser - module.exports = { - end: true - }; - - -/***/ }, -/* 315 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var ArrayNode = __webpack_require__(161), - OperatorNode = __webpack_require__(168); + OperatorNode = __webpack_require__(170); // GREEK LETTERS var greek = { @@ -30137,6 +30125,18 @@ return /******/ (function(modules) { // webpackBootstrap }; +/***/ }, +/* 315 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + // Reserved keywords not allowed to use in the parser + module.exports = { + end: true + }; + + /***/ } /******/ ]) }); diff --git a/dist/math.map b/dist/math.map index 593e8aa3b..f32349499 100644 --- a/dist/math.map +++ b/dist/math.map @@ -1 +1 @@ -{"version":3,"file":"math.map","sources":["./dist/math.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","create","config","Object","Error","math","_config","matrix","number","precision","epsilon","options","object","deepExtend","type","BigNumber","defaultType","decimals","clone","constructor","prototype","convert","digits","error","Complex","Range","Index","Matrix","Unit","Help","ResultSet","collection","expression","node","parse","Parser","docs","ifElse","chaining","Chain","Selector","window","mathjs","bignumber","big","pi","Math","PI","tau","e","E","phi","i","Infinity","NaN","UNINITIALIZED","LN2","ln","LN10","LOG2E","div","LOG10E","SQRT1_2","sqrt","SQRT2","version","x","undefined","Array","isArray","map","value","Number","valueOf","String","Boolean","Date","RegExp","TypeError","key","hasOwnProperty","extend","a","b","prop","deepEqual","len","length","isNumber","isInteger","round","sign","format","isNaN","notation","toFixed","toExponential","lower","upper","exponential","str","abs","valueStr","toPrecision","min","parseFloat","replace","arguments","DBL_EPSILON","EPSILON","nearlyEqual","y","isFinite","diff","max","ArgumentsError","DimensionError","IndexError","UnsupportedTypeError","re","im","SyntaxError","arg","construct","fromPolar","r","skipWhitespace","next","isDigitDot","isDigit","index","text","charAt","revert","oldIndex","parseNumber","parseComplex","cnext","util","isUnit","isString","string","isComplex","first","separator","second","substring","hasBase","BASE_UNITS","ANGLE","toNumber","cos","sin","toPolar","atan2","equals","other","strRe","strIm","toString","start","end","step","array","args","split","nums","invalid","some","num","isRange","size","ceil","forEach","callback","obj","toArray","_ranges","_isScalar","ii","push","_createRange","primitive","isIndex","ranges","apply","range","values","dim","isScalar","row","strings","join","data","_data","preprocess","types","_size","_get","get","validateIndex","_getSubmatrix","dims","last","child","_set","submatrix","defaultValue","sSize","iSize","set","outer","unsqueeze","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","resize","elem","isMatrix","subset","replacement","index_i","me","recurse","concat","name","res","_findUnit","unit","prefix","UNIT_NONE","PREFIX_NONE","_normalize","fixPrefix","parseUnit","unitName","UNITS","endsWith","prefixLen","prefixName","prefixes","err","offset","_unnormalize","prefixValue","isValuelessUnit","base","equalBase","to","valuelessUnit","bestPrefix","_bestPrefix","absValue","bestDiff","log","scientific","PREFIXES","NONE","SHORT","da","h","k","M","G","T","P","Z","Y","d","u","n","f","z","LONG","deca","hecto","kilo","mega","giga","tera","peta","exa","zetta","yotta","deci","centi","milli","micro","nano","pico","femto","atto","zepto","yocto","SQUARED","CUBIC","BINARY_SHORT","pow","Ki","Mi","Gi","Ti","Pi","Ei","Zi","Yi","BINARY_LONG","kibi","mebi","gibi","tebi","pebi","exi","zebi","yobi","LENGTH","MASS","TIME","CURRENT","TEMPERATURE","LUMINOUS_INTENSITY","AMOUNT_OF_SUBSTANCE","FORCE","SURFACE","VOLUME","BIT","BASE_UNIT_NONE","meter","inch","foot","yard","mile","link","rod","chain","angstrom","in","ft","yd","mi","li","rd","ch","mil","m2","sqin","sqft","sqyd","sqmi","sqrd","sqch","sqmil","m3","L","l","litre","cuin","cuft","cuyd","teaspoon","tablespoon","drop","gtt","minim","fluiddram","fluidounce","gill","cc","cup","pint","quart","gallon","beerbarrel","oilbarrel","hogshead","fldr","floz","gi","cp","pt","qt","gal","bbl","obl","g","gram","ton","tonne","grain","dram","ounce","poundmass","hundredweight","stick","gr","dr","oz","lbm","cwt","s","sec","minute","hour","day","rad","deg","grad","cycle","A","ampere","K","degC","degF","degR","kelvin","celsius","fahrenheit","rankine","mol","mole","cd","candela","N","newton","lbf","poundforce","bits","B","bytes","PLURALS","meters","inches","feet","yards","miles","links","rods","chains","angstroms","litres","teaspoons","tablespoons","minims","fluiddrams","fluidounces","gills","cups","pints","quarts","gallons","beerbarrels","oilbarrels","hogsheads","gtts","grams","tons","tonnes","grains","drams","ounces","poundmasses","hundredweights","sticks","seconds","minutes","hours","days","radians","degrees","gradients","cycles","amperes","moles","plural","lt","liter","liters","lb","lbs","doc","isHelp","desc","category","description","syntax","examples","parser","expr","eval","seealso","toJSON","entries","_reduce","mat","ret","val","tran","_switch","j","I","J","tmp","argsToArray","isCollection","deepMap","deepMap2","array1","array2","reduce","deepForEach","extra_nodes","nodes","parseStart","nesting_level","conditional_level","nextPreview","nextNextPreview","getToken","token_type","TOKENTYPE","NULL","token","DELIMITER","c2","c3","DELIMITERS","isAlpha","NAMED_DELIMITERS","SYMBOL","UNKNOWN","createSyntaxError","NUMBER","getTokenSkipNewline","openParams","closeParams","parseBlock","createError","visible","blocks","ConstantNode","parseFunctionAssignment","BlockNode","parseAssignment","valid","parseConditional","SymbolNode","AssignmentNode","IndexNode","UpdateNode","FunctionNode","FunctionAssignmentNode","parseLogicalOr","prev","condition","trueExpr","falseExpr","ConditionalNode","parseLogicalXor","OperatorNode","parseLogicalAnd","parseBitwiseOr","parseBitwiseXor","parseBitwiseAnd","parseRelational","operators","fn","params","parseShift","==","!=","<",">","<=",">=","parseConversion","<<",">>",">>>","parseRange","parseAddSubtract","RangeNode","parseMultiplyDivide","+","-","parseUnary","*",".*","/","./","%","mod","~","not","parsePow","parseLeftHandOperators","parseCustomNodes","!","'","handler","parseSymbol","parseFunctions","parseIndex","parseString","tPrev","parseMatrix","rows","cols","parseRow","ArrayNode","parseParentheses","parseEnd","col","message",",","(",")","[","]","\"",";","^",".^","&","|","^|","=",":","?","and","xor","or","scope","_parse","compile","remove","clear","Node","add","cube","divide","dotDivide","dotMultiply","dotPow","exp","fix","floor","gcd","lcm","log10","multiply","norm","nthRoot","square","subtract","unaryMinus","unaryPlus","xgcd","bitAnd","bitNot","bitOr","bitXor","leftShift","rightArithShift","rightLogShift","conj","complex","help","cross","det","diag","dot","eye","flatten","inv","ones","squeeze","transpose","zeros","combinations","factorial","gamma","permutations","pickRandom","random","randomInt","compare","larger","largerEq","smaller","smallerEq","unequal","mean","median","prod","std","sum","acos","asin","atan","cosh","cot","coth","csc","csch","sech","sinh","tan","tanh","filter","sort","errorTransform","transform","lastIndex","minus","isBoolean","_filter","test","_scope","symbol","sub","eq","rawArgs","_forEachArray","arrayOrig","_mapArray","arrayIn","createProxy","slice","done","search","plus","times","_divideComplex","den","_divide","edivide","emultiply","epow","isNegative","_bigGcd","isInt","zero","isZero","neg","_bigLcm","t","_mod","_multiplyMatrixMatrix","result","_multiplyVectorMatrix","_multiplyMatrixVector","_multiplyVectorVector","_multiplyComplex","sizeX","sizeY","RangeError","POSITIVE_INFINITY","v","NEGATIVE_INFINITY","equal","rs","_nthRoot","_root","iMax","delta","_nthRootBig","one","negated","xPrev","powComplex","temp1","temp2","px","roundNumber","toDecimalPlaces","cmp","unary","_xgcd","q","lastx","lasty","_bigXgcd","bigBitAnd","bigBitNot","bigBitOr","bigBitXor","bigLeftShift","bigRightShift","rightShift","bool","lcase","toLowerCase","select","console","_concat","concatDim","prevDim","asMatrix","matrices","shift","_cross","xSize","ySize","_det","compute_mu","mu","fa","vector","asArray","kSuper","kSub","_dot","asBigNumber","minimum","flat","_inv","temp","Ac","Bc","Ar","Br","_range","_rangeInc","_bigRange","gt","_bigRangeInc","lte","gte","includeEnd","pop","_resizeString","defaultChar","_getSubset","_getSubstring","strLen","substr","_setSubset","_setSubstring","chars","transposedRow","transposed","isPositiveInteger","fac","twoN","threeN","fourN","fiveN","real","twoPiSqrt","distribution","arity","dividedBy","_deepEqual","largereq","smallereq","_getSmaller","_min","_getLarger","_max","_nmean","_mean","_median","left","right","middle","_prod","variance","_sum","_var","normalization","DEFAULT_NORMALIZATION","temp3","temp4","ep","en","cim","sim","entry","_import","override","wrap","isSupportedType","math_import","opts","_module","print","template","original","keys","_compare","bitwise","func","xBits","yBits","xSign","ySign","decToBinary","coefficientToString","minBits","maxBits","minSign","shortLen","longLen","expFuncVal","outVal","twoPower","two","prevPrec","xe","strL","arr","arrL","reverse","isBigNumber","Big","arctan","yPrev","x2","pi4th","isNegtive","negOne","toExpNeg","toExpPos","toSignificantDigits","_validate","dimNext","_resize","oldLen","newLen","minLen","_squeeze","_unsqueeze","validate","_defaultValue","unshift","count","stack","actual","expected","relation","splice","__WEBPACK_AMD_DEFINE_RESULT__","global","LOGBASE","charCodeAt","checkRoundingDigits","rm","repeating","ci","mathpow","checkRM","method","Decimal","outOfRange","parseInt","ifExceptionsThrow","checkArg","MAX_DIGITS","pr","denom","guard","sd","rep","external","rnd","getCoeffLength","more","intPow","c0","x1","xc","xci","out","mathfloor","BASE","convertBase","decimal","crypto","NUMERALS","EXP_LIMIT","INT_POW_LIMIT","yc","base10","inf","sd10","xLTy","half","indexOf","dp","pos","isNeg","groupSeparator","g1","g2","intPart","fractionPart","intDigits","maxD","d0","d2","frac","n0","n1","d1","yN","toBaseOut","baseIn","baseOut","multiplyInteger","carry","aL","bL","logbase","prodL","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","maxOrMin","ltgt","rand","Uint32Array","copy","decimalFactory","parseDecimal","decimalSeparator","groupSize","secondaryGroupSize","fractionGroupSeparator","fractionGroupSize","isValid","trim","isNum","orig","every","isNode","_compile","defs","_ifNode","toTex","childNode","keywords","latex","brace","addBraces","toSymbol","block","param","js","testCondition","valueType","SUPPORTED_TYPES","boolean","null","match","variable","compileSubset","someUseEnd","rangesUseEnd","useEnd","objectName","op","lhs","rhs","mop","toOperator","lp","rp","lhb","rhb","lop","rop","toUnit","isRaw","paramsName","toArgs","undef","_validateScope","_transform","transformed","code","defsCode","factoryCode","Function","traverse","_traverse","path","parent","find","formatArray","distributions","randFunctions","arg1","arg2","arg3","_randomDataForMatrix","_random","_randomInt","possibles","randFunc","uniform","normal","u1","u2","picked","webpackContext","req","webpackContextResolve","./clone","./clone.js","./filter","./filter.js","./forEach","./forEach.js","./format","./format.js","./import","./import.js","./map","./map.js","./print","./print.js","./sort","./sort.js","./typeof","./typeof.js","resolve","mapSymbols","symbols","latexIs","latexIsFn","latexToFn","greek","Alpha","alpha","Beta","beta","Gamma","Delta","Epsilon","varepsilon","Zeta","zeta","Eta","eta","Theta","theta","vartheta","Iota","iota","Kappa","kappa","varkappa","Lambda","lambda","Mu","Nu","nu","Xi","Omicron","omicron","varpi","Rho","rho","varrho","Sigma","sigma","varsigma","Tau","Upsilon","upsilon","Phi","varphi","Chi","chi","Psi","psi","Omega","omega","dots","ldots","cdots","vdots","ddots","idots","logic","true","false","Inf","infinity","oo","lim","functions","arccos","ker","limsup","arcsin","lg","Pr","sup","hom","var","curlyFunctions","int","Int","integrate","eigenvalues","liminf","units","isSymbol","isFunction","toFunction","isCurlyFunction","toCurlyFunction","isOperator","_toUnit","notSpaced","braces","that","texParams","showFunc","suffix"],"mappings":"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EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAI/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,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SACA,iBAEFD,YACI,uGACJE,UACE,WACA,WACA,UACA,YACA,SACA,eACA,kBAEFI,SACE,QAAS,UAAW,SAAU,YAAa,WAAY,UAAW,eAOjE,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,aACZE,QACE,qBACA,UACA,gBAEFD,YAAe,mDACfE,UACE,mBACA,qBACA,wBACA,wBACA,8BAEFI,SACE,MACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,SACRiQ,SAAY,aACZE,QACE,uBACA,aAEFD,YAAe,mLACfE,UACE,kBACA,yBAEFI,SACE,MACA,OACA,MACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,MACA,OACA,SACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,aACZE,QACE,qBACA,WAEFD,YAAe,qCACfE,UACE,gBACA,kBACA,sBAEFI,SACE,MACA,OACA,MACA,SACA,MACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,SACA,yBAEFD,YAAe,4KACfE,UACE,eACA,oBACA,mCACA,8BACA,2BAEFI,SACE,MACA,OACA,MACA,SACA,MACA,OACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,UAEFD,YAAe,iCACfE,UACE,kBACA,oBACA,qBAEFI,SACE,MACA,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,SACA,yBAEFD,YAAe,gIACfE,UACE,eACA,oBACA,mCACA,8BACA,2BAEFI,SACE,MACA,OACA,MACA,SACA,MACA,OACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,oDACfE,UACE,YACA,kBAEFI,SACE,MACA,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,kDACfE,UACE,YACA,kBAEFI,SACE,MACA,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,qDACfE,UACE,YACA,kBAEFI,SACE,MACA,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,QACRiQ,SAAY,eACZE,QACE,eAEFD,YACI,qEACJE,UACE,mBACA,wBACA,iBACA,iBACA,eAEFI,SACE,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,eACZE,QACE,UAEFD,YAAe,sCACfE,UACE,SACA,kBACA,eACA,cACA,2BAEFI,SACE,OACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,iDACfE,UACE,aAEFI,SACE,OACA,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,eACZE,QACE,UAEFD,YAAe,6DACfE,UACE,SACA,cAEFI,SACE,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,oDACfE,UACE,UACA,eAEFI,SACE,OACA,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,eACZE,QACE,UAEFD,YAAe,4DACfE,UACE,SACA,cAEFI,SACE,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,wEACfE,UACE,UACA,eAEFI,SACE,OACA,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,eACZE,QACE,UAEFD,YAAe,0DACfE,UACE,SACA,cAEFI,SACE,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,sEACfE,UACE,UACA,eAEFI,SACE,OACA,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,eACZE,QACE,UAEFD,YAAe,oCACfE,UACE,SACA,kBACA,cACA,cACA,2BAEFI,SACE,OACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,+CACfE,UACE,aAEFI,SACE,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,eACZE,QACE,UAEFD,YAAe,uCACfE,UACE,WACA,sBACA,cACA,eAEFI,SACE,OACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,eACZE,QACE,WAEFD,YAAe,kDACfE,UACE,YACA,yBAEFI,SACE,OACA,UAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,KACRiQ,SAAY,QACZE,QACE,YACA,eAEFD,YAAe,8BACfE,UACE,eACA,aACA,oBAEFI,aAMG,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,QACRiQ,SAAY,QACZE,QACE,YAEFD,YAAe,sFACfE,UACE,aACA,gBACA,gBACA,sBACA,wBAEFI,aAMG,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,QACZE,QACE,oBAEFD,YAAe,qHACfE,UACE,0DAEFI,SAAY,SAAU,aAMnB,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,SACRiQ,SAAY,QACZE,QACE,mBAEFD,YAAe,4BACfE,UACE,wBACA,wCACA,oCAEFI,SAAY,OAAQ,MAAO,aAMxB,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,UACRiQ,SAAY,QACZE,QACE,wBAEFD,YAAe,0FACfE,UACE,0DAEFI,SAAY,MAAO,OAAQ,YAMxB,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,SACRiQ,SAAY,QACZE,QACE,gBACA,4BAEFD,YAAe,wCACfE,UACE,cACA,iBACA,aACA,iBAEFI,SAAY,WAMT,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,SACRiQ,SAAY,QACZE,QACE,kBAEFD,YAAe,gCACfE,UACE,oBACA,wBAEFI,aAMG,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,QACZE,QACE,UACA,oBAEFD,YAAe,kGACfE,UACE,mBACA,6BACA,+CACA,kDAEFI,SAAY,MAAO,SAAU,aAM1B,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,SACRiQ,SAAY,QACZE,QACE,aAEFD,YAAe,8BACfE,UACE,cACA,iBACA,iBACA,yBAEFI,aAMG,SAASzf,GAEd,YAGAA,GAAOD,SACL+K,KAAK,IAMF,SAAS9K,EAAQD,EAASM,GAE/B,YAsKA,SAASunC,KAGP,IAAK,GADDh8B,GADAX,EAAOhG,MAAMhD,UAAUssB,MAAM7tB,KAAK8G,WAE7BvD,EAAI,EAAGkC,EAAM8E,EAAK7E,OAAYD,EAAJlC,EAASA,IAAK,CAC/C2H,EAAMX,EAAKhH,EACX,KAAK,GAAI2B,KAAOgG,GACVA,EAAI/F,eAAeD,KACrBiiC,EAAQjiC,GAAOgG,EAAIhG,KAe3B,QAASkiC,GAAQhO,EAAK10B,GACpB,MAA6B,mBAAf00B,GAAI10B,GAGpB,QAAS2iC,GAAUjO,GACjB,MAAO,UAAS10B,GACd,MAAO0iC,GAAQhO,EAAK10B,IAIxB,QAAS4iC,GAAUlO,GACjB,MAAO,UAAS10B,GACd,GAA0B,iBAAf00B,GAAI10B,GAEXA,EADE00B,EAAI10B,MAAW,EACT,KAAOA,EAGP,YAAcA,EAAQ,QAG7B,IAA0B,gBAAf00B,GAAI10B,GAClBA,EAAQ00B,EAAI10B,OAET,IAAqB,gBAAVA,GAAoB,CAClC,GAAI2D,GAAQ3D,EAAMu5B,QAAQ,IACZ,MAAV51B,IACF3D,EAAQrF,EAAQ2iC,SAASt9B,EAAM2E,UAAU,EAAGhB,IAAU,KAClDhJ,EAAQ2iC,SAASt9B,EAAM2E,UAAUhB,EAAM,IAAM,KAIrD,MAAO3D,IAzNX,GAAI4hB,GAAY3mB,EAAoB,KAChCyjB,EAAezjB,EAAoB,KAGnC4nC,GACFC,MAAO,IAASC,OAAO,EACvBC,KAAM,IAAUC,MAAM,EACtBC,OAAO,EAAS9c,OAAO,EACvB+c,OAAO,EAAS3X,OAAO,EACvB4X,QAAS,IAAOjnC,SAAS,EAAOknC,YAAY,EAC5CC,KAAM,IAAUC,MAAM,EACtBC,IAAK,IAAWC,KAAK,EACrBC,OAAO,EAASC,OAAO,EAASC,UAAU,EAC1CC,KAAM,IAAUC,MAAM,EACtBC,MAAO,IAASC,OAAO,EAASC,UAAU,EAC1CC,QAAQ,EAAQC,QAAQ,EACxBC,GAAI,IAAYnW,IAAI,EACpBoW,GAAI,IAAYC,IAAI,EACpBC,IAAI,EAAYjJ,IAAI,EACpBkJ,QAAS,IAAOC,SAAS,EACzB/1B,IAAI,EAAYpQ,IAAI,EAAYomC,OAAO,EACvCC,IAAK,IAAWC,KAAK,EAAWC,QAAQ,EACxCC,OAAO,EAASC,OAAO,EAASC,UAAU,EAC1CC,IAAK,IAAWxmC,KAAK,EACrBymC,SAAS,EAAOC,SAAS,EACzBC,KAAK,EAAWxmC,KAAK,EAAWymC,QAAQ,EACxCC,IAAK,IAAWC,KAAK,EACrBC,KAAK,EAAWC,KAAK,EACrBC,OAAO,EAASC,OAAO,GAGrBC,GACFA,MAAM,EACNC,OAAO,EACPC,OAAO,EACPC,OAAO,EACPC,OAAO,EACPC,OAAO,GAGLC,GACFC,OAAQ,iBACRC,QAAS,mBAGP/gC,GACF8zB,IAAK,UACLkN,IAAK,UACLC,SAAU,UACVxnC,SAAU,UACVynC,GAAI,UACJC,KAAK,EACL5mC,UAAa,eAIX6mC,GACFrf,KAAM,aACNsf,OAAQ,aACR1hC,KAAK,EACL0iB,KAAK,EACLC,MAAM,EACN5D,KAAK,EACL4iB,KAAK,EACLC,QAAQ,EACR3kC,KAAK,EACL4lB,MAAM,EACNR,KAAM,aACNwf,OAAQ,aACRtf,MAAM,EACNtS,KAAK,EACLiP,KAAK,EACL4iB,IAAI,EACJ5nC,IAAI,EACJ6nC,IAAI,EACJC,KAAK,EACL1f,KAAM,aACNniB,MAAO,cACP4vB,OAAQ,aACRvN,KAAK,EACLhC,KAAK,EACLyhB,KAAK,EACLv7B,KAAK,EACL0Y,MAAO,aACPxP,KAAK,EACLgT,MAAM,EACNE,KAAK,EACL3kB,KAAK,EACLskB,MAAM,EACNpgB,KAAK,EACL8xB,KAAK,EACLx2B,KAAK,EACLsC,KAAK,EACL8iB,MAAM,EAEN/D,KAAK,EACLG,KAAK,EACL/iB,MAAM,EACNwjB,MAAM,EACNF,YAAY,EACZC,WAAW,EAGXU,SAAS,EACTD,MAAM,EACNniB,IAAI,EACJD,IAAI,EAGJyiB,MAAM,EACNrc,QAAQ,EACRhD,MAAM,EACN2f,SAAS,EACTxc,QAAQ,EACR5F,OAAO,EACPmiB,MAAM,EACNG,OAAO,EACP9e,OAAO,EAGPof,QAAQ,EAGRQ,KAAM,OACNC,QAAQ,EACRC,MAAM,EACNC,IAAK,UACLggB,MAAO,aAKLC,GACF3nC,MAAM,EACNqmB,KAAK,EACLuhB,MAAK,QACLC,IAAK,QACLC,UAAW,QACXC,YAAa,WACbC,QAAQ,EACRhB,KAAK,EACLziB,IAAK,KACLoD,KAAK,EAELxB,IAAK,eAGH3G,GACFQ,KAAM,QACNC,KAAM,QACNJ,KAAM,QACNzO,MAAM,EACNyP,IAAK,SACLE,IAAK,SACLG,IAAO,SACPtV,GAAM,gBAGJq8B,GACFxyB,IAAK,aAGHwtB,IAeJD,GACEiE,EACAU,EACAtE,EACA+C,EACAM,EACA7gC,GAsCF1K,EAAQ+sC,SAAW/E,EAAUF,GAC7B9nC,EAAQ2iC,SAAWsF,EAAUH,GAE7B9nC,EAAQgtC,WAAahF,EAAU8D,GAC/B9rC,EAAQitC,WAAahF,EAAU6D,GAE/B9rC,EAAQktC,gBAAkBlF,EAAUwE,GACpCxsC,EAAQmtC,gBAAkBlF,EAAUuE,GAEpCxsC,EAAQotC,WAAapF,EAAU3jB,GAC/BrkB,EAAQ+jC,WAAakE,EAAU5jB,GAE/BrkB,EAAQyJ,OAASu+B,EAAU8E,GAC3B9sC,EAAQskC,OAAU,WAChB,GAAI+I,GAAUpF,EAAU6E,EAExB,OAAO,UAASznC,EAAOioC,GACrB,MAAIttC,GAAQyJ,OAAOpE,GACVgoC,EAAQhoC,IAGTioC,EAAY,GAAK,OAAS,YAAcjoC,EAAQ,QAI5DrF,EAAQ0iC,UAAY,SAAS1oB,EAAGyoB,EAAO7gC,GACrC,GAAc,OAAV6gC,EACF,MAAOzoB,EAGT,IAAIuzB,IAAU,GAAI,GAiBlB,QAhBA3rC,EAAOA,GAAQ,SAEM,mBAAV6gC,IAAyBA,KAAU,EAC5C8K,GAAU,IAAK,KAER9K,KAAU,GACjB8K,GAAU,IAAK,KACf3rC,EAAO,MAGP2rC,EADOroC,MAAMC,QAAQs9B,IAA2B,IAAjBA,EAAMp8B,OAC5Bo8B,GAGCA,EAAOA,GAGX7gC,GACN,IAAK,SACL,KAAK,EACH,MAAO2rC,GAAO,GAAKvzB,EAAIuzB,EAAO,EAEhC,KAAK,KACH,MAAO,SAAWA,EAAO,GAAK,IAAMvzB,EAAI,WAAkBuzB,EAAO,EAEnE,KAAK,KACH,MAAO,WAAaA,EAAO,GAAK,IAAMvzB,EAAI,SAAWuzB,EAAO,GAAK,IAGrE,MAAOA,GAAO,GAAKvzB,EAAIuzB,EAAO,IAGhCvtC,EAAQykC,OAAS,SAAS+I,GACxB,GAAIt+B,GAAOs+B,EAAKt+B,KACZhE,EAAOsiC,EAAKtiC,KACZ0tB,EAAO54B,EAAQ2iC,SAAS6K,EAAKt+B,MAC7Bu+B,EAAY,KACZhL,EAAQ,KACR7gC,GAAO,EACP8rC,GAAW,EACXp+B,EAAS,GACTq+B,EAAS,GACThK,EAAK,IAET,QAAQz0B,GAEN,IAAK,MACHy0B,EAAK,GACL,MAEF,KAAK,WACHA,EAAK,GACL,MAEF,KAAK,SACHA,EAAK,GACL,MAEF,KAAK,WACHA,EAAK,IACL,MAEF,KAAK,UACHA,EAAK,GACL,MAEF,KAAK,YACHA,EAAK,IACL,MAEF,KAAK,UACHA,EAAK,IACL,MAEF,KAAK,QACHA,EAAK,GACL,MAEF,KAAK,MACHA,EAAK,KACL,MAEF,KAAK,WACHA,EAAK,GACL,MAEF,KAAK,MACHA,EAAK,GACL,MAEF,KAAK,SACHA,EAAK,IACL,MAEF,KAAK,YACHA,EAAK,GACL,MAEF,KAAK,eACH,GAAoB,IAAhBz4B,EAAK7E,OAGJ,CAEH,GAAI0L,GAAI7G,EAAK,GAAGm3B,QACZ/wB,EAAIpG,EAAK,GAAGm3B,OAChB,OAAO,UAAYtwB,EAAI,aAAeA,EAAI,MAAQT,EAAI,aANtDqyB,EAAK,GAQP,MAGF,KAAK,eACHA,EAAK,UACL,MAGF,KAAK,MACHlB,EAAQ,IACR7gC,EAAO,IACP,MAEF,KAAK,OAIH,GAHA6gC,EAAQ,MACR7gC,EAAO,KAEa,IAAhBsJ,EAAK7E,OAAc,CACrB,GAAIia,GAAMpV,EAAK,GAAGm3B,OAEN,iBAAR/hB,EACFA,EAAM,UAES,iBAARA,EACPA,EAAM,cAES,gBAARA,IACPA,EAAM,KAGRqtB,EAAS,KAAOrtB,EAAM,IACtBpV,GAAQA,EAAK,IAEf,KAEF,KAAK,OACHu3B,GAAS,UAAW,WACpB7gC,EAAO,IACP,MAEF,KAAK,QACH6gC,GAAS,WAAY,YACrB7gC,EAAO,IACP,MAEF,KAAK,QACH6gC,GAAS,WAAY,WACrB7gC,EAAO,KAEa,IAAhBsJ,EAAK7E,SACPsnC,EAAS,IAAM3tC,EAAQ0iC,UAAUx3B,EAAK,GAAGm3B,SACzCn3B,GAAQA,EAAK,IAEf,MAIF,KAAK,MACHyiC,EAAS,OACT,MAEF,KAAK,YACHA,EAAS,OACTlL,GAAQ,CACR,MAGF,KAAK,MACH,GAAIlyB,GAAO,GACS,KAAhBrF,EAAK7E,SACPkK,EAAOrF,EAAK,GAAGm3B,QACfzJ,EAAO,UAAYroB,EAAO,IAC1BrF,GAAQA,EAAK,KAEF,MAATqF,IACFqoB,EAAO,QAGT8U,GAAW,CACX,MAEF,KAAK,SACHC,EAAS,MACT,MAEF,KAAK,OACHA,EAAS,MACT,MAIF,KAAK,MACHD,GAAW,EACXjL,GAAQ,EACR7J,GAAQ,GACR,MAEF,KAAK,MACH,GAAI4U,EAAKtiC,KAAK,YAAc+b,GAC1B,MAAOumB,GAAKtiC,KAAK,GAAGm3B,MAAM,UAG5BI,GAAQ,UACR7gC,EAAO,IACP,MAEF,SACE8rC,GAAW,EAoBf,MAhBW,QAAP/J,GACFlB,EAAgB,MAAPkB,GAAqB,MAAPA,EACvB8J,EAAY,GAAK1pB,GAAa4f,EAAIz0B,EAAMhE,GAAOm3B,SAG/CsB,EAAK,KAGO,OAAVlB,GAAmBziC,EAAQktC,gBAAgBh+B,KAC7CuzB,GAAQ,GAGVgL,EAAYA,GAAaviC,EAAK9F,IAAI,SAASy9B,GACzC,MAAO,IAAMA,EAAMR,QAAU,MAC5Bv1B,KAAK62B,GAEDr0B,GAAUo+B,EAAW9U,EAAO,IAC/B54B,EAAQ0iC,UAAU+K,EAAWhL,EAAO7gC,GACpC+rC"} \ No newline at end of file +{"version":3,"file":"math.map","sources":["./dist/math.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","create","config","Object","Error","math","_config","matrix","number","precision","epsilon","options","object","deepExtend","type","BigNumber","defaultType","decimals","clone","constructor","prototype","convert","digits","error","Complex","Range","Index","Matrix","Unit","Help","ResultSet","collection","expression","node","parse","Parser","docs","ifElse","chaining","Chain","Selector","window","mathjs","bignumber","big","pi","Math","PI","tau","e","E","phi","i","Infinity","NaN","UNINITIALIZED","LN2","ln","LN10","LOG2E","div","LOG10E","SQRT1_2","sqrt","SQRT2","version","x","undefined","Array","isArray","map","value","Number","valueOf","String","Boolean","Date","RegExp","TypeError","key","hasOwnProperty","extend","a","b","prop","deepEqual","len","length","isNumber","isInteger","round","sign","format","isNaN","notation","toFixed","toExponential","lower","upper","exponential","str","abs","valueStr","toPrecision","min","parseFloat","replace","arguments","DBL_EPSILON","EPSILON","nearlyEqual","y","isFinite","diff","max","ArgumentsError","DimensionError","IndexError","UnsupportedTypeError","re","im","SyntaxError","arg","construct","fromPolar","r","skipWhitespace","next","isDigitDot","isDigit","index","text","charAt","revert","oldIndex","parseNumber","parseComplex","cnext","util","isUnit","isString","string","isComplex","first","separator","second","substring","hasBase","BASE_UNITS","ANGLE","toNumber","cos","sin","toPolar","atan2","equals","other","strRe","strIm","toString","start","end","step","array","args","split","nums","invalid","some","num","isRange","size","ceil","forEach","callback","obj","toArray","_ranges","_isScalar","ii","push","_createRange","primitive","isIndex","ranges","apply","range","values","dim","isScalar","row","strings","join","data","_data","preprocess","types","_size","_get","get","validateIndex","_getSubmatrix","dims","last","child","_set","submatrix","defaultValue","sSize","iSize","set","outer","unsqueeze","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","resize","elem","isMatrix","subset","replacement","index_i","me","recurse","concat","name","res","_findUnit","unit","prefix","UNIT_NONE","PREFIX_NONE","_normalize","fixPrefix","parseUnit","unitName","UNITS","endsWith","prefixLen","prefixName","prefixes","err","offset","_unnormalize","prefixValue","isValuelessUnit","base","equalBase","to","valuelessUnit","bestPrefix","_bestPrefix","absValue","bestDiff","log","scientific","PREFIXES","NONE","SHORT","da","h","k","M","G","T","P","Z","Y","d","u","n","f","z","LONG","deca","hecto","kilo","mega","giga","tera","peta","exa","zetta","yotta","deci","centi","milli","micro","nano","pico","femto","atto","zepto","yocto","SQUARED","CUBIC","BINARY_SHORT","pow","Ki","Mi","Gi","Ti","Pi","Ei","Zi","Yi","BINARY_LONG","kibi","mebi","gibi","tebi","pebi","exi","zebi","yobi","LENGTH","MASS","TIME","CURRENT","TEMPERATURE","LUMINOUS_INTENSITY","AMOUNT_OF_SUBSTANCE","FORCE","SURFACE","VOLUME","BIT","BASE_UNIT_NONE","meter","inch","foot","yard","mile","link","rod","chain","angstrom","in","ft","yd","mi","li","rd","ch","mil","m2","sqin","sqft","sqyd","sqmi","sqrd","sqch","sqmil","m3","L","l","litre","cuin","cuft","cuyd","teaspoon","tablespoon","drop","gtt","minim","fluiddram","fluidounce","gill","cc","cup","pint","quart","gallon","beerbarrel","oilbarrel","hogshead","fldr","floz","gi","cp","pt","qt","gal","bbl","obl","g","gram","ton","tonne","grain","dram","ounce","poundmass","hundredweight","stick","gr","dr","oz","lbm","cwt","s","sec","minute","hour","day","rad","deg","grad","cycle","A","ampere","K","degC","degF","degR","kelvin","celsius","fahrenheit","rankine","mol","mole","cd","candela","N","newton","lbf","poundforce","bits","B","bytes","PLURALS","meters","inches","feet","yards","miles","links","rods","chains","angstroms","litres","teaspoons","tablespoons","minims","fluiddrams","fluidounces","gills","cups","pints","quarts","gallons","beerbarrels","oilbarrels","hogsheads","gtts","grams","tons","tonnes","grains","drams","ounces","poundmasses","hundredweights","sticks","seconds","minutes","hours","days","radians","degrees","gradients","cycles","amperes","moles","plural","lt","liter","liters","lb","lbs","doc","isHelp","desc","category","description","syntax","examples","parser","expr","eval","seealso","toJSON","entries","_reduce","mat","ret","val","tran","_switch","j","I","J","tmp","argsToArray","isCollection","deepMap","deepMap2","array1","array2","reduce","deepForEach","extra_nodes","nodes","parseStart","nesting_level","conditional_level","nextPreview","nextNextPreview","getToken","token_type","TOKENTYPE","NULL","token","DELIMITER","c2","c3","DELIMITERS","isAlpha","NAMED_DELIMITERS","SYMBOL","UNKNOWN","createSyntaxError","NUMBER","getTokenSkipNewline","openParams","closeParams","parseBlock","createError","visible","blocks","ConstantNode","parseFunctionAssignment","BlockNode","parseAssignment","valid","parseConditional","SymbolNode","AssignmentNode","IndexNode","UpdateNode","FunctionNode","FunctionAssignmentNode","parseLogicalOr","prev","condition","trueExpr","falseExpr","ConditionalNode","parseLogicalXor","OperatorNode","parseLogicalAnd","parseBitwiseOr","parseBitwiseXor","parseBitwiseAnd","parseRelational","operators","fn","params","parseShift","==","!=","<",">","<=",">=","parseConversion","<<",">>",">>>","parseRange","parseAddSubtract","RangeNode","parseMultiplyDivide","+","-","parseUnary","*",".*","/","./","%","mod","~","not","parsePow","parseLeftHandOperators","parseCustomNodes","!","'","handler","parseSymbol","parseFunctions","parseIndex","parseString","tPrev","parseMatrix","rows","cols","parseRow","ArrayNode","parseParentheses","parseEnd","col","message",",","(",")","[","]","\"",";","^",".^","&","|","^|","=",":","?","and","xor","or","scope","_parse","compile","remove","clear","Node","add","cube","divide","dotDivide","dotMultiply","dotPow","exp","fix","floor","gcd","lcm","log10","multiply","norm","nthRoot","square","subtract","unaryMinus","unaryPlus","xgcd","bitAnd","bitNot","bitOr","bitXor","leftShift","rightArithShift","rightLogShift","conj","complex","help","cross","det","diag","dot","eye","flatten","inv","ones","squeeze","transpose","zeros","combinations","factorial","gamma","permutations","pickRandom","random","randomInt","compare","larger","largerEq","smaller","smallerEq","unequal","mean","median","prod","std","sum","acos","asin","atan","cosh","cot","coth","csc","csch","sech","sinh","tan","tanh","filter","sort","errorTransform","transform","lastIndex","minus","isBoolean","_filter","test","_scope","symbol","sub","eq","rawArgs","_forEachArray","arrayOrig","_mapArray","arrayIn","createProxy","slice","done","search","plus","times","_divideComplex","den","_divide","edivide","emultiply","epow","isNegative","_bigGcd","isInt","zero","isZero","neg","_bigLcm","t","_mod","_multiplyMatrixMatrix","result","_multiplyVectorMatrix","_multiplyMatrixVector","_multiplyVectorVector","_multiplyComplex","sizeX","sizeY","RangeError","POSITIVE_INFINITY","v","NEGATIVE_INFINITY","equal","rs","_nthRoot","_root","iMax","delta","_nthRootBig","one","negated","xPrev","powComplex","temp1","temp2","px","roundNumber","toDecimalPlaces","cmp","unary","_xgcd","q","lastx","lasty","_bigXgcd","bigBitAnd","bigBitNot","bigBitOr","bigBitXor","bigLeftShift","bigRightShift","rightShift","bool","lcase","toLowerCase","select","console","_concat","concatDim","prevDim","asMatrix","matrices","shift","_cross","xSize","ySize","_det","compute_mu","mu","fa","vector","asArray","kSuper","kSub","_dot","asBigNumber","minimum","flat","_inv","temp","Ac","Bc","Ar","Br","_range","_rangeInc","_bigRange","gt","_bigRangeInc","lte","gte","includeEnd","pop","_resizeString","defaultChar","_getSubset","_getSubstring","strLen","substr","_setSubset","_setSubstring","chars","transposedRow","transposed","isPositiveInteger","fac","twoN","threeN","fourN","fiveN","real","twoPiSqrt","distribution","arity","dividedBy","_deepEqual","largereq","smallereq","_getSmaller","_min","_getLarger","_max","_nmean","_mean","_median","left","right","middle","_prod","variance","_sum","_var","normalization","DEFAULT_NORMALIZATION","temp3","temp4","ep","en","cim","sim","entry","_import","override","wrap","isSupportedType","math_import","opts","_module","print","template","original","keys","_compare","bitwise","func","xBits","yBits","xSign","ySign","decToBinary","coefficientToString","minBits","maxBits","minSign","shortLen","longLen","expFuncVal","outVal","twoPower","two","prevPrec","xe","strL","arr","arrL","reverse","isBigNumber","Big","arctan","yPrev","x2","pi4th","isNegtive","negOne","toExpNeg","toExpPos","toSignificantDigits","_validate","dimNext","_resize","oldLen","newLen","minLen","_squeeze","_unsqueeze","validate","_defaultValue","unshift","__WEBPACK_AMD_DEFINE_RESULT__","global","LOGBASE","charCodeAt","checkRoundingDigits","rm","repeating","ci","mathpow","checkRM","method","Decimal","outOfRange","parseInt","ifExceptionsThrow","checkArg","MAX_DIGITS","pr","denom","guard","sd","rep","external","rnd","getCoeffLength","more","intPow","c0","x1","xc","xci","out","mathfloor","BASE","convertBase","decimal","crypto","NUMERALS","EXP_LIMIT","INT_POW_LIMIT","yc","base10","inf","sd10","xLTy","half","indexOf","dp","pos","isNeg","groupSeparator","g1","g2","intPart","fractionPart","intDigits","maxD","d0","d2","frac","n0","n1","d1","yN","toBaseOut","baseIn","baseOut","multiplyInteger","carry","aL","bL","logbase","prodL","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","maxOrMin","ltgt","rand","Uint32Array","copy","decimalFactory","parseDecimal","decimalSeparator","groupSize","secondaryGroupSize","fractionGroupSeparator","fractionGroupSize","isValid","trim","isNum","orig","count","stack","actual","expected","relation","splice","every","isNode","_compile","defs","_ifNode","toTex","childNode","keywords","latex","brace","addBraces","toSymbol","block","param","js","testCondition","valueType","SUPPORTED_TYPES","boolean","null","match","compileSubset","someUseEnd","rangesUseEnd","useEnd","objectName","variable","isRaw","paramsName","toArgs","_validateScope","_transform","transformed","code","defsCode","factoryCode","Function","traverse","_traverse","path","parent","find","op","lhs","rhs","mop","toOperator","lp","rp","lhb","rhb","lop","rop","toUnit","undef","formatArray","distributions","randFunctions","arg1","arg2","arg3","_randomDataForMatrix","_random","_randomInt","possibles","randFunc","uniform","normal","u1","u2","picked","webpackContext","req","webpackContextResolve","./clone","./clone.js","./filter","./filter.js","./forEach","./forEach.js","./format","./format.js","./import","./import.js","./map","./map.js","./print","./print.js","./sort","./sort.js","./typeof","./typeof.js","resolve","mapSymbols","symbols","latexIs","latexIsFn","latexToFn","greek","Alpha","alpha","Beta","beta","Gamma","Delta","Epsilon","varepsilon","Zeta","zeta","Eta","eta","Theta","theta","vartheta","Iota","iota","Kappa","kappa","varkappa","Lambda","lambda","Mu","Nu","nu","Xi","Omicron","omicron","varpi","Rho","rho","varrho","Sigma","sigma","varsigma","Tau","Upsilon","upsilon","Phi","varphi","Chi","chi","Psi","psi","Omega","omega","dots","ldots","cdots","vdots","ddots","idots","logic","true","false","Inf","infinity","oo","lim","functions","arccos","ker","limsup","arcsin","lg","Pr","sup","hom","var","curlyFunctions","int","Int","integrate","eigenvalues","liminf","units","isSymbol","isFunction","toFunction","isCurlyFunction","toCurlyFunction","isOperator","_toUnit","notSpaced","braces","that","texParams","showFunc","suffix"],"mappings":"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EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAG9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,IAAIa,EAAMC,GAC9Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAI/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAG/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,EAAMC,GAC/Bd,EAAoB,KAAKa,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E,WACA,eACA,SACA,SACA,iBACA,uBACA,mBACA,SAEFI,SACE,MACA,WAMC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,QACRiQ,SAAY,aACZE,QACE,YAEFD,YAAe,4CACfE,UACE,iBACA,eACA,SACA,uBACA,kBAEFI,SACE,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,YACZE,QACE,QACA,UACA,aAEFD,YACI,gEACJE,UACE,QACA,SACA,WACA,4BACA,WACA,YAEFI,SAAY,YAMT,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,WACRiQ,SAAY,YACZE,QACE,QACA,kBAEFD,YAAe,uBACfE,UACE,gBACA,UACA,YACA,cACA,cAEFI,SACE,YAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,aACZE,QACE,UACA,cAEFD,YAAe,oDACfE,UACE,YACA,aACA,gBACA,6BACA,8BACA,kBACA,4BACA,gCACA,mCAOC,SAASrf,GAEdA,EAAOD,SACLkP,KAAQ,UACRiQ,SAAY,aACZE,QACE,aACA,oBAEFD,YAAe,qJAGfE,UACE,QACA,iBACA,gBACA,WAEFI,SACE,OACA,SAMC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,YACZE,QACE,QACA,aAEFD,YACI,uCACJE,UACE,UACA,QACA,oBAEFI,SAAa,cAMV,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,QACRiQ,SAAY,aACZE,QACE,WACA,eAEFD,YACI,4LACJE,UACE,aACA,aACA,cACA,cACA,eACA,uBAEFI,SAAY,OAAQ,QAAS,SAM1B,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,aACZE,QACE,WAEFD,YACI,iGACJE,UACE,YACA,aACA,WAEFI,SACE,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,aACZE,QACE,WAEFD,YACI,+EACJE,UACE,WACA,QACA,YAEFI,SACE,SACA,cAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,SACRiQ,SAAY,aACZE,QACE,aAEFD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ACE,SACA,iBAEFD,YACI,uGACJE,UACE,WACA,WACA,UACA,YACA,SACA,eACA,kBAEFI,SACE,QAAS,UAAW,SAAU,YAAa,WAAY,UAAW,eAOjE,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,aACZE,QACE,qBACA,UACA,gBAEFD,YAAe,mDACfE,UACE,mBACA,qBACA,wBACA,wBACA,8BAEFI,SACE,MACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,SACRiQ,SAAY,aACZE,QACE,uBACA,aAEFD,YAAe,mLACfE,UACE,kBACA,yBAEFI,SACE,MACA,OACA,MACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,MACA,OACA,SACA,OACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,OACRiQ,SAAY,aACZE,QACE,qBACA,WAEFD,YAAe,qCACfE,UACE,gBACA,kBACA,sBAEFI,SACE,MACA,OACA,MACA,SACA,MACA,MACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,SACA,yBAEFD,YAAe,4KACfE,UACE,eACA,oBACA,mCACA,8BACA,2BAEFI,SACE,MACA,OACA,MACA,SACA,MACA,OACA,MACA,SAOC,SAASzf,GAEdA,EAAOD,SACLkP,KAAQ,MACRiQ,SAAY,aACZE,QACE,oBACA,UAEFD,YAAe,iCACfE,UACE,kBACA,oBACA,qBAEFI,SACE,MACA,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAASz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"} \ No newline at end of file diff --git a/dist/math.min.js b/dist/math.min.js index 6c7b11ca8..9de6f4852 100644 --- a/dist/math.min.js +++ b/dist/math.min.js @@ -6,7 +6,7 @@ * It features real and complex numbers, units, matrices, a large set of * mathematical functions, and a flexible expression parser. * - * @version 1.2.0 + * @version 1.2.1-SNAPSHOT * @date 2014-12-25 * * @license @@ -24,12 +24,12 @@ * License for the specific language governing permissions and limitations under * the License. */ -!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):"object"==typeof exports?exports.math=r():e.math=r()}(this,function(){return function(e){function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){e.exports=t(1)},function(e,r,t){"use strict";function n(e){if("function"!=typeof Object.create)throw new Error("ES5 not supported by this JavaScript engine. Please load the es5-shim and es5-sham library for compatibility.");var r={},a={matrix:"matrix",number:"number",precision:64,epsilon:1e-14};r.config=function(e){if(e){if(i.deepExtend(a,e),e.precision&&r.type.BigNumber.config({precision:e.precision}),t(2)(r,a),e.number&&e.number.defaultType)throw new Error("setting `number.defaultType` is deprecated. Use `number` instead.");if(e.number&&e.number.precision)throw new Error("setting `number.precision` is deprecated. Use `precision` instead.");if(e.matrix&&e.matrix.defaultType)throw new Error("setting `matrix.defaultType` is deprecated. Use `matrix` instead.");if(e.matrix&&e.matrix["default"])throw new Error("setting `matrix.default` is deprecated. Use `matrix` instead.");if(e.decimals)throw new Error("setting `decimals` is deprecated. Use `precision` instead.")}return i.clone(a)},r.create=n;var s=t(159).constructor();if("function"!=typeof s.prototype.clone&&(s.prototype.clone=function(){return this}),"function"==typeof s.convert)throw new Error("Cannot add function convert to BigNumber: function already exists");return s.convert=function(e){return o(e)>15?e:new s(e)},r.error=t(5),r.type={},r.type.Complex=t(6),r.type.Range=t(7),r.type.Index=t(8),r.type.Matrix=t(9),r.type.Unit=t(10),r.type.Help=t(11),r.type.ResultSet=t(12),r.type.BigNumber=s,r.collection=t(13),r.expression={},r.expression.node=t(16),r.expression.parse=t(14),r.expression.Parser=t(15),r.expression.docs=t(17),t(29)(r,a),t(30)(r,a),t(31)(r,a),t(32)(r,a),t(33)(r,a),t(34)(r,a),t(35)(r,a),t(36)(r,a),t(37)(r,a),t(38)(r,a),t(39)(r,a),t(40)(r,a),t(41)(r,a),t(42)(r,a),t(43)(r,a),t(44)(r,a),t(45)(r,a),t(46)(r,a),t(47)(r,a),t(48)(r,a),t(49)(r,a),t(50)(r,a),t(51)(r,a),t(52)(r,a),t(53)(r,a),t(54)(r,a),t(55)(r,a),t(56)(r,a),t(57)(r,a),t(58)(r,a),t(59)(r,a),t(60)(r,a),t(61)(r,a),t(62)(r,a),t(63)(r,a),t(64)(r,a),t(65)(r,a),t(66)(r,a),t(67)(r,a),t(68)(r,a),t(69)(r,a),t(70)(r,a),t(71)(r,a),t(72)(r,a),t(73)(r,a),t(74)(r,a),t(75)(r,a),t(76)(r,a),t(77)(r,a),t(78)(r,a),t(79)(r,a),t(80)(r,a),t(81)(r,a),t(82)(r,a),t(83)(r,a),t(84)(r,a),t(85)(r,a),t(86)(r,a),t(87)(r,a),t(88)(r,a),t(89)(r,a),t(90)(r,a),t(91)(r,a),t(92)(r,a),t(93)(r,a),t(94)(r,a),t(95)(r,a),t(96)(r,a),t(97)(r,a),t(98)(r,a),t(99)(r,a),t(100)(r,a),t(101)(r,a),t(102)(r,a),t(103)(r,a),t(104)(r,a),t(105)(r,a),t(106)(r,a),t(107)(r,a),t(108)(r,a),t(109)(r,a),t(110)(r,a),t(111)(r,a),t(112)(r,a),t(113)(r,a),t(114)(r,a),t(115)(r,a),t(116)(r,a),t(117)(r,a),t(118)(r,a),t(119)(r,a),t(120)(r,a),t(121)(r,a),t(122)(r,a),t(123)(r,a),t(124)(r,a),t(125)(r,a),t(126)(r,a),t(127)(r,a),t(128)(r,a),t(129)(r,a),t(130)(r,a),t(131)(r,a),t(132)(r,a),t(133)(r,a),t(134)(r,a),t(135)(r,a),t(136)(r,a),t(137)(r,a),t(138)(r,a),t(139)(r,a),t(140)(r,a),t(141)(r,a),t(142)(r,a),t(143)(r,a),t(144)(r,a),t(145)(r,a),t(146)(r,a),t(147)(r,a),t(148)(r,a),t(149)(r,a),t(150)(r,a),t(151)(r,a),r.ifElse=function(){throw new Error("Function ifElse is deprecated. Use the conditional operator instead.")},t(2)(r,a),t(18)(r,a),t(19)(r,a),t(20)(r,a),t(21)(r,a),t(22)(r,a),t(23)(r,a),t(24)(r,a),t(25)(r,a),t(26)(r,a),t(27)(r,a),r.chaining={},r.chaining.Chain=t(28)(r,a),r.chaining.Selector=r.chaining.Chain,r.config(a),r.config(e),r}var i=t(3),o=t(4).digits,a=n();"undefined"!=typeof window&&(window.mathjs=a),e.exports=a},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(152),i=t(6),o=e.type.BigNumber,a="bignumber"===r.number;e.pi=a?n.pi(r.precision):Math.PI,e.tau=a?n.tau(r.precision):2*Math.PI,e.e=a?n.e(r.precision):Math.E,e.phi=a?n.phi(r.precision):1.618033988749895,e.i=new i(0,1),e.Infinity=1/0,e.NaN=0/0,e["true"]=!0,e["false"]=!1,e["null"]=null,e.uninitialized=t(153).UNINITIALIZED,e.E=e.e,e.LN2=a?new o(2).ln():Math.LN2,e.LN10=a?new o(10).ln():Math.LN10,e.LOG2E=a?new o(1).div(new o(2).ln()):Math.LOG2E,e.LOG10E=a?new o(1).div(new o(10).ln()):Math.LOG10E,e.PI=e.pi,e.SQRT1_2=a?new o(.5).sqrt():Math.SQRT1_2,e.SQRT2=a?new o(2).sqrt():Math.SQRT2,e.version=t(154)}},function(e,r){"use strict";r.clone=function t(e){var r=typeof e;if("number"===r||"string"===r||"boolean"===r||null===e||void 0===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 Number)return new Number(e.valueOf());if(e instanceof String)return new String(e.valueOf());if(e instanceof Boolean)return new Boolean(e.valueOf());if(e instanceof Date)return new Date(e.valueOf());if(e instanceof RegExp)throw new TypeError("Cannot clone "+e);var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=t(e[i]));return n},r.extend=function(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t]);return e},r.deepExtend=function n(e,r){if(Array.isArray(r))throw new TypeError("Arrays are not supported by deepExtend");for(var t in r)if(r.hasOwnProperty(t))if(r[t]&&r[t].constructor===Object)void 0===e[t]&&(e[t]={}),e[t].constructor===Object?n(e[t],r[t]):e[t]=r[t];else{if(Array.isArray(r[t]))throw new TypeError("Arrays are not supported by deepExtend");e[t]=r[t]}return e},r.deepEqual=function(e,t){var n,i,o;if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!=t.length)return!1;for(i=0,o=e.length;o>i;i++)if(!r.deepEqual(e[i],t[i]))return!1;return!0}if(e instanceof Object){if(Array.isArray(t)||!(t instanceof Object))return!1;for(n in e)if(!r.deepEqual(e[n],t[n]))return!1;for(n in t)if(!r.deepEqual(e[n],t[n]))return!1;return!0}return typeof e==typeof t&&e==t}},function(e,r){"use strict";r.isNumber=function(e){return e instanceof Number||"number"==typeof e},r.isInteger=function(e){return e==Math.round(e)},r.sign=function(e){return e>0?1:0>e?-1:0},r.format=function(e,t){if("function"==typeof t)return t(e);if(1/0===e)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var n="auto",i=void 0;switch(t&&(t.notation&&(n=t.notation),r.isNumber(t)?i=t:t.precision&&(i=t.precision)),n){case"fixed":return r.toFixed(e,i);case"exponential":return r.toExponential(e,i);case"auto":var o=.001,a=1e5;if(t&&t.exponential&&(void 0!==t.exponential.lower&&(o=t.exponential.lower),void 0!==t.exponential.upper&&(a=t.exponential.upper)),0===e)return"0";var s,u=Math.abs(e);if(u>=o&&a>u){var f=i?e.toPrecision(Math.min(i,21)):e.toPrecision();s=parseFloat(f)+""}else s=r.toExponential(e,i);return s.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],r=arguments[4];return"."!==e?e+r:r});default:throw new Error('Unknown notation "'+n+'". Choose "auto", "exponential", or "fixed".')}},r.toExponential=function(e,r){return void 0!==r?e.toExponential(Math.min(r-1,20)):e.toExponential()},r.toFixed=function(e,r){return e.toFixed(Math.min(r,20))},r.digits=function(e){return e.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length},r.DBL_EPSILON=Number.EPSILON||2.220446049250313e-16,r.nearlyEqual=function(e,t,n){if(null==n)return e==t;if(e==t)return!0;if(isNaN(e)||isNaN(t))return!1;if(isFinite(e)&&isFinite(t)){var i=Math.abs(e-t);return i="0"&&"9">=e||"."==e}function a(e){return e>="0"&&"9">=e}function s(){x++,y=w.charAt(x)}function u(e){x=e,y=w.charAt(x)}function f(){var e,r="";if(e=x,"+"==y?s():"-"==y&&(r+=y,s()),!o(y))return u(e),null;if("."==y){if(r+=y,s(),!a(y))return u(e),null}else{for(;a(y);)r+=y,s();"."==y&&(r+=y,s())}for(;a(y);)r+=y,s();if("E"==y||"e"==y){if(r+=y,s(),("+"==y||"-"==y)&&(r+=y,s()),!a(y))return u(e),null;for(;a(y);)r+=y,s()}return r}function c(){var e=w.charAt(x+1);if("I"==y||"i"==y)return s(),"1";if(!("+"!=y&&"-"!=y||"I"!=e&&"i"!=e)){var r="+"==y?"1":"-1";return s(),s(),r}return null}var l=t(160),p=t(10),m=l.number,h=l.number.isNumber,g=p.isUnit,d=l.string.isString;n.isComplex=function(e){return e instanceof n};var w,x,y;n.parse=function(e){if(w=e,x=-1,y="",!d(w))return null;s(),i();var r=f();if(r){if("I"==y||"i"==y)return s(),i(),y?null:new n(0,Number(r));i();var t=y;if("+"!=t&&"-"!=t)return i(),y?null:new n(Number(r),0);s(),i();var o=f();if(o){if("I"!=y&&"i"!=y)return null;s()}else if(o=c(),!o)return null;return"-"==t&&(o="-"==o[0]?"+"+o.substring(1):"-"+o),s(),i(),y?null:new n(Number(r),Number(o))}return(r=c())?(i(),y?null:new n(0,Number(r))):null},n.fromPolar=function(){switch(arguments.length){case 1:var e=arguments[0];if("object"==typeof e)return n.fromPolar(e.r,e.phi);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var r=arguments[0],t=arguments[1];if(h(r)){if(g(t)&&t.hasBase(p.BASE_UNITS.ANGLE)&&(t=t.toNumber("rad")),h(t))return new n(r*Math.cos(t),r*Math.sin(t));throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},n.prototype.toPolar=function(){return{r:Math.sqrt(this.re*this.re+this.im*this.im),phi:Math.atan2(this.im,this.re)}},n.prototype.clone=function(){return new n(this.re,this.im)},n.prototype.equals=function(e){return this.re===e.re&&this.im===e.im},n.prototype.format=function(e){var r="",t=m.format(this.re,e),n=m.format(this.im,e);return r=0==this.im?t:0==this.re?1==this.im?"i":-1==this.im?"-i":n+"i":this.im>0?1==this.im?t+" + i":t+" + "+n+"i":-1==this.im?t+" - i":t+" - "+n.substring(1)+"i"},n.prototype.toString=function(){return this.format()},n.prototype.valueOf=n.prototype.toString,e.exports=n},function(e,r,t){"use strict";function n(e,r,t){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(null!=e&&!o.isNumber(e))throw new TypeError("Parameter start must be a number");if(null!=r&&!o.isNumber(r))throw new TypeError("Parameter end must be a number");if(null!=t&&!o.isNumber(t))throw new TypeError("Parameter step must be a number");this.start=null!=e?parseFloat(e):0,this.end=null!=r?parseFloat(r):0,this.step=null!=t?parseFloat(t):1}{var i=t(160),o=i.number,a=i.string;i.array}n.parse=function(e){if(!a.isString(e))return null;var r=e.split(":"),t=r.map(function(e){return parseFloat(e)}),i=t.some(function(e){return isNaN(e)});if(i)return null;switch(t.length){case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[2],t[1]);default:return null}},n.prototype.clone=function(){return new n(this.start,this.end,this.step)},n.isRange=function(e){return e instanceof n},n.prototype.size=function(){var e=0,r=this.start,t=this.step,n=this.end,i=n-r;return o.sign(t)==o.sign(i)?e=Math.ceil(i/t):0==i&&(e=0),isNaN(e)&&(e=0),[e]},n.prototype.min=function(){var e=this.size()[0];return e>0?this.step>0?this.start:this.start+(e-1)*this.step:void 0},n.prototype.max=function(){var e=this.size()[0];return e>0?this.step>0?this.start+(e-1)*this.step:this.start:void 0},n.prototype.forEach=function(e){var r=this.start,t=this.step,n=this.end,i=0;if(t>0)for(;n>r;)e(r,i,this),r+=t,i++;else if(0>t)for(;r>n;)e(r,i,this),r+=t,i++},n.prototype.map=function(e){var r=[];return this.forEach(function(t,n,i){r[n]=e(t,n,i)}),r},n.prototype.toArray=function(){var e=[];return this.forEach(function(r,t){e[t]=r}),e},n.prototype.valueOf=function(){return this.toArray()},n.prototype.format=function(e){var r=o.format(this.start,e);return 1!=this.step&&(r+=":"+o.format(this.step,e)),r+=":"+o.format(this.end,e)},n.prototype.toString=function(){return this.format()},e.exports=n},function(e,r,t){"use strict";function n(){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this._ranges=[],this._isScalar=!0;for(var e=0,r=arguments.length;r>e;e++){var t=arguments[e];if(t instanceof a)this._ranges.push(t),this._isScalar=!1;else if(c(t))this._ranges.push(i(t)),this._isScalar=!1;else if(u(t))this._ranges.push(i([t,t+1]));else{var o=t.valueOf();if(!c(o))throw new TypeError("Ranges must be an Array, Number, or Range");this._ranges.push(i(o)),this._isScalar=!1}}}function i(e){for(var r=e.length,t=0;r>t;t++)if(!u(e[t])||!f(e[t]))throw new TypeError("Index parameters must be integer numbers");switch(e.length){case 2:return new a(e[0],e[1]);case 3:return new a(e[0],e[1],e[2]);default:throw new SyntaxError("Wrong number of arguments in Index (2 or 3 expected)")}}var o=t(160),a=t(7),s=o.number,u=s.isNumber,f=s.isInteger,c=Array.isArray;n.prototype.clone=function(){var e=new n;return e._ranges=o.object.clone(this._ranges),e._isScalar=this._isScalar,e},n.isIndex=function(e){return e instanceof n},n.create=function(e){var r=new n;return n.apply(r,e),r},n.prototype.size=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r];e[r]=n.size()[0]}return e},n.prototype.max=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r];e[r]=n.max()}return e},n.prototype.min=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r];e[r]=n.min()}return e},n.prototype.forEach=function(e){for(var r=0,t=this._ranges.length;t>r;r++)e(this._ranges[r],r,this)},n.prototype.range=function(e){return this._ranges[e]||null},n.prototype.isScalar=function(){return this._isScalar},n.prototype.toArray=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r],i=[],o=n.start,a=n.end,s=n.step;if(s>0)for(;a>o;)i.push(o),o+=s;else if(0>s)for(;o>a;)i.push(o),o+=s;e.push(i)}return e},n.prototype.valueOf=n.prototype.toArray,n.prototype.toString=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r],i=s.format(n.start);1!=n.step&&(i+=":"+s.format(n.step)),i+=":"+s.format(n.end),e.push(i)}return"["+e.join(", ")+"]"},e.exports=n},function(e,r,t){"use strict";function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(e instanceof n)this._data=e.clone()._data;else if(d(e))this._data=f(e);else{if(null!=e)throw new TypeError("Unsupported type of data ("+c.types.type(e)+")");this._data=[]}this._size=h.size(this._data)}function i(e,r){if(!(r instanceof p))throw new TypeError("Invalid index");var t=r.isScalar();if(t)return e.get(r.min());var i=r.size();if(i.length!=e._size.length)throw new l(i.length,e._size.length);for(var a=r.min(),s=r.max(),u=0,f=e._size.length;f>u;u++)w(a[u],e._size[u]),w(s[u],e._size[u]);return new n(o(e._data,r,i.length,0))}function o(e,r,t,n){var i=n==t-1,a=r.range(n);return a.map(i?function(r){return e[r]}:function(i){var a=e[i];return o(a,r,t,n+1)})}function a(e,r,t,i){if(!(r instanceof p))throw new TypeError("Invalid index");var o,a=r.size(),f=r.isScalar();if(t instanceof n?(o=t.size(),t=t.valueOf()):o=h.size(t),f){if(0!=o.length)throw new TypeError("Scalar expected");e.set(r.min(),t,i)}else{if(a.length");var d=r.max().map(function(e){return e+1});u(e,d,i);var w=a.length,x=0;s(e._data,r,t,w,x)}return e}function s(e,r,t,n,i){var o=i==n-1,a=r.range(i);a.forEach(o?function(r,n){w(r),e[r]=t[n]}:function(o,a){w(o),s(e[o],r,t[a],n,i+1)})}function u(e,r,t){for(var n=g.clone(e._size),i=!1;n.lengtho;o++)r[o]>n[o]&&(n[o]=r[o],i=!0);i&&e.resize(n,t)}function f(e){for(var r=0,t=e.length;t>r;r++){var i=e[r];d(i)?e[r]=f(i):i instanceof n&&(e[r]=f(i._data))}return e}var c=t(160),l=t(156),p=t(8),m=(c.number,c.string),h=c.array,g=c.object,d=Array.isArray,w=h.validateIndex;n.isMatrix=function(e){return e instanceof n},n.prototype.subset=function(e,r,t){switch(arguments.length){case 1:return i(this,e);case 2:case 3:return a(this,e,r,t);default:throw new SyntaxError("Wrong number of arguments")}},n.prototype.get=function(e){if(!d(e))throw new TypeError("Array expected");if(e.length!=this._size.length)throw new l(e.length,this._size.length);for(var r=this._data,t=0,n=e.length;n>t;t++){var i=e[t];w(i,r.length),r=r[i]}return g.clone(r)},n.prototype.set=function(e,r,t){var n,i;if(!d(e))throw new Error("Array expected");if(e.lengthn;n++){var s=e[n];w(s,a.length),a=a[s]}return s=e[e.length-1],w(s,a.length),a[s]=r,this},n.prototype.resize=function(e,r){return this._size=g.clone(e),this._data=h.resize(this._data,this._size,r),this},n.prototype.clone=function(){var e=new n;return e._data=g.clone(this._data),e._size=g.clone(this._size),e},n.prototype.size=function(){return this._size},n.prototype.map=function(e){var r=this,t=new n,i=function(t,n){return d(t)?t.map(function(e,r){return i(e,n.concat(r))}):e(t,n,r)};return t._data=i(this._data,[]),t._size=g.clone(this._size),t},n.prototype.forEach=function(e){var r=this,t=function(n,i){d(n)?n.forEach(function(e,r){t(e,i.concat(r))}):e(n,i,r)};t(this._data,[])},n.prototype.toArray=function(){return g.clone(this._data)},n.prototype.valueOf=function(){return this._data},n.prototype.format=function(e){return m.format(this._data,e)},n.prototype.toString=function(){return m.format(this._data)},e.exports=n},function(e,r,t){"use strict";function n(e,r){if(!(this instanceof n))throw new Error("Constructor must be called with the new operator");if(void 0!=e&&!x(e))throw new TypeError("First parameter in Unit constructor must be a number");if(void 0!=r&&(!y(r)||""==r))throw new TypeError("Second parameter in Unit constructor must be a string");if(void 0!=r){var t=l(r);if(!t)throw new SyntaxError('Unknown unit "'+r+'"');this.unit=t.unit,this.prefix=t.prefix}else this.unit=A,this.prefix=b;this.value=void 0!=e?this._normalize(e):null,this.fixPrefix=!1}function i(){for(;" "==h||" "==h;)s()}function o(e){return e>="0"&&"9">=e||"."==e}function a(e){return e>="0"&&"9">=e}function s(){m++,h=p.charAt(m)}function u(e){m=e,h=p.charAt(m)}function f(){var e,r="";if(e=m,"+"==h?s():"-"==h&&(r+=h,s()),!o(h))return u(e),null;if("."==h){if(r+=h,s(),!a(h))return u(e),null}else{for(;a(h);)r+=h,s();"."==h&&(r+=h,s())}for(;a(h);)r+=h,s();if("E"==h||"e"==h){if(r+=h,s(),("+"==h||"-"==h)&&(r+=h,s()),!a(h))return u(e),null;for(;a(h);)r+=h,s()}return r}function c(){var e="";for(i();h&&" "!=h&&" "!=h;)e+=h,s();return e||null}function l(e){for(var r in M)if(M.hasOwnProperty(r)&&w.endsWith(e,r)){var t=M[r],n=e.length-r.length,i=e.substring(0,n),o=t.prefixes[i];if(void 0!==o)return{unit:t,prefix:o}}return null}var p,m,h,g=t(160),d=g.number,w=g.string,x=g.number.isNumber,y=g.string.isString;n.parse=function(e){if(p=e,m=-1,h="",!y(p))return null;s(),i();var r,t=f();if(t){if(r=c(),s(),i(),h)return null;if(t&&r)try{return new n(Number(t),r)}catch(o){}}else{if(r=c(),s(),i(),h)return null;if(r)try{return new n(null,r)}catch(o){}}return null},n.isUnit=function(e){return e instanceof n},n.prototype.clone=function(){var e=new n;for(var r in this)this.hasOwnProperty(r)&&(e[r]=this[r]);return e},n.prototype._normalize=function(e){return(e+this.unit.offset)*this.unit.value*this.prefix.value},n.prototype._unnormalize=function(e,r){return void 0==r?e/this.unit.value/this.prefix.value-this.unit.offset:e/this.unit.value/r-this.unit.offset},n.isValuelessUnit=function(e){return null!=l(e)},n.prototype.hasBase=function(e){return this.unit.base===e},n.prototype.equalBase=function(e){return this.unit.base===e.unit.base},n.prototype.equals=function(e){return this.equalBase(e)&&this.value==e.value},n.prototype.to=function(e){var r,t=null==this.value?this._normalize(1):this.value;if(y(e)){if(r=new n(null,e),!this.equalBase(r))throw new Error("Units do not match");return r.value=t,r.fixPrefix=!0,r}if(e instanceof n){if(!this.equalBase(e))throw new Error("Units do not match");if(null!==e.value)throw new Error("Cannot convert to a unit with a value");return r=e.clone(),r.value=t,r.fixPrefix=!0,r}throw new Error("String or Unit expected as parameter")},n.prototype.toNumber=function(e){var r=this.to(e);return r._unnormalize(r.value,r.prefix.value)},n.prototype.toString=function(){return this.format()},n.prototype.valueOf=n.prototype.toString,n.prototype.format=function(e){var r,t;if(null===this.value||this.fixPrefix)r=this._unnormalize(this.value),t=null!==this.value?d.format(r,e)+" ":"",t+=this.prefix.name+this.unit.name;else{var n=this._bestPrefix();r=this._unnormalize(this.value,n.value),t=d.format(r,e)+" ",t+=n.name+this.unit.name}return t},n.prototype._bestPrefix=function(){var e=Math.abs(this.value/this.unit.value),r=b,t=Math.abs(Math.log(e/r.value)/Math.LN10-1.2),n=this.unit.prefixes;for(var i in n)if(n.hasOwnProperty(i)){var o=n[i];if(o.scientific){var a=Math.abs(Math.log(e/o.value)/Math.LN10-1.2);t>a&&(r=o,t=a)}}return r};var v={NONE:{"":{name:"",value:1,scientific:!0}},SHORT:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:10,scientific:!1},h:{name:"h",value:100,scientific:!1},k:{name:"k",value:1e3,scientific:!0},M:{name:"M",value:1e6,scientific:!0},G:{name:"G",value:1e9,scientific:!0},T:{name:"T",value:1e12,scientific:!0},P:{name:"P",value:1e15,scientific:!0},E:{name:"E",value:1e18,scientific:!0},Z:{name:"Z",value:1e21,scientific:!0},Y:{name:"Y",value:1e24,scientific:!0},d:{name:"d",value:.1,scientific:!1},c:{name:"c",value:.01,scientific:!1},m:{name:"m",value:.001,scientific:!0},u:{name:"u",value:1e-6,scientific:!0},n:{name:"n",value:1e-9,scientific:!0},p:{name:"p",value:1e-12,scientific:!0},f:{name:"f",value:1e-15,scientific:!0},a:{name:"a",value:1e-18,scientific:!0},z:{name:"z",value:1e-21,scientific:!0},y:{name:"y",value:1e-24,scientific:!0}},LONG:{"":{name:"",value:1,scientific:!0},deca:{name:"deca",value:10,scientific:!1},hecto:{name:"hecto",value:100,scientific:!1},kilo:{name:"kilo",value:1e3,scientific:!0},mega:{name:"mega",value:1e6,scientific:!0},giga:{name:"giga",value:1e9,scientific:!0},tera:{name:"tera",value:1e12,scientific:!0},peta:{name:"peta",value:1e15,scientific:!0},exa:{name:"exa",value:1e18,scientific:!0},zetta:{name:"zetta",value:1e21,scientific:!0},yotta:{name:"yotta",value:1e24,scientific:!0},deci:{name:"deci",value:.1,scientific:!1},centi:{name:"centi",value:.01,scientific:!1},milli:{name:"milli",value:.001,scientific:!0},micro:{name:"micro",value:1e-6,scientific:!0},nano:{name:"nano",value:1e-9,scientific:!0},pico:{name:"pico",value:1e-12,scientific:!0},femto:{name:"femto",value:1e-15,scientific:!0},atto:{name:"atto",value:1e-18,scientific:!0},zepto:{name:"zepto",value:1e-21,scientific:!0},yocto:{name:"yocto",value:1e-24,scientific:!0}},SQUARED:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:100,scientific:!1},h:{name:"h",value:1e4,scientific:!1},k:{name:"k",value:1e6,scientific:!0},M:{name:"M",value:1e12,scientific:!0},G:{name:"G",value:1e18,scientific:!0},T:{name:"T",value:1e24,scientific:!0},P:{name:"P",value:1e30,scientific:!0},E:{name:"E",value:1e36,scientific:!0},Z:{name:"Z",value:1e42,scientific:!0},Y:{name:"Y",value:1e48,scientific:!0},d:{name:"d",value:.01,scientific:!1},c:{name:"c",value:1e-4,scientific:!1},m:{name:"m",value:1e-6,scientific:!0},u:{name:"u",value:1e-12,scientific:!0},n:{name:"n",value:1e-18,scientific:!0},p:{name:"p",value:1e-24,scientific:!0},f:{name:"f",value:1e-30,scientific:!0},a:{name:"a",value:1e-36,scientific:!0},z:{name:"z",value:1e-42,scientific:!0},y:{name:"y",value:1e-42,scientific:!0}},CUBIC:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:1e3,scientific:!1},h:{name:"h",value:1e6,scientific:!1},k:{name:"k",value:1e9,scientific:!0},M:{name:"M",value:1e18,scientific:!0},G:{name:"G",value:1e27,scientific:!0},T:{name:"T",value:1e36,scientific:!0},P:{name:"P",value:1e45,scientific:!0},E:{name:"E",value:1e54,scientific:!0},Z:{name:"Z",value:1e63,scientific:!0},Y:{name:"Y",value:1e72,scientific:!0},d:{name:"d",value:.001,scientific:!1},c:{name:"c",value:1e-6,scientific:!1},m:{name:"m",value:1e-9,scientific:!0},u:{name:"u",value:1e-18,scientific:!0},n:{name:"n",value:1e-27,scientific:!0},p:{name:"p",value:1e-36,scientific:!0},f:{name:"f",value:1e-45,scientific:!0},a:{name:"a",value:1e-54,scientific:!0},z:{name:"z",value:1e-63,scientific:!0},y:{name:"y",value:1e-72,scientific:!0}},BINARY_SHORT:{"":{name:"",value:1,scientific:!0},k:{name:"k",value:1024,scientific:!0},M:{name:"M",value:Math.pow(1024,2),scientific:!0},G:{name:"G",value:Math.pow(1024,3),scientific:!0},T:{name:"T",value:Math.pow(1024,4),scientific:!0},P:{name:"P",value:Math.pow(1024,5),scientific:!0},E:{name:"E",value:Math.pow(1024,6),scientific:!0},Z:{name:"Z",value:Math.pow(1024,7),scientific:!0},Y:{name:"Y",value:Math.pow(1024,8),scientific:!0},Ki:{name:"Ki",value:1024,scientific:!0},Mi:{name:"Mi",value:Math.pow(1024,2),scientific:!0},Gi:{name:"Gi",value:Math.pow(1024,3),scientific:!0},Ti:{name:"Ti",value:Math.pow(1024,4),scientific:!0},Pi:{name:"Pi",value:Math.pow(1024,5),scientific:!0},Ei:{name:"Ei",value:Math.pow(1024,6),scientific:!0},Zi:{name:"Zi",value:Math.pow(1024,7),scientific:!0},Yi:{name:"Yi",value:Math.pow(1024,8),scientific:!0}},BINARY_LONG:{"":{name:"",value:1,scientific:!0},kilo:{name:"kilo",value:1024,scientific:!0},mega:{name:"mega",value:Math.pow(1024,2),scientific:!0},giga:{name:"giga",value:Math.pow(1024,3),scientific:!0},tera:{name:"tera",value:Math.pow(1024,4),scientific:!0},peta:{name:"peta",value:Math.pow(1024,5),scientific:!0},exa:{name:"exa",value:Math.pow(1024,6),scientific:!0},zetta:{name:"zetta",value:Math.pow(1024,7),scientific:!0},yotta:{name:"yotta",value:Math.pow(1024,8),scientific:!0},kibi:{name:"kibi",value:1024,scientific:!0},mebi:{name:"mebi",value:Math.pow(1024,2),scientific:!0},gibi:{name:"gibi",value:Math.pow(1024,3),scientific:!0},tebi:{name:"tebi",value:Math.pow(1024,4),scientific:!0},pebi:{name:"pebi",value:Math.pow(1024,5),scientific:!0},exi:{name:"exi",value:Math.pow(1024,6),scientific:!0},zebi:{name:"zebi",value:Math.pow(1024,7),scientific:!0},yobi:{name:"yobi",value:Math.pow(1024,8),scientific:!0}}},b={name:"",value:1,scientific:!0},E={NONE:{},LENGTH:{},MASS:{},TIME:{},CURRENT:{},TEMPERATURE:{},LUMINOUS_INTENSITY:{},AMOUNT_OF_SUBSTANCE:{},FORCE:{},SURFACE:{},VOLUME:{},ANGLE:{},BIT:{}},N={},A={name:"",base:N,value:1,offset:0},M={meter:{name:"meter",base:E.LENGTH,prefixes:v.LONG,value:1,offset:0},inch:{name:"inch",base:E.LENGTH,prefixes:v.NONE,value:.0254,offset:0},foot:{name:"foot",base:E.LENGTH,prefixes:v.NONE,value:.3048,offset:0},yard:{name:"yard",base:E.LENGTH,prefixes:v.NONE,value:.9144,offset:0},mile:{name:"mile",base:E.LENGTH,prefixes:v.NONE,value:1609.344,offset:0},link:{name:"link",base:E.LENGTH,prefixes:v.NONE,value:.201168,offset:0},rod:{name:"rod",base:E.LENGTH,prefixes:v.NONE,value:5.02921,offset:0},chain:{name:"chain",base:E.LENGTH,prefixes:v.NONE,value:20.1168,offset:0},angstrom:{name:"angstrom",base:E.LENGTH,prefixes:v.NONE,value:1e-10,offset:0},m:{name:"m",base:E.LENGTH,prefixes:v.SHORT,value:1,offset:0},"in":{name:"in",base:E.LENGTH,prefixes:v.NONE,value:.0254,offset:0},ft:{name:"ft",base:E.LENGTH,prefixes:v.NONE,value:.3048,offset:0},yd:{name:"yd",base:E.LENGTH,prefixes:v.NONE,value:.9144,offset:0},mi:{name:"mi",base:E.LENGTH,prefixes:v.NONE,value:1609.344,offset:0},li:{name:"li",base:E.LENGTH,prefixes:v.NONE,value:.201168,offset:0},rd:{name:"rd",base:E.LENGTH,prefixes:v.NONE,value:5.02921,offset:0},ch:{name:"ch",base:E.LENGTH,prefixes:v.NONE,value:20.1168,offset:0},mil:{name:"mil",base:E.LENGTH,prefixes:v.NONE,value:254e-7,offset:0},m2:{name:"m2",base:E.SURFACE,prefixes:v.SQUARED,value:1,offset:0},sqin:{name:"sqin",base:E.SURFACE,prefixes:v.NONE,value:64516e-8,offset:0},sqft:{name:"sqft",base:E.SURFACE,prefixes:v.NONE,value:.09290304,offset:0},sqyd:{name:"sqyd",base:E.SURFACE,prefixes:v.NONE,value:.83612736,offset:0},sqmi:{name:"sqmi",base:E.SURFACE,prefixes:v.NONE,value:2589988.110336,offset:0},sqrd:{name:"sqrd",base:E.SURFACE,prefixes:v.NONE,value:25.29295,offset:0},sqch:{name:"sqch",base:E.SURFACE,prefixes:v.NONE,value:404.6873,offset:0},sqmil:{name:"sqmil",base:E.SURFACE,prefixes:v.NONE,value:6.4516e-10,offset:0},m3:{name:"m3",base:E.VOLUME,prefixes:v.CUBIC,value:1,offset:0},L:{name:"L",base:E.VOLUME,prefixes:v.SHORT,value:.001,offset:0},l:{name:"l",base:E.VOLUME,prefixes:v.SHORT,value:.001,offset:0},litre:{name:"litre",base:E.VOLUME,prefixes:v.LONG,value:.001,offset:0},cuin:{name:"cuin",base:E.VOLUME,prefixes:v.NONE,value:16387064e-12,offset:0},cuft:{name:"cuft",base:E.VOLUME,prefixes:v.NONE,value:.028316846592,offset:0},cuyd:{name:"cuyd",base:E.VOLUME,prefixes:v.NONE,value:.764554857984,offset:0},teaspoon:{name:"teaspoon",base:E.VOLUME,prefixes:v.NONE,value:5e-6,offset:0},tablespoon:{name:"tablespoon",base:E.VOLUME,prefixes:v.NONE,value:15e-6,offset:0},drop:{name:"drop",base:E.VOLUME,prefixes:v.NONE,value:5e-8,offset:0},gtt:{name:"gtt",base:E.VOLUME,prefixes:v.NONE,value:5e-8,offset:0},minim:{name:"minim",base:E.VOLUME,prefixes:v.NONE,value:6.161152e-8,offset:0},fluiddram:{name:"fluiddram",base:E.VOLUME,prefixes:v.NONE,value:36966911e-13,offset:0},fluidounce:{name:"fluidounce",base:E.VOLUME,prefixes:v.NONE,value:2957353e-11,offset:0},gill:{name:"gill",base:E.VOLUME,prefixes:v.NONE,value:.0001182941,offset:0},cc:{name:"cc",base:E.VOLUME,prefixes:v.NONE,value:1e-6,offset:0},cup:{name:"cup",base:E.VOLUME,prefixes:v.NONE,value:.0002365882,offset:0},pint:{name:"pint",base:E.VOLUME,prefixes:v.NONE,value:.0004731765,offset:0},quart:{name:"quart",base:E.VOLUME,prefixes:v.NONE,value:.0009463529,offset:0},gallon:{name:"gallon",base:E.VOLUME,prefixes:v.NONE,value:.003785412,offset:0},beerbarrel:{name:"beerbarrel",base:E.VOLUME,prefixes:v.NONE,value:.1173478,offset:0},oilbarrel:{name:"oilbarrel",base:E.VOLUME,prefixes:v.NONE,value:.1589873,offset:0},hogshead:{name:"hogshead",base:E.VOLUME,prefixes:v.NONE,value:.238481,offset:0},fldr:{name:"fldr",base:E.VOLUME,prefixes:v.NONE,value:36966911e-13,offset:0},floz:{name:"floz",base:E.VOLUME,prefixes:v.NONE,value:2957353e-11,offset:0},gi:{name:"gi",base:E.VOLUME,prefixes:v.NONE,value:.0001182941,offset:0},cp:{name:"cp",base:E.VOLUME,prefixes:v.NONE,value:.0002365882,offset:0},pt:{name:"pt",base:E.VOLUME,prefixes:v.NONE,value:.0004731765,offset:0},qt:{name:"qt",base:E.VOLUME,prefixes:v.NONE,value:.0009463529,offset:0},gal:{name:"gal",base:E.VOLUME,prefixes:v.NONE,value:.003785412,offset:0},bbl:{name:"bbl",base:E.VOLUME,prefixes:v.NONE,value:.1173478,offset:0},obl:{name:"obl",base:E.VOLUME,prefixes:v.NONE,value:.1589873,offset:0},g:{name:"g",base:E.MASS,prefixes:v.SHORT,value:.001,offset:0},gram:{name:"gram",base:E.MASS,prefixes:v.LONG,value:.001,offset:0},ton:{name:"ton",base:E.MASS,prefixes:v.SHORT,value:907.18474,offset:0},tonne:{name:"tonne",base:E.MASS,prefixes:v.SHORT,value:1e3,offset:0},grain:{name:"grain",base:E.MASS,prefixes:v.NONE,value:6479891e-11,offset:0},dram:{name:"dram",base:E.MASS,prefixes:v.NONE,value:.0017718451953125,offset:0},ounce:{name:"ounce",base:E.MASS,prefixes:v.NONE,value:.028349523125,offset:0},poundmass:{name:"poundmass",base:E.MASS,prefixes:v.NONE,value:.45359237,offset:0},hundredweight:{name:"hundredweight",base:E.MASS,prefixes:v.NONE,value:45.359237,offset:0},stick:{name:"stick",base:E.MASS,prefixes:v.NONE,value:.115,offset:0},gr:{name:"gr",base:E.MASS,prefixes:v.NONE,value:6479891e-11,offset:0},dr:{name:"dr",base:E.MASS,prefixes:v.NONE,value:.0017718451953125,offset:0},oz:{name:"oz",base:E.MASS,prefixes:v.NONE,value:.028349523125,offset:0},lbm:{name:"lbm",base:E.MASS,prefixes:v.NONE,value:.45359237,offset:0},cwt:{name:"cwt",base:E.MASS,prefixes:v.NONE,value:45.359237,offset:0},s:{name:"s",base:E.TIME,prefixes:v.SHORT,value:1,offset:0},min:{name:"min",base:E.TIME,prefixes:v.NONE,value:60,offset:0},h:{name:"h",base:E.TIME,prefixes:v.NONE,value:3600,offset:0},second:{name:"second",base:E.TIME,prefixes:v.LONG,value:1,offset:0},sec:{name:"sec",base:E.TIME,prefixes:v.LONG,value:1,offset:0},minute:{name:"minute",base:E.TIME,prefixes:v.NONE,value:60,offset:0},hour:{name:"hour",base:E.TIME,prefixes:v.NONE,value:3600,offset:0},day:{name:"day",base:E.TIME,prefixes:v.NONE,value:86400,offset:0},rad:{name:"rad",base:E.ANGLE,prefixes:v.NONE,value:1,offset:0},deg:{name:"deg",base:E.ANGLE,prefixes:v.NONE,value:.017453292519943295,offset:0},grad:{name:"grad",base:E.ANGLE,prefixes:v.NONE,value:.015707963267948967,offset:0},cycle:{name:"cycle",base:E.ANGLE,prefixes:v.NONE,value:6.283185307179586,offset:0},A:{name:"A",base:E.CURRENT,prefixes:v.SHORT,value:1,offset:0},ampere:{name:"ampere",base:E.CURRENT,prefixes:v.LONG,value:1,offset:0},K:{name:"K",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:0},degC:{name:"degC",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:273.15},degF:{name:"degF",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:459.67},degR:{name:"degR",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:0},kelvin:{name:"kelvin",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:0},celsius:{name:"celsius",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:273.15},fahrenheit:{name:"fahrenheit",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:459.67},rankine:{name:"rankine",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:0},mol:{name:"mol",base:E.AMOUNT_OF_SUBSTANCE,prefixes:v.NONE,value:1,offset:0},mole:{name:"mole",base:E.AMOUNT_OF_SUBSTANCE,prefixes:v.NONE,value:1,offset:0},cd:{name:"cd",base:E.LUMINOUS_INTENSITY,prefixes:v.NONE,value:1,offset:0},candela:{name:"candela",base:E.LUMINOUS_INTENSITY,prefixes:v.NONE,value:1,offset:0},N:{name:"N",base:E.FORCE,prefixes:v.SHORT,value:1,offset:0},newton:{name:"newton",base:E.FORCE,prefixes:v.LONG,value:1,offset:0},lbf:{name:"lbf",base:E.FORCE,prefixes:v.NONE,value:4.4482216152605,offset:0},poundforce:{name:"poundforce",base:E.FORCE,prefixes:v.NONE,value:4.4482216152605,offset:0},b:{name:"b",base:E.BIT,prefixes:v.BINARY_SHORT,value:1,offset:0},bits:{name:"bits",base:E.BIT,prefixes:v.BINARY_LONG,value:1,offset:0},B:{name:"B",base:E.BIT,prefixes:v.BINARY_SHORT,value:8,offset:0},bytes:{name:"bytes",base:E.BIT,prefixes:v.BINARY_LONG,value:8,offset:0}},T={meters:"meter",inches:"inch",feet:"foot",yards:"yard",miles:"mile",links:"link",rods:"rod",chains:"chain",angstroms:"angstrom",litres:"litre",teaspoons:"teaspoon",tablespoons:"tablespoon",minims:"minim",fluiddrams:"fluiddram",fluidounces:"fluidounce",gills:"gill",cups:"cup",pints:"pint",quarts:"quart",gallons:"gallon",beerbarrels:"beerbarrel",oilbarrels:"oilbarrel",hogsheads:"hogshead",gtts:"gtt",grams:"gram",tons:"ton",tonnes:"tonne",grains:"grain",drams:"dram",ounces:"ounce",poundmasses:"poundmass",hundredweights:"hundredweight",sticks:"stick",seconds:"second",minutes:"minute",hours:"hour",days:"day",radians:"rad",degrees:"deg",gradients:"grad",cycles:"cycle",amperes:"ampere",moles:"mole"}; -for(var S in T)if(T.hasOwnProperty(S)){var O=M[T[S]],C=Object.create(O);C.name=S,M[S]=C}M.lt=M.l,M.liter=M.litre,M.liters=M.litres,M.lb=M.lbm,M.lbs=M.lbm,n.PREFIXES=v,n.BASE_UNITS=E,n.UNITS=M,e.exports=n},function(e,r,t){"use strict";function n(e,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.math=e,this.doc=r}var i=t(160),o=i.object,a=i.string;n.isHelp=function(e){return e instanceof n},n.prototype.toString=function(){var e=this.doc||{},r="\n";if(e.name&&(r+="Name: "+e.name+"\n\n"),e.category&&(r+="Category: "+e.category+"\n\n"),e.description&&(r+="Description:\n "+e.description+"\n\n"),e.syntax&&(r+="Syntax:\n "+e.syntax.join("\n ")+"\n\n"),e.examples){var t=this.math.parser();r+="Examples:\n";for(var i=0;i=r){if(c(e[0])){for(u=i(e),a=[],o=0;ot;t++){var a=[];for(r=0;n>r;r++)a.push(e[r][t]);o.push(a)}return o}{var o=t(160),a=t(157),s=t(156),u=t(9),f=o.array,c=o.array.isArray;o.string.isString}r.argsToArray=function(e){if(0==e.length)return[];if(1==e.length){var r=e[0];return r instanceof u&&(r=r.valueOf()),c(r)||(r=[r]),r}return o.array.argsToArray(e)},r.isCollection=function(e){return c(e)||e instanceof u},r.deepMap=function l(e,r){return e&&"function"==typeof e.map?e.map(function(e){return l(e,r)}):r(e)},r.deepMap2=function p(e,r,t){var n,i,o;if(c(e))if(c(r)){if(e.length!=r.length)throw new s(e.length,r.length);for(n=[],i=e.length,o=0;i>o;o++)n[o]=p(e[o],r[o],t)}else{if(r instanceof u)return n=p(e,r.valueOf(),t),new u(n);for(n=[],i=e.length,o=0;i>o;o++)n[o]=p(e[o],r,t)}else{if(e instanceof u)return r instanceof u?(n=p(e.valueOf(),r.valueOf(),t),new u(n)):(n=p(e.valueOf(),r,t),new u(n));if(c(r))for(n=[],i=r.length,o=0;i>o;o++)n[o]=p(e,r[o],t);else{if(r instanceof u)return n=p(e,r.valueOf(),t),new u(n);n=t(e,r)}}return n},r.reduce=function(e,r,t){var i=c(e)?f.size(e):e.size();if(0>r)throw new a(r);if(r>=i.length)throw new a(r,i.length);return e instanceof u?new u(n(e.valueOf(),r,t)):n(e,r,t)},r.deepForEach=function m(e,r){e instanceof u&&(e=e.valueOf());for(var t=0,n=e.length;n>t;t++){var i=e[t];c(i)?m(i,r):r(i)}}},function(e,r,t){"use strict";function n(e,r){if(1!=arguments.length&&2!=arguments.length)throw new X("parse",arguments.length,1,2);if(gr=r&&r.nodes?r.nodes:{},Q(e))return dr=e,g();if(K(e)||e instanceof $)return J.deepMap(e,function(e){if(!Q(e))throw new TypeError("String expected");return dr=e,g()});throw new TypeError("String or matrix expected")}function i(){wr=0,xr=dr.charAt(0),br=0,Er=null}function o(){wr++,xr=dr.charAt(wr)}function a(){return dr.charAt(wr+1)}function s(){return dr.charAt(wr+2)}function u(){for(vr=pr.NULL,yr="";" "==xr||" "==xr||"\n"==xr&&br;)o();if("#"==xr)for(;"\n"!=xr&&""!=xr;)o();if(""==xr)return void(vr=pr.DELIMITER);if("\n"==xr&&!br)return vr=pr.DELIMITER,yr=xr,void o();var e=xr+a(),r=e+s();if(3==r.length&&mr[r])return vr=pr.DELIMITER,yr=r,o(),o(),void o();if(2==e.length&&mr[e])return vr=pr.DELIMITER,yr=e,o(),void o();if(mr[xr])return vr=pr.DELIMITER,yr=xr,void o();if(!m(xr)){if(p(xr)){for(;p(xr)||h(xr);)yr+=xr,o();return void(vr=hr[yr]?pr.DELIMITER:pr.SYMBOL)}for(vr=pr.UNKNOWN;""!=xr;)yr+=xr,o();throw H('Syntax error in part "'+yr+'"')}if(vr=pr.NUMBER,"."==xr)yr+=xr,o(),h(xr)||(vr=pr.UNKNOWN);else{for(;h(xr);)yr+=xr,o();"."==xr&&(yr+=xr,o())}for(;h(xr);)yr+=xr,o();if(e=a(),("E"==xr||"e"==xr)&&(h(e)||"-"==e||"+"==e))for(yr+=xr,o(),("+"==xr||"-"==xr)&&(yr+=xr,o()),h(xr)||(vr=pr.UNKNOWN);h(xr);)yr+=xr,o()}function f(){do u();while("\n"==yr)}function c(){br++}function l(){br--}function p(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"==e}function m(e){return e>="0"&&"9">=e||"."==e}function h(e){return e>="0"&&"9">=e}function g(){i(),u();var e=d();if(""!=yr)throw vr==pr.DELIMITER?Y("Unexpected operator "+yr):H('Unexpected part "'+yr+'"');return e}function d(){var e,r,t=[];if(""==yr)return new ir("undefined","undefined");for("\n"!=yr&&";"!=yr&&(e=w());"\n"==yr||";"==yr;)0==t.length&&e&&(r=";"!=yr,t.push({node:e,visible:r})),u(),"\n"!=yr&&";"!=yr&&""!=yr&&(e=w(),r=";"!=yr,t.push({node:e,visible:r}));return t.length>0?new tr(t):e}function w(){if(vr==pr.SYMBOL&&"function"==yr)throw H('Deprecated keyword "function". Functions can now be assigned without it, like "f(x) = x^2".');return x()}function x(){var e,r,t,n,i=y();if("="==yr){if(i instanceof cr)return e=i.name,f(),t=x(),new rr(e,t);if(i instanceof ar)return f(),t=x(),new lr(i,t);if(i instanceof ur&&(n=!0,r=[],e=i.name,i.args.forEach(function(e,t){e instanceof cr?r[t]=e.name:n=!1}),n))return f(),t=x(),new or(e,r,t);throw H("Invalid left hand side of assignment operator =")}return i}function y(){for(var e=v();"?"==yr;){var r=Er;Er=br,f();var t=e,n=v();if(":"!=yr)throw H("False part of conditional expression expected");Er=null,f();var i=y();e=new nr(t,n,i),Er=r}return e}function v(){for(var e=b();"or"==yr;)f(),e=new sr("or","or",[e,b()]);return e}function b(){for(var e=E();"xor"==yr;)f(),e=new sr("xor","xor",[e,E()]);return e}function E(){for(var e=N();"and"==yr;)f(),e=new sr("and","and",[e,N()]);return e}function N(){for(var e=A();"|"==yr;)f(),e=new sr("|","bitOr",[e,A()]);return e}function A(){for(var e=M();"^|"==yr;)f(),e=new sr("^|","bitXor",[e,M()]);return e}function M(){for(var e=T();"&"==yr;)f(),e=new sr("&","bitAnd",[e,T()]);return e}function T(){var e,r,t,n,i;for(e=S(),r={"==":"equal","!=":"unequal","<":"smaller",">":"larger","<=":"smallerEq",">=":"largerEq"};yr in r;)t=yr,n=r[t],f(),i=[e,S()],e=new sr(t,n,i);return e}function S(){var e,r,t,n,i;for(e=O(),r={"<<":"leftShift",">>":"rightArithShift",">>>":"rightLogShift"};yr in r;)t=yr,n=r[t],f(),i=[e,O()],e=new sr(t,n,i);return e}function O(){var e,r,t,n,i;for(e=C(),r={to:"to","in":"to"};yr in r;)t=yr,n=r[t],f(),i=[e,C()],e=new sr(t,n,i);return e}function C(){var e,r=[];if(e=":"==yr?new ir("1","number"):U(),":"==yr&&Er!==br){for(r.push(e);":"==yr&&r.length<3;)f(),r.push(")"==yr||"]"==yr||","==yr||""==yr?new cr("end"):U());e=3==r.length?new fr(r[0],r[2],r[1]):new fr(r[0],r[1])}return e}function U(){var e,r,t,n,i;for(e=B(),r={"+":"add","-":"subtract"};yr in r;)t=yr,n=r[t],f(),i=[e,B()],e=new sr(t,n,i);return e}function B(){var e,r,t,n,i;if(e=q(),r={"*":"multiply",".*":"dotMultiply","/":"divide","./":"dotDivide","%":"mod",mod:"mod"},yr in r)for(;yr in r;)t=yr,n=r[t],f(),i=[e,q()],e=new sr(t,n,i);return(vr==pr.SYMBOL||"in"==yr&&e instanceof ir||vr==pr.NUMBER&&!(e instanceof ir)||"("==yr||"["==yr)&&(e=new sr("*","multiply",[e,B()])),e}function q(){var e,r,t={"-":"unaryMinus","+":"unaryPlus","~":"bitNot",not:"not"}[yr];return t?(e=yr,f(),r=[q()],new sr(e,t,r)):I()}function I(){var e,r,t,n;return e=z(),("^"==yr||".^"==yr)&&(r=yr,t="^"==r?"pow":"dotPow",f(),n=[e,q()],e=new sr(r,t,n)),e}function z(){var e,r,t,n,i;for(e=_(),r={"!":"factorial","'":"transpose"};yr in r;)t=yr,n=r[t],u(),i=[e],e=new sr(t,n,i);return e}function _(){var e,r=[];if(vr==pr.SYMBOL&&gr[yr]){if(e=gr[yr],u(),"("==yr){if(r=[],c(),u(),")"!=yr)for(r.push(y());","==yr;)u(),r.push(y());if(")"!=yr)throw H("Parenthesis ) expected");l(),u()}return new e(r)}return R()}function R(){var e,r;return vr==pr.SYMBOL||vr==pr.DELIMITER&&yr in hr?(r=yr,u(),e=L(r),e=P(e)):F()}function L(e){var r;if("("==yr){if(r=[],c(),u(),")"!=yr)for(r.push(y());","==yr;)u(),r.push(y());if(")"!=yr)throw H("Parenthesis ) expected");return l(),u(),new ur(e,r)}return new cr(e)}function P(e){for(var r;"["==yr;){if(r=[],c(),u(),"]"!=yr)for(r.push(y());","==yr;)u(),r.push(y());if("]"!=yr)throw H("Parenthesis ] expected");l(),u(),e=new ar(e,r)}return e}function F(){var e,r,t;if('"'==yr){for(r="",t="";""!=xr&&('"'!=xr||"\\"==t);)r+=xr,t=xr,o();if(u(),'"'!=yr)throw H('End of string " expected');return u(),e=new ir(r,"string"),e=P(e)}return k()}function k(){var e,r,t,n;if("["==yr){if(c(),u(),"]"!=yr){var i=j();if(";"==yr){for(t=1,r=[i];";"==yr;)u(),r[t]=j(),t++;if("]"!=yr)throw H("End of matrix ] expected");l(),u(),n=r[0].nodes.length;for(var o=1;t>o;o++)if(r[o].nodes.length!=n)throw Y("Column dimensions mismatch ("+r[o].nodes.length+" != "+n+")");e=new er(r)}else{if("]"!=yr)throw H("End of matrix ] expected");l(),u(),e=i}}else l(),u(),e=new er([]);return e}return G()}function j(){for(var e=[x()],r=1;","==yr;)u(),e[r]=x(),r++;return new er(e)}function G(){var e;return vr==pr.NUMBER?(e=yr,u(),new ir(e,"number")):D()}function D(){var e;if("("==yr){if(c(),u(),e=x(),")"!=yr)throw H("Parenthesis ) expected");return l(),u(),e}return V()}function V(){throw H(""==yr?"Unexpected end of expression":"Value expected")}function Z(){return wr-yr.length+1}function H(e){var r=Z(),t=new SyntaxError(e+" (char "+r+")");return t["char"]=r,t}function Y(e){var r=Z(),t=new Error(e+" (char "+r+")");return t["char"]=r,t}var W=t(160),X=t(155),Q=W.string.isString,K=Array.isArray,$=(W.types.type,t(6),t(9)),J=(t(10),t(13)),er=t(161),rr=t(162),tr=t(163),nr=t(164),ir=t(165),or=t(166),ar=t(167),sr=t(168),ur=t(169),fr=t(170),cr=t(171),lr=t(172),pr={NULL:0,DELIMITER:1,NUMBER:2,SYMBOL:3,UNKNOWN:4},mr={",":!0,"(":!0,")":!0,"[":!0,"]":!0,'"':!0,";":!0,"+":!0,"-":!0,"*":!0,".*":!0,"/":!0,"./":!0,"%":!0,"^":!0,".^":!0,"~":!0,"!":!0,"&":!0,"|":!0,"^|":!0,"'":!0,"=":!0,":":!0,"?":!0,"==":!0,"!=":!0,"<":!0,">":!0,"<=":!0,">=":!0,"<<":!0,">>":!0,">>>":!0},hr={mod:!0,to:!0,"in":!0,and:!0,xor:!0,or:!0,not:!0},gr={},dr="",wr=0,xr="",yr="",vr=pr.NULL,br=0,Er=null;e.exports=n},function(e,r,t){"use strict";function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof Object))throw new TypeError("Object expected as parameter math");this.math=e,this.scope={}}var i=t(14);n.prototype.parse=function(){throw new Error("Parser.parse is deprecated. Use math.parse instead.")},n.prototype.compile=function(){throw new Error("Parser.compile is deprecated. Use math.compile instead.")},n.prototype.eval=function(e){return i(e).compile(this.math).eval(this.scope)},n.prototype.get=function(e){return this.scope[e]},n.prototype.set=function(e,r){return this.scope[e]=r},n.prototype.remove=function(e){delete this.scope[e]},n.prototype.clear=function(){for(var e in this.scope)this.scope.hasOwnProperty(e)&&delete this.scope[e]},e.exports=n},function(e,r,t){"use strict";r.ArrayNode=t(161),r.AssignmentNode=t(162),r.BlockNode=t(163),r.ConditionalNode=t(164),r.ConstantNode=t(165),r.IndexNode=t(167),r.FunctionAssignmentNode=t(166),r.FunctionNode=t(169),r.Node=t(173),r.OperatorNode=t(168),r.RangeNode=t(170),r.SymbolNode=t(171),r.UpdateNode=t(172)},function(e,r,t){r.e=t(177),r.E=t(177),r["false"]=t(178),r.i=t(179),r.Infinity=t(180),r.LN2=t(181),r.LN10=t(182),r.LOG2E=t(183),r.LOG10E=t(184),r.NaN=t(185),r["null"]=t(186),r.pi=t(187),r.PI=t(187),r.phi=t(188),r.SQRT1_2=t(189),r.SQRT2=t(190),r.tau=t(191),r["true"]=t(192),r.version=t(193),r.abs=t(197),r.add=t(198),r.ceil=t(199),r.cube=t(200),r.divide=t(201),r.dotDivide=t(202),r.dotMultiply=t(203),r.dotPow=t(204),r.exp=t(205),r.fix=t(206),r.floor=t(207),r.gcd=t(208),r.lcm=t(209),r.log=t(210),r.log10=t(211),r.mod=t(212),r.multiply=t(213),r.norm=t(214),r.nthRoot=t(215),r.pow=t(216),r.round=t(217),r.sign=t(218),r.sqrt=t(219),r.square=t(220),r.subtract=t(221),r.unaryMinus=t(222),r.unaryPlus=t(223),r.xgcd=t(224),r.bitAnd=t(225),r.bitNot=t(226),r.bitOr=t(227),r.bitXor=t(228),r.leftShift=t(229),r.rightArithShift=t(230),r.rightLogShift=t(231),r.arg=t(232),r.conj=t(233),r.re=t(234),r.im=t(235),r.bignumber=t(236),r["boolean"]=t(237),r.complex=t(238),r.index=t(239),r.matrix=t(240),r.number=t(241),r.string=t(242),r.unit=t(243),r.eval=t(244),r.help=t(245),r.and=t(246),r.not=t(247),r.or=t(248),r.xor=t(249),r.concat=t(250),r.cross=t(251),r.det=t(252),r.diag=t(253),r.dot=t(254),r.eye=t(255),r.flatten=t(256),r.inv=t(257),r.ones=t(258),r.range=t(259),r.resize=t(260),r.size=t(261),r.squeeze=t(262),r.subset=t(263),r.transpose=t(264),r.zeros=t(265),r.combinations=t(266),r.factorial=t(267),r.gamma=t(268),r.permutations=t(269),r.pickRandom=t(270),r.random=t(271),r.randomInt=t(272),r.compare=t(273),r.deepEqual=t(274),r.equal=t(275),r.larger=t(276),r.largerEq=t(277),r.smaller=t(278),r.smallerEq=t(279),r.unequal=t(280),r.max=t(281),r.mean=t(282),r.median=t(283),r.min=t(284),r.prod=t(285),r.std=t(286),r.sum=t(287),r["var"]=t(288),r.acos=t(289),r.asin=t(290),r.atan=t(291),r.atan2=t(292),r.cos=t(293),r.cosh=t(294),r.cot=t(295),r.coth=t(296),r.csc=t(297),r.csch=t(298),r.sec=t(299),r.sech=t(300),r.sin=t(301),r.sinh=t(302),r.tan=t(303),r.tanh=t(304),r.to=t(305),r.clone=t(306),r.map=t(307),r.filter=t(308),r.forEach=t(309),r.format=t(310),r["import"]=t(311),r.sort=t(312),r["typeof"]=t(313)},function(e,r,t){"use strict";var n=t(159),i=t(174).transform,o=t(4).isNumber,a=t(153).argsToArray;e.exports=function(e){e.concat.transform=function(){var r=a(arguments),t=r.length-1,s=r[t];o(s)?r[t]=s-1:s instanceof n&&(r[t]=s.minus(1));try{return e.concat.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(171),i=(t(175).isBoolean,t(153).argsToArray,t(155));e.exports=function(e){var r=e.filter;r.transform=function(e,t,o){if(2!==e.length)throw new i("filter",arguments.length,2);var a,s=e[0].compile(t).eval(o);if(e[1]instanceof n)a=e[1].compile(t).eval(o);else{var u=o||{},f=e[1].filter(function(e){return e instanceof n&&!(e.name in t)&&!(e.name in u)})[0],c=Object.create(u),l=e[1].compile(t);if(!f)throw new Error("No undefined variable found in filter equation");var p=f.name;a=function(e){return c[p]=e,l.eval(c)}}return r(s,a)},e.filter.transform.rawArgs=!0}},function(e,r,t){"use strict";var n=t(9);e.exports=function(e){function r(e,r,t){var n=function(e,i){Array.isArray(e)?e.forEach(function(e,r){n(e,i.concat(r+1))}):r(e,i,t)};n(e,[])}e.forEach.transform=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("forEach",arguments.length,2);if(Array.isArray(t))r(t,i,t);else{if(!(t instanceof n))throw new e.error.UnsupportedTypeError("forEach",e["typeof"](t));r(t.valueOf(),i,t)}}}},function(e,r,t){"use strict";{var n=t(159),i=t(7),o=t(8),a=(t(9),t(4).isNumber);Array.isArray}e.exports=function(e){e.index.transform=function(){for(var e=[],r=0,t=arguments.length;t>r;r++){var s=arguments[r];if(s instanceof i)s.start--,s.end-=s.step>0?0:2;else if(a(s))s--;else{if(!(s instanceof n))throw new TypeError("Ranges must be a Number or Range");s=s.toNumber()-1}e[r]=s}var u=new o;return o.apply(u,e),u}}},function(e,r,t){"use strict";{var n=t(9);t(159),t(7),t(8),t(4).isNumber,Array.isArray}e.exports=function(e){function r(e,r,t){var n=function(e,i){return Array.isArray(e)?e.map(function(e,r){return n(e,i.concat(r+1))}):r(e,i,t)};return n(e,[])}e.map.transform=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("map",arguments.length,2);if(Array.isArray(t))return r(t,i,t);if(t instanceof n)return new n(r(t.valueOf(),i,t));throw new e.error.UnsupportedTypeError("map",e["typeof"](t))}}},function(e,r,t){"use strict";var n=t(159),i=t(174).transform,o=t(4).isNumber,a=t(13).isCollection,s=t(153).argsToArray;e.exports=function(e){e.max.transform=function(){var r=s(arguments);if(2==r.length&&a(r[0])){var t=r[1];o(t)?r[1]=t-1:t instanceof n&&(r[1]=t.minus(1))}try{return e.max.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(159),i=t(174).transform,o=t(4).isNumber,a=t(13).isCollection,s=t(153).argsToArray;e.exports=function(e){e.mean.transform=function(){var r=s(arguments);if(2==r.length&&a(r[0])){var t=r[1];o(t)?r[1]=t-1:t instanceof n&&(r[1]=t.minus(1))}try{return e.mean.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(159),i=t(174).transform,o=t(4).isNumber,a=t(13).isCollection,s=t(153).argsToArray;e.exports=function(e){e.min.transform=function(){var r=s(arguments);if(2==r.length&&a(r[0])){var t=r[1];o(t)?r[1]=t-1:t instanceof n&&(r[1]=t.minus(1))}try{return e.min.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(175).isBoolean,i=t(153).argsToArray;e.exports=function(e){e.range.transform=function(){var r=i(arguments),t=r.length-1,o=r[t];return n(o)||r.push(!0),e.range.apply(e,r)}}},function(e,r,t){"use strict";var n=t(174).transform,i=(t(175).isBoolean,t(153).argsToArray);e.exports=function(e){e.subset.transform=function(){try{return e.subset.apply(e,i(arguments))}catch(r){throw n(r)}}}},function(e,r,t){"use strict";e.exports=function(e){function r(e){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.value=e instanceof r?e.value:e}function n(e,t){var n=Array.prototype.slice;r.prototype[e]="function"==typeof t?function(){var e=[this.value].concat(n.call(arguments,0));return new r(t.apply(this,e))}:new r(t)}var i=t(176);r.prototype.done=function(){return this.value},r.prototype.valueOf=function(){return this.value},r.prototype.toString=function(){return i.format(this.value)},r.createProxy=n;for(var o in e)e.hasOwnProperty(o)&&n(o,e[o]);return r}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(14),i=t(13),o=r.string.isString,a=i.isCollection;e.compile=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("compile",arguments.length,1);if(o(r))return n(r).compile(e);if(a(r))return i.deepMap(r,function(r){return n(r).compile(e)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(14),i=t(13),o=r.string.isString,a=i.isCollection;e.eval=function(r,t){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("eval",arguments.length,1,2);if(t=t||{},o(r))return n(r).compile(e).eval(t);if(a(r))return i.deepMap(r,function(r){return n(r).compile(e).eval(t)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(11);e.help=function(t){if(1!=arguments.length)throw new SyntaxError("Wrong number of arguments in function help ("+arguments.length+" provided, 1 expected)");var n=null;if(t instanceof String||"string"==typeof t)n=t;else{var i;for(i in e)if(e.hasOwnProperty(i)&&t===e[i]){n=i;break}}var o=e.expression.docs[n];if(!n)throw new Error('Cannot find "'+t+'" in math.js');if(!o)throw new Error('No documentation found on "'+n+'"');return new r(e,o)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(14);e.parse=function(){return r.apply(r,arguments)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(13)),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.abs=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("abs",arguments.length,1);if(a(r))return Math.abs(r);if(u(r))return Math.sqrt(r.re*r.re+r.im*r.im);if(r instanceof n)return r.abs();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.abs(r);throw new e.error.UnsupportedTypeError("abs",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(10)),a=t(13),s=r["boolean"].isBoolean,u=r.number.isNumber,f=r.string.isString,c=i.isComplex,l=o.isUnit,p=a.isCollection;e.add=function m(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("add",arguments.length,2);if(u(r)){if(u(t))return r+t;if(c(t))return new i(r+t.re,t.im)}if(c(r)){if(c(t))return new i(r.re+t.re,r.im+t.im);if(u(t))return new i(r.re+t,r.im)}if(l(r)&&l(t)){if(null==r.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(!r.equalBase(t))throw new Error("Units do not match");var o=r.clone();return o.value+=t.value,o.fixPrefix=!1,o}if(r instanceof n)return u(t)?t=n.convert(t):(s(t)||null===t)&&(t=new n(t?1:0)),t instanceof n?r.plus(t):m(r.toNumber(),t);if(t instanceof n)return u(r)?r=n.convert(r):(s(r)||null===r)&&(r=new n(r?1:0)),r instanceof n?r.plus(t):m(r,t.toNumber());if(p(r)||p(t))return a.deepMap2(r,t,m);if(f(r)||f(t))return r+t;if(s(r)||null===r)return m(+r,t);if(s(t)||null===t)return m(r,+t);throw new e.error.UnsupportedTypeError("add",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=o.isCollection,f=i.isComplex;e.ceil=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("ceil",arguments.length,1);if(a(r))return Math.ceil(r);if(f(r))return new i(Math.ceil(r.re),Math.ceil(r.im));if(r instanceof n)return r.ceil();if(u(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.ceil(r);throw new e.error.UnsupportedTypeError("ceil",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.cube=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cube",arguments.length,1);if(a(r))return r*r*r;if(u(r))return e.multiply(e.multiply(r,r),r);if(r instanceof n)return r.times(r).times(r);if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("cube",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=r.re*r.re+r.im*r.im;return 0!=t?new o((e.re*r.re+e.im*r.im)/t,(e.im*r.re-e.re*r.im)/t):new o(0!=e.re?e.re/0:0,0!=e.im?e.im/0:0)}var n=t(160),i=e.type.BigNumber,o=t(6),a=(t(9),t(10)),s=n.number.isNumber,u=n["boolean"].isBoolean,f=o.isComplex,c=a.isUnit;e._divide=function l(t,n){if(s(t)){if(s(n))return t/n;if(f(n))return r(new o(t,0),n)}if(f(t)){if(f(n))return r(t,n);if(s(n))return r(t,new o(n,0))}if(t instanceof i)return s(n)?n=i.convert(n):(u(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?t.div(n):l(t.toNumber(),n);if(n instanceof i)return s(t)?t=i.convert(t):(u(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?t.div(n):l(t,n.toNumber());if(c(t)&&s(n)){var a=t.clone();return a.value=(null===a.value?a._normalize(1):a.value)/n,a}if(u(t)||null===t)return l(+t,n);if(u(n)||null===n)return l(t,+n);throw new e.error.UnsupportedTypeError("divide",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(13),n=r.isCollection;e.divide=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("divide",arguments.length,2);return n(t)?n(i)?e.multiply(t,e.inv(i)):r.deepMap2(t,i,e._divide):n(i)?e.multiply(t,e.inv(i)):e._divide(t,i)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(13);e.dotDivide=function(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("dotDivide",arguments.length,2);return r.deepMap2(t,n,e.divide)},e.edivide=function(){throw new Error("Function edivide is renamed to dotDivide")}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),t(13));e.dotMultiply=function(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("dotMultiply",arguments.length,2);return r.deepMap2(t,n,e.multiply)},e.emultiply=function(){throw new Error("Function emultiply is renamed to dotMultiply")}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),t(13));e.dotPow=function(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("dotPow",arguments.length,2);return r.deepMap2(t,n,e.pow)},e.epow=function(){throw new Error("Function epow is renamed to dotPow")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(13)),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.exp=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("exp",arguments.length,1);if(a(r))return Math.exp(r);if(u(r)){var t=Math.exp(r.re);return new i(t*Math.cos(r.im),t*Math.sin(r.im))}if(r instanceof n)return r.exp();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.exp(r);throw new e.error.UnsupportedTypeError("exp",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.fix=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("fix",arguments.length,1);if(a(r))return r>0?Math.floor(r):Math.ceil(r);if(u(r))return new i(r.re>0?Math.floor(r.re):Math.ceil(r.re),r.im>0?Math.floor(r.im):Math.ceil(r.im));if(r instanceof n)return r.isNegative()?r.ceil():r.floor();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("fix",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.floor=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("floor",arguments.length,1);if(a(r))return Math.floor(r);if(u(r))return new i(Math.floor(r.re),Math.floor(r.im));if(r instanceof n)return r.floor();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("floor",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){if(!e.isInt()||!r.isInt())throw new Error("Parameters in function gcd must be integer numbers");for(var t=new i(0);!r.isZero();){var n=e.mod(r);e=r,r=n}return e.lt(t)?e.neg():e}var n=t(160),i=e.type.BigNumber,o=t(13),a=n.number.isNumber,s=n["boolean"].isBoolean,u=n.number.isInteger,f=o.isCollection;e.gcd=function c(){var t,n=arguments[0],l=arguments[1];if(2==arguments.length){if(a(n)&&a(l)){if(!u(n)||!u(l))throw new Error("Parameters in function gcd must be integer numbers");for(;0!=l;)t=n%l,n=l,l=t;return 0>n?-n:n}if(f(n)||f(l))return o.deepMap2(n,l,c);if(n instanceof i)return a(l)?l=i.convert(l):(s(l)||null===l)&&(l=new i(l?1:0)),l instanceof i?r(n,l):c(n.toNumber(),l);if(l instanceof i)return a(n)?n=i.convert(n):(s(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?r(n,l):c(n.toNumber(),l);if(s(n)||null===n)return c(+n,l);if(s(l)||null===l)return c(n,+l);throw new e.error.UnsupportedTypeError("gcd",e["typeof"](n),e["typeof"](l))}if(arguments.length>2){for(var p=1;p2){for(var m=1;m=0?Math.log(r):c(new i(r,0));if(u(r))return new i(Math.log(Math.sqrt(r.re*r.re+r.im*r.im)),Math.atan2(r.im,r.re));if(r instanceof n)return r.isNegative()?c(r.toNumber()):r.ln();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("log",e["typeof"](r))}if(2==arguments.length)return e.divide(c(r),c(t));throw new e.error.ArgumentsError("log",arguments.length,1,2)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.log10=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("log10",arguments.length,1);if(a(r))return r>=0?Math.log(r)/Math.LN10:c(new i(r,0));if(r instanceof n)return r.isNegative()?c(r.toNumber()):r.log();if(u(r))return new i(Math.log(Math.sqrt(r.re*r.re+r.im*r.im))/Math.LN10,Math.atan2(r.im,r.re)/Math.LN10);if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("log10",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){if(r>0)return e-r*Math.floor(e/r);if(0==r)return e;throw new Error("Cannot calculate mod for a negative divisor")}var n=t(160),i=e.type.BigNumber,o=t(13),a=n.number.isNumber,s=n["boolean"].isBoolean,u=o.isCollection;e.mod=function f(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("mod",arguments.length,2);if(a(t)&&a(n))return r(t,n);if(t instanceof i)return a(n)?n=i.convert(n):(s(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?n.isZero()?t:t.mod(n):f(t.toNumber(),n);if(n instanceof i)return a(t)?t=i.convert(t):(s(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?n.isZero()?t:t.mod(n):f(t,n.toNumber());if(u(t)||u(n))return o.deepMap2(t,n,f);if(s(t)||null===t)return f(+t,n);if(s(n)||null===n)return f(t,+n);throw new e.error.UnsupportedTypeError("mod",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){for(var n=[],i=r.length,o=t[0].length,a=r[0].length,s=0;i>s;s++){n[s]=[];for(var u=0;o>u;u++){for(var f=null,c=0;a>c;c++){var l=e.multiply(r[s][c],t[c][u]);f=null===f?l:e.add(f,l)}n[s][u]=f}}var p=1===i&&1===o;return p?n[0][0]:n}function n(r,t){for(var n=[],i=t.length,o=t[0].length,a=0;o>a;a++){for(var s=null,u=0;i>u;u++){var f=e.multiply(r[u],t[u][a]);s=0===u?f:e.add(s,f)}n[a]=s}return 1===n.length?n[0]:n}function i(r,t){for(var n=[],i=r.length,o=r[0].length,a=0;i>a;a++){for(var s=null,u=0;o>u;u++){var f=e.multiply(r[a][u],t[u]);s=0===u?f:e.add(s,f)}n[a]=s}return 1===n.length?n[0]:n}function o(r,t){var n=r.length;if(!n)throw new Error("Cannot multiply two empty vectors");for(var i=0,o=0;n>o;o++)i=e.add(i,e.multiply(r[o],t[o]));return i}function a(e,r){return 0==e.im?0==r.im?new f(e.re*r.re,0):0==r.re?new f(0,e.re*r.im):new f(e.re*r.re,e.re*r.im):0==e.re?0==r.im?new f(0,e.im*r.re):0==r.re?new f(-e.im*r.im,0):new f(-e.im*r.im,e.im*r.re):0==r.im?new f(e.re*r.re,e.im*r.re):0==r.re?new f(-e.im*r.im,e.re*r.im):new f(e.re*r.re-e.im*r.im,e.re*r.im+e.im*r.re)}var s=t(160),u=e.type.BigNumber,f=t(6),c=t(9),l=t(10),p=t(13),m=s.array,h=s.number.isNumber,g=s["boolean"].isBoolean,d=f.isComplex,w=Array.isArray,x=l.isUnit;e.multiply=function y(t,s){var l;if(2!=arguments.length)throw new e.error.ArgumentsError("multiply",arguments.length,2);if(h(t)){if(h(s))return t*s;if(d(s))return a(new f(t,0),s);if(x(s))return l=s.clone(),l.value=null===l.value?l._normalize(t):l.value*t,l}if(d(t)){if(h(s))return a(t,new f(s,0));if(d(s))return a(t,s)}if(t instanceof u)return h(s)?s=u.convert(s):(g(s)||null===s)&&(s=new u(s?1:0)),s instanceof u?t.times(s):y(t.toNumber(),s); -if(s instanceof u)return h(t)?t=u.convert(t):(g(t)||null===t)&&(t=new u(t?1:0)),t instanceof u?t.times(s):y(t,s.toNumber());if(x(t)&&h(s))return l=t.clone(),l.value=null===l.value?l._normalize(s):l.value*s,l;if(w(t)){if(w(s)){var v=m.size(t),b=m.size(s);if(1==v.length){if(1==b.length){if(v[0]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Length of A must match length of B (A is "+v[0]+", B is "+b[0]+", "+v[0]+" != "+b[0]+")");return o(t,s)}if(2==b.length){if(v[0]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Length of A must match rows of B (A is "+v[0]+", B is "+b[0]+"x"+b[1]+", "+v[0]+" != "+b[0]+")");return n(t,s)}throw new Error("Can only multiply a 1 or 2 dimensional matrix (B has "+b.length+" dimensions)")}if(2==v.length){if(1==b.length){if(v[1]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Columns of A must match length of B (A is "+v[0]+"x"+v[0]+", B is "+b[0]+", "+v[1]+" != "+b[0]+")");return i(t,s)}if(2==b.length){if(v[1]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Columns of A must match rows of B (A is "+v[0]+"x"+v[1]+", B is "+b[0]+"x"+b[1]+", "+v[1]+" != "+b[0]+")");return r(t,s)}throw new Error("Can only multiply a 1 or 2 dimensional matrix (B has "+b.length+" dimensions)")}throw new Error("Can only multiply a 1 or 2 dimensional matrix (A has "+v.length+" dimensions)")}return s instanceof c?(l=y(t,s.valueOf()),w(l)?new c(l):l):p.deepMap2(t,s,y)}if(t instanceof c)return s instanceof c?(l=y(t.valueOf(),s.valueOf()),w(l)?new c(l):l):(l=y(t.valueOf(),s),w(l)?new c(l):l);if(w(s))return p.deepMap2(t,s,y);if(s instanceof c)return new c(p.deepMap2(t,s.valueOf(),y));if(g(t)||null===t)return y(+t,s);if(g(s)||null===s)return y(t,+s);throw new e.error.UnsupportedTypeError("multiply",e["typeof"](t),e["typeof"](s))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(153),i=e.type.BigNumber,o=t(6),a=t(9),s=(t(13),r.number.isNumber),u=r["boolean"].isBoolean,f=o.isComplex,c=Array.isArray;e.norm=function l(r,t){if(arguments.length<1||arguments.length>2)throw new e.error.ArgumentsError("abs",arguments.length,1,2);if(s(r))return Math.abs(r);if(f(r))return Math.sqrt(r.re*r.re+r.im*r.im);if(r instanceof i)return r.abs();if(u(r)||null===r)return Math.abs(r);if(c(r)){var o=n.size(r);if(null==t&&(t=2),1==o.length){if(t===Number.POSITIVE_INFINITY||"inf"===t){var p;return e.forEach(r,function(r){var t=e.abs(r);(!p||e.larger(t,p))&&(p=t)}),p}if(t===Number.NEGATIVE_INFINITY||"-inf"===t){var p;return e.forEach(r,function(r){var t=e.abs(r);(!p||e.smaller(t,p))&&(p=t)}),p}if("fro"===t)return l(r);if(s(t)&&!isNaN(t)){if(!e.equal(t,0)){var p=0;return e.forEach(r,function(r){p=e.add(e.pow(e.abs(r),t),p)}),e.pow(p,1/t)}return Number.POSITIVE_INFINITY}throw new Error("Unsupported parameter value")}if(2==o.length){if(1==t){for(var m=[],h=0;ht;if(n&&(t=-t),0==t)throw new Error("Root must be non-zero");if(0>e&&Math.abs(t)%2!=1)throw new Error("Root must be odd when a is negative.");if(0==e)return 0;if(!Number.isFinite(e))return n?0:e;var i=1e-16,o=1,a=0,s=100;do{var u=(e/Math.pow(o,t-1)-o)/t;o+=u,a++}while(Math.abs(u)>i&&s>a);return n?1/o:o}function i(e,r){var t=void 0!=r?r:new a(2),n=new a(0),i=new a(1),o=t.isNegative();if(o&&(t=t.negated()),t.isZero())throw new Error("Root must be non-zero");if(e.isNegative()&&!t.abs().mod(2).equals(1))throw new Error("Root must be odd when a is negative.");if(e.isZero())return n;if(!e.isFinite())return o?n:e;var s=i,u=0,f=100;do{var c=s,l=e.div(s.pow(t.minus(1))).minus(s).div(t);s=s.plus(l),u++}while(!s.equals(c)&&f>u);return o?i.div(s):s}var o=t(160),a=e.type.BigNumber,s=t(13),u=o.number.isNumber,f=o["boolean"].isBoolean,c=s.isCollection;e.nthRoot=function l(t,o){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("nthRoot",arguments.length,1,2);switch(arguments.length){case 1:if(u(t))return r(t);if(t instanceof a)return i(t);if(c(t))return s.deepMap(x,l);if(f(t)||null===t)return l(+t);break;case 2:if(u(t)){if(u(o))return r(t,o);if(o instanceof a)return t=a.convert(t),t instanceof a?i(t,o):r(t,o.toNumber())}else{if(t instanceof a)return u(o)&&(o=a.convert(o)),o instanceof a?i(t,o):r(t.toNumber(),o);if(c(t)&&!c(o))return s.deepMap2(t,o,l)}if(f(t)||null===t)return l(+t,o);if(f(o)||null===o)return l(t,+o);break;default:throw new e.error.ArgumentsError("nthRoot",arguments.length,1,2)}if(f(x)||null===x)return 2==arguments.length?l(+x,n):l(+x);throw new e.error.UnsupportedTypeError("nthRoot",e["typeof"](t),e["typeof"](o))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var n=e.log(r),i=e.multiply(n,t);return e.exp(i)}var n=t(160),i=e.type.BigNumber,o=t(6),a=t(9),s=(t(13),n.array),u=n.number.isNumber,f=n["boolean"].isBoolean,c=Array.isArray,l=n.number.isInteger,p=o.isComplex;e.pow=function m(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("pow",arguments.length,2);if(u(t)){if(u(n))return l(n)||t>=0?Math.pow(t,n):r(new o(t,0),new o(n,0));if(p(n))return r(new o(t,0),n)}if(p(t)){if(u(n))return r(t,new o(n,0));if(p(n))return r(t,n)}if(t instanceof i)return u(n)?n=i.convert(n):(f(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?n.isInteger()||!t.isNegative()?t.pow(n):m(t.toNumber(),n.toNumber()):m(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):(f(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?n.isInteger()&&!t.isNegative()?t.pow(n):m(t.toNumber(),n.toNumber()):m(t,n.toNumber());if(c(t)){if(!u(n)||!l(n)||0>n)throw new TypeError("For A^b, b must be a positive integer (value is "+n+")");var h=s.size(t);if(2!=h.length)throw new Error("For A^b, A must be 2 dimensional (A has "+h.length+" dimensions)");if(h[0]!=h[1])throw new Error("For A^b, A must be square (size is "+h[0]+"x"+h[1]+")");for(var g=e.eye(h[0]).valueOf(),d=t;n>=1;)1==(1&n)&&(g=e.multiply(d,g)),n>>=1,d=e.multiply(d,d);return g}if(t instanceof a)return new a(m(t.valueOf(),n));if(f(t)||null===t)return m(+t,n);if(f(n)||null===n)return m(t,+n);throw new e.error.UnsupportedTypeError("pow",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=Math.pow(10,r);return Math.round(e*t)/t}var n=t(160),i=e.type.BigNumber,o=t(6),a=t(13),s=n.number.isNumber,u=n.number.isInteger,f=n["boolean"].isBoolean,c=o.isComplex,l=a.isCollection;e.round=function p(t,n){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("round",arguments.length,1,2);if(void 0==n){if(s(t))return Math.round(t);if(c(t))return new o(Math.round(t.re),Math.round(t.im));if(t instanceof i)return t.toDecimalPlaces(0);if(l(t))return a.deepMap(t,p);if(f(t)||null===t)return Math.round(t);throw new e.error.UnsupportedTypeError("round",e["typeof"](t))}if(!s(n)||!u(n)){if(!(n instanceof i)){if(f(n)||null===t)return p(t,+n);throw new TypeError("Number of decimals in function round must be an integer")}n=parseFloat(n.valueOf())}if(0>n||n>15)throw new Error("Number of decimals in function round must be in te range of 0-15");if(s(t))return r(t,n);if(c(t))return new o(r(t.re,n),r(t.im,n));if(t instanceof i)return t.toDecimalPlaces(n);if(l(t)||l(n))return a.deepMap2(t,n,p);if(f(t)||null===t)return p(+t,n);throw new e.error.UnsupportedTypeError("round",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number,s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isCollection;e.sign=function l(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sign",arguments.length,1);if(s(r))return a.sign(r);if(f(r)){var t=Math.sqrt(r.re*r.re+r.im*r.im);return new i(r.re/t,r.im/t)}if(r instanceof n)return new n(r.cmp(0));if(c(r))return o.deepMap(r,l);if(u(r)||null===r)return a.sign(r);throw new e.error.UnsupportedTypeError("sign",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.sqrt=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sqrt",arguments.length,1);if(a(r))return r>=0?Math.sqrt(r):c(new i(r,0));if(u(r)){var t,l,p=Math.sqrt(r.re*r.re+r.im*r.im);return t=r.re>=0?.5*Math.sqrt(2*(p+r.re)):Math.abs(r.im)/Math.sqrt(2*(p-r.re)),l=r.re<=0?.5*Math.sqrt(2*(p-r.re)):Math.abs(r.im)/Math.sqrt(2*(p+r.re)),r.im>=0?new i(t,l):new i(t,-l)}if(r instanceof n)return r.isNegative()?c(r.toNumber()):r.sqrt();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("sqrt",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.square=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("square",arguments.length,1);if(a(r))return r*r;if(u(r))return e.multiply(r,r);if(r instanceof n)return r.times(r);if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return r*r;throw new e.error.UnsupportedTypeError("square",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(10)),a=t(13),s=r["boolean"].isBoolean,u=r.number.isNumber,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.subtract=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("subtract",arguments.length,2);if(u(r)){if(u(t))return r-t;if(f(t))return new i(r-t.re,-t.im)}else if(f(r)){if(u(t))return new i(r.re-t,r.im);if(f(t))return new i(r.re-t.re,r.im-t.im)}if(r instanceof n)return u(t)?t=n.convert(t):(s(t)||null===t)&&(t=new n(t?1:0)),t instanceof n?r.minus(t):p(r.toNumber(),t);if(t instanceof n)return u(r)?r=n.convert(r):(s(r)||null===r)&&(r=new n(r?1:0)),r instanceof n?r.minus(t):p(r,t.toNumber());if(c(r)&&c(t)){if(null==r.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(!r.equalBase(t))throw new Error("Units do not match");var o=r.clone();return o.value-=t.value,o.fixPrefix=!1,o}if(l(r)||l(t))return a.deepMap2(r,t,p);if(s(r)||null===r)return p(+r,t);if(s(t)||null===t)return p(r,+t);throw new e.error.UnsupportedTypeError("subtract",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n["boolean"].isBoolean,c=n.string.isString,l=o.isComplex,p=a.isUnit,m=s.isCollection;e.unaryMinus=function h(t){if(1!=arguments.length)throw new e.error.ArgumentsError("unaryMinus",arguments.length,1);if(u(t))return-t;if(l(t))return new o(-t.re,-t.im);if(t instanceof i)return t.neg();if(p(t)){var n=t.clone();return n.value=-t.value,n}if(m(t))return s.deepMap(t,h);if(f(t)||c(t)||null===t)return"bignumber"==r.number?new i(-t):-t;throw new e.error.UnsupportedTypeError("unaryMinus",e["typeof"](t))},e.unary=function(){throw new Error("Function unary is deprecated. Use unaryMinus instead.")}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n["boolean"].isBoolean,c=n.string.isString,l=o.isComplex,p=a.isUnit,m=s.isCollection;e.unaryPlus=function h(t){if(1!=arguments.length)throw new e.error.ArgumentsError("unaryPlus",arguments.length,1);if(u(t))return t;if(l(t))return t.clone();if(t instanceof i)return t;if(p(t))return t.clone();if(m(t))return s.deepMap(t,h);if(f(t)||c(t)||null===t)return"bignumber"==r.number?new i(+t):+t;throw new e.error.UnsupportedTypeError("unaryPlus",e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e,r){function n(e,t){for(var n,i,o,s=0,u=1,f=1,c=0;t;)i=Math.floor(e/t),o=e%t,n=s,s=u-i*s,u=n,n=f,f=c-i*f,c=n,e=t,t=o;var l;return l=0>e?[-e,-u,-c]:[e,e?u:0,c],"array"===r.matrix?l:new a(l)}function i(e,t){for(var n,i,o,u=new s(0),f=new s(0),c=new s(1),l=new s(1),p=new s(0);!t.isZero();)i=e.div(t).floor(),o=e.mod(t),n=f,f=c.minus(i.times(f)),c=n,n=l,l=p.minus(i.times(l)),p=n,e=t,t=o;var m;return m=e.lt(u)?[e.neg(),c.neg(),p.neg()]:[e,e.isZero()?0:c,p],"array"===r.matrix?m:new a(m)}var o=t(160),a=t(9),s=e.type.BigNumber,u=o.number.isNumber,f=o["boolean"].isBoolean,c=o.number.isInteger;e.xgcd=function l(r,t){if(2==arguments.length){if(u(r)&&u(t)){if(!c(r)||!c(t))throw new Error("Parameters in function xgcd must be integer numbers");return n(r,t)}if(r instanceof s)return u(t)?t=s.convert(t):(f(t)||null===t)&&(t=new s(t?1:0)),t instanceof s?i(r,t):l(r.toNumber(),t);if(t instanceof s)return u(r)?r=s.convert(r):(f(r)||null===r)&&(r=new s(r?1:0)),r instanceof s?i(r,t):l(r.toNumber(),t);if(f(r)||null===r)return l(+r,t);if(f(t)||null===t)return l(r,+t);throw new e.error.UnsupportedTypeError("xgcd",e["typeof"](r),e["typeof"](t))}throw new SyntaxError("Function xgcd expects two arguments")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.and;e.bitAnd=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("bitAnd",arguments.length,2);if(s(r)&&s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function bitAnd must be integer numbers");return r&t}if(u(r)||u(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return s(t)&&(t=n.convert(t)),t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return s(r)&&(r=n.convert(r)),r instanceof n?f(r,t):c(r,t.toNumber());throw new e.error.UnsupportedTypeError("bitAnd",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.not;e.bitNot=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("bitNot",arguments.length,1);if(s(r)){if(!a(r))throw new Error("Parameter in function bitNot must be integer numbers");return~r}if(r instanceof n)return f(r);if(u(r))return i.deepMap(r,c);if(o(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("bitNot",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.or;e.bitOr=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("bitOr",arguments.length,2);if(s(r)&&s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function bitOr must be integer numbers");return r|t}if(u(r)||u(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return s(t)&&(t=n.convert(t)),t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return s(r)&&(r=n.convert(r)),r instanceof n?f(r,t):c(r,t.toNumber());throw new e.error.UnsupportedTypeError("bitOr",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.xor;e.bitXor=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("bitXor",arguments.length,2);if(s(r)&&s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function bitXor must be integer numbers");return r^t}if(u(r)||u(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return s(t)&&(t=n.convert(t)),t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return s(r)&&(r=n.convert(r)),r instanceof n?f(r,t):c(r,t.toNumber());throw new e.error.UnsupportedTypeError("bitXor",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.leftShift;e.leftShift=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("leftShift",arguments.length,2);if(s(r)){if(s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function leftShift must be integer numbers");return r<t?new n(0/0):0==t||r.isZero()?r:1/0!=t||r.isFinite()?55>t?r.times(Math.pow(2,t)+""):(t=n.convert(t),f(r,t)):new n(0/0)}}if(u(r)&&s(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return c(r,t.toNumber());throw new e.error.UnsupportedTypeError("leftShift",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.rightShift;e.rightArithShift=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("rightArithShift",arguments.length,2);if(s(r)){if(s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function rightArithShift must be integer numbers");return r>>t}if(t instanceof n)return f(n.convert(r),t)}if(s(t)){if(isFinite(t)&&!a(t))throw new Error("Parameters in function rightArithShift must be integer numbers");if(r instanceof n){if(r.isFinite()&&!r.isInteger())throw new Error("Parameters in function rightArithShift must be integer numbers");return r.isNaN()||isNaN(t)||0>t?new n(0/0):1/0==t?new n(r.isNegative()?-1:r.isFinite()?0:0/0):55>t?r.div(Math.pow(2,t)+"").floor():(t=n.convert(t),f(r,t))}}if(u(r)&&s(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return c(r,t.toNumber());throw new e.error.UnsupportedTypeError("rightArithShift",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=(t(9),t(10),t(13)),i=r["boolean"].isBoolean,o=r.number.isInteger,a=r.number.isNumber,s=n.isCollection;e.rightLogShift=function u(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("rightLogShift",arguments.length,2);if(a(r)&&a(t)){if(!o(r)||!o(t))throw new Error("Parameters in function rightLogShift must be integer numbers");return r>>>t}if(s(r)&&a(t))return n.deepMap2(r,t,u);if(i(r)||null===r)return u(+r,t);if(i(t)||null===t)return u(r,+t);throw new e.error.UnsupportedTypeError("rightLogShift",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=o.isCollection,f=i.isComplex;e.arg=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("arg",arguments.length,1);if(a(r))return Math.atan2(0,r);if(f(r))return Math.atan2(r.im,r.re);if(u(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);if(r instanceof n)return c(r.toNumber());throw new e.error.UnsupportedTypeError("arg",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.object,s=r.number.isNumber,u=r["boolean"].isBoolean,f=o.isCollection,c=i.isComplex;e.conj=function l(r){if(1!=arguments.length)throw new e.error.ArgumentsError("conj",arguments.length,1);return s(r)?r:r instanceof n?new n(r):c(r)?new i(r.re,-r.im):f(r)?o.deepMap(r,l):u(r)||null===r?+r:a.clone(r)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.object,s=r.number.isNumber,u=r["boolean"].isBoolean,f=o.isCollection,c=i.isComplex;e.re=function l(r){if(1!=arguments.length)throw new e.error.ArgumentsError("re",arguments.length,1);return s(r)?r:r instanceof n?new n(r):c(r)?r.re:f(r)?o.deepMap(r,l):u(r)||null===r?+r:a.clone(r)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=o.isCollection,f=i.isComplex;e.im=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("im",arguments.length,1);return a(r)?0:r instanceof n?new n(0):f(r)?r.im:u(r)?o.deepMap(r,c):(s(r)||null===r,0)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(13),o=i.isCollection,a=r.number.isNumber,s=r.string.isString,u=r["boolean"].isBoolean;e.bignumber=function f(r){if(arguments.length>1)throw new e.error.ArgumentsError("bignumber",arguments.length,0,1);if(r instanceof n||a(r)||s(r))return new n(r);if(u(r)||null===r)return new n(+r);if(o(r))return i.deepMap(r,f);if(0==arguments.length)return new n(0);throw new e.error.UnsupportedTypeError("bignumber",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(13),o=i.isCollection,a=r.number.isNumber,s=r.string.isString;e["boolean"]=function u(r){if(1!=arguments.length)throw new e.error.ArgumentsError("boolean",arguments.length,0,1);if("true"===r||r===!0)return!0;if("false"===r||r===!1||null===r)return!1;if(r instanceof Boolean)return 1==r;if(a(r))return 0!==r;if(r instanceof n)return!r.isZero();if(s(r)){var t=r.toLowerCase();if("true"===t)return!0;if("false"===t)return!1;var f=Number(r);if(""!=r&&!isNaN(f))return 0!==f}if(o(r))return i.deepMap(r,u);throw new SyntaxError(r.toString()+" is no valid boolean")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=o.isCollection,s=r.number.isNumber,u=r.string.isString,f=i.isComplex;e.complex=function c(){switch(arguments.length){case 0:return new i(0,0);case 1:var r=arguments[0];if(s(r))return new i(r,0);if(r instanceof n)return new i(r.toNumber(),0);if(f(r))return r.clone();if(u(r)){var t=i.parse(r);if(t)return t;throw new SyntaxError('String "'+r+'" is no valid complex number')}if(a(r))return o.deepMap(r,c);if("object"==typeof r){if("re"in r&&"im"in r)return new i(r.re,r.im);if("r"in r&&"phi"in r)return i.fromPolar(r.r,r.phi)}throw new TypeError("Two numbers, single string or an fitting object expected in function complex");case 2:var l=arguments[0],p=arguments[1];if(l instanceof n&&(l=l.toNumber()),p instanceof n&&(p=p.toNumber()),s(l)&&s(p))return new i(l,p);throw new TypeError("Two numbers or a single string expected in function complex");default:throw new e.error.ArgumentsError("complex",arguments.length,0,2)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),e.type.BigNumber),n=t(8);e.index=function(){var e=Array.prototype.slice.apply(arguments).map(function(e){return e instanceof r?e.toNumber():Array.isArray(e)?e.map(function(e){return e instanceof r?e.toNumber():e}):e}),t=new n;return n.apply(t,e),t}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),t(9));e.matrix=function(t){if(arguments.length>1)throw new e.error.ArgumentsError("matrix",arguments.length,0,1);return new r(t)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=e.type.Unit,o=t(13),a=o.isCollection,s=r.number.isNumber,u=r["boolean"].isBoolean,f=r.string.isString;e.number=function c(r,t){switch(arguments.length){case 0:return 0;case 1:if(a(r))return o.deepMap(r,c);if(r instanceof n)return r.toNumber();if(f(r)){var l=Number(r);if(isNaN(l)&&(l=Number(r.valueOf())),isNaN(l))throw new SyntaxError(r.toString()+" is no valid number");return l}if(u(r)||null===r)return+r;if(s(r))return r;if(r instanceof i)throw new Error("Second argument with valueless unit expected");throw new e.error.UnsupportedTypeError("number",e["typeof"](r));case 2:if(r instanceof i&&f(t)||t instanceof i)return r.toNumber(t);throw new e.error.UnsupportedTypeError("number",e["typeof"](r),e["typeof"](t));default:throw new e.error.ArgumentsError("number",arguments.length,0,1)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(15);e.parser=function(){return new r(e)}}},function(e){"use strict";e.exports=function(e){e.chain=function(r){return new e.chaining.Chain(r)},e.select=function(r){return console&&"function"==typeof console.log&&console.log('WARNING: Function "select" is renamed to "chain". It will be deprecated in v2.0.'),e.select=e.chain,e.chaining.Chain.prototype.select=e.select,e.chain(r)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(13),i=r.number,o=r.number.isNumber,a=n.isCollection;e.string=function s(r){switch(arguments.length){case 0:return"";case 1:return o(r)?i.format(r):a(r)?n.deepMap(r,s):null===r?"null":r.toString();default:throw new e.error.ArgumentsError("string",arguments.length,0,1)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(10),o=t(13),a=o.isCollection,s=r.string.isString;e.unit=function u(r){switch(arguments.length){case 1:var t=arguments[0];if(t instanceof i)return t.clone();if(s(t)){if(i.isValuelessUnit(t))return new i(null,t);var f=i.parse(t);if(f)return f;throw new SyntaxError('String "'+t+'" is no valid unit')}if(a(r))return o.deepMap(r,u);throw new TypeError("A string or a number and string expected in function unit");case 2:return arguments[0]instanceof n?new i(arguments[0].toNumber(),arguments[1]):new i(arguments[0],arguments[1]);default:throw new e.error.ArgumentsError("unit",arguments.length,1,2)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.and=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("and",arguments.length,2);if((s(r)||u(r)||null===r)&&(s(t)||u(t)||null===t))return!(!r||!t);if(f(r))return 0==r.re&&0==r.im?!1:p(!0,t);if(f(t))return 0==t.re&&0==t.im?!1:p(r,!0);if(r instanceof n)return r.isZero()||r.isNaN()?!1:p(!0,t);if(t instanceof n)return t.isZero()||t.isNaN()?!1:p(r,!0);if(c(r))return null===r.value||0==r.value?!1:p(!0,t);if(c(t))return null===t.value||0==t.value?!1:p(r,!0);if(l(r)||l(t))return a.deepMap2(r,t,p);throw new e.error.UnsupportedTypeError("and",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.not=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("not",arguments.length,1);if(s(r)||u(r)||null===r)return!r;if(f(r))return 0==r.re&&0==r.im;if(r instanceof n)return r.isZero()||r.isNaN();if(c(r))return null===r.value||0==r.value;if(l(r))return a.deepMap(r,p);throw new e.error.UnsupportedTypeError("not",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.or=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("or",arguments.length,2);if((s(r)||u(r)||null===r)&&(s(t)||u(t)||null===t))return!(!r&&!t);if(f(r))return 0==r.re&&0==r.im?p(!1,t):!0;if(f(t))return 0==t.re&&0==t.im?p(r,!1):!0;if(r instanceof n)return r.isZero()||r.isNaN()?p(!1,t):!0;if(t instanceof n)return t.isZero()||t.isNaN()?p(r,!1):!0;if(c(r))return null===r.value||0==r.value?p(!1,t):!0;if(c(t))return null===t.value||0==t.value?p(r,!1):!0;if(l(r)||l(t))return a.deepMap2(r,t,p);throw new e.error.UnsupportedTypeError("or",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.xor=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("xor",arguments.length,2);if((s(r)||u(r)||null===r)&&(s(t)||u(t)||null===t))return!!(!!r^!!t);if(f(r))return p(!(0==r.re&&0==r.im),t);if(f(t))return p(r,!(0==t.re&&0==t.im));if(r instanceof n)return p(!(r.isZero()||r.isNaN()),t);if(t instanceof n)return p(r,!(t.isZero()||t.isNaN()));if(c(r))return p(!(null===r.value||0==r.value),t);if(c(t))return p(r,!(null===t.value||0==t.value));if(l(r)||l(t))return a.deepMap2(r,t,p);throw new e.error.UnsupportedTypeError("xor",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){function r(t,n,i,o){if(i>o){if(t.length!=n.length)throw new e.error.DimensionError(t.length,n.length);for(var a=[],s=0;st;t++){var g=arguments[t];if(g instanceof o&&(m=!0),t==a-1&&(f(g)||g instanceof i)){if(n=p,p=g.valueOf(),!c(p))throw new TypeError("Integer number expected for dimension");if(0>p)throw new e.error.IndexError(p);if(t>0&&p>n)throw new e.error.IndexError(p,n+1)}else{if(!l(g))throw new e.error.UnsupportedTypeError("concat",e["typeof"](g));var d=s.clone(g).valueOf(),w=u.size(g.valueOf());if(h[t]=d,n=p,p=w.length-1,t>0&&p!=n)throw new e.error.DimensionError(n+1,p+1)}}if(0==h.length)throw new SyntaxError("At least one matrix expected");for(var x=h.shift();h.length;)x=r(x,h.shift(),p,0);return m?new o(x):x}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var i=n.size(r),o=n.size(t);if(1!=i.length||1!=o.length||3!=i[0]||3!=o[0])throw new RangeError("Vectors with length 3 expected (Size A = ["+i.join(", ")+"], B = ["+o.join(", ")+"])");return[e.subtract(e.multiply(r[1],t[2]),e.multiply(r[2],t[1])),e.subtract(e.multiply(r[2],t[0]),e.multiply(r[0],t[2])),e.subtract(e.multiply(r[0],t[1]),e.multiply(r[1],t[0]))]}var n=t(153),i=t(9);e.cross=function(t,n){if(t instanceof i){if(n instanceof i)return new i(r(t.toArray(),n.toArray()));if(Array.isArray(n))return new i(r(t.toArray(),n))}else if(Array.isArray(t)){if(n instanceof i)return new i(r(t,n.toArray()));if(Array.isArray(n))return r(t,n)}throw new e.error.UnsupportedTypeError("cross",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){if(1==t)return o.clone(r[0][0]);if(2==t)return e.subtract(e.multiply(r[0][0],r[1][1]),e.multiply(r[1][0],r[0][1]));for(var n=function(r){var t,n,i=new Array(r.length),o=0;for(t=1;tn;n++)i[t][n]=0;for(n=t+1;na;a++)i=e.multiply(n(i),r);return t%2==0?e.unaryMinus(i[0][0]):i[0][0]}var n=t(160),i=t(9),o=n.object,a=n.string;e.det=function(t){if(1!=arguments.length)throw new e.error.ArgumentsError("det",arguments.length,1);var n;switch(t instanceof i?n=t.size():t instanceof Array?(t=new i(t),n=t.size()):n=[],n.length){case 0:return o.clone(t);case 1:if(1==n[0])return o.clone(t.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+a.format(n)+")");case 2:var s=n[0],u=n[1];if(s==u)return r(t.clone().valueOf(),s,u);throw new RangeError("Matrix must be square (size: "+a.format(n)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+a.format(n)+")") +!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):"object"==typeof exports?exports.math=r():e.math=r()}(this,function(){return function(e){function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){e.exports=t(1)},function(e,r,t){"use strict";function n(e){if("function"!=typeof Object.create)throw new Error("ES5 not supported by this JavaScript engine. Please load the es5-shim and es5-sham library for compatibility.");var r={},a={matrix:"matrix",number:"number",precision:64,epsilon:1e-14};r.config=function(e){if(e){if(i.deepExtend(a,e),e.precision&&r.type.BigNumber.config({precision:e.precision}),t(2)(r,a),e.number&&e.number.defaultType)throw new Error("setting `number.defaultType` is deprecated. Use `number` instead.");if(e.number&&e.number.precision)throw new Error("setting `number.precision` is deprecated. Use `precision` instead.");if(e.matrix&&e.matrix.defaultType)throw new Error("setting `matrix.defaultType` is deprecated. Use `matrix` instead.");if(e.matrix&&e.matrix["default"])throw new Error("setting `matrix.default` is deprecated. Use `matrix` instead.");if(e.decimals)throw new Error("setting `decimals` is deprecated. Use `precision` instead.")}return i.clone(a)},r.create=n;var s=t(155).constructor();if("function"!=typeof s.prototype.clone&&(s.prototype.clone=function(){return this}),"function"==typeof s.convert)throw new Error("Cannot add function convert to BigNumber: function already exists");return s.convert=function(e){return o(e)>15?e:new s(e)},r.error=t(5),r.type={},r.type.Complex=t(6),r.type.Range=t(7),r.type.Index=t(8),r.type.Matrix=t(9),r.type.Unit=t(10),r.type.Help=t(11),r.type.ResultSet=t(12),r.type.BigNumber=s,r.collection=t(13),r.expression={},r.expression.node=t(16),r.expression.parse=t(14),r.expression.Parser=t(15),r.expression.docs=t(17),t(29)(r,a),t(30)(r,a),t(31)(r,a),t(32)(r,a),t(33)(r,a),t(34)(r,a),t(35)(r,a),t(36)(r,a),t(37)(r,a),t(38)(r,a),t(39)(r,a),t(40)(r,a),t(41)(r,a),t(42)(r,a),t(43)(r,a),t(44)(r,a),t(45)(r,a),t(46)(r,a),t(47)(r,a),t(48)(r,a),t(49)(r,a),t(50)(r,a),t(51)(r,a),t(52)(r,a),t(53)(r,a),t(54)(r,a),t(55)(r,a),t(56)(r,a),t(57)(r,a),t(58)(r,a),t(59)(r,a),t(60)(r,a),t(61)(r,a),t(62)(r,a),t(63)(r,a),t(64)(r,a),t(65)(r,a),t(66)(r,a),t(67)(r,a),t(68)(r,a),t(69)(r,a),t(70)(r,a),t(71)(r,a),t(72)(r,a),t(73)(r,a),t(74)(r,a),t(75)(r,a),t(76)(r,a),t(77)(r,a),t(78)(r,a),t(79)(r,a),t(80)(r,a),t(81)(r,a),t(82)(r,a),t(83)(r,a),t(84)(r,a),t(85)(r,a),t(86)(r,a),t(87)(r,a),t(88)(r,a),t(89)(r,a),t(90)(r,a),t(91)(r,a),t(92)(r,a),t(93)(r,a),t(94)(r,a),t(95)(r,a),t(96)(r,a),t(97)(r,a),t(98)(r,a),t(99)(r,a),t(100)(r,a),t(101)(r,a),t(102)(r,a),t(103)(r,a),t(104)(r,a),t(105)(r,a),t(106)(r,a),t(107)(r,a),t(108)(r,a),t(109)(r,a),t(110)(r,a),t(111)(r,a),t(112)(r,a),t(113)(r,a),t(114)(r,a),t(115)(r,a),t(116)(r,a),t(117)(r,a),t(118)(r,a),t(119)(r,a),t(120)(r,a),t(121)(r,a),t(122)(r,a),t(123)(r,a),t(124)(r,a),t(125)(r,a),t(126)(r,a),t(127)(r,a),t(128)(r,a),t(129)(r,a),t(130)(r,a),t(131)(r,a),t(132)(r,a),t(133)(r,a),t(134)(r,a),t(135)(r,a),t(136)(r,a),t(137)(r,a),t(138)(r,a),t(139)(r,a),t(140)(r,a),t(141)(r,a),t(142)(r,a),t(143)(r,a),t(144)(r,a),t(145)(r,a),t(146)(r,a),t(147)(r,a),t(148)(r,a),t(149)(r,a),t(150)(r,a),t(151)(r,a),r.ifElse=function(){throw new Error("Function ifElse is deprecated. Use the conditional operator instead.")},t(2)(r,a),t(18)(r,a),t(19)(r,a),t(20)(r,a),t(21)(r,a),t(22)(r,a),t(23)(r,a),t(24)(r,a),t(25)(r,a),t(26)(r,a),t(27)(r,a),r.chaining={},r.chaining.Chain=t(28)(r,a),r.chaining.Selector=r.chaining.Chain,r.config(a),r.config(e),r}var i=t(3),o=t(4).digits,a=n();"undefined"!=typeof window&&(window.mathjs=a),e.exports=a},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(152),i=t(6),o=e.type.BigNumber,a="bignumber"===r.number;e.pi=a?n.pi(r.precision):Math.PI,e.tau=a?n.tau(r.precision):2*Math.PI,e.e=a?n.e(r.precision):Math.E,e.phi=a?n.phi(r.precision):1.618033988749895,e.i=new i(0,1),e.Infinity=1/0,e.NaN=0/0,e["true"]=!0,e["false"]=!1,e["null"]=null,e.uninitialized=t(153).UNINITIALIZED,e.E=e.e,e.LN2=a?new o(2).ln():Math.LN2,e.LN10=a?new o(10).ln():Math.LN10,e.LOG2E=a?new o(1).div(new o(2).ln()):Math.LOG2E,e.LOG10E=a?new o(1).div(new o(10).ln()):Math.LOG10E,e.PI=e.pi,e.SQRT1_2=a?new o(.5).sqrt():Math.SQRT1_2,e.SQRT2=a?new o(2).sqrt():Math.SQRT2,e.version=t(154)}},function(e,r){"use strict";r.clone=function t(e){var r=typeof e;if("number"===r||"string"===r||"boolean"===r||null===e||void 0===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 Number)return new Number(e.valueOf());if(e instanceof String)return new String(e.valueOf());if(e instanceof Boolean)return new Boolean(e.valueOf());if(e instanceof Date)return new Date(e.valueOf());if(e instanceof RegExp)throw new TypeError("Cannot clone "+e);var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=t(e[i]));return n},r.extend=function(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t]);return e},r.deepExtend=function n(e,r){if(Array.isArray(r))throw new TypeError("Arrays are not supported by deepExtend");for(var t in r)if(r.hasOwnProperty(t))if(r[t]&&r[t].constructor===Object)void 0===e[t]&&(e[t]={}),e[t].constructor===Object?n(e[t],r[t]):e[t]=r[t];else{if(Array.isArray(r[t]))throw new TypeError("Arrays are not supported by deepExtend");e[t]=r[t]}return e},r.deepEqual=function(e,t){var n,i,o;if(Array.isArray(e)){if(!Array.isArray(t))return!1;if(e.length!=t.length)return!1;for(i=0,o=e.length;o>i;i++)if(!r.deepEqual(e[i],t[i]))return!1;return!0}if(e instanceof Object){if(Array.isArray(t)||!(t instanceof Object))return!1;for(n in e)if(!r.deepEqual(e[n],t[n]))return!1;for(n in t)if(!r.deepEqual(e[n],t[n]))return!1;return!0}return typeof e==typeof t&&e==t}},function(e,r){"use strict";r.isNumber=function(e){return e instanceof Number||"number"==typeof e},r.isInteger=function(e){return e==Math.round(e)},r.sign=function(e){return e>0?1:0>e?-1:0},r.format=function(e,t){if("function"==typeof t)return t(e);if(1/0===e)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var n="auto",i=void 0;switch(t&&(t.notation&&(n=t.notation),r.isNumber(t)?i=t:t.precision&&(i=t.precision)),n){case"fixed":return r.toFixed(e,i);case"exponential":return r.toExponential(e,i);case"auto":var o=.001,a=1e5;if(t&&t.exponential&&(void 0!==t.exponential.lower&&(o=t.exponential.lower),void 0!==t.exponential.upper&&(a=t.exponential.upper)),0===e)return"0";var s,u=Math.abs(e);if(u>=o&&a>u){var f=i?e.toPrecision(Math.min(i,21)):e.toPrecision();s=parseFloat(f)+""}else s=r.toExponential(e,i);return s.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],r=arguments[4];return"."!==e?e+r:r});default:throw new Error('Unknown notation "'+n+'". Choose "auto", "exponential", or "fixed".')}},r.toExponential=function(e,r){return void 0!==r?e.toExponential(Math.min(r-1,20)):e.toExponential()},r.toFixed=function(e,r){return e.toFixed(Math.min(r,20))},r.digits=function(e){return e.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length},r.DBL_EPSILON=Number.EPSILON||2.220446049250313e-16,r.nearlyEqual=function(e,t,n){if(null==n)return e==t;if(e==t)return!0;if(isNaN(e)||isNaN(t))return!1;if(isFinite(e)&&isFinite(t)){var i=Math.abs(e-t);return i="0"&&"9">=e||"."==e}function a(e){return e>="0"&&"9">=e}function s(){x++,y=w.charAt(x)}function u(e){x=e,y=w.charAt(x)}function f(){var e,r="";if(e=x,"+"==y?s():"-"==y&&(r+=y,s()),!o(y))return u(e),null;if("."==y){if(r+=y,s(),!a(y))return u(e),null}else{for(;a(y);)r+=y,s();"."==y&&(r+=y,s())}for(;a(y);)r+=y,s();if("E"==y||"e"==y){if(r+=y,s(),("+"==y||"-"==y)&&(r+=y,s()),!a(y))return u(e),null;for(;a(y);)r+=y,s()}return r}function c(){var e=w.charAt(x+1);if("I"==y||"i"==y)return s(),"1";if(!("+"!=y&&"-"!=y||"I"!=e&&"i"!=e)){var r="+"==y?"1":"-1";return s(),s(),r}return null}var l=t(160),p=t(10),m=l.number,h=l.number.isNumber,g=p.isUnit,d=l.string.isString;n.isComplex=function(e){return e instanceof n};var w,x,y;n.parse=function(e){if(w=e,x=-1,y="",!d(w))return null;s(),i();var r=f();if(r){if("I"==y||"i"==y)return s(),i(),y?null:new n(0,Number(r));i();var t=y;if("+"!=t&&"-"!=t)return i(),y?null:new n(Number(r),0);s(),i();var o=f();if(o){if("I"!=y&&"i"!=y)return null;s()}else if(o=c(),!o)return null;return"-"==t&&(o="-"==o[0]?"+"+o.substring(1):"-"+o),s(),i(),y?null:new n(Number(r),Number(o))}return(r=c())?(i(),y?null:new n(0,Number(r))):null},n.fromPolar=function(){switch(arguments.length){case 1:var e=arguments[0];if("object"==typeof e)return n.fromPolar(e.r,e.phi);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var r=arguments[0],t=arguments[1];if(h(r)){if(g(t)&&t.hasBase(p.BASE_UNITS.ANGLE)&&(t=t.toNumber("rad")),h(t))return new n(r*Math.cos(t),r*Math.sin(t));throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},n.prototype.toPolar=function(){return{r:Math.sqrt(this.re*this.re+this.im*this.im),phi:Math.atan2(this.im,this.re)}},n.prototype.clone=function(){return new n(this.re,this.im)},n.prototype.equals=function(e){return this.re===e.re&&this.im===e.im},n.prototype.format=function(e){var r="",t=m.format(this.re,e),n=m.format(this.im,e);return r=0==this.im?t:0==this.re?1==this.im?"i":-1==this.im?"-i":n+"i":this.im>0?1==this.im?t+" + i":t+" + "+n+"i":-1==this.im?t+" - i":t+" - "+n.substring(1)+"i"},n.prototype.toString=function(){return this.format()},n.prototype.valueOf=n.prototype.toString,e.exports=n},function(e,r,t){"use strict";function n(e,r,t){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(null!=e&&!o.isNumber(e))throw new TypeError("Parameter start must be a number");if(null!=r&&!o.isNumber(r))throw new TypeError("Parameter end must be a number");if(null!=t&&!o.isNumber(t))throw new TypeError("Parameter step must be a number");this.start=null!=e?parseFloat(e):0,this.end=null!=r?parseFloat(r):0,this.step=null!=t?parseFloat(t):1}{var i=t(160),o=i.number,a=i.string;i.array}n.parse=function(e){if(!a.isString(e))return null;var r=e.split(":"),t=r.map(function(e){return parseFloat(e)}),i=t.some(function(e){return isNaN(e)});if(i)return null;switch(t.length){case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[2],t[1]);default:return null}},n.prototype.clone=function(){return new n(this.start,this.end,this.step)},n.isRange=function(e){return e instanceof n},n.prototype.size=function(){var e=0,r=this.start,t=this.step,n=this.end,i=n-r;return o.sign(t)==o.sign(i)?e=Math.ceil(i/t):0==i&&(e=0),isNaN(e)&&(e=0),[e]},n.prototype.min=function(){var e=this.size()[0];return e>0?this.step>0?this.start:this.start+(e-1)*this.step:void 0},n.prototype.max=function(){var e=this.size()[0];return e>0?this.step>0?this.start+(e-1)*this.step:this.start:void 0},n.prototype.forEach=function(e){var r=this.start,t=this.step,n=this.end,i=0;if(t>0)for(;n>r;)e(r,i,this),r+=t,i++;else if(0>t)for(;r>n;)e(r,i,this),r+=t,i++},n.prototype.map=function(e){var r=[];return this.forEach(function(t,n,i){r[n]=e(t,n,i)}),r},n.prototype.toArray=function(){var e=[];return this.forEach(function(r,t){e[t]=r}),e},n.prototype.valueOf=function(){return this.toArray()},n.prototype.format=function(e){var r=o.format(this.start,e);return 1!=this.step&&(r+=":"+o.format(this.step,e)),r+=":"+o.format(this.end,e)},n.prototype.toString=function(){return this.format()},e.exports=n},function(e,r,t){"use strict";function n(){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this._ranges=[],this._isScalar=!0;for(var e=0,r=arguments.length;r>e;e++){var t=arguments[e];if(t instanceof a)this._ranges.push(t),this._isScalar=!1;else if(c(t))this._ranges.push(i(t)),this._isScalar=!1;else if(u(t))this._ranges.push(i([t,t+1]));else{var o=t.valueOf();if(!c(o))throw new TypeError("Ranges must be an Array, Number, or Range");this._ranges.push(i(o)),this._isScalar=!1}}}function i(e){for(var r=e.length,t=0;r>t;t++)if(!u(e[t])||!f(e[t]))throw new TypeError("Index parameters must be integer numbers");switch(e.length){case 2:return new a(e[0],e[1]);case 3:return new a(e[0],e[1],e[2]);default:throw new SyntaxError("Wrong number of arguments in Index (2 or 3 expected)")}}var o=t(160),a=t(7),s=o.number,u=s.isNumber,f=s.isInteger,c=Array.isArray;n.prototype.clone=function(){var e=new n;return e._ranges=o.object.clone(this._ranges),e._isScalar=this._isScalar,e},n.isIndex=function(e){return e instanceof n},n.create=function(e){var r=new n;return n.apply(r,e),r},n.prototype.size=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r];e[r]=n.size()[0]}return e},n.prototype.max=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r];e[r]=n.max()}return e},n.prototype.min=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r];e[r]=n.min()}return e},n.prototype.forEach=function(e){for(var r=0,t=this._ranges.length;t>r;r++)e(this._ranges[r],r,this)},n.prototype.range=function(e){return this._ranges[e]||null},n.prototype.isScalar=function(){return this._isScalar},n.prototype.toArray=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r],i=[],o=n.start,a=n.end,s=n.step;if(s>0)for(;a>o;)i.push(o),o+=s;else if(0>s)for(;o>a;)i.push(o),o+=s;e.push(i)}return e},n.prototype.valueOf=n.prototype.toArray,n.prototype.toString=function(){for(var e=[],r=0,t=this._ranges.length;t>r;r++){var n=this._ranges[r],i=s.format(n.start);1!=n.step&&(i+=":"+s.format(n.step)),i+=":"+s.format(n.end),e.push(i)}return"["+e.join(", ")+"]"},e.exports=n},function(e,r,t){"use strict";function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(e instanceof n)this._data=e.clone()._data;else if(d(e))this._data=f(e);else{if(null!=e)throw new TypeError("Unsupported type of data ("+c.types.type(e)+")");this._data=[]}this._size=h.size(this._data)}function i(e,r){if(!(r instanceof p))throw new TypeError("Invalid index");var t=r.isScalar();if(t)return e.get(r.min());var i=r.size();if(i.length!=e._size.length)throw new l(i.length,e._size.length);for(var a=r.min(),s=r.max(),u=0,f=e._size.length;f>u;u++)w(a[u],e._size[u]),w(s[u],e._size[u]);return new n(o(e._data,r,i.length,0))}function o(e,r,t,n){var i=n==t-1,a=r.range(n);return a.map(i?function(r){return e[r]}:function(i){var a=e[i];return o(a,r,t,n+1)})}function a(e,r,t,i){if(!(r instanceof p))throw new TypeError("Invalid index");var o,a=r.size(),f=r.isScalar();if(t instanceof n?(o=t.size(),t=t.valueOf()):o=h.size(t),f){if(0!=o.length)throw new TypeError("Scalar expected");e.set(r.min(),t,i)}else{if(a.length");var d=r.max().map(function(e){return e+1});u(e,d,i);var w=a.length,x=0;s(e._data,r,t,w,x)}return e}function s(e,r,t,n,i){var o=i==n-1,a=r.range(i);a.forEach(o?function(r,n){w(r),e[r]=t[n]}:function(o,a){w(o),s(e[o],r,t[a],n,i+1)})}function u(e,r,t){for(var n=g.clone(e._size),i=!1;n.lengtho;o++)r[o]>n[o]&&(n[o]=r[o],i=!0);i&&e.resize(n,t)}function f(e){for(var r=0,t=e.length;t>r;r++){var i=e[r];d(i)?e[r]=f(i):i instanceof n&&(e[r]=f(i._data))}return e}var c=t(160),l=t(157),p=t(8),m=(c.number,c.string),h=c.array,g=c.object,d=Array.isArray,w=h.validateIndex;n.isMatrix=function(e){return e instanceof n},n.prototype.subset=function(e,r,t){switch(arguments.length){case 1:return i(this,e);case 2:case 3:return a(this,e,r,t);default:throw new SyntaxError("Wrong number of arguments")}},n.prototype.get=function(e){if(!d(e))throw new TypeError("Array expected");if(e.length!=this._size.length)throw new l(e.length,this._size.length);for(var r=this._data,t=0,n=e.length;n>t;t++){var i=e[t];w(i,r.length),r=r[i]}return g.clone(r)},n.prototype.set=function(e,r,t){var n,i;if(!d(e))throw new Error("Array expected");if(e.lengthn;n++){var s=e[n];w(s,a.length),a=a[s]}return s=e[e.length-1],w(s,a.length),a[s]=r,this},n.prototype.resize=function(e,r){return this._size=g.clone(e),this._data=h.resize(this._data,this._size,r),this},n.prototype.clone=function(){var e=new n;return e._data=g.clone(this._data),e._size=g.clone(this._size),e},n.prototype.size=function(){return this._size},n.prototype.map=function(e){var r=this,t=new n,i=function(t,n){return d(t)?t.map(function(e,r){return i(e,n.concat(r))}):e(t,n,r)};return t._data=i(this._data,[]),t._size=g.clone(this._size),t},n.prototype.forEach=function(e){var r=this,t=function(n,i){d(n)?n.forEach(function(e,r){t(e,i.concat(r))}):e(n,i,r)};t(this._data,[])},n.prototype.toArray=function(){return g.clone(this._data)},n.prototype.valueOf=function(){return this._data},n.prototype.format=function(e){return m.format(this._data,e)},n.prototype.toString=function(){return m.format(this._data)},e.exports=n},function(e,r,t){"use strict";function n(e,r){if(!(this instanceof n))throw new Error("Constructor must be called with the new operator");if(void 0!=e&&!x(e))throw new TypeError("First parameter in Unit constructor must be a number");if(void 0!=r&&(!y(r)||""==r))throw new TypeError("Second parameter in Unit constructor must be a string");if(void 0!=r){var t=l(r);if(!t)throw new SyntaxError('Unknown unit "'+r+'"');this.unit=t.unit,this.prefix=t.prefix}else this.unit=A,this.prefix=b;this.value=void 0!=e?this._normalize(e):null,this.fixPrefix=!1}function i(){for(;" "==h||" "==h;)s()}function o(e){return e>="0"&&"9">=e||"."==e}function a(e){return e>="0"&&"9">=e}function s(){m++,h=p.charAt(m)}function u(e){m=e,h=p.charAt(m)}function f(){var e,r="";if(e=m,"+"==h?s():"-"==h&&(r+=h,s()),!o(h))return u(e),null;if("."==h){if(r+=h,s(),!a(h))return u(e),null}else{for(;a(h);)r+=h,s();"."==h&&(r+=h,s())}for(;a(h);)r+=h,s();if("E"==h||"e"==h){if(r+=h,s(),("+"==h||"-"==h)&&(r+=h,s()),!a(h))return u(e),null;for(;a(h);)r+=h,s()}return r}function c(){var e="";for(i();h&&" "!=h&&" "!=h;)e+=h,s();return e||null}function l(e){for(var r in M)if(M.hasOwnProperty(r)&&w.endsWith(e,r)){var t=M[r],n=e.length-r.length,i=e.substring(0,n),o=t.prefixes[i];if(void 0!==o)return{unit:t,prefix:o}}return null}var p,m,h,g=t(160),d=g.number,w=g.string,x=g.number.isNumber,y=g.string.isString;n.parse=function(e){if(p=e,m=-1,h="",!y(p))return null;s(),i();var r,t=f();if(t){if(r=c(),s(),i(),h)return null;if(t&&r)try{return new n(Number(t),r)}catch(o){}}else{if(r=c(),s(),i(),h)return null;if(r)try{return new n(null,r)}catch(o){}}return null},n.isUnit=function(e){return e instanceof n},n.prototype.clone=function(){var e=new n;for(var r in this)this.hasOwnProperty(r)&&(e[r]=this[r]);return e},n.prototype._normalize=function(e){return(e+this.unit.offset)*this.unit.value*this.prefix.value},n.prototype._unnormalize=function(e,r){return void 0==r?e/this.unit.value/this.prefix.value-this.unit.offset:e/this.unit.value/r-this.unit.offset},n.isValuelessUnit=function(e){return null!=l(e)},n.prototype.hasBase=function(e){return this.unit.base===e},n.prototype.equalBase=function(e){return this.unit.base===e.unit.base},n.prototype.equals=function(e){return this.equalBase(e)&&this.value==e.value},n.prototype.to=function(e){var r,t=null==this.value?this._normalize(1):this.value;if(y(e)){if(r=new n(null,e),!this.equalBase(r))throw new Error("Units do not match");return r.value=t,r.fixPrefix=!0,r}if(e instanceof n){if(!this.equalBase(e))throw new Error("Units do not match");if(null!==e.value)throw new Error("Cannot convert to a unit with a value");return r=e.clone(),r.value=t,r.fixPrefix=!0,r}throw new Error("String or Unit expected as parameter")},n.prototype.toNumber=function(e){var r=this.to(e);return r._unnormalize(r.value,r.prefix.value)},n.prototype.toString=function(){return this.format()},n.prototype.valueOf=n.prototype.toString,n.prototype.format=function(e){var r,t;if(null===this.value||this.fixPrefix)r=this._unnormalize(this.value),t=null!==this.value?d.format(r,e)+" ":"",t+=this.prefix.name+this.unit.name;else{var n=this._bestPrefix();r=this._unnormalize(this.value,n.value),t=d.format(r,e)+" ",t+=n.name+this.unit.name}return t},n.prototype._bestPrefix=function(){var e=Math.abs(this.value/this.unit.value),r=b,t=Math.abs(Math.log(e/r.value)/Math.LN10-1.2),n=this.unit.prefixes;for(var i in n)if(n.hasOwnProperty(i)){var o=n[i];if(o.scientific){var a=Math.abs(Math.log(e/o.value)/Math.LN10-1.2);t>a&&(r=o,t=a)}}return r};var v={NONE:{"":{name:"",value:1,scientific:!0}},SHORT:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:10,scientific:!1},h:{name:"h",value:100,scientific:!1},k:{name:"k",value:1e3,scientific:!0},M:{name:"M",value:1e6,scientific:!0},G:{name:"G",value:1e9,scientific:!0},T:{name:"T",value:1e12,scientific:!0},P:{name:"P",value:1e15,scientific:!0},E:{name:"E",value:1e18,scientific:!0},Z:{name:"Z",value:1e21,scientific:!0},Y:{name:"Y",value:1e24,scientific:!0},d:{name:"d",value:.1,scientific:!1},c:{name:"c",value:.01,scientific:!1},m:{name:"m",value:.001,scientific:!0},u:{name:"u",value:1e-6,scientific:!0},n:{name:"n",value:1e-9,scientific:!0},p:{name:"p",value:1e-12,scientific:!0},f:{name:"f",value:1e-15,scientific:!0},a:{name:"a",value:1e-18,scientific:!0},z:{name:"z",value:1e-21,scientific:!0},y:{name:"y",value:1e-24,scientific:!0}},LONG:{"":{name:"",value:1,scientific:!0},deca:{name:"deca",value:10,scientific:!1},hecto:{name:"hecto",value:100,scientific:!1},kilo:{name:"kilo",value:1e3,scientific:!0},mega:{name:"mega",value:1e6,scientific:!0},giga:{name:"giga",value:1e9,scientific:!0},tera:{name:"tera",value:1e12,scientific:!0},peta:{name:"peta",value:1e15,scientific:!0},exa:{name:"exa",value:1e18,scientific:!0},zetta:{name:"zetta",value:1e21,scientific:!0},yotta:{name:"yotta",value:1e24,scientific:!0},deci:{name:"deci",value:.1,scientific:!1},centi:{name:"centi",value:.01,scientific:!1},milli:{name:"milli",value:.001,scientific:!0},micro:{name:"micro",value:1e-6,scientific:!0},nano:{name:"nano",value:1e-9,scientific:!0},pico:{name:"pico",value:1e-12,scientific:!0},femto:{name:"femto",value:1e-15,scientific:!0},atto:{name:"atto",value:1e-18,scientific:!0},zepto:{name:"zepto",value:1e-21,scientific:!0},yocto:{name:"yocto",value:1e-24,scientific:!0}},SQUARED:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:100,scientific:!1},h:{name:"h",value:1e4,scientific:!1},k:{name:"k",value:1e6,scientific:!0},M:{name:"M",value:1e12,scientific:!0},G:{name:"G",value:1e18,scientific:!0},T:{name:"T",value:1e24,scientific:!0},P:{name:"P",value:1e30,scientific:!0},E:{name:"E",value:1e36,scientific:!0},Z:{name:"Z",value:1e42,scientific:!0},Y:{name:"Y",value:1e48,scientific:!0},d:{name:"d",value:.01,scientific:!1},c:{name:"c",value:1e-4,scientific:!1},m:{name:"m",value:1e-6,scientific:!0},u:{name:"u",value:1e-12,scientific:!0},n:{name:"n",value:1e-18,scientific:!0},p:{name:"p",value:1e-24,scientific:!0},f:{name:"f",value:1e-30,scientific:!0},a:{name:"a",value:1e-36,scientific:!0},z:{name:"z",value:1e-42,scientific:!0},y:{name:"y",value:1e-42,scientific:!0}},CUBIC:{"":{name:"",value:1,scientific:!0},da:{name:"da",value:1e3,scientific:!1},h:{name:"h",value:1e6,scientific:!1},k:{name:"k",value:1e9,scientific:!0},M:{name:"M",value:1e18,scientific:!0},G:{name:"G",value:1e27,scientific:!0},T:{name:"T",value:1e36,scientific:!0},P:{name:"P",value:1e45,scientific:!0},E:{name:"E",value:1e54,scientific:!0},Z:{name:"Z",value:1e63,scientific:!0},Y:{name:"Y",value:1e72,scientific:!0},d:{name:"d",value:.001,scientific:!1},c:{name:"c",value:1e-6,scientific:!1},m:{name:"m",value:1e-9,scientific:!0},u:{name:"u",value:1e-18,scientific:!0},n:{name:"n",value:1e-27,scientific:!0},p:{name:"p",value:1e-36,scientific:!0},f:{name:"f",value:1e-45,scientific:!0},a:{name:"a",value:1e-54,scientific:!0},z:{name:"z",value:1e-63,scientific:!0},y:{name:"y",value:1e-72,scientific:!0}},BINARY_SHORT:{"":{name:"",value:1,scientific:!0},k:{name:"k",value:1024,scientific:!0},M:{name:"M",value:Math.pow(1024,2),scientific:!0},G:{name:"G",value:Math.pow(1024,3),scientific:!0},T:{name:"T",value:Math.pow(1024,4),scientific:!0},P:{name:"P",value:Math.pow(1024,5),scientific:!0},E:{name:"E",value:Math.pow(1024,6),scientific:!0},Z:{name:"Z",value:Math.pow(1024,7),scientific:!0},Y:{name:"Y",value:Math.pow(1024,8),scientific:!0},Ki:{name:"Ki",value:1024,scientific:!0},Mi:{name:"Mi",value:Math.pow(1024,2),scientific:!0},Gi:{name:"Gi",value:Math.pow(1024,3),scientific:!0},Ti:{name:"Ti",value:Math.pow(1024,4),scientific:!0},Pi:{name:"Pi",value:Math.pow(1024,5),scientific:!0},Ei:{name:"Ei",value:Math.pow(1024,6),scientific:!0},Zi:{name:"Zi",value:Math.pow(1024,7),scientific:!0},Yi:{name:"Yi",value:Math.pow(1024,8),scientific:!0}},BINARY_LONG:{"":{name:"",value:1,scientific:!0},kilo:{name:"kilo",value:1024,scientific:!0},mega:{name:"mega",value:Math.pow(1024,2),scientific:!0},giga:{name:"giga",value:Math.pow(1024,3),scientific:!0},tera:{name:"tera",value:Math.pow(1024,4),scientific:!0},peta:{name:"peta",value:Math.pow(1024,5),scientific:!0},exa:{name:"exa",value:Math.pow(1024,6),scientific:!0},zetta:{name:"zetta",value:Math.pow(1024,7),scientific:!0},yotta:{name:"yotta",value:Math.pow(1024,8),scientific:!0},kibi:{name:"kibi",value:1024,scientific:!0},mebi:{name:"mebi",value:Math.pow(1024,2),scientific:!0},gibi:{name:"gibi",value:Math.pow(1024,3),scientific:!0},tebi:{name:"tebi",value:Math.pow(1024,4),scientific:!0},pebi:{name:"pebi",value:Math.pow(1024,5),scientific:!0},exi:{name:"exi",value:Math.pow(1024,6),scientific:!0},zebi:{name:"zebi",value:Math.pow(1024,7),scientific:!0},yobi:{name:"yobi",value:Math.pow(1024,8),scientific:!0}}},b={name:"",value:1,scientific:!0},E={NONE:{},LENGTH:{},MASS:{},TIME:{},CURRENT:{},TEMPERATURE:{},LUMINOUS_INTENSITY:{},AMOUNT_OF_SUBSTANCE:{},FORCE:{},SURFACE:{},VOLUME:{},ANGLE:{},BIT:{}},N={},A={name:"",base:N,value:1,offset:0},M={meter:{name:"meter",base:E.LENGTH,prefixes:v.LONG,value:1,offset:0},inch:{name:"inch",base:E.LENGTH,prefixes:v.NONE,value:.0254,offset:0},foot:{name:"foot",base:E.LENGTH,prefixes:v.NONE,value:.3048,offset:0},yard:{name:"yard",base:E.LENGTH,prefixes:v.NONE,value:.9144,offset:0},mile:{name:"mile",base:E.LENGTH,prefixes:v.NONE,value:1609.344,offset:0},link:{name:"link",base:E.LENGTH,prefixes:v.NONE,value:.201168,offset:0},rod:{name:"rod",base:E.LENGTH,prefixes:v.NONE,value:5.02921,offset:0},chain:{name:"chain",base:E.LENGTH,prefixes:v.NONE,value:20.1168,offset:0},angstrom:{name:"angstrom",base:E.LENGTH,prefixes:v.NONE,value:1e-10,offset:0},m:{name:"m",base:E.LENGTH,prefixes:v.SHORT,value:1,offset:0},"in":{name:"in",base:E.LENGTH,prefixes:v.NONE,value:.0254,offset:0},ft:{name:"ft",base:E.LENGTH,prefixes:v.NONE,value:.3048,offset:0},yd:{name:"yd",base:E.LENGTH,prefixes:v.NONE,value:.9144,offset:0},mi:{name:"mi",base:E.LENGTH,prefixes:v.NONE,value:1609.344,offset:0},li:{name:"li",base:E.LENGTH,prefixes:v.NONE,value:.201168,offset:0},rd:{name:"rd",base:E.LENGTH,prefixes:v.NONE,value:5.02921,offset:0},ch:{name:"ch",base:E.LENGTH,prefixes:v.NONE,value:20.1168,offset:0},mil:{name:"mil",base:E.LENGTH,prefixes:v.NONE,value:254e-7,offset:0},m2:{name:"m2",base:E.SURFACE,prefixes:v.SQUARED,value:1,offset:0},sqin:{name:"sqin",base:E.SURFACE,prefixes:v.NONE,value:64516e-8,offset:0},sqft:{name:"sqft",base:E.SURFACE,prefixes:v.NONE,value:.09290304,offset:0},sqyd:{name:"sqyd",base:E.SURFACE,prefixes:v.NONE,value:.83612736,offset:0},sqmi:{name:"sqmi",base:E.SURFACE,prefixes:v.NONE,value:2589988.110336,offset:0},sqrd:{name:"sqrd",base:E.SURFACE,prefixes:v.NONE,value:25.29295,offset:0},sqch:{name:"sqch",base:E.SURFACE,prefixes:v.NONE,value:404.6873,offset:0},sqmil:{name:"sqmil",base:E.SURFACE,prefixes:v.NONE,value:6.4516e-10,offset:0},m3:{name:"m3",base:E.VOLUME,prefixes:v.CUBIC,value:1,offset:0},L:{name:"L",base:E.VOLUME,prefixes:v.SHORT,value:.001,offset:0},l:{name:"l",base:E.VOLUME,prefixes:v.SHORT,value:.001,offset:0},litre:{name:"litre",base:E.VOLUME,prefixes:v.LONG,value:.001,offset:0},cuin:{name:"cuin",base:E.VOLUME,prefixes:v.NONE,value:16387064e-12,offset:0},cuft:{name:"cuft",base:E.VOLUME,prefixes:v.NONE,value:.028316846592,offset:0},cuyd:{name:"cuyd",base:E.VOLUME,prefixes:v.NONE,value:.764554857984,offset:0},teaspoon:{name:"teaspoon",base:E.VOLUME,prefixes:v.NONE,value:5e-6,offset:0},tablespoon:{name:"tablespoon",base:E.VOLUME,prefixes:v.NONE,value:15e-6,offset:0},drop:{name:"drop",base:E.VOLUME,prefixes:v.NONE,value:5e-8,offset:0},gtt:{name:"gtt",base:E.VOLUME,prefixes:v.NONE,value:5e-8,offset:0},minim:{name:"minim",base:E.VOLUME,prefixes:v.NONE,value:6.161152e-8,offset:0},fluiddram:{name:"fluiddram",base:E.VOLUME,prefixes:v.NONE,value:36966911e-13,offset:0},fluidounce:{name:"fluidounce",base:E.VOLUME,prefixes:v.NONE,value:2957353e-11,offset:0},gill:{name:"gill",base:E.VOLUME,prefixes:v.NONE,value:.0001182941,offset:0},cc:{name:"cc",base:E.VOLUME,prefixes:v.NONE,value:1e-6,offset:0},cup:{name:"cup",base:E.VOLUME,prefixes:v.NONE,value:.0002365882,offset:0},pint:{name:"pint",base:E.VOLUME,prefixes:v.NONE,value:.0004731765,offset:0},quart:{name:"quart",base:E.VOLUME,prefixes:v.NONE,value:.0009463529,offset:0},gallon:{name:"gallon",base:E.VOLUME,prefixes:v.NONE,value:.003785412,offset:0},beerbarrel:{name:"beerbarrel",base:E.VOLUME,prefixes:v.NONE,value:.1173478,offset:0},oilbarrel:{name:"oilbarrel",base:E.VOLUME,prefixes:v.NONE,value:.1589873,offset:0},hogshead:{name:"hogshead",base:E.VOLUME,prefixes:v.NONE,value:.238481,offset:0},fldr:{name:"fldr",base:E.VOLUME,prefixes:v.NONE,value:36966911e-13,offset:0},floz:{name:"floz",base:E.VOLUME,prefixes:v.NONE,value:2957353e-11,offset:0},gi:{name:"gi",base:E.VOLUME,prefixes:v.NONE,value:.0001182941,offset:0},cp:{name:"cp",base:E.VOLUME,prefixes:v.NONE,value:.0002365882,offset:0},pt:{name:"pt",base:E.VOLUME,prefixes:v.NONE,value:.0004731765,offset:0},qt:{name:"qt",base:E.VOLUME,prefixes:v.NONE,value:.0009463529,offset:0},gal:{name:"gal",base:E.VOLUME,prefixes:v.NONE,value:.003785412,offset:0},bbl:{name:"bbl",base:E.VOLUME,prefixes:v.NONE,value:.1173478,offset:0},obl:{name:"obl",base:E.VOLUME,prefixes:v.NONE,value:.1589873,offset:0},g:{name:"g",base:E.MASS,prefixes:v.SHORT,value:.001,offset:0},gram:{name:"gram",base:E.MASS,prefixes:v.LONG,value:.001,offset:0},ton:{name:"ton",base:E.MASS,prefixes:v.SHORT,value:907.18474,offset:0},tonne:{name:"tonne",base:E.MASS,prefixes:v.SHORT,value:1e3,offset:0},grain:{name:"grain",base:E.MASS,prefixes:v.NONE,value:6479891e-11,offset:0},dram:{name:"dram",base:E.MASS,prefixes:v.NONE,value:.0017718451953125,offset:0},ounce:{name:"ounce",base:E.MASS,prefixes:v.NONE,value:.028349523125,offset:0},poundmass:{name:"poundmass",base:E.MASS,prefixes:v.NONE,value:.45359237,offset:0},hundredweight:{name:"hundredweight",base:E.MASS,prefixes:v.NONE,value:45.359237,offset:0},stick:{name:"stick",base:E.MASS,prefixes:v.NONE,value:.115,offset:0},gr:{name:"gr",base:E.MASS,prefixes:v.NONE,value:6479891e-11,offset:0},dr:{name:"dr",base:E.MASS,prefixes:v.NONE,value:.0017718451953125,offset:0},oz:{name:"oz",base:E.MASS,prefixes:v.NONE,value:.028349523125,offset:0},lbm:{name:"lbm",base:E.MASS,prefixes:v.NONE,value:.45359237,offset:0},cwt:{name:"cwt",base:E.MASS,prefixes:v.NONE,value:45.359237,offset:0},s:{name:"s",base:E.TIME,prefixes:v.SHORT,value:1,offset:0},min:{name:"min",base:E.TIME,prefixes:v.NONE,value:60,offset:0},h:{name:"h",base:E.TIME,prefixes:v.NONE,value:3600,offset:0},second:{name:"second",base:E.TIME,prefixes:v.LONG,value:1,offset:0},sec:{name:"sec",base:E.TIME,prefixes:v.LONG,value:1,offset:0},minute:{name:"minute",base:E.TIME,prefixes:v.NONE,value:60,offset:0},hour:{name:"hour",base:E.TIME,prefixes:v.NONE,value:3600,offset:0},day:{name:"day",base:E.TIME,prefixes:v.NONE,value:86400,offset:0},rad:{name:"rad",base:E.ANGLE,prefixes:v.NONE,value:1,offset:0},deg:{name:"deg",base:E.ANGLE,prefixes:v.NONE,value:.017453292519943295,offset:0},grad:{name:"grad",base:E.ANGLE,prefixes:v.NONE,value:.015707963267948967,offset:0},cycle:{name:"cycle",base:E.ANGLE,prefixes:v.NONE,value:6.283185307179586,offset:0},A:{name:"A",base:E.CURRENT,prefixes:v.SHORT,value:1,offset:0},ampere:{name:"ampere",base:E.CURRENT,prefixes:v.LONG,value:1,offset:0},K:{name:"K",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:0},degC:{name:"degC",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:273.15},degF:{name:"degF",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:459.67},degR:{name:"degR",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:0},kelvin:{name:"kelvin",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:0},celsius:{name:"celsius",base:E.TEMPERATURE,prefixes:v.NONE,value:1,offset:273.15},fahrenheit:{name:"fahrenheit",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:459.67},rankine:{name:"rankine",base:E.TEMPERATURE,prefixes:v.NONE,value:1/1.8,offset:0},mol:{name:"mol",base:E.AMOUNT_OF_SUBSTANCE,prefixes:v.NONE,value:1,offset:0},mole:{name:"mole",base:E.AMOUNT_OF_SUBSTANCE,prefixes:v.NONE,value:1,offset:0},cd:{name:"cd",base:E.LUMINOUS_INTENSITY,prefixes:v.NONE,value:1,offset:0},candela:{name:"candela",base:E.LUMINOUS_INTENSITY,prefixes:v.NONE,value:1,offset:0},N:{name:"N",base:E.FORCE,prefixes:v.SHORT,value:1,offset:0},newton:{name:"newton",base:E.FORCE,prefixes:v.LONG,value:1,offset:0},lbf:{name:"lbf",base:E.FORCE,prefixes:v.NONE,value:4.4482216152605,offset:0},poundforce:{name:"poundforce",base:E.FORCE,prefixes:v.NONE,value:4.4482216152605,offset:0},b:{name:"b",base:E.BIT,prefixes:v.BINARY_SHORT,value:1,offset:0},bits:{name:"bits",base:E.BIT,prefixes:v.BINARY_LONG,value:1,offset:0},B:{name:"B",base:E.BIT,prefixes:v.BINARY_SHORT,value:8,offset:0},bytes:{name:"bytes",base:E.BIT,prefixes:v.BINARY_LONG,value:8,offset:0}},T={meters:"meter",inches:"inch",feet:"foot",yards:"yard",miles:"mile",links:"link",rods:"rod",chains:"chain",angstroms:"angstrom",litres:"litre",teaspoons:"teaspoon",tablespoons:"tablespoon",minims:"minim",fluiddrams:"fluiddram",fluidounces:"fluidounce",gills:"gill",cups:"cup",pints:"pint",quarts:"quart",gallons:"gallon",beerbarrels:"beerbarrel",oilbarrels:"oilbarrel",hogsheads:"hogshead",gtts:"gtt",grams:"gram",tons:"ton",tonnes:"tonne",grains:"grain",drams:"dram",ounces:"ounce",poundmasses:"poundmass",hundredweights:"hundredweight",sticks:"stick",seconds:"second",minutes:"minute",hours:"hour",days:"day",radians:"rad",degrees:"deg",gradients:"grad",cycles:"cycle",amperes:"ampere",moles:"mole"}; +for(var S in T)if(T.hasOwnProperty(S)){var O=M[T[S]],C=Object.create(O);C.name=S,M[S]=C}M.lt=M.l,M.liter=M.litre,M.liters=M.litres,M.lb=M.lbm,M.lbs=M.lbm,n.PREFIXES=v,n.BASE_UNITS=E,n.UNITS=M,e.exports=n},function(e,r,t){"use strict";function n(e,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.math=e,this.doc=r}var i=t(160),o=i.object,a=i.string;n.isHelp=function(e){return e instanceof n},n.prototype.toString=function(){var e=this.doc||{},r="\n";if(e.name&&(r+="Name: "+e.name+"\n\n"),e.category&&(r+="Category: "+e.category+"\n\n"),e.description&&(r+="Description:\n "+e.description+"\n\n"),e.syntax&&(r+="Syntax:\n "+e.syntax.join("\n ")+"\n\n"),e.examples){var t=this.math.parser();r+="Examples:\n";for(var i=0;i=r){if(c(e[0])){for(u=i(e),a=[],o=0;ot;t++){var a=[];for(r=0;n>r;r++)a.push(e[r][t]);o.push(a)}return o}{var o=t(160),a=t(158),s=t(157),u=t(9),f=o.array,c=o.array.isArray;o.string.isString}r.argsToArray=function(e){if(0==e.length)return[];if(1==e.length){var r=e[0];return r instanceof u&&(r=r.valueOf()),c(r)||(r=[r]),r}return o.array.argsToArray(e)},r.isCollection=function(e){return c(e)||e instanceof u},r.deepMap=function l(e,r){return e&&"function"==typeof e.map?e.map(function(e){return l(e,r)}):r(e)},r.deepMap2=function p(e,r,t){var n,i,o;if(c(e))if(c(r)){if(e.length!=r.length)throw new s(e.length,r.length);for(n=[],i=e.length,o=0;i>o;o++)n[o]=p(e[o],r[o],t)}else{if(r instanceof u)return n=p(e,r.valueOf(),t),new u(n);for(n=[],i=e.length,o=0;i>o;o++)n[o]=p(e[o],r,t)}else{if(e instanceof u)return r instanceof u?(n=p(e.valueOf(),r.valueOf(),t),new u(n)):(n=p(e.valueOf(),r,t),new u(n));if(c(r))for(n=[],i=r.length,o=0;i>o;o++)n[o]=p(e,r[o],t);else{if(r instanceof u)return n=p(e,r.valueOf(),t),new u(n);n=t(e,r)}}return n},r.reduce=function(e,r,t){var i=c(e)?f.size(e):e.size();if(0>r)throw new a(r);if(r>=i.length)throw new a(r,i.length);return e instanceof u?new u(n(e.valueOf(),r,t)):n(e,r,t)},r.deepForEach=function m(e,r){e instanceof u&&(e=e.valueOf());for(var t=0,n=e.length;n>t;t++){var i=e[t];c(i)?m(i,r):r(i)}}},function(e,r,t){"use strict";function n(e,r){if(1!=arguments.length&&2!=arguments.length)throw new X("parse",arguments.length,1,2);if(gr=r&&r.nodes?r.nodes:{},Q(e))return dr=e,g();if(K(e)||e instanceof $)return J.deepMap(e,function(e){if(!Q(e))throw new TypeError("String expected");return dr=e,g()});throw new TypeError("String or matrix expected")}function i(){wr=0,xr=dr.charAt(0),br=0,Er=null}function o(){wr++,xr=dr.charAt(wr)}function a(){return dr.charAt(wr+1)}function s(){return dr.charAt(wr+2)}function u(){for(vr=pr.NULL,yr="";" "==xr||" "==xr||"\n"==xr&&br;)o();if("#"==xr)for(;"\n"!=xr&&""!=xr;)o();if(""==xr)return void(vr=pr.DELIMITER);if("\n"==xr&&!br)return vr=pr.DELIMITER,yr=xr,void o();var e=xr+a(),r=e+s();if(3==r.length&&mr[r])return vr=pr.DELIMITER,yr=r,o(),o(),void o();if(2==e.length&&mr[e])return vr=pr.DELIMITER,yr=e,o(),void o();if(mr[xr])return vr=pr.DELIMITER,yr=xr,void o();if(!m(xr)){if(p(xr)){for(;p(xr)||h(xr);)yr+=xr,o();return void(vr=hr[yr]?pr.DELIMITER:pr.SYMBOL)}for(vr=pr.UNKNOWN;""!=xr;)yr+=xr,o();throw H('Syntax error in part "'+yr+'"')}if(vr=pr.NUMBER,"."==xr)yr+=xr,o(),h(xr)||(vr=pr.UNKNOWN);else{for(;h(xr);)yr+=xr,o();"."==xr&&(yr+=xr,o())}for(;h(xr);)yr+=xr,o();if(e=a(),("E"==xr||"e"==xr)&&(h(e)||"-"==e||"+"==e))for(yr+=xr,o(),("+"==xr||"-"==xr)&&(yr+=xr,o()),h(xr)||(vr=pr.UNKNOWN);h(xr);)yr+=xr,o()}function f(){do u();while("\n"==yr)}function c(){br++}function l(){br--}function p(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"==e}function m(e){return e>="0"&&"9">=e||"."==e}function h(e){return e>="0"&&"9">=e}function g(){i(),u();var e=d();if(""!=yr)throw vr==pr.DELIMITER?Y("Unexpected operator "+yr):H('Unexpected part "'+yr+'"');return e}function d(){var e,r,t=[];if(""==yr)return new ir("undefined","undefined");for("\n"!=yr&&";"!=yr&&(e=w());"\n"==yr||";"==yr;)0==t.length&&e&&(r=";"!=yr,t.push({node:e,visible:r})),u(),"\n"!=yr&&";"!=yr&&""!=yr&&(e=w(),r=";"!=yr,t.push({node:e,visible:r}));return t.length>0?new tr(t):e}function w(){if(vr==pr.SYMBOL&&"function"==yr)throw H('Deprecated keyword "function". Functions can now be assigned without it, like "f(x) = x^2".');return x()}function x(){var e,r,t,n,i=y();if("="==yr){if(i instanceof cr)return e=i.name,f(),t=x(),new rr(e,t);if(i instanceof ar)return f(),t=x(),new lr(i,t);if(i instanceof ur&&(n=!0,r=[],e=i.name,i.args.forEach(function(e,t){e instanceof cr?r[t]=e.name:n=!1}),n))return f(),t=x(),new or(e,r,t);throw H("Invalid left hand side of assignment operator =")}return i}function y(){for(var e=v();"?"==yr;){var r=Er;Er=br,f();var t=e,n=v();if(":"!=yr)throw H("False part of conditional expression expected");Er=null,f();var i=y();e=new nr(t,n,i),Er=r}return e}function v(){for(var e=b();"or"==yr;)f(),e=new sr("or","or",[e,b()]);return e}function b(){for(var e=E();"xor"==yr;)f(),e=new sr("xor","xor",[e,E()]);return e}function E(){for(var e=N();"and"==yr;)f(),e=new sr("and","and",[e,N()]);return e}function N(){for(var e=A();"|"==yr;)f(),e=new sr("|","bitOr",[e,A()]);return e}function A(){for(var e=M();"^|"==yr;)f(),e=new sr("^|","bitXor",[e,M()]);return e}function M(){for(var e=T();"&"==yr;)f(),e=new sr("&","bitAnd",[e,T()]);return e}function T(){var e,r,t,n,i;for(e=S(),r={"==":"equal","!=":"unequal","<":"smaller",">":"larger","<=":"smallerEq",">=":"largerEq"};yr in r;)t=yr,n=r[t],f(),i=[e,S()],e=new sr(t,n,i);return e}function S(){var e,r,t,n,i;for(e=O(),r={"<<":"leftShift",">>":"rightArithShift",">>>":"rightLogShift"};yr in r;)t=yr,n=r[t],f(),i=[e,O()],e=new sr(t,n,i);return e}function O(){var e,r,t,n,i;for(e=C(),r={to:"to","in":"to"};yr in r;)t=yr,n=r[t],f(),i=[e,C()],e=new sr(t,n,i);return e}function C(){var e,r=[];if(e=":"==yr?new ir("1","number"):U(),":"==yr&&Er!==br){for(r.push(e);":"==yr&&r.length<3;)f(),r.push(")"==yr||"]"==yr||","==yr||""==yr?new cr("end"):U());e=3==r.length?new fr(r[0],r[2],r[1]):new fr(r[0],r[1])}return e}function U(){var e,r,t,n,i;for(e=B(),r={"+":"add","-":"subtract"};yr in r;)t=yr,n=r[t],f(),i=[e,B()],e=new sr(t,n,i);return e}function B(){var e,r,t,n,i;if(e=q(),r={"*":"multiply",".*":"dotMultiply","/":"divide","./":"dotDivide","%":"mod",mod:"mod"},yr in r)for(;yr in r;)t=yr,n=r[t],f(),i=[e,q()],e=new sr(t,n,i);return(vr==pr.SYMBOL||"in"==yr&&e instanceof ir||vr==pr.NUMBER&&!(e instanceof ir)||"("==yr||"["==yr)&&(e=new sr("*","multiply",[e,B()])),e}function q(){var e,r,t={"-":"unaryMinus","+":"unaryPlus","~":"bitNot",not:"not"}[yr];return t?(e=yr,f(),r=[q()],new sr(e,t,r)):I()}function I(){var e,r,t,n;return e=z(),("^"==yr||".^"==yr)&&(r=yr,t="^"==r?"pow":"dotPow",f(),n=[e,q()],e=new sr(r,t,n)),e}function z(){var e,r,t,n,i;for(e=_(),r={"!":"factorial","'":"transpose"};yr in r;)t=yr,n=r[t],u(),i=[e],e=new sr(t,n,i);return e}function _(){var e,r=[];if(vr==pr.SYMBOL&&gr[yr]){if(e=gr[yr],u(),"("==yr){if(r=[],c(),u(),")"!=yr)for(r.push(y());","==yr;)u(),r.push(y());if(")"!=yr)throw H("Parenthesis ) expected");l(),u()}return new e(r)}return R()}function R(){var e,r;return vr==pr.SYMBOL||vr==pr.DELIMITER&&yr in hr?(r=yr,u(),e=L(r),e=P(e)):F()}function L(e){var r;if("("==yr){if(r=[],c(),u(),")"!=yr)for(r.push(y());","==yr;)u(),r.push(y());if(")"!=yr)throw H("Parenthesis ) expected");return l(),u(),new ur(e,r)}return new cr(e)}function P(e){for(var r;"["==yr;){if(r=[],c(),u(),"]"!=yr)for(r.push(y());","==yr;)u(),r.push(y());if("]"!=yr)throw H("Parenthesis ] expected");l(),u(),e=new ar(e,r)}return e}function F(){var e,r,t;if('"'==yr){for(r="",t="";""!=xr&&('"'!=xr||"\\"==t);)r+=xr,t=xr,o();if(u(),'"'!=yr)throw H('End of string " expected');return u(),e=new ir(r,"string"),e=P(e)}return k()}function k(){var e,r,t,n;if("["==yr){if(c(),u(),"]"!=yr){var i=j();if(";"==yr){for(t=1,r=[i];";"==yr;)u(),r[t]=j(),t++;if("]"!=yr)throw H("End of matrix ] expected");l(),u(),n=r[0].nodes.length;for(var o=1;t>o;o++)if(r[o].nodes.length!=n)throw Y("Column dimensions mismatch ("+r[o].nodes.length+" != "+n+")");e=new er(r)}else{if("]"!=yr)throw H("End of matrix ] expected");l(),u(),e=i}}else l(),u(),e=new er([]);return e}return G()}function j(){for(var e=[x()],r=1;","==yr;)u(),e[r]=x(),r++;return new er(e)}function G(){var e;return vr==pr.NUMBER?(e=yr,u(),new ir(e,"number")):D()}function D(){var e;if("("==yr){if(c(),u(),e=x(),")"!=yr)throw H("Parenthesis ) expected");return l(),u(),e}return V()}function V(){throw H(""==yr?"Unexpected end of expression":"Value expected")}function Z(){return wr-yr.length+1}function H(e){var r=Z(),t=new SyntaxError(e+" (char "+r+")");return t["char"]=r,t}function Y(e){var r=Z(),t=new Error(e+" (char "+r+")");return t["char"]=r,t}var W=t(160),X=t(156),Q=W.string.isString,K=Array.isArray,$=(W.types.type,t(6),t(9)),J=(t(10),t(13)),er=t(161),rr=t(162),tr=t(163),nr=t(164),ir=t(165),or=t(167),ar=t(166),sr=t(170),ur=t(168),fr=t(171),cr=t(172),lr=t(173),pr={NULL:0,DELIMITER:1,NUMBER:2,SYMBOL:3,UNKNOWN:4},mr={",":!0,"(":!0,")":!0,"[":!0,"]":!0,'"':!0,";":!0,"+":!0,"-":!0,"*":!0,".*":!0,"/":!0,"./":!0,"%":!0,"^":!0,".^":!0,"~":!0,"!":!0,"&":!0,"|":!0,"^|":!0,"'":!0,"=":!0,":":!0,"?":!0,"==":!0,"!=":!0,"<":!0,">":!0,"<=":!0,">=":!0,"<<":!0,">>":!0,">>>":!0},hr={mod:!0,to:!0,"in":!0,and:!0,xor:!0,or:!0,not:!0},gr={},dr="",wr=0,xr="",yr="",vr=pr.NULL,br=0,Er=null;e.exports=n},function(e,r,t){"use strict";function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof Object))throw new TypeError("Object expected as parameter math");this.math=e,this.scope={}}var i=t(14);n.prototype.parse=function(){throw new Error("Parser.parse is deprecated. Use math.parse instead.")},n.prototype.compile=function(){throw new Error("Parser.compile is deprecated. Use math.compile instead.")},n.prototype.eval=function(e){return i(e).compile(this.math).eval(this.scope)},n.prototype.get=function(e){return this.scope[e]},n.prototype.set=function(e,r){return this.scope[e]=r},n.prototype.remove=function(e){delete this.scope[e]},n.prototype.clear=function(){for(var e in this.scope)this.scope.hasOwnProperty(e)&&delete this.scope[e]},e.exports=n},function(e,r,t){"use strict";r.ArrayNode=t(161),r.AssignmentNode=t(162),r.BlockNode=t(163),r.ConditionalNode=t(164),r.ConstantNode=t(165),r.IndexNode=t(166),r.FunctionAssignmentNode=t(167),r.FunctionNode=t(168),r.Node=t(169),r.OperatorNode=t(170),r.RangeNode=t(171),r.SymbolNode=t(172),r.UpdateNode=t(173)},function(e,r,t){r.e=t(177),r.E=t(177),r["false"]=t(178),r.i=t(179),r.Infinity=t(180),r.LN2=t(181),r.LN10=t(182),r.LOG2E=t(183),r.LOG10E=t(184),r.NaN=t(185),r["null"]=t(186),r.pi=t(187),r.PI=t(187),r.phi=t(188),r.SQRT1_2=t(189),r.SQRT2=t(190),r.tau=t(191),r["true"]=t(192),r.version=t(193),r.abs=t(197),r.add=t(198),r.ceil=t(199),r.cube=t(200),r.divide=t(201),r.dotDivide=t(202),r.dotMultiply=t(203),r.dotPow=t(204),r.exp=t(205),r.fix=t(206),r.floor=t(207),r.gcd=t(208),r.lcm=t(209),r.log=t(210),r.log10=t(211),r.mod=t(212),r.multiply=t(213),r.norm=t(214),r.nthRoot=t(215),r.pow=t(216),r.round=t(217),r.sign=t(218),r.sqrt=t(219),r.square=t(220),r.subtract=t(221),r.unaryMinus=t(222),r.unaryPlus=t(223),r.xgcd=t(224),r.bitAnd=t(225),r.bitNot=t(226),r.bitOr=t(227),r.bitXor=t(228),r.leftShift=t(229),r.rightArithShift=t(230),r.rightLogShift=t(231),r.arg=t(232),r.conj=t(233),r.re=t(234),r.im=t(235),r.bignumber=t(236),r["boolean"]=t(237),r.complex=t(238),r.index=t(239),r.matrix=t(240),r.number=t(241),r.string=t(242),r.unit=t(243),r.eval=t(244),r.help=t(245),r.and=t(246),r.not=t(247),r.or=t(248),r.xor=t(249),r.concat=t(250),r.cross=t(251),r.det=t(252),r.diag=t(253),r.dot=t(254),r.eye=t(255),r.flatten=t(256),r.inv=t(257),r.ones=t(258),r.range=t(259),r.resize=t(260),r.size=t(261),r.squeeze=t(262),r.subset=t(263),r.transpose=t(264),r.zeros=t(265),r.combinations=t(266),r.factorial=t(267),r.gamma=t(268),r.permutations=t(269),r.pickRandom=t(270),r.random=t(271),r.randomInt=t(272),r.compare=t(273),r.deepEqual=t(274),r.equal=t(275),r.larger=t(276),r.largerEq=t(277),r.smaller=t(278),r.smallerEq=t(279),r.unequal=t(280),r.max=t(281),r.mean=t(282),r.median=t(283),r.min=t(284),r.prod=t(285),r.std=t(286),r.sum=t(287),r["var"]=t(288),r.acos=t(289),r.asin=t(290),r.atan=t(291),r.atan2=t(292),r.cos=t(293),r.cosh=t(294),r.cot=t(295),r.coth=t(296),r.csc=t(297),r.csch=t(298),r.sec=t(299),r.sech=t(300),r.sin=t(301),r.sinh=t(302),r.tan=t(303),r.tanh=t(304),r.to=t(305),r.clone=t(306),r.map=t(307),r.filter=t(308),r.forEach=t(309),r.format=t(310),r["import"]=t(311),r.sort=t(312),r["typeof"]=t(313)},function(e,r,t){"use strict";var n=t(155),i=t(174).transform,o=t(4).isNumber,a=t(153).argsToArray;e.exports=function(e){e.concat.transform=function(){var r=a(arguments),t=r.length-1,s=r[t];o(s)?r[t]=s-1:s instanceof n&&(r[t]=s.minus(1));try{return e.concat.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(172),i=(t(175).isBoolean,t(153).argsToArray,t(156));e.exports=function(e){var r=e.filter;r.transform=function(e,t,o){if(2!==e.length)throw new i("filter",arguments.length,2);var a,s=e[0].compile(t).eval(o);if(e[1]instanceof n)a=e[1].compile(t).eval(o);else{var u=o||{},f=e[1].filter(function(e){return e instanceof n&&!(e.name in t)&&!(e.name in u)})[0],c=Object.create(u),l=e[1].compile(t);if(!f)throw new Error("No undefined variable found in filter equation");var p=f.name;a=function(e){return c[p]=e,l.eval(c)}}return r(s,a)},e.filter.transform.rawArgs=!0}},function(e,r,t){"use strict";var n=t(9);e.exports=function(e){function r(e,r,t){var n=function(e,i){Array.isArray(e)?e.forEach(function(e,r){n(e,i.concat(r+1))}):r(e,i,t)};n(e,[])}e.forEach.transform=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("forEach",arguments.length,2);if(Array.isArray(t))r(t,i,t);else{if(!(t instanceof n))throw new e.error.UnsupportedTypeError("forEach",e["typeof"](t));r(t.valueOf(),i,t)}}}},function(e,r,t){"use strict";{var n=t(155),i=t(7),o=t(8),a=(t(9),t(4).isNumber);Array.isArray}e.exports=function(e){e.index.transform=function(){for(var e=[],r=0,t=arguments.length;t>r;r++){var s=arguments[r];if(s instanceof i)s.start--,s.end-=s.step>0?0:2;else if(a(s))s--;else{if(!(s instanceof n))throw new TypeError("Ranges must be a Number or Range");s=s.toNumber()-1}e[r]=s}var u=new o;return o.apply(u,e),u}}},function(e,r,t){"use strict";{var n=t(9);t(155),t(7),t(8),t(4).isNumber,Array.isArray}e.exports=function(e){function r(e,r,t){var n=function(e,i){return Array.isArray(e)?e.map(function(e,r){return n(e,i.concat(r+1))}):r(e,i,t)};return n(e,[])}e.map.transform=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("map",arguments.length,2);if(Array.isArray(t))return r(t,i,t);if(t instanceof n)return new n(r(t.valueOf(),i,t));throw new e.error.UnsupportedTypeError("map",e["typeof"](t))}}},function(e,r,t){"use strict";var n=t(155),i=t(174).transform,o=t(4).isNumber,a=t(13).isCollection,s=t(153).argsToArray;e.exports=function(e){e.max.transform=function(){var r=s(arguments);if(2==r.length&&a(r[0])){var t=r[1];o(t)?r[1]=t-1:t instanceof n&&(r[1]=t.minus(1))}try{return e.max.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(155),i=t(174).transform,o=t(4).isNumber,a=t(13).isCollection,s=t(153).argsToArray;e.exports=function(e){e.mean.transform=function(){var r=s(arguments);if(2==r.length&&a(r[0])){var t=r[1];o(t)?r[1]=t-1:t instanceof n&&(r[1]=t.minus(1))}try{return e.mean.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(155),i=t(174).transform,o=t(4).isNumber,a=t(13).isCollection,s=t(153).argsToArray;e.exports=function(e){e.min.transform=function(){var r=s(arguments);if(2==r.length&&a(r[0])){var t=r[1];o(t)?r[1]=t-1:t instanceof n&&(r[1]=t.minus(1))}try{return e.min.apply(e,r)}catch(u){throw i(u)}}}},function(e,r,t){"use strict";var n=t(175).isBoolean,i=t(153).argsToArray;e.exports=function(e){e.range.transform=function(){var r=i(arguments),t=r.length-1,o=r[t];return n(o)||r.push(!0),e.range.apply(e,r)}}},function(e,r,t){"use strict";var n=t(174).transform,i=(t(175).isBoolean,t(153).argsToArray);e.exports=function(e){e.subset.transform=function(){try{return e.subset.apply(e,i(arguments))}catch(r){throw n(r)}}}},function(e,r,t){"use strict";e.exports=function(e){function r(e){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.value=e instanceof r?e.value:e}function n(e,t){var n=Array.prototype.slice;r.prototype[e]="function"==typeof t?function(){var e=[this.value].concat(n.call(arguments,0));return new r(t.apply(this,e))}:new r(t)}var i=t(176);r.prototype.done=function(){return this.value},r.prototype.valueOf=function(){return this.value},r.prototype.toString=function(){return i.format(this.value)},r.createProxy=n;for(var o in e)e.hasOwnProperty(o)&&n(o,e[o]);return r}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(14),i=t(13),o=r.string.isString,a=i.isCollection;e.compile=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("compile",arguments.length,1);if(o(r))return n(r).compile(e);if(a(r))return i.deepMap(r,function(r){return n(r).compile(e)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(14),i=t(13),o=r.string.isString,a=i.isCollection;e.eval=function(r,t){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("eval",arguments.length,1,2);if(t=t||{},o(r))return n(r).compile(e).eval(t);if(a(r))return i.deepMap(r,function(r){return n(r).compile(e).eval(t)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(11);e.help=function(t){if(1!=arguments.length)throw new SyntaxError("Wrong number of arguments in function help ("+arguments.length+" provided, 1 expected)");var n=null;if(t instanceof String||"string"==typeof t)n=t;else{var i;for(i in e)if(e.hasOwnProperty(i)&&t===e[i]){n=i;break}}var o=e.expression.docs[n];if(!n)throw new Error('Cannot find "'+t+'" in math.js');if(!o)throw new Error('No documentation found on "'+n+'"');return new r(e,o)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(14);e.parse=function(){return r.apply(r,arguments)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(13)),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.abs=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("abs",arguments.length,1);if(a(r))return Math.abs(r);if(u(r))return Math.sqrt(r.re*r.re+r.im*r.im);if(r instanceof n)return r.abs();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.abs(r);throw new e.error.UnsupportedTypeError("abs",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(10)),a=t(13),s=r["boolean"].isBoolean,u=r.number.isNumber,f=r.string.isString,c=i.isComplex,l=o.isUnit,p=a.isCollection;e.add=function m(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("add",arguments.length,2);if(u(r)){if(u(t))return r+t;if(c(t))return new i(r+t.re,t.im)}if(c(r)){if(c(t))return new i(r.re+t.re,r.im+t.im);if(u(t))return new i(r.re+t,r.im)}if(l(r)&&l(t)){if(null==r.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(!r.equalBase(t))throw new Error("Units do not match");var o=r.clone();return o.value+=t.value,o.fixPrefix=!1,o}if(r instanceof n)return u(t)?t=n.convert(t):(s(t)||null===t)&&(t=new n(t?1:0)),t instanceof n?r.plus(t):m(r.toNumber(),t);if(t instanceof n)return u(r)?r=n.convert(r):(s(r)||null===r)&&(r=new n(r?1:0)),r instanceof n?r.plus(t):m(r,t.toNumber());if(p(r)||p(t))return a.deepMap2(r,t,m);if(f(r)||f(t))return r+t;if(s(r)||null===r)return m(+r,t);if(s(t)||null===t)return m(r,+t);throw new e.error.UnsupportedTypeError("add",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=o.isCollection,f=i.isComplex;e.ceil=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("ceil",arguments.length,1);if(a(r))return Math.ceil(r);if(f(r))return new i(Math.ceil(r.re),Math.ceil(r.im));if(r instanceof n)return r.ceil();if(u(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.ceil(r);throw new e.error.UnsupportedTypeError("ceil",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.cube=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cube",arguments.length,1);if(a(r))return r*r*r;if(u(r))return e.multiply(e.multiply(r,r),r);if(r instanceof n)return r.times(r).times(r);if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("cube",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=r.re*r.re+r.im*r.im;return 0!=t?new o((e.re*r.re+e.im*r.im)/t,(e.im*r.re-e.re*r.im)/t):new o(0!=e.re?e.re/0:0,0!=e.im?e.im/0:0)}var n=t(160),i=e.type.BigNumber,o=t(6),a=(t(9),t(10)),s=n.number.isNumber,u=n["boolean"].isBoolean,f=o.isComplex,c=a.isUnit;e._divide=function l(t,n){if(s(t)){if(s(n))return t/n;if(f(n))return r(new o(t,0),n)}if(f(t)){if(f(n))return r(t,n);if(s(n))return r(t,new o(n,0))}if(t instanceof i)return s(n)?n=i.convert(n):(u(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?t.div(n):l(t.toNumber(),n);if(n instanceof i)return s(t)?t=i.convert(t):(u(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?t.div(n):l(t,n.toNumber());if(c(t)&&s(n)){var a=t.clone();return a.value=(null===a.value?a._normalize(1):a.value)/n,a}if(u(t)||null===t)return l(+t,n);if(u(n)||null===n)return l(t,+n);throw new e.error.UnsupportedTypeError("divide",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(13),n=r.isCollection;e.divide=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("divide",arguments.length,2);return n(t)?n(i)?e.multiply(t,e.inv(i)):r.deepMap2(t,i,e._divide):n(i)?e.multiply(t,e.inv(i)):e._divide(t,i)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(13);e.dotDivide=function(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("dotDivide",arguments.length,2);return r.deepMap2(t,n,e.divide)},e.edivide=function(){throw new Error("Function edivide is renamed to dotDivide")}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),t(13));e.dotMultiply=function(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("dotMultiply",arguments.length,2);return r.deepMap2(t,n,e.multiply)},e.emultiply=function(){throw new Error("Function emultiply is renamed to dotMultiply")}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),t(13));e.dotPow=function(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("dotPow",arguments.length,2);return r.deepMap2(t,n,e.pow)},e.epow=function(){throw new Error("Function epow is renamed to dotPow")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(13)),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.exp=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("exp",arguments.length,1);if(a(r))return Math.exp(r);if(u(r)){var t=Math.exp(r.re);return new i(t*Math.cos(r.im),t*Math.sin(r.im))}if(r instanceof n)return r.exp();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.exp(r);throw new e.error.UnsupportedTypeError("exp",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.fix=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("fix",arguments.length,1);if(a(r))return r>0?Math.floor(r):Math.ceil(r);if(u(r))return new i(r.re>0?Math.floor(r.re):Math.ceil(r.re),r.im>0?Math.floor(r.im):Math.ceil(r.im));if(r instanceof n)return r.isNegative()?r.ceil():r.floor();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("fix",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.floor=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("floor",arguments.length,1);if(a(r))return Math.floor(r);if(u(r))return new i(Math.floor(r.re),Math.floor(r.im));if(r instanceof n)return r.floor();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("floor",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){if(!e.isInt()||!r.isInt())throw new Error("Parameters in function gcd must be integer numbers");for(var t=new i(0);!r.isZero();){var n=e.mod(r);e=r,r=n}return e.lt(t)?e.neg():e}var n=t(160),i=e.type.BigNumber,o=t(13),a=n.number.isNumber,s=n["boolean"].isBoolean,u=n.number.isInteger,f=o.isCollection;e.gcd=function c(){var t,n=arguments[0],l=arguments[1];if(2==arguments.length){if(a(n)&&a(l)){if(!u(n)||!u(l))throw new Error("Parameters in function gcd must be integer numbers");for(;0!=l;)t=n%l,n=l,l=t;return 0>n?-n:n}if(f(n)||f(l))return o.deepMap2(n,l,c);if(n instanceof i)return a(l)?l=i.convert(l):(s(l)||null===l)&&(l=new i(l?1:0)),l instanceof i?r(n,l):c(n.toNumber(),l);if(l instanceof i)return a(n)?n=i.convert(n):(s(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?r(n,l):c(n.toNumber(),l);if(s(n)||null===n)return c(+n,l);if(s(l)||null===l)return c(n,+l);throw new e.error.UnsupportedTypeError("gcd",e["typeof"](n),e["typeof"](l))}if(arguments.length>2){for(var p=1;p2){for(var m=1;m=0?Math.log(r):c(new i(r,0));if(u(r))return new i(Math.log(Math.sqrt(r.re*r.re+r.im*r.im)),Math.atan2(r.im,r.re));if(r instanceof n)return r.isNegative()?c(r.toNumber()):r.ln();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("log",e["typeof"](r))}if(2==arguments.length)return e.divide(c(r),c(t));throw new e.error.ArgumentsError("log",arguments.length,1,2)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.log10=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("log10",arguments.length,1);if(a(r))return r>=0?Math.log(r)/Math.LN10:c(new i(r,0));if(r instanceof n)return r.isNegative()?c(r.toNumber()):r.log();if(u(r))return new i(Math.log(Math.sqrt(r.re*r.re+r.im*r.im))/Math.LN10,Math.atan2(r.im,r.re)/Math.LN10);if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("log10",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){if(r>0)return e-r*Math.floor(e/r);if(0==r)return e;throw new Error("Cannot calculate mod for a negative divisor")}var n=t(160),i=e.type.BigNumber,o=t(13),a=n.number.isNumber,s=n["boolean"].isBoolean,u=o.isCollection;e.mod=function f(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("mod",arguments.length,2);if(a(t)&&a(n))return r(t,n);if(t instanceof i)return a(n)?n=i.convert(n):(s(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?n.isZero()?t:t.mod(n):f(t.toNumber(),n);if(n instanceof i)return a(t)?t=i.convert(t):(s(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?n.isZero()?t:t.mod(n):f(t,n.toNumber());if(u(t)||u(n))return o.deepMap2(t,n,f);if(s(t)||null===t)return f(+t,n);if(s(n)||null===n)return f(t,+n);throw new e.error.UnsupportedTypeError("mod",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){for(var n=[],i=r.length,o=t[0].length,a=r[0].length,s=0;i>s;s++){n[s]=[];for(var u=0;o>u;u++){for(var f=null,c=0;a>c;c++){var l=e.multiply(r[s][c],t[c][u]);f=null===f?l:e.add(f,l)}n[s][u]=f}}var p=1===i&&1===o;return p?n[0][0]:n}function n(r,t){for(var n=[],i=t.length,o=t[0].length,a=0;o>a;a++){for(var s=null,u=0;i>u;u++){var f=e.multiply(r[u],t[u][a]);s=0===u?f:e.add(s,f)}n[a]=s}return 1===n.length?n[0]:n}function i(r,t){for(var n=[],i=r.length,o=r[0].length,a=0;i>a;a++){for(var s=null,u=0;o>u;u++){var f=e.multiply(r[a][u],t[u]);s=0===u?f:e.add(s,f)}n[a]=s}return 1===n.length?n[0]:n}function o(r,t){var n=r.length;if(!n)throw new Error("Cannot multiply two empty vectors");for(var i=0,o=0;n>o;o++)i=e.add(i,e.multiply(r[o],t[o]));return i}function a(e,r){return 0==e.im?0==r.im?new f(e.re*r.re,0):0==r.re?new f(0,e.re*r.im):new f(e.re*r.re,e.re*r.im):0==e.re?0==r.im?new f(0,e.im*r.re):0==r.re?new f(-e.im*r.im,0):new f(-e.im*r.im,e.im*r.re):0==r.im?new f(e.re*r.re,e.im*r.re):0==r.re?new f(-e.im*r.im,e.re*r.im):new f(e.re*r.re-e.im*r.im,e.re*r.im+e.im*r.re)}var s=t(160),u=e.type.BigNumber,f=t(6),c=t(9),l=t(10),p=t(13),m=s.array,h=s.number.isNumber,g=s["boolean"].isBoolean,d=f.isComplex,w=Array.isArray,x=l.isUnit;e.multiply=function y(t,s){var l;if(2!=arguments.length)throw new e.error.ArgumentsError("multiply",arguments.length,2);if(h(t)){if(h(s))return t*s;if(d(s))return a(new f(t,0),s);if(x(s))return l=s.clone(),l.value=null===l.value?l._normalize(t):l.value*t,l}if(d(t)){if(h(s))return a(t,new f(s,0));if(d(s))return a(t,s)}if(t instanceof u)return h(s)?s=u.convert(s):(g(s)||null===s)&&(s=new u(s?1:0)),s instanceof u?t.times(s):y(t.toNumber(),s); +if(s instanceof u)return h(t)?t=u.convert(t):(g(t)||null===t)&&(t=new u(t?1:0)),t instanceof u?t.times(s):y(t,s.toNumber());if(x(t)&&h(s))return l=t.clone(),l.value=null===l.value?l._normalize(s):l.value*s,l;if(w(t)){if(w(s)){var v=m.size(t),b=m.size(s);if(1==v.length){if(1==b.length){if(v[0]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Length of A must match length of B (A is "+v[0]+", B is "+b[0]+", "+v[0]+" != "+b[0]+")");return o(t,s)}if(2==b.length){if(v[0]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Length of A must match rows of B (A is "+v[0]+", B is "+b[0]+"x"+b[1]+", "+v[0]+" != "+b[0]+")");return n(t,s)}throw new Error("Can only multiply a 1 or 2 dimensional matrix (B has "+b.length+" dimensions)")}if(2==v.length){if(1==b.length){if(v[1]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Columns of A must match length of B (A is "+v[0]+"x"+v[0]+", B is "+b[0]+", "+v[1]+" != "+b[0]+")");return i(t,s)}if(2==b.length){if(v[1]!=b[0])throw new RangeError("Dimension mismatch in multiplication. Columns of A must match rows of B (A is "+v[0]+"x"+v[1]+", B is "+b[0]+"x"+b[1]+", "+v[1]+" != "+b[0]+")");return r(t,s)}throw new Error("Can only multiply a 1 or 2 dimensional matrix (B has "+b.length+" dimensions)")}throw new Error("Can only multiply a 1 or 2 dimensional matrix (A has "+v.length+" dimensions)")}return s instanceof c?(l=y(t,s.valueOf()),w(l)?new c(l):l):p.deepMap2(t,s,y)}if(t instanceof c)return s instanceof c?(l=y(t.valueOf(),s.valueOf()),w(l)?new c(l):l):(l=y(t.valueOf(),s),w(l)?new c(l):l);if(w(s))return p.deepMap2(t,s,y);if(s instanceof c)return new c(p.deepMap2(t,s.valueOf(),y));if(g(t)||null===t)return y(+t,s);if(g(s)||null===s)return y(t,+s);throw new e.error.UnsupportedTypeError("multiply",e["typeof"](t),e["typeof"](s))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(153),i=e.type.BigNumber,o=t(6),a=t(9),s=(t(13),r.number.isNumber),u=r["boolean"].isBoolean,f=o.isComplex,c=Array.isArray;e.norm=function l(r,t){if(arguments.length<1||arguments.length>2)throw new e.error.ArgumentsError("abs",arguments.length,1,2);if(s(r))return Math.abs(r);if(f(r))return Math.sqrt(r.re*r.re+r.im*r.im);if(r instanceof i)return r.abs();if(u(r)||null===r)return Math.abs(r);if(c(r)){var o=n.size(r);if(null==t&&(t=2),1==o.length){if(t===Number.POSITIVE_INFINITY||"inf"===t){var p;return e.forEach(r,function(r){var t=e.abs(r);(!p||e.larger(t,p))&&(p=t)}),p}if(t===Number.NEGATIVE_INFINITY||"-inf"===t){var p;return e.forEach(r,function(r){var t=e.abs(r);(!p||e.smaller(t,p))&&(p=t)}),p}if("fro"===t)return l(r);if(s(t)&&!isNaN(t)){if(!e.equal(t,0)){var p=0;return e.forEach(r,function(r){p=e.add(e.pow(e.abs(r),t),p)}),e.pow(p,1/t)}return Number.POSITIVE_INFINITY}throw new Error("Unsupported parameter value")}if(2==o.length){if(1==t){for(var m=[],h=0;ht;if(n&&(t=-t),0==t)throw new Error("Root must be non-zero");if(0>e&&Math.abs(t)%2!=1)throw new Error("Root must be odd when a is negative.");if(0==e)return 0;if(!Number.isFinite(e))return n?0:e;var i=1e-16,o=1,a=0,s=100;do{var u=(e/Math.pow(o,t-1)-o)/t;o+=u,a++}while(Math.abs(u)>i&&s>a);return n?1/o:o}function i(e,r){var t=void 0!=r?r:new a(2),n=new a(0),i=new a(1),o=t.isNegative();if(o&&(t=t.negated()),t.isZero())throw new Error("Root must be non-zero");if(e.isNegative()&&!t.abs().mod(2).equals(1))throw new Error("Root must be odd when a is negative.");if(e.isZero())return n;if(!e.isFinite())return o?n:e;var s=i,u=0,f=100;do{var c=s,l=e.div(s.pow(t.minus(1))).minus(s).div(t);s=s.plus(l),u++}while(!s.equals(c)&&f>u);return o?i.div(s):s}var o=t(160),a=e.type.BigNumber,s=t(13),u=o.number.isNumber,f=o["boolean"].isBoolean,c=s.isCollection;e.nthRoot=function l(t,o){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("nthRoot",arguments.length,1,2);switch(arguments.length){case 1:if(u(t))return r(t);if(t instanceof a)return i(t);if(c(t))return s.deepMap(x,l);if(f(t)||null===t)return l(+t);break;case 2:if(u(t)){if(u(o))return r(t,o);if(o instanceof a)return t=a.convert(t),t instanceof a?i(t,o):r(t,o.toNumber())}else{if(t instanceof a)return u(o)&&(o=a.convert(o)),o instanceof a?i(t,o):r(t.toNumber(),o);if(c(t)&&!c(o))return s.deepMap2(t,o,l)}if(f(t)||null===t)return l(+t,o);if(f(o)||null===o)return l(t,+o);break;default:throw new e.error.ArgumentsError("nthRoot",arguments.length,1,2)}if(f(x)||null===x)return 2==arguments.length?l(+x,n):l(+x);throw new e.error.UnsupportedTypeError("nthRoot",e["typeof"](t),e["typeof"](o))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var n=e.log(r),i=e.multiply(n,t);return e.exp(i)}var n=t(160),i=e.type.BigNumber,o=t(6),a=t(9),s=(t(13),n.array),u=n.number.isNumber,f=n["boolean"].isBoolean,c=Array.isArray,l=n.number.isInteger,p=o.isComplex;e.pow=function m(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("pow",arguments.length,2);if(u(t)){if(u(n))return l(n)||t>=0?Math.pow(t,n):r(new o(t,0),new o(n,0));if(p(n))return r(new o(t,0),n)}if(p(t)){if(u(n))return r(t,new o(n,0));if(p(n))return r(t,n)}if(t instanceof i)return u(n)?n=i.convert(n):(f(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?n.isInteger()||!t.isNegative()?t.pow(n):m(t.toNumber(),n.toNumber()):m(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):(f(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?n.isInteger()&&!t.isNegative()?t.pow(n):m(t.toNumber(),n.toNumber()):m(t,n.toNumber());if(c(t)){if(!u(n)||!l(n)||0>n)throw new TypeError("For A^b, b must be a positive integer (value is "+n+")");var h=s.size(t);if(2!=h.length)throw new Error("For A^b, A must be 2 dimensional (A has "+h.length+" dimensions)");if(h[0]!=h[1])throw new Error("For A^b, A must be square (size is "+h[0]+"x"+h[1]+")");for(var g=e.eye(h[0]).valueOf(),d=t;n>=1;)1==(1&n)&&(g=e.multiply(d,g)),n>>=1,d=e.multiply(d,d);return g}if(t instanceof a)return new a(m(t.valueOf(),n));if(f(t)||null===t)return m(+t,n);if(f(n)||null===n)return m(t,+n);throw new e.error.UnsupportedTypeError("pow",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=Math.pow(10,r);return Math.round(e*t)/t}var n=t(160),i=e.type.BigNumber,o=t(6),a=t(13),s=n.number.isNumber,u=n.number.isInteger,f=n["boolean"].isBoolean,c=o.isComplex,l=a.isCollection;e.round=function p(t,n){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("round",arguments.length,1,2);if(void 0==n){if(s(t))return Math.round(t);if(c(t))return new o(Math.round(t.re),Math.round(t.im));if(t instanceof i)return t.toDecimalPlaces(0);if(l(t))return a.deepMap(t,p);if(f(t)||null===t)return Math.round(t);throw new e.error.UnsupportedTypeError("round",e["typeof"](t))}if(!s(n)||!u(n)){if(!(n instanceof i)){if(f(n)||null===t)return p(t,+n);throw new TypeError("Number of decimals in function round must be an integer")}n=parseFloat(n.valueOf())}if(0>n||n>15)throw new Error("Number of decimals in function round must be in te range of 0-15");if(s(t))return r(t,n);if(c(t))return new o(r(t.re,n),r(t.im,n));if(t instanceof i)return t.toDecimalPlaces(n);if(l(t)||l(n))return a.deepMap2(t,n,p);if(f(t)||null===t)return p(+t,n);throw new e.error.UnsupportedTypeError("round",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number,s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isCollection;e.sign=function l(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sign",arguments.length,1);if(s(r))return a.sign(r);if(f(r)){var t=Math.sqrt(r.re*r.re+r.im*r.im);return new i(r.re/t,r.im/t)}if(r instanceof n)return new n(r.cmp(0));if(c(r))return o.deepMap(r,l);if(u(r)||null===r)return a.sign(r);throw new e.error.UnsupportedTypeError("sign",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.sqrt=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sqrt",arguments.length,1);if(a(r))return r>=0?Math.sqrt(r):c(new i(r,0));if(u(r)){var t,l,p=Math.sqrt(r.re*r.re+r.im*r.im);return t=r.re>=0?.5*Math.sqrt(2*(p+r.re)):Math.abs(r.im)/Math.sqrt(2*(p-r.re)),l=r.re<=0?.5*Math.sqrt(2*(p-r.re)):Math.abs(r.im)/Math.sqrt(2*(p+r.re)),r.im>=0?new i(t,l):new i(t,-l)}if(r instanceof n)return r.isNegative()?c(r.toNumber()):r.sqrt();if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("sqrt",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.square=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("square",arguments.length,1);if(a(r))return r*r;if(u(r))return e.multiply(r,r);if(r instanceof n)return r.times(r);if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return r*r;throw new e.error.UnsupportedTypeError("square",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=(t(9),t(10)),a=t(13),s=r["boolean"].isBoolean,u=r.number.isNumber,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.subtract=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("subtract",arguments.length,2);if(u(r)){if(u(t))return r-t;if(f(t))return new i(r-t.re,-t.im)}else if(f(r)){if(u(t))return new i(r.re-t,r.im);if(f(t))return new i(r.re-t.re,r.im-t.im)}if(r instanceof n)return u(t)?t=n.convert(t):(s(t)||null===t)&&(t=new n(t?1:0)),t instanceof n?r.minus(t):p(r.toNumber(),t);if(t instanceof n)return u(r)?r=n.convert(r):(s(r)||null===r)&&(r=new n(r?1:0)),r instanceof n?r.minus(t):p(r,t.toNumber());if(c(r)&&c(t)){if(null==r.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(!r.equalBase(t))throw new Error("Units do not match");var o=r.clone();return o.value-=t.value,o.fixPrefix=!1,o}if(l(r)||l(t))return a.deepMap2(r,t,p);if(s(r)||null===r)return p(+r,t);if(s(t)||null===t)return p(r,+t);throw new e.error.UnsupportedTypeError("subtract",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n["boolean"].isBoolean,c=n.string.isString,l=o.isComplex,p=a.isUnit,m=s.isCollection;e.unaryMinus=function h(t){if(1!=arguments.length)throw new e.error.ArgumentsError("unaryMinus",arguments.length,1);if(u(t))return-t;if(l(t))return new o(-t.re,-t.im);if(t instanceof i)return t.neg();if(p(t)){var n=t.clone();return n.value=-t.value,n}if(m(t))return s.deepMap(t,h);if(f(t)||c(t)||null===t)return"bignumber"==r.number?new i(-t):-t;throw new e.error.UnsupportedTypeError("unaryMinus",e["typeof"](t))},e.unary=function(){throw new Error("Function unary is deprecated. Use unaryMinus instead.")}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n["boolean"].isBoolean,c=n.string.isString,l=o.isComplex,p=a.isUnit,m=s.isCollection;e.unaryPlus=function h(t){if(1!=arguments.length)throw new e.error.ArgumentsError("unaryPlus",arguments.length,1);if(u(t))return t;if(l(t))return t.clone();if(t instanceof i)return t;if(p(t))return t.clone();if(m(t))return s.deepMap(t,h);if(f(t)||c(t)||null===t)return"bignumber"==r.number?new i(+t):+t;throw new e.error.UnsupportedTypeError("unaryPlus",e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e,r){function n(e,t){for(var n,i,o,s=0,u=1,f=1,c=0;t;)i=Math.floor(e/t),o=e%t,n=s,s=u-i*s,u=n,n=f,f=c-i*f,c=n,e=t,t=o;var l;return l=0>e?[-e,-u,-c]:[e,e?u:0,c],"array"===r.matrix?l:new a(l)}function i(e,t){for(var n,i,o,u=new s(0),f=new s(0),c=new s(1),l=new s(1),p=new s(0);!t.isZero();)i=e.div(t).floor(),o=e.mod(t),n=f,f=c.minus(i.times(f)),c=n,n=l,l=p.minus(i.times(l)),p=n,e=t,t=o;var m;return m=e.lt(u)?[e.neg(),c.neg(),p.neg()]:[e,e.isZero()?0:c,p],"array"===r.matrix?m:new a(m)}var o=t(160),a=t(9),s=e.type.BigNumber,u=o.number.isNumber,f=o["boolean"].isBoolean,c=o.number.isInteger;e.xgcd=function l(r,t){if(2==arguments.length){if(u(r)&&u(t)){if(!c(r)||!c(t))throw new Error("Parameters in function xgcd must be integer numbers");return n(r,t)}if(r instanceof s)return u(t)?t=s.convert(t):(f(t)||null===t)&&(t=new s(t?1:0)),t instanceof s?i(r,t):l(r.toNumber(),t);if(t instanceof s)return u(r)?r=s.convert(r):(f(r)||null===r)&&(r=new s(r?1:0)),r instanceof s?i(r,t):l(r.toNumber(),t);if(f(r)||null===r)return l(+r,t);if(f(t)||null===t)return l(r,+t);throw new e.error.UnsupportedTypeError("xgcd",e["typeof"](r),e["typeof"](t))}throw new SyntaxError("Function xgcd expects two arguments")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.and;e.bitAnd=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("bitAnd",arguments.length,2);if(s(r)&&s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function bitAnd must be integer numbers");return r&t}if(u(r)||u(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return s(t)&&(t=n.convert(t)),t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return s(r)&&(r=n.convert(r)),r instanceof n?f(r,t):c(r,t.toNumber());throw new e.error.UnsupportedTypeError("bitAnd",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.not;e.bitNot=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("bitNot",arguments.length,1);if(s(r)){if(!a(r))throw new Error("Parameter in function bitNot must be integer numbers");return~r}if(r instanceof n)return f(r);if(u(r))return i.deepMap(r,c);if(o(r)||null===r)return c(+r);throw new e.error.UnsupportedTypeError("bitNot",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.or;e.bitOr=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("bitOr",arguments.length,2);if(s(r)&&s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function bitOr must be integer numbers");return r|t}if(u(r)||u(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return s(t)&&(t=n.convert(t)),t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return s(r)&&(r=n.convert(r)),r instanceof n?f(r,t):c(r,t.toNumber());throw new e.error.UnsupportedTypeError("bitOr",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.xor;e.bitXor=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("bitXor",arguments.length,2);if(s(r)&&s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function bitXor must be integer numbers");return r^t}if(u(r)||u(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return s(t)&&(t=n.convert(t)),t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return s(r)&&(r=n.convert(r)),r instanceof n?f(r,t):c(r,t.toNumber());throw new e.error.UnsupportedTypeError("bitXor",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.leftShift;e.leftShift=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("leftShift",arguments.length,2);if(s(r)){if(s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function leftShift must be integer numbers");return r<t?new n(0/0):0==t||r.isZero()?r:1/0!=t||r.isFinite()?55>t?r.times(Math.pow(2,t)+""):(t=n.convert(t),f(r,t)):new n(0/0)}}if(u(r)&&s(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return c(r,t.toNumber());throw new e.error.UnsupportedTypeError("leftShift",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(9),t(10),t(13)),o=r["boolean"].isBoolean,a=r.number.isInteger,s=r.number.isNumber,u=i.isCollection,f=r.bignumber.rightShift;e.rightArithShift=function c(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("rightArithShift",arguments.length,2);if(s(r)){if(s(t)){if(!a(r)||!a(t))throw new Error("Parameters in function rightArithShift must be integer numbers");return r>>t}if(t instanceof n)return f(n.convert(r),t)}if(s(t)){if(isFinite(t)&&!a(t))throw new Error("Parameters in function rightArithShift must be integer numbers");if(r instanceof n){if(r.isFinite()&&!r.isInteger())throw new Error("Parameters in function rightArithShift must be integer numbers");return r.isNaN()||isNaN(t)||0>t?new n(0/0):1/0==t?new n(r.isNegative()?-1:r.isFinite()?0:0/0):55>t?r.div(Math.pow(2,t)+"").floor():(t=n.convert(t),f(r,t))}}if(u(r)&&s(t))return i.deepMap2(r,t,c);if(o(r)||null===r)return c(+r,t);if(o(t)||null===t)return c(r,+t);if(r instanceof n)return t instanceof n?f(r,t):c(r.toNumber(),t);if(t instanceof n)return c(r,t.toNumber());throw new e.error.UnsupportedTypeError("rightArithShift",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=(t(9),t(10),t(13)),i=r["boolean"].isBoolean,o=r.number.isInteger,a=r.number.isNumber,s=n.isCollection;e.rightLogShift=function u(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("rightLogShift",arguments.length,2);if(a(r)&&a(t)){if(!o(r)||!o(t))throw new Error("Parameters in function rightLogShift must be integer numbers");return r>>>t}if(s(r)&&a(t))return n.deepMap2(r,t,u);if(i(r)||null===r)return u(+r,t);if(i(t)||null===t)return u(r,+t);throw new e.error.UnsupportedTypeError("rightLogShift",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=o.isCollection,f=i.isComplex;e.arg=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("arg",arguments.length,1);if(a(r))return Math.atan2(0,r);if(f(r))return Math.atan2(r.im,r.re);if(u(r))return o.deepMap(r,c);if(s(r)||null===r)return c(+r);if(r instanceof n)return c(r.toNumber());throw new e.error.UnsupportedTypeError("arg",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.object,s=r.number.isNumber,u=r["boolean"].isBoolean,f=o.isCollection,c=i.isComplex;e.conj=function l(r){if(1!=arguments.length)throw new e.error.ArgumentsError("conj",arguments.length,1);return s(r)?r:r instanceof n?new n(r):c(r)?new i(r.re,-r.im):f(r)?o.deepMap(r,l):u(r)||null===r?+r:a.clone(r)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.object,s=r.number.isNumber,u=r["boolean"].isBoolean,f=o.isCollection,c=i.isComplex;e.re=function l(r){if(1!=arguments.length)throw new e.error.ArgumentsError("re",arguments.length,1);return s(r)?r:r instanceof n?new n(r):c(r)?r.re:f(r)?o.deepMap(r,l):u(r)||null===r?+r:a.clone(r)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=o.isCollection,f=i.isComplex;e.im=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("im",arguments.length,1);return a(r)?0:r instanceof n?new n(0):f(r)?r.im:u(r)?o.deepMap(r,c):(s(r)||null===r,0)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(13),o=i.isCollection,a=r.number.isNumber,s=r.string.isString,u=r["boolean"].isBoolean;e.bignumber=function f(r){if(arguments.length>1)throw new e.error.ArgumentsError("bignumber",arguments.length,0,1);if(r instanceof n||a(r)||s(r))return new n(r);if(u(r)||null===r)return new n(+r);if(o(r))return i.deepMap(r,f);if(0==arguments.length)return new n(0);throw new e.error.UnsupportedTypeError("bignumber",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(13),o=i.isCollection,a=r.number.isNumber,s=r.string.isString;e["boolean"]=function u(r){if(1!=arguments.length)throw new e.error.ArgumentsError("boolean",arguments.length,0,1);if("true"===r||r===!0)return!0;if("false"===r||r===!1||null===r)return!1;if(r instanceof Boolean)return 1==r;if(a(r))return 0!==r;if(r instanceof n)return!r.isZero();if(s(r)){var t=r.toLowerCase();if("true"===t)return!0;if("false"===t)return!1;var f=Number(r);if(""!=r&&!isNaN(f))return 0!==f}if(o(r))return i.deepMap(r,u);throw new SyntaxError(r.toString()+" is no valid boolean")}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=o.isCollection,s=r.number.isNumber,u=r.string.isString,f=i.isComplex;e.complex=function c(){switch(arguments.length){case 0:return new i(0,0);case 1:var r=arguments[0];if(s(r))return new i(r,0);if(r instanceof n)return new i(r.toNumber(),0);if(f(r))return r.clone();if(u(r)){var t=i.parse(r);if(t)return t;throw new SyntaxError('String "'+r+'" is no valid complex number')}if(a(r))return o.deepMap(r,c);if("object"==typeof r){if("re"in r&&"im"in r)return new i(r.re,r.im);if("r"in r&&"phi"in r)return i.fromPolar(r.r,r.phi)}throw new TypeError("Two numbers, single string or an fitting object expected in function complex");case 2:var l=arguments[0],p=arguments[1];if(l instanceof n&&(l=l.toNumber()),p instanceof n&&(p=p.toNumber()),s(l)&&s(p))return new i(l,p);throw new TypeError("Two numbers or a single string expected in function complex");default:throw new e.error.ArgumentsError("complex",arguments.length,0,2)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),e.type.BigNumber),n=t(8);e.index=function(){var e=Array.prototype.slice.apply(arguments).map(function(e){return e instanceof r?e.toNumber():Array.isArray(e)?e.map(function(e){return e instanceof r?e.toNumber():e}):e}),t=new n;return n.apply(t,e),t}}},function(e,r,t){"use strict";e.exports=function(e){var r=(t(160),t(9));e.matrix=function(t){if(arguments.length>1)throw new e.error.ArgumentsError("matrix",arguments.length,0,1);return new r(t)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=e.type.Unit,o=t(13),a=o.isCollection,s=r.number.isNumber,u=r["boolean"].isBoolean,f=r.string.isString;e.number=function c(r,t){switch(arguments.length){case 0:return 0;case 1:if(a(r))return o.deepMap(r,c);if(r instanceof n)return r.toNumber();if(f(r)){var l=Number(r);if(isNaN(l)&&(l=Number(r.valueOf())),isNaN(l))throw new SyntaxError(r.toString()+" is no valid number");return l}if(u(r)||null===r)return+r;if(s(r))return r;if(r instanceof i)throw new Error("Second argument with valueless unit expected");throw new e.error.UnsupportedTypeError("number",e["typeof"](r));case 2:if(r instanceof i&&f(t)||t instanceof i)return r.toNumber(t);throw new e.error.UnsupportedTypeError("number",e["typeof"](r),e["typeof"](t));default:throw new e.error.ArgumentsError("number",arguments.length,0,1)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(15);e.parser=function(){return new r(e)}}},function(e){"use strict";e.exports=function(e){e.chain=function(r){return new e.chaining.Chain(r)},e.select=function(r){return console&&"function"==typeof console.log&&console.log('WARNING: Function "select" is renamed to "chain". It will be deprecated in v2.0.'),e.select=e.chain,e.chaining.Chain.prototype.select=e.select,e.chain(r)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(13),i=r.number,o=r.number.isNumber,a=n.isCollection;e.string=function s(r){switch(arguments.length){case 0:return"";case 1:return o(r)?i.format(r):a(r)?n.deepMap(r,s):null===r?"null":r.toString();default:throw new e.error.ArgumentsError("string",arguments.length,0,1)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(10),o=t(13),a=o.isCollection,s=r.string.isString;e.unit=function u(r){switch(arguments.length){case 1:var t=arguments[0];if(t instanceof i)return t.clone();if(s(t)){if(i.isValuelessUnit(t))return new i(null,t);var f=i.parse(t);if(f)return f;throw new SyntaxError('String "'+t+'" is no valid unit')}if(a(r))return o.deepMap(r,u);throw new TypeError("A string or a number and string expected in function unit");case 2:return arguments[0]instanceof n?new i(arguments[0].toNumber(),arguments[1]):new i(arguments[0],arguments[1]);default:throw new e.error.ArgumentsError("unit",arguments.length,1,2)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.and=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("and",arguments.length,2);if((s(r)||u(r)||null===r)&&(s(t)||u(t)||null===t))return!(!r||!t);if(f(r))return 0==r.re&&0==r.im?!1:p(!0,t);if(f(t))return 0==t.re&&0==t.im?!1:p(r,!0);if(r instanceof n)return r.isZero()||r.isNaN()?!1:p(!0,t);if(t instanceof n)return t.isZero()||t.isNaN()?!1:p(r,!0);if(c(r))return null===r.value||0==r.value?!1:p(!0,t);if(c(t))return null===t.value||0==t.value?!1:p(r,!0);if(l(r)||l(t))return a.deepMap2(r,t,p);throw new e.error.UnsupportedTypeError("and",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.not=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("not",arguments.length,1);if(s(r)||u(r)||null===r)return!r;if(f(r))return 0==r.re&&0==r.im;if(r instanceof n)return r.isZero()||r.isNaN();if(c(r))return null===r.value||0==r.value;if(l(r))return a.deepMap(r,p);throw new e.error.UnsupportedTypeError("not",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.or=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("or",arguments.length,2);if((s(r)||u(r)||null===r)&&(s(t)||u(t)||null===t))return!(!r&&!t);if(f(r))return 0==r.re&&0==r.im?p(!1,t):!0;if(f(t))return 0==t.re&&0==t.im?p(r,!1):!0;if(r instanceof n)return r.isZero()||r.isNaN()?p(!1,t):!0;if(t instanceof n)return t.isZero()||t.isNaN()?p(r,!1):!0;if(c(r))return null===r.value||0==r.value?p(!1,t):!0;if(c(t))return null===t.value||0==t.value?p(r,!1):!0;if(l(r)||l(t))return a.deepMap2(r,t,p);throw new e.error.UnsupportedTypeError("or",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.xor=function p(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("xor",arguments.length,2);if((s(r)||u(r)||null===r)&&(s(t)||u(t)||null===t))return!!(!!r^!!t);if(f(r))return p(!(0==r.re&&0==r.im),t);if(f(t))return p(r,!(0==t.re&&0==t.im));if(r instanceof n)return p(!(r.isZero()||r.isNaN()),t);if(t instanceof n)return p(r,!(t.isZero()||t.isNaN()));if(c(r))return p(!(null===r.value||0==r.value),t);if(c(t))return p(r,!(null===t.value||0==t.value));if(l(r)||l(t))return a.deepMap2(r,t,p);throw new e.error.UnsupportedTypeError("xor",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){function r(t,n,i,o){if(i>o){if(t.length!=n.length)throw new e.error.DimensionError(t.length,n.length);for(var a=[],s=0;st;t++){var g=arguments[t];if(g instanceof o&&(m=!0),t==a-1&&(f(g)||g instanceof i)){if(n=p,p=g.valueOf(),!c(p))throw new TypeError("Integer number expected for dimension");if(0>p)throw new e.error.IndexError(p);if(t>0&&p>n)throw new e.error.IndexError(p,n+1)}else{if(!l(g))throw new e.error.UnsupportedTypeError("concat",e["typeof"](g));var d=s.clone(g).valueOf(),w=u.size(g.valueOf());if(h[t]=d,n=p,p=w.length-1,t>0&&p!=n)throw new e.error.DimensionError(n+1,p+1)}}if(0==h.length)throw new SyntaxError("At least one matrix expected");for(var x=h.shift();h.length;)x=r(x,h.shift(),p,0);return m?new o(x):x}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var i=n.size(r),o=n.size(t);if(1!=i.length||1!=o.length||3!=i[0]||3!=o[0])throw new RangeError("Vectors with length 3 expected (Size A = ["+i.join(", ")+"], B = ["+o.join(", ")+"])");return[e.subtract(e.multiply(r[1],t[2]),e.multiply(r[2],t[1])),e.subtract(e.multiply(r[2],t[0]),e.multiply(r[0],t[2])),e.subtract(e.multiply(r[0],t[1]),e.multiply(r[1],t[0]))]}var n=t(153),i=t(9);e.cross=function(t,n){if(t instanceof i){if(n instanceof i)return new i(r(t.toArray(),n.toArray()));if(Array.isArray(n))return new i(r(t.toArray(),n))}else if(Array.isArray(t)){if(n instanceof i)return new i(r(t,n.toArray()));if(Array.isArray(n))return r(t,n)}throw new e.error.UnsupportedTypeError("cross",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){if(1==t)return o.clone(r[0][0]);if(2==t)return e.subtract(e.multiply(r[0][0],r[1][1]),e.multiply(r[1][0],r[0][1]));for(var n=function(r){var t,n,i=new Array(r.length),o=0;for(t=1;tn;n++)i[t][n]=0;for(n=t+1;na;a++)i=e.multiply(n(i),r);return t%2==0?e.unaryMinus(i[0][0]):i[0][0]}var n=t(160),i=t(9),o=n.object,a=n.string;e.det=function(t){if(1!=arguments.length)throw new e.error.ArgumentsError("det",arguments.length,1);var n;switch(t instanceof i?n=t.size():t instanceof Array?(t=new i(t),n=t.size()):n=[],n.length){case 0:return o.clone(t);case 1:if(1==n[0])return o.clone(t.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+a.format(n)+")");case 2:var s=n[0],u=n[1];if(s==u)return r(t.clone().valueOf(),s,u);throw new RangeError("Matrix must be square (size: "+a.format(n)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+a.format(n)+")") }}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(9),o=r.object,a=r.array.isArray,s=r.number.isNumber,u=r.number.isInteger;e.diag=function(r,t){var f,c,l,p;if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("diag",arguments.length,1,2);if(t){if(t instanceof n&&(t=t.toNumber()),!s(t)||!u(t))throw new TypeError("Second parameter in function diag must be an integer")}else t=0;var m,h=t>0?t:0,g=0>t?-t:0;if(r instanceof i)m=!1;else{if(!a(r))throw new TypeError("First parameter in function diag must be a Matrix or Array");r=new i(r),m=!0}var d=r.size();switch(d.length){case 1:c=r.valueOf();var w=new i,x=c[0]instanceof n?new n(0):0;for(w.resize([c.length+g,c.length+h],x),f=w.valueOf(),p=c.length,l=0;p>l;l++)f[l+g][l+h]=o.clone(c[l]);return m?w.valueOf():w;case 2:for(c=[],f=r.valueOf(),p=Math.min(d[0]-g,d[1]-h),l=0;p>l;l++)c[l]=o.clone(f[l+g][l+h]);return m?c:new i(c);default:throw new RangeError("Matrix for function diag must be 2 dimensional")}}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var i=n.size(r),o=n.size(t),a=i[0];if(1!==i.length||1!==o.length)throw new RangeError("Vector expected");if(i[0]!=o[0])throw new RangeError("Vectors must have equal length ("+i[0]+" != "+o[0]+")");if(0==a)throw new RangeError("Cannot calculate the dot product of empty vectors");for(var s=0,u=0;a>u;u++)s=e.add(s,e.multiply(r[u],t[u]));return s}var n=t(153),i=t(9);e.dot=function(t,n){if(t instanceof i){if(n instanceof i)return r(t.toArray(),n.toArray());if(Array.isArray(n))return r(t.toArray(),n)}else if(Array.isArray(t)){if(n instanceof i)return r(t,n.toArray());if(Array.isArray(n))return r(t,n)}throw new e.error.UnsupportedTypeError("dot",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(9),a=t(13),s=n.number.isNumber,u=n.number.isInteger,f=Array.isArray;e.eye=function(t){var n=a.argsToArray(arguments),c=t instanceof o?!0:f(t)?!1:"matrix"===r.matrix;if(0==n.length)return c?new o:[];if(1==n.length)n[1]=n[0];else if(n.length>2)throw new e.error.ArgumentsError("eye",n.length,0,2);var l=n[0],p=n[1];if(l instanceof i&&(l=l.toNumber()),p instanceof i&&(p=p.toNumber()),!s(l)||!u(l)||1>l)throw new Error("Parameters in function eye must be positive integers");if(!s(p)||!u(p)||1>p)throw new Error("Parameters in function eye must be positive integers");var m=!1;n=n.map(function(e){return e instanceof i?(m=!0,e.toNumber()):e});var h=new o,g=m?new i(1):1,d=m?new i(0):0;h.resize(n,d);for(var w=e.min(n),x=h.valueOf(),y=0;w>y;y++)x[y][y]=g;return c?h:h.valueOf()}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(9),i=r.object,o=r.array,a=Array.isArray;e.flatten=function(r){if(1!==arguments.length)throw new e.error.ArgumentsError("flatten",arguments.length,1);if(r instanceof n){var t=i.clone(r.toArray()),s=o.flatten(t);return new n(s)}if(a(r))return o.flatten(i.clone(r));throw new e.error.UnsupportedTypeError("flatten",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t,n){var i,o,a,s,u;if(1==t){if(s=r[0][0],0==s)throw Error("Cannot calculate inverse, determinant is zero");return[[e._divide(1,s)]]}if(2==t){var f=e.det(r);if(0==f)throw Error("Cannot calculate inverse, determinant is zero");return[[e._divide(r[1][1],f),e._divide(e.unaryMinus(r[0][1]),f)],[e._divide(e.unaryMinus(r[1][0]),f),e._divide(r[0][0],f)]]}var c=r.concat();for(i=0;t>i;i++)c[i]=c[i].concat();for(var l=e.eye(t).valueOf(),p=0;n>p;p++){for(i=p;t>i&&0==c[i][p];)i++;if(i==t||0==c[i][p])throw Error("Cannot calculate inverse, determinant is zero");i!=p&&(u=c[p],c[p]=c[i],c[i]=u,u=l[p],l[p]=l[i],l[i]=u);var m=c[p],h=l[p];for(i=0;t>i;i++){var g=c[i],d=l[i];if(i!=p){if(0!=g[p]){for(a=e._divide(e.unaryMinus(g[p]),m[p]),o=p;n>o;o++)g[o]=e.add(g[o],e.multiply(a,m[o]));for(o=0;n>o;o++)d[o]=e.add(d[o],e.multiply(a,h[o]))}}else{for(a=m[p],o=p;n>o;o++)g[o]=e._divide(g[o],a);for(o=0;n>o;o++)d[o]=e._divide(d[o],a)}}}return l}var n=t(160),i=t(9);e.inv=function(t){if(1!=arguments.length)throw new e.error.ArgumentsError("inv",arguments.length,1);var o=e.size(t).valueOf();switch(o.length){case 0:return e._divide(1,t);case 1:if(1==o[0])return t instanceof i?new i([e._divide(1,t.valueOf()[0])]):[e._divide(1,t[0])];throw new RangeError("Matrix must be square (size: "+n.string.format(o)+")");case 2:var a=o[0],s=o[1];if(a==s)return t instanceof i?new i(r(t.valueOf(),a,s)):r(t,a,s);throw new RangeError("Matrix must be square (size: "+n.string.format(o)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+n.string.format(o)+")")}}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(9),a=t(13),s=n.array,u=Array.isArray;e.ones=function(e){var t=a.argsToArray(arguments),n=e instanceof o?!0:u(e)?!1:"matrix"===r.matrix;if(0==t.length)return n?new o:[];var f=!1;t=t.map(function(e){return e instanceof i?(f=!0,e.toNumber()):e});var c=[],l=f?new i(1):1;return c=s.resize(c,t,l),n?new o(c):c}}},function(e,r,t){"use strict";e.exports=function(e,r){function n(e,r,t){var n=[],i=e;if(t>0)for(;r>i;)n.push(i),i+=t;else if(0>t)for(;i>r;)n.push(i),i+=t;return n}function i(e,r,t){var n=[],i=e;if(t>0)for(;r>=i;)n.push(i),i+=t;else if(0>t)for(;i>=r;)n.push(i),i+=t;return n}function o(e,r,t){var n=[],i=e.clone(),o=new f(0);if(t.gt(o))for(;i.lt(r);)n.push(i),i=i.plus(t);else if(t.lt(o))for(;i.gt(r);)n.push(i),i=i.plus(t);return n}function a(e,r,t){var n=[],i=e.clone(),o=new f(0);if(t.gt(o))for(;i.lte(r);)n.push(i),i=i.plus(t);else if(t.lt(o))for(;i.gte(r);)n.push(i),i=i.plus(t);return n}function s(e){var t=e.split(":"),n=null;if("bignumber"===r.number)try{n=t.map(function(e){return new f(e)})}catch(i){return null}else{n=t.map(function(e){return Number(e)});var o=n.some(function(e){return isNaN(e)});if(o)return null}switch(n.length){case 2:return{start:n[0],end:n[1],step:1};case 3:return{start:n[0],end:n[2],step:n[1]};default:return null}}var u=t(160),f=e.type.BigNumber,c=t(9),l=(t(13),u["boolean"].isBoolean),p=u.string.isString,m=u.number.isNumber;e.range=function(){var t,u,h,g=Array.prototype.slice.call(arguments),d=!1;switch(l(g[g.length-1])&&(d=g.pop()?!0:!1),g.length){case 1:if(!p(g[0]))throw new TypeError("Two or three numbers or a single string expected in function range");var w=s(g[0]);if(!w)throw new SyntaxError('String "'+g[0]+'" is no valid range');t=w.start,u=w.end,h=w.step;break;case 2:t=g[0],u=g[1],h=1;break;case 3:t=g[0],u=g[1],h=g[2];break;case 4:throw new TypeError("Parameter includeEnd must be a boolean");default:throw new e.error.ArgumentsError("range",arguments.length,2,4)}if(!(m(t)||t instanceof f))throw new TypeError("Parameter start must be a number");if(!(m(u)||u instanceof f))throw new TypeError("Parameter end must be a number");if(!(m(h)||h instanceof f))throw new TypeError("Parameter step must be a number");if(t instanceof f||u instanceof f||h instanceof f){var x=!0;t instanceof f||(t=f.convert(t)),u instanceof f||(u=f.convert(u)),h instanceof f||(h=f.convert(h)),t instanceof f&&u instanceof f&&h instanceof f||(x=!1,t instanceof f&&(t=t.toNumber()),u instanceof f&&(u=u.toNumber()),h instanceof f&&(h=h.toNumber()))}var y=x?d?a:o:d?i:n,v=y(t,u,h);return"array"===r.matrix?v:new c(v)}}},function(e,r,t){"use strict";e.exports=function(e,r){function n(r,t,n){if(void 0!==n){if(!c(n)||1!==n.length)throw new TypeError("Single character expected as defaultValue")}else n=" ";if(1!==t.length)throw new e.error.DimensionError(t.length,1);var i=t[0];if(!l(i)||!p(i))throw new TypeError("Invalid size, must contain positive integers (size: "+f.format(t)+")");if(r.length>i)return r.substring(0,i);if(r.lengtha;a++)o+=n;return o}return r}var i=t(160),o=e.type.BigNumber,a=t(9),s=i.array,u=i.object.clone,f=i.string,c=i.string.isString,l=i.number.isNumber,p=i.number.isInteger,m=s.isArray;e.resize=function(t,i,f){if(2!=arguments.length&&3!=arguments.length)throw new e.error.ArgumentsError("resize",arguments.length,2,3);var l=t instanceof a?!0:m(t)?!1:"array"!==r.matrix;if(t instanceof a&&(t=t.valueOf()),i instanceof a&&(i=i.valueOf()),i.length&&i[0]instanceof o&&(i=i.map(function(e){return e instanceof o?e.toNumber():e})),c(t))return n(t,i,f);if(0==i.length){for(;m(t);)t=t[0];return u(t)}m(t)||(t=[t]),t=u(t);var p=s.resize(t,i,f);return l?new a(p):p}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(9),u=n.array,f=n.number.isNumber,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit;e.size=function(t){if(1!=arguments.length)throw new e.error.ArgumentsError("size",arguments.length,1);var n="array"===r.matrix;if(f(t)||p(t)||m(t)||c(t)||null==t||t instanceof i)return n?[]:new s([]);if(l(t))return n?[t.length]:new s([t.length]);if(Array.isArray(t))return u.size(t);if(t instanceof s)return new s(t.size());throw new e.error.UnsupportedTypeError("size",e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(9),i=r.object,o=r.array,a=Array.isArray;e.squeeze=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("squeeze",arguments.length,1);if(a(r))return o.squeeze(i.clone(r));if(r instanceof n){var t=o.squeeze(r.toArray());return a(t)?new n(t):t}return i.clone(r)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var i,o;if(l(r))return i=new s(r),o=i.subset(t),o&&o.valueOf();if(r instanceof s)return r.subset(t);if(c(r))return n(r,t);throw new e.error.UnsupportedTypeError("subset",e["typeof"](r))}function n(r,t){if(!(t instanceof u))throw new TypeError("Index expected");if(1!=t.size().length)throw new e.error.DimensionError(t.size().length,1);var n=r.length;f.validateIndex(t.min()[0],n),f.validateIndex(t.max()[0],n);var i=t.range(0),o="";return i.forEach(function(e){o+=r.charAt(e)}),o}function i(r,t,n,i){var a;if(l(r))return a=new s(e.clone(r)),a.subset(t,n,i),a.valueOf();if(r instanceof s)return r.clone().subset(t,n,i);if(c(r))return o(r,t,n,i);throw new e.error.UnsupportedTypeError("subset",e["typeof"](r))}function o(r,t,n,i){if(!(t instanceof u))throw new TypeError("Index expected");if(1!=t.size().length)throw new e.error.DimensionError(t.size().length,1);if(void 0!==i){if(!c(i)||1!==i.length)throw new TypeError("Single character expected as defaultValue")}else i=" ";var o=t.range(0),a=o.size()[0];if(a!=n.length)throw new e.error.DimensionError(o.size()[0],n.length);var s=r.length;f.validateIndex(t.min()[0]),f.validateIndex(t.max()[0]);for(var l=[],p=0;s>p;p++)l[p]=r.charAt(p);if(o.forEach(function(e,r){l[e]=n.charAt(r)}),l.length>s)for(p=s-1,a=l.length;a>p;p++)l[p]||(l[p]=i);return l.join("")}var a=t(160),s=t(9),u=t(8),f=a.array,c=a.string.isString,l=Array.isArray;e.subset=function(){switch(arguments.length){case 2:return r(arguments[0],arguments[1]);case 3:case 4:return i(arguments[0],arguments[1],arguments[2],arguments[3]);default:throw new e.error.ArgumentsError("subset",arguments.length,2,4)}}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(9),i=r.object,o=r.string;e.transpose=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("transpose",arguments.length,1);var t=e.size(r).valueOf();switch(t.length){case 0:return i.clone(r);case 1:return i.clone(r);case 2:var a,s=t[1],u=t[0],f=r instanceof n,c=r.valueOf(),l=[],p=i.clone;if(0===s)throw new RangeError("Cannot transpose a 2D matrix with no rows(size: "+o.format(t)+")");for(var m=0;s>m;m++){a=l[m]=[];for(var h=0;u>h;h++)a[h]=p(c[h][m])}return f?new n(l):l;default:throw new RangeError("Matrix must be two dimensional (size: "+o.format(t)+")")}}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(9),a=t(13),s=n.array,u=Array.isArray;e.zeros=function(e){var t=a.argsToArray(arguments),n=e instanceof o?!0:u(e)?!1:"matrix"===r.matrix;if(0==t.length)return n?new o:[];var f=!1;t=t.map(function(e){return e instanceof i?(f=!0,e.toNumber()):e});var c=[],l=f?new i(0):0;return c=s.resize(c,t,l),n?new o(c):c}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(13),o=r.number.isNumber,a=r["boolean"].isBoolean,s=(r.number.isInteger,i.isCollection);e.factorial=function c(r){var t,l;if(1!=arguments.length)throw new e.error.ArgumentsError("factorial",arguments.length,1);if(o(r))return e.gamma(r+1);if(r instanceof n){if(!u(r)&&r.isFinite())return e.gamma(r.plus(1));if(!r.isFinite())return new n(r);if(r=r.toNumber(),rr?new n(f[r]):f[r];var p=new n(1);t=new n(f.length),l=f[f.length-1];for(var m=f.length;r>m;++m)l=l.times(t),t=t.plus(p),f[m]=l;return f[r]=l.times(t)}if(a(r)||null===r)return 1;if(s(r))return i.deepMap(r,c);throw new e.error.UnsupportedTypeError("factorial",e["typeof"](r))};var u=function(e){return e.isInteger()&&(!e.isNegative()||e.isZero())},f=[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,20922789888e3,355687428096e3,6402373705728e3,0x1b02b9306890000,243290200817664e4,new n("51090942171709440000")]}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r["boolean"].isBoolean,s=i.isComplex,u=r.number.isNumber,f=r.number.isInteger,c=o.isCollection;e.gamma=function p(r){var t,m,h=4.7421875;if(1!=arguments.length)throw new e.error.ArgumentsError("gamma",arguments.length,1);if(u(r)){if(f(r)){if(0>=r)return isFinite(r)?1/0:0/0;if(r>171)return 1/0;for(var g=r-2,d=r-1;g>1;)d*=g,g--;return 0==d&&(d=1),d}if(.5>r)return Math.PI/(Math.sin(Math.PI*r)*p(1-r));if(r>=171.35)return 1/0;if(r>85){var w=r*r,x=w*r,y=x*r,v=y*r;return Math.sqrt(2*Math.PI/r)*Math.pow(r/Math.E,r)*(1+1/(12*r)+1/(288*w)-139/(51840*x)-571/(2488320*y)+163879/(209018880*v)+5246819/(75246796800*v*r))}--r,m=l[0];for(var b=1;b2)throw new e.error.ArgumentsError("permutations",arguments.length,2);if(i(r)){if(!o(r)||0>r)throw new TypeError("Positive integer value expected in function permutations");if(1==f)return e.factorial(r);if(2==f&&i(t)){if(!o(t)||0>t)throw new TypeError("Positive integer value expected in function permutations");if(t>r)throw new TypeError("second argument k must be less than or equal to first argument n");for(s=1,u=r-t+1;r>=u;u++)s*=u;return s}}if(r instanceof n){if(void 0===t&&a(r))return e.factorial(r);if(t=n.convert(t),!(t instanceof n&&a(r)&&a(t)))throw new TypeError("Positive integer value expected in function permutations");if(t.gt(r))throw new TypeError("second argument k must be less than or equal to first argument n");for(s=new n(1),u=r.minus(t).plus(1);u.lte(r);u=u.plus(1))s=s.times(u);return s}throw new e.error.UnsupportedTypeError("permutations",e["typeof"](r))};var a=function(e){return e.isInteger()&&e.gte(0)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=(t(13),r.number.isNumber),o=r.number.isInteger;e.combinations=function(r,t){var s,u,f,c,l=arguments.length;if(2!=l)throw new e.error.ArgumentsError("combinations",arguments.length,2);if(i(r)){if(!o(r)||0>r)throw new TypeError("Positive integer value enpected in function combinations");if(t>r)throw new TypeError("k must be less than or equal to n");for(s=Math.max(t,r-t),u=1,f=1;r-s>=f;f++)u=u*(s+f)/f;return u}if(r instanceof n){if(t=n.convert(t),!(t instanceof n&&a(r)&&a(t)))throw new TypeError("Positive integer value expected in function combinations");if(t.gt(r))throw new TypeError("k must be less than n in function combinations");for(s=r.minus(t),t.lt(s)&&(s=t),u=new n(1),f=new n(1),c=r.minus(s);f.lte(c);f=f.plus(1))u=u.times(s.plus(f)).dividedBy(f);return u}throw new e.error.UnsupportedTypeError("combinations",e["typeof"](r))};var a=function(e){return e.isInteger()&&e.gte(0)}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n.number.nearlyEqual,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.compare=function g(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("compare",arguments.length,2);if(u(t)&&u(n))return f(t,n,r.epsilon)?0:t>n?1:-1;if(t instanceof i)return u(n)?n=i.convert(n):(c(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?new i(t.cmp(n)):g(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):(c(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?new i(t.cmp(n)):g(t,n.toNumber());if(m(t)&&m(n)){if(!t.equalBase(n))throw new Error("Cannot compare units with different base");return t.value>n.value?1:t.valuen?1:n>t?-1:0;if(c(t)||null===t)return g(+t,n);if(c(n)||null===n)return g(t,+n);if(p(t)||p(n))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("compare",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(t,n){if(o(t)){if(o(n)){var i=t.length;if(i!==n.length)return!1;for(var a=0;i>a;a++)if(!r(t[a],n[a]))return!1;return!0}return!1}return o(n)?!1:e.equal(t,n)}var n=t(13),i=n.isCollection,o=Array.isArray;e.deepEqual=function(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("deepEqual",arguments.length,2);return i(t)||i(n)?r(t.valueOf(),n.valueOf()):e.equal(t,n)}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n.number.nearlyEqual,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.equal=function g(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("equal",arguments.length,2);if(u(t)){if(u(n))return f(t,n,r.epsilon);if(p(n))return f(t,n.re,r.epsilon)&&f(n.im,0,r.epsilon)}if(p(t)){if(u(n))return f(t.re,n,r.epsilon)&&f(t.im,0,r.epsilon);if(p(n))return f(t.re,n.re,r.epsilon)&&f(t.im,n.im,r.epsilon)}if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?t.eq(n):g(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?t.eq(n):g(t,n.toNumber());if(m(t)&&m(n)){if(!t.equalBase(n))throw new Error("Cannot compare units with different base");return t.value==n.value}if(h(t)||h(n))return s.deepMap2(t,n,g);if(l(t)||l(n))return t==n;if(c(t))return g(+t,n);if(c(n))return g(t,+n);if(null===t)return null===n;if(null===n)return null===t;if(void 0===t)return void 0===n;if(void 0===n)return void 0===t;throw new e.error.UnsupportedTypeError("equal",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n.number.nearlyEqual,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.larger=function g(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("larger",arguments.length,2);if(u(t)&&u(n))return!f(t,n,r.epsilon)&&t>n;if(t instanceof i)return u(n)?n=i.convert(n):(c(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?t.gt(n):g(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):(c(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?t.gt(n):g(t,n.toNumber());if(m(t)&&m(n)){if(!t.equalBase(n))throw new Error("Cannot compare units with different base");return t.value>n.value}if(h(t)||h(n))return s.deepMap2(t,n,g);if(l(t)||l(n))return t>n;if(c(t)||null===t)return g(+t,n);if(c(n)||null===n)return g(t,+n);if(p(t)||p(n))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("larger",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n.number.nearlyEqual,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.largerEq=function g(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("largerEq",arguments.length,2);if(u(t)&&u(n))return f(t,n,r.epsilon)||t>n;if(t instanceof i)return u(n)?n=i.convert(n):(c(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?t.gte(n):g(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):(c(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?t.gte(n):g(t,n.toNumber());if(m(t)&&m(n)){if(!t.equalBase(n))throw new Error("Cannot compare units with different base");return t.value>=n.value}if(h(t)||h(n))return s.deepMap2(t,n,g);if(l(t)||l(n))return t>=n;if(c(t)||null===t)return g(+t,n);if(c(n)||null===n)return g(t,+n);if(p(t)||p(n))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("largerEq",e["typeof"](t),e["typeof"](n))},e.largereq=function(){throw new Error("Function largereq is renamed to largerEq")}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n.number.nearlyEqual,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.smaller=function g(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("smaller",arguments.length,2);if(u(t)&&u(n))return!f(t,n,r.epsilon)&&n>t;if(t instanceof i)return u(n)?n=i.convert(n):(c(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?t.lt(n):g(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):(c(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?t.lt(n):g(t,n.toNumber());if(m(t)&&m(n)){if(!t.equalBase(n))throw new Error("Cannot compare units with different base");return t.valuet;if(c(t)||null===t)return g(+t,n);if(c(n)||null===n)return g(t,+n);if(p(t)||p(n))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("smaller",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n.number.nearlyEqual,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.smallerEq=function g(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("smallerEq",arguments.length,2);if(u(t)&&u(n))return f(t,n,r.epsilon)||n>t;if(t instanceof i)return u(n)?n=i.convert(n):(c(n)||null===n)&&(n=new i(n?1:0)),n instanceof i?t.lte(n):g(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):(c(t)||null===t)&&(t=new i(t?1:0)),t instanceof i?t.lte(n):g(t,n.toNumber());if(m(t)&&m(n)){if(!t.equalBase(n))throw new Error("Cannot compare units with different base");return t.value<=n.value}if(h(t)||h(n))return s.deepMap2(t,n,g);if(l(t)||l(n))return n>=t;if(c(t)||null===t)return g(+t,n);if(c(n)||null===n)return g(t,+n);if(p(t)||p(n))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("smallerEq",e["typeof"](t),e["typeof"](n))},e.smallereq=function(){throw new Error("Function smallereq is renamed to smallerEq")}}},function(e,r,t){"use strict";e.exports=function(e,r){var n=t(160),i=e.type.BigNumber,o=t(6),a=t(10),s=t(13),u=n.number.isNumber,f=n.number.nearlyEqual,c=n["boolean"].isBoolean,l=n.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.unequal=function g(t,n){if(2!=arguments.length)throw new e.error.ArgumentsError("unequal",arguments.length,2);if(u(t)){if(u(n))return!f(t,n,r.epsilon);if(p(n))return!f(t,n.re,r.epsilon)||!f(n.im,0,r.epsilon)}if(p(t)){if(u(n))return!f(t.re,n,r.epsilon)||!f(t.im,0,r.epsilon);if(p(n))return!f(t.re,n.re,r.epsilon)||!f(t.im,n.im,r.epsilon)}if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?!t.eq(n):g(t.toNumber(),n);if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?!t.eq(n):g(t,n.toNumber());if(m(t)&&m(n)){if(!t.equalBase(n))throw new Error("Cannot compare units with different base");return t.value!=n.value}if(h(t)||h(n))return s.deepMap2(t,n,g);if(l(t)||l(n))return t!=n;if(c(t))return g(+t,n);if(c(n))return g(t,+n);if(null===t)return null!==n;if(null===n)return null!==t;if(void 0===t)return void 0!==n;if(void 0===n)return void 0!==t;throw new e.error.UnsupportedTypeError("unequal",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){return e.smaller(r,t)?r:t}function n(r){var t=void 0;if(i.deepForEach(r,function(r){(void 0===t||e.smaller(r,t))&&(t=r)}),void 0===t)throw new Error("Cannot calculate min of an empty array");return t}var i=(t(9),t(13)),o=i.isCollection;e.min=function(e){if(0==arguments.length)throw new SyntaxError("Function min requires one or more parameters (0 provided)");if(o(e)){if(1==arguments.length)return n(e);if(2==arguments.length)return i.reduce(arguments[0],arguments[1],r);throw new SyntaxError("Wrong number of parameters")}return n(arguments)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){return e.larger(r,t)?r:t}function n(r){var t=void 0;if(i.deepForEach(r,function(r){(void 0===t||e.larger(r,t))&&(t=r)}),void 0===t)throw new Error("Cannot calculate max of an empty array");return t}var i=(t(9),t(13)),o=i.isCollection;e.max=function(e){if(0==arguments.length)throw new SyntaxError("Function max requires one or more parameters (0 provided)");if(o(e)){if(1==arguments.length)return n(e);if(2==arguments.length)return i.reduce(arguments[0],arguments[1],r);throw new SyntaxError("Wrong number of parameters")}return n(arguments)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var n=i.reduce(r,t,e.add),o=s(r)?a(r):r.size();return e.divide(n,o[t])}function n(r){var t=0,n=0;if(i.deepForEach(r,function(r){t=e.add(t,r),n++}),0===n)throw new Error("Cannot calculate mean of an empty array");return e.divide(t,n)}var i=(t(9),t(13)),o=i.isCollection,a=t(153).size,s=Array.isArray;e.mean=function(e){if(0==arguments.length)throw new SyntaxError("Function mean requires one or more parameters (0 provided)");if(o(e)){if(1==arguments.length)return n(e);if(2==arguments.length)return r(arguments[0],arguments[1]);throw new SyntaxError("Wrong number of parameters")}return n(arguments)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r){var t=u(r);t.sort(e.compare);var o=t.length;if(0==o)throw new Error("Cannot calculate median of an empty array");if(o%2==0){var s=t[o/2-1],f=t[o/2];if(!(a(s)||s instanceof i||s instanceof n))throw new e.error.UnsupportedTypeError("median",e["typeof"](s));if(!(a(f)||f instanceof i||f instanceof n))throw new e.error.UnsupportedTypeError("median",e["typeof"](f));return e.divide(e.add(s,f),2)}var c=t[(o-1)/2];if(!(a(c)||c instanceof i||c instanceof n))throw new e.error.UnsupportedTypeError("median",e["typeof"](c));return c}var n=(t(9),t(10)),i=e.type.BigNumber,o=t(13),a=t(4).isNumber,s=o.isCollection,u=t(153).flatten;e.median=function(e){if(0==arguments.length)throw new SyntaxError("Function median requires one or more parameters (0 provided)");if(s(e)){if(1==arguments.length)return r(e.valueOf());throw 2==arguments.length?new Error("median(A, dim) is not yet supported"):new SyntaxError("Wrong number of parameters")}return r(Array.prototype.slice.call(arguments))}}},function(e,r,t){"use strict";e.exports=function(e){function r(r){var t=void 0;if(n.deepForEach(r,function(r){t=void 0===t?r:e.multiply(t,r)}),void 0===t)throw new Error("Cannot calculate prod of an empty array");return t}var n=(t(9),t(13)),i=n.isCollection;e.prod=function(e){if(0==arguments.length)throw new SyntaxError("Function prod requires one or more parameters (0 provided)");if(i(e)){if(1==arguments.length)return r(e);throw 2==arguments.length?new Error("prod(A, dim) is not yet supported"):new SyntaxError("Wrong number of parameters")}return r(arguments)}}},function(e){"use strict";e.exports=function(e){e.std=function(){if(0==arguments.length)throw new SyntaxError("Function std requires one or more parameters (0 provided)");var r=e["var"].apply(null,arguments);return e.sqrt(r)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r){var t=void 0;if(n.deepForEach(r,function(r){t=void 0===t?r:e.add(t,r)}),void 0===t)throw new Error("Cannot calculate sum of an empty array");return t}var n=(t(9),t(13)),i=n.isCollection;e.sum=function(e){if(0==arguments.length)throw new SyntaxError("Function sum requires one or more parameters (0 provided)");if(i(e)){if(1==arguments.length)return r(e);throw 2==arguments.length?new Error("sum(A, dim) is not yet supported"):new SyntaxError("Wrong number of parameters")}return r(arguments)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t){var o=0,a=0;if(i.deepForEach(r,function(r){o=e.add(o,r),a++}),0===a)throw new Error("Cannot calculate var of an empty array");var s=e.divide(o,a);switch(o=0,i.deepForEach(r,function(r){var t=e.subtract(r,s);o=e.add(o,e.multiply(t,t))}),t){case"uncorrected":return e.divide(o,a);case"biased":return e.divide(o,a+1);case"unbiased":var u=o instanceof n?new n(0):0;return 1==a?u:e.divide(o,a-1);default:throw new Error('Unknown normalization "'+t+'". Choose "unbiased" (default), "uncorrected", or "biased".')}}var n=(t(9),e.type.BigNumber),i=t(13),o=i.isCollection,a=t(176).isString,s="unbiased";e["var"]=function(e,t){if(0==arguments.length)throw new SyntaxError("Function var requires one or more parameters (0 provided)");if(o(e)){if(1==arguments.length)return r(e,s);if(2==arguments.length){if(!a(t))throw new Error("String expected for parameter normalization");return r(e,t)}throw new SyntaxError("Wrong number of parameters")}return r(arguments,s)}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.acos=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("acos",arguments.length,1);if(a(r))return r>=-1&&1>=r?Math.acos(r):c(new i(r,0));if(u(r)){var t=new i(r.im*r.im-r.re*r.re+1,-2*r.re*r.im),l=e.sqrt(t),p=new i(l.re-r.im,l.im+r.re),m=e.log(p);return new i(1.5707963267948966-m.im,m.re)}if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.acos(r);if(r instanceof n)return c(r.toNumber());throw new e.error.UnsupportedTypeError("acos",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.asin=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("asin",arguments.length,1); -if(a(r))return r>=-1&&1>=r?Math.asin(r):c(new i(r,0));if(u(r)){var t=r.re,l=r.im,p=new i(l*l-t*t+1,-2*t*l),m=e.sqrt(p),h=new i(m.re-l,m.im+t),g=e.log(h);return new i(g.im,-g.re)}if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.asin(r);if(r instanceof n)return c(r.toNumber());throw new e.error.UnsupportedTypeError("asin",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.atan=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("atan",arguments.length,1);if(a(r))return Math.atan(r);if(u(r)){var t=r.re,l=r.im,p=t*t+(1-l)*(1-l),m=new i((1-l*l-t*t)/p,-2*t/p),h=e.log(m);return new i(-.5*h.im,.5*h.re)}if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.atan(r);if(r instanceof n)return c(r.toNumber());throw new e.error.UnsupportedTypeError("atan",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=(i.isComplex,o.isCollection);e.atan2=function f(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("atan2",arguments.length,2);if(a(r)&&a(t))return Math.atan2(r,t);if(u(r)||u(t))return o.deepMap2(r,t,f);if(s(r)||null===r)return f(+r,t);if(s(t)||null===t)return f(r,+t);if(r instanceof n)return f(r.toNumber(),t);if(t instanceof n)return f(r,t.toNumber());throw new e.error.UnsupportedTypeError("atan2",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.cos=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cos",arguments.length,1);if(s(r))return Math.cos(r);if(f(r))return new i(Math.cos(r.re)*e.cosh(-r.im),Math.sin(r.re)*e.sinh(-r.im));if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function cos is no angle");return Math.cos(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return Math.cos(r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cos",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.cosh=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cosh",arguments.length,1);if(s(r))return(Math.exp(r)+Math.exp(-r))/2;if(f(r)){var t=Math.exp(r.re),m=Math.exp(-r.re);return new i(Math.cos(r.im)*(t+m)/2,Math.sin(r.im)*(t-m)/2)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function cosh is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cosh",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.cot=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cot",arguments.length,1);if(s(r))return 1/Math.tan(r);if(f(r)){var t=Math.exp(-4*r.im)-2*Math.exp(-2*r.im)*Math.cos(2*r.re)+1;return new i(2*Math.exp(-2*r.im)*Math.sin(2*r.re)/t,(Math.exp(-4*r.im)-1)/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function cot is no angle");return 1/Math.tan(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(+r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cot",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.coth=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("coth",arguments.length,1);if(s(r)){var t=Math.exp(2*r);return(t+1)/(t-1)}if(f(r)){var m=Math.exp(2*r.re),h=m*Math.cos(2*r.im),g=m*Math.sin(2*r.im),d=(h-1)*(h-1)+g*g;return new i(((h+1)*(h-1)+g*g)/d,-2*g/d)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function coth is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("coth",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.csc=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("csc",arguments.length,1);if(s(r))return 1/Math.sin(r);if(f(r)){var t=.25*(Math.exp(-2*r.im)+Math.exp(2*r.im))-.5*Math.cos(2*r.re);return new i(.5*Math.sin(r.re)*(Math.exp(-r.im)+Math.exp(r.im))/t,.5*Math.cos(r.re)*(Math.exp(-r.im)-Math.exp(r.im))/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function csc is no angle");return 1/Math.sin(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(+r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("csc",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number,u=r.number.isNumber,f=r["boolean"].isBoolean,c=i.isComplex,l=o.isUnit,p=a.isCollection;e.csch=function m(r){if(1!=arguments.length)throw new e.error.ArgumentsError("csch",arguments.length,1);if(u(r))return 0==r?Number.NaN:Math.abs(2/(Math.exp(r)-Math.exp(-r)))*s.sign(r);if(c(r)){var t=Math.exp(r.re),h=Math.exp(-r.re),g=Math.cos(r.im)*(t-h),d=Math.sin(r.im)*(t+h),w=g*g+d*d;return new i(2*g/w,-2*d/w)}if(l(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function csch is no angle");return m(r.value)}if(p(r))return a.deepMap(r,m);if(f(r)||null===r)return m(r?1:0);if(r instanceof n)return m(r.toNumber());throw new e.error.UnsupportedTypeError("csch",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sec=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sec",arguments.length,1);if(s(r))return 1/Math.cos(r);if(f(r)){var t=.25*(Math.exp(-2*r.im)+Math.exp(2*r.im))+.5*Math.cos(2*r.re);return new i(.5*Math.cos(r.re)*(Math.exp(-r.im)+Math.exp(r.im))/t,.5*Math.sin(r.re)*(Math.exp(r.im)-Math.exp(-r.im))/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sec is no angle");return 1/Math.cos(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(+r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sec",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sech=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sech",arguments.length,1);if(s(r))return 2/(Math.exp(r)+Math.exp(-r));if(f(r)){var t=Math.exp(r.re),m=Math.exp(-r.re),h=Math.cos(r.im)*(t+m),g=Math.sin(r.im)*(t-m),d=h*h+g*g;return new i(2*h/d,-2*g/d)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sech is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sech",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sin=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sin",arguments.length,1);if(s(r))return Math.sin(r);if(f(r))return new i(Math.sin(r.re)*e.cosh(-r.im),Math.cos(r.re)*e.sinh(r.im));if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sin is no angle");return Math.sin(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return Math.sin(r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sin",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sinh=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sinh",arguments.length,1);if(s(r))return Math.abs(r)<1?r+r*r*r/6+r*r*r*r*r/120:(Math.exp(r)-Math.exp(-r))/2;if(f(r)){var t=Math.cos(r.im),m=Math.sin(r.im),h=Math.exp(r.re),g=Math.exp(-r.re);return new i(t*(h-g)/2,m*(h+g)/2)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sinh is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sinh",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.tan=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("tan",arguments.length,1);if(s(r))return Math.tan(r);if(f(r)){var t=Math.exp(-4*r.im)+2*Math.exp(-2*r.im)*Math.cos(2*r.re)+1;return new i(2*Math.exp(-2*r.im)*Math.sin(2*r.re)/t,(1-Math.exp(-4*r.im))/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function tan is no angle");return Math.tan(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return Math.tan(r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tan",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.tanh=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("tanh",arguments.length,1);if(s(r)){var t=Math.exp(2*r);return(t-1)/(t+1)}if(f(r)){var m=Math.exp(2*r.re),h=m*Math.cos(2*r.im),g=m*Math.sin(2*r.im),d=(h+1)*(h+1)+g*g;return new i(((h-1)*(h+1)+g*g)/d,2*g/d)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function tanh is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tanh",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(10),i=t(13),o=r.string.isString,a=n.isUnit,s=i.isCollection;e.to=function u(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("to",arguments.length,2);if(a(r)&&(a(t)||o(t)))return r.to(t);if(s(r)||s(t))return i.deepMap2(r,t,u);throw new e.error.UnsupportedTypeError("to",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=r.object;e.clone=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("clone",arguments.length,1);return n.clone(r)}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){if("function"==typeof r)return e.filter(function(e){return r(e)});if(r instanceof RegExp)return e.filter(function(e){return r.test(e)});throw new TypeError("Function or RegExp expected")}var n=t(9);e.filter=function(t,i){if(2!==arguments.length)throw new e.error.ArgumentsError("filter",arguments.length,2);if(t instanceof n){var o=t.size();if(o.length>1)throw new Error("Only one dimensional matrices supported");return new n(r(t.toArray(),i))}if(Array.isArray(t))return r(t,i);throw new e.error.UnsupportedTypeError("filter",e["typeof"](t),e["typeof"](compare))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=r.string;e.format=function(r,t){var i=arguments.length;if(1!==i&&2!==i)throw new e.error.ArgumentsError("format",i,1,2);return n.format(r,t)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t,n){(n.override||void 0===e[r])&&(e[r]=n.wrap&&"function"==typeof t?function(){for(var r=[],n=0,i=arguments.length;i>n;n++){var o=arguments[n];r[n]=o&&o.valueOf()}return t.apply(e,r)}:t,e.chaining.Chain.createProxy(r,t))}function n(e){return"function"==typeof e||s(e)||u(e)||f(e)||c(e)}var i=t(160),o=t(6),a=t(10),s=i.number.isNumber,u=i.string.isString,f=o.isComplex,c=a.isUnit;e["import"]=function l(i,o){var a=arguments.length;if(1!=a&&2!=a)throw new e.error.ArgumentsError("import",a,1,2);var s,f={override:o&&o.override||!1,wrap:o&&o.wrap||!1};if(u(i)){var c=t(195)(i);l(c,o)}else{if("object"!=typeof i)throw new TypeError("Object or module name expected");for(s in i)if(i.hasOwnProperty(s)){var p=i[s];n(p)?r(s,p,f):l(p,o)}}}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=function(n,i){return Array.isArray(n)?n.map(function(e,r){return t(e,i.concat(r))}):r(n,i,e)};return t(e,[])}var n=t(9);e.map=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("map",arguments.length,2);if(Array.isArray(t))return r(t,i);if(t instanceof n)return t.map(i);throw new e.error.UnsupportedTypeError("map",e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=r.string.isString;e.print=function(r,t,i){var o=arguments.length;if(2!=o&&3!=o)throw new e.error.ArgumentsError("print",o,2,3);if(!n(r))throw new TypeError("String expected as first parameter in function format");if(!(t instanceof Object))throw new TypeError("Object expected as second parameter in function format");return r.replace(/\$([\w\.]+)/g,function(r,o){for(var a=o.split("."),s=t[a.shift()];a.length&&void 0!==s;){var u=a.shift();s=u?s[u]:s+"."}return void 0!==s?n(s)?s:e.format(s,i):r})}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(9);e.sort=function(t,n){var i=null;if(1===arguments.length)i=e.compare;else{if(2!==arguments.length)throw new e.error.ArgumentsError("sort",arguments.length,1,2);if("function"==typeof n)i=n;else if("asc"===n)i=e.compare;else{if("desc"!==n)throw new e.error.UnsupportedTypeError("sort",e["typeof"](t),e["typeof"](n));i=function(r,t){return-e.compare(r,t)}}}if(t instanceof r){var o=t.size();if(o.length>1)throw new Error("Only one dimensional matrices supported");return new r(t.toArray().sort(i))}if(Array.isArray(t))return t.sort(i);throw new e.error.UnsupportedTypeError("sort",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(196),n=t(6),i=t(9),o=t(10),a=t(8),s=t(7),u=t(11);e["typeof"]=function(t){if(1!=arguments.length)throw new e.error.ArgumentsError("typeof",arguments.length,1);var f=r.type(t);if("object"===f){if(t instanceof n)return"complex";if(t instanceof i)return"matrix";if(t instanceof o)return"unit";if(t instanceof a)return"index";if(t instanceof s)return"range";if(t instanceof u)return"help";if(t instanceof e.type.BigNumber)return"bignumber";if(t instanceof e.chaining.Chain)return"chain"}return f}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=function(n,i){Array.isArray(n)?n.forEach(function(e,r){t(e,i.concat(r))}):r(n,i,e)};t(e,[])}var n=t(9);e.forEach=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("forEach",arguments.length,2);if(Array.isArray(t))return r(t,i);if(t instanceof n)return t.forEach(i);throw new e.error.UnsupportedTypeError("forEach",e["typeof"](t))}}},function(e,r,t){"use strict";function n(e,t,n){var a,s,u=e.constructor,f=+(e.s<0),c=+(t.s<0);if(f){a=o(i(r.not(e)));for(var l=0;l0;)n(p[--g],m[--d])==w&&(x=x.plus(y)),y=y.times(v);for(;d>0;)n(h,m[--d])==w&&(x=x.plus(y)),y=y.times(v);return u.precision=b,0==w&&(x.s=-x.s),x}function i(e){for(var r=e.c,t=r[0]+"",n=1;n0)if(++s>f)for(s-=f;s--;u+="0");else f>s&&(u=u.slice(0,s)+"."+u.slice(s));return u}function o(e){for(var r=[0],t=0;t1&&(null==r[i+1]&&(r[i+1]=0),r[i+1]+=r[i]>>1,r[i]&=1)}return r.reverse()}{var a=t(159),s=t(4).isNumber;t(4).digits}r.isBigNumber=function(e){return e instanceof a},r.e=function(e){var r=a.constructor({precision:e});return new r(1).exp()},r.phi=function(e){var r=a.constructor({precision:e});return new r(1).plus(new r(5).sqrt()).div(2)},r.arctan=function(e){for(var r=e,t=0/0,n=e.times(e),i=e,o=-1,a=3;!r.equals(t);a+=2)i=i.times(n),t=r,r=o>0?r.plus(i.div(a)):r.minus(i.div(a)),o=-o;return r},r.pi=function(e){var t=a.constructor({precision:e+4}),n=new t(4).times(r.arctan(new t(1).div(5))).minus(r.arctan(new t(1).div(239)));return t.config({precision:e}),new t(4).times(n)},r.tau=function(e){var t=r.pi(e+2),n=a.constructor({precision:e});return new n(2).times(t)},r.and=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function bitAnd must be integer numbers");var t=e.constructor;if(e.isNaN()||r.isNaN())return new t(0/0);if(e.isZero()||r.eq(-1)||e.eq(r))return e;if(r.isZero()||e.eq(-1))return r;if(!e.isFinite()||!r.isFinite()){if(!e.isFinite()&&!r.isFinite())return e.isNegative()==r.isNegtive()?e:new t(0);if(!e.isFinite())return r.isNegative()?e:e.isNegative()?new t(0):r;if(!r.isFinite())return e.isNegative()?r:r.isNegative()?new t(0):e}return n(e,r,function(e,r){return e&r})},r.leftShift=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function leftShift must be integer numbers");var t=e.constructor;return e.isNaN()||r.isNaN()||r.isNegative()&&!r.isZero()?new t(0/0):e.isZero()||r.isZero()?e:e.isFinite()||r.isFinite()?e.times(r.lt(55)?Math.pow(2,r.toNumber())+"":new t(2).pow(r)):new t(0/0)},r.not=function(e){if(e.isFinite()&&!e.isInteger())throw new Error("Parameter in function bitNot must be integer numbers");var r=e.constructor,t=r.precision;r.precision=1e9;var e=e.plus(r.ONE);return e.s=-e.s||null,r.precision=t,e},r.or=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function bitOr must be integer numbers");var t=e.constructor;if(e.isNaN()||r.isNaN())return new t(0/0);var i=new t(-1);return e.isZero()||r.eq(i)||e.eq(r)?r:r.isZero()||e.eq(i)?e:e.isFinite()&&r.isFinite()?n(e,r,function(e,r){return e|r}):!e.isFinite()&&!e.isNegative()&&r.isNegative()||e.isNegative()&&!r.isNegative()&&!r.isFinite()?i:e.isNegative()&&r.isNegative()?e.isFinite()?e:r:e.isFinite()?r:e},r.rightShift=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function rightArithShift must be integer numbers");var t=e.constructor;return e.isNaN()||r.isNaN()||r.isNegative()&&!r.isZero()?new t(0/0):e.isZero()||r.isZero()?e:r.isFinite()?r.lt(55)?e.div(Math.pow(2,r.toNumber())+"").floor():e.div(new t(2).pow(r)).floor():new t(e.isNegative()?-1:e.isFinite()?0:0/0)},r.xor=function(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error("Parameters in function bitXor must be integer numbers");var i=e.constructor;if(e.isNaN()||t.isNaN())return new i(0/0);if(e.isZero())return t;if(t.isZero())return e;if(e.eq(t))return new i(0);var o=new i(-1);return e.eq(o)?r.not(t):t.eq(o)?r.not(e):e.isFinite()&&t.isFinite()?n(e,t,function(e,r){return e^r}):e.isFinite()||t.isFinite()?new i(e.isNegative()==t.isNegative()?1/0:-1/0):o},r.format=function(e,t){if("function"==typeof t)return t(e);if(!e.isFinite())return e.isNaN()?"NaN":e.gt(0)?"Infinity":"-Infinity";var n="auto",i=void 0;switch(void 0!==t&&(t.notation&&(n=t.notation),s(t)?i=t:t.precision&&(i=t.precision)),n){case"fixed":return r.toFixed(e,i);case"exponential":return r.toExponential(e,i);case"auto":var o=.001,a=1e5;t&&t.exponential&&(void 0!==t.exponential.lower&&(o=t.exponential.lower),void 0!==t.exponential.upper&&(a=t.exponential.upper));{({toExpNeg:e.constructor.toExpNeg,toExpPos:e.constructor.toExpPos})}if(e.constructor.config({toExpNeg:Math.round(Math.log(o)/Math.LN10),toExpPos:Math.round(Math.log(a)/Math.LN10)}),e.isZero())return"0";var u,f=e.abs();return u=f.gte(o)&&f.lt(a)?e.toSignificantDigits(i).toFixed():r.toExponential(e,i),u.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],r=arguments[4];return"."!==e?e+r:r});default:throw new Error('Unknown notation "'+n+'". Choose "auto", "exponential", or "fixed".')}},r.toExponential=function(e,r){return void 0!==r?e.toExponential(r-1):e.toExponential()},r.toFixed=function(e,r){return e.toFixed(r||0)}},function(e,r,t){"use strict";function n(e){for(var r=[];m(e);)r.push(e.length),e=e[0];return r}function i(e,r,t){var n,o=e.length;if(o!=r[t])throw new l(o,r[t]);if(tn;n++){var s=e[n];if(!m(s))throw new l(r.length-1,r.length,"<");i(e[n],r,a)}}else for(n=0;o>n;n++)if(m(e[n]))throw new l(r.length+1,r.length,">")}function o(e,t,n,i){var a,s,u=e.length,f=t[n],l=Math.min(u,f);if(e.length=f,na;a++)s=e[a],m(s)||(s=[s],e[a]=s),o(s,t,p,i);for(a=l;f>a;a++)s=[],e[a]=s,o(s,t,p,i)}else{for(a=0;l>a;a++)for(;m(e[a]);)e[a]=e[a][0];if(i!==r.UNINITIALIZED)for(a=l;f>a;a++)e[a]=c.clone(i)}}function a(e,r,t){var n,i;if(r>t){var o=t+1;for(n=0,i=e.length;i>n;n++)e[n]=a(e[n],r,o)}else for(;m(e);)e=e[0];return e}function s(e,r,t){var n,i;if(m(e)){var o=t+1;for(n=0,i=e.length;i>n;n++)e[n]=s(e[n],r,o)}else for(var a=t;r>a;a++)e=[e];return e}var u=t(4),f=t(176),c=t(3),l=(t(196),t(156)),p=t(157),m=Array.isArray;r.size=function(e){var t=n(e);return r.validate(e,t),t},r.validate=function(e,r){var t=0==r.length;if(t){if(m(e))throw new l(e.length,0)}else i(e,r,0)},r.validateIndex=function(e,r){if(!u.isNumber(e)||!u.isInteger(e))throw new TypeError("Index must be an integer (value: "+e+")");if(0>e)throw new p(e);if(void 0!==r&&e>=r)throw new p(e,r)},r.UNINITIALIZED={},r.resize=function(e,r,t){if(!m(e)||!m(r))throw new TypeError("Array expected");if(0===r.length)throw new Error("Resizing to scalar is not supported");r.forEach(function(e){if(!u.isNumber(e)||!u.isInteger(e)||0>e)throw new TypeError("Invalid size, must contain positive integers (size: "+f.format(r)+")")});var n=void 0!==t?t:0;return o(e,r,0,n),e},r.squeeze=function(e,t){for(var n=t||r.size(e);m(e)&&1===e.length;)e=e[0],n.shift();for(var i=n.length;1===n[i-1];)i--;return ia;a++)e=[e],o.unshift(1);for(e=s(e,t,0);o.lengthi;i++)n=n.concat.apply(n,r[i]);r=n}return r},r.argsToArray=function(e){for(var r=[],t=0,n=e.length;n>t;t++)r[t]=e[t];return r},r.isArray=m},function(e){e.exports="1.2.0"},function(e){"use strict";function r(e,t,n,i){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.fn=e,this.count=t,this.min=n,this.max=i,this.message="Wrong number of arguments in function "+e+" ("+t+" provided, "+n+(void 0!=i?"-"+i:"")+" expected)",this.stack=(new Error).stack}r.prototype=new Error,r.prototype.constructor=Error,r.prototype.name="ArgumentsError",e.exports=r},function(e){"use strict";function r(e,t,n){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.actual=e,this.expected=t,this.relation=n,this.message="Dimension mismatch ("+(Array.isArray(e)?"["+e.join(", ")+"]":e)+" "+(this.relation||"!=")+" "+(Array.isArray(t)?"["+t.join(", ")+"]":t)+")",this.stack=(new Error).stack}r.prototype=new RangeError,r.prototype.constructor=RangeError,r.prototype.name="DimensionError",e.exports=r},function(e){"use strict";function r(e,t,n){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.index=e,arguments.length<3?(this.min=0,this.max=t):(this.min=t,this.max=n),this.message=void 0!==this.min&&this.index=this.max?"Index out of range ("+this.index+" > "+(this.max-1)+")":"Index out of range ("+this.index+")",this.stack=(new Error).stack}r.prototype=new RangeError,r.prototype.constructor=RangeError,r.prototype.name="IndexError",e.exports=r},function(e){"use strict";function r(e){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.fn=e,this.types=Array.prototype.splice.call(arguments,1),this.message=e?0==this.types.length?"Unsupported type of argument in function "+e:"Function "+e+"("+this.types.join(", ")+") not supported":"Unsupported type of argument",this.stack=(new Error).stack}r.prototype=new TypeError,r.prototype.constructor=TypeError,r.prototype.name="UnsupportedTypeError",e.exports=r},function(e,r,t){var n;!function(i){"use strict";function o(e){for(var r,t,n=1,i=e.length,o=e[0]+"";i>n;n++){for(r=e[n]+"",t=T-r.length;t--;)r="0"+r;o+=r}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function a(e,r,t,n){var i,o,a,s,u;for(o=1,a=e[0];a>=10;a/=10,o++);return a=r-o,0>a?(a+=T,i=0):(i=Math.ceil((a+1)/T),a%=T),o=N(10,T-a),u=e[i]%o|0,null==n?3>a?(0==a?u=u/100|0:1==a&&(u=u/10|0),s=4>t&&99999==u||t>3&&49999==u||5e4==u||0==u):s=(4>t&&u+1==o||t>3&&u+1==o/2)&&(e[i+1]/o/100|0)==N(10,a-2)-1||(u==o/2||0==u)&&0==(e[i+1]/o/100|0):4>a?(0==a?u=u/1e3|0:1==a?u=u/100|0:2==a&&(u=u/10|0),s=(n||4>t)&&9999==u||!n&&t>3&&4999==u):s=((n||4>t)&&u+1==o||!n&&t>3&&u+1==o/2)&&(e[i+1]/o/1e3|0)==N(10,a-3)-1,s}function s(e,r,t){var n=e.constructor;return null==r||((x=0>r||r>8)||0!==r&&(n.errors?parseInt:parseFloat)(r)!=r)&&!p(n,"rounding mode",r,t,0)?n.rounding:0|r}function u(e,r,t,n){var i=e.constructor;return!(x=(n||0)>r||r>=U+1)&&(0===r||(i.errors?parseInt:parseFloat)(r)==r)||p(i,"argument",r,t,0)}function f(e,r){var t,n,i,s,u,f,c,l=0,p=0,m=0,h=e.constructor,d=h.ONE,w=h.rounding,x=h.precision;if(!e.c||!e.c[0]||e.e>17)return new h(e.c?e.c[0]?e.s<0?0:1/0:d:e.s?e.s<0?0:e:0/0);for(null==r?(v=!1,u=x):u=r,c=new h(.03125);e.e>-2;)e=e.times(c),m+=5;for(n=Math.log(N(2,m))/Math.LN10*2+5|0,u+=n,t=s=f=new h(d),h.precision=u;;){if(s=g(s.times(e),u,1),t=t.times(++p),c=f.plus(I(s,t,u,1)),o(c.c).slice(0,u)===o(f.c).slice(0,u)){for(i=m;i--;)f=g(f.times(f),u,1);if(null!=r)return h.precision=x,f;if(!(3>l&&a(f.c,u-n,w,l)))return g(f,h.precision=x,w,v=!0);h.precision=u+=10,t=s=c=new h(d),p=0,l++}f=c}}function c(e,r,t,n){var i,a,s=e.constructor,u=(e=new s(e)).e;if(null==r?t=0:(g(e,++r,t),t=n?r:r+e.e-u),u=e.e,i=o(e.c),1==n||2==n&&(u>=r||u<=s.toExpNeg)){for(;i.length1&&(i=i.charAt(0)+"."+i.slice(1)),i+=(0>u?"e":"e+")+u}else{if(n=i.length,0>u){for(a=t-n;++u;i="0"+i);i="0."+i}else if(++u>n){for(a=t-u,u-=n;u--;i+="0");a>0&&(i+=".")}else a=t-n,n>u?i=i.slice(0,u)+"."+i.slice(u):a>0&&(i+=".");if(a>0)for(;a--;i+="0");}return e.s<0&&e.c[0]?"-"+i:i}function l(e){var r=e.length-1,t=r*T+1;if(r=e[r]){for(;r%10==0;r/=10,t--);for(r=e[0];r>=10;r/=10,t++);}return t}function p(e,r,t,n,i){if(e.errors){var o=new Error((n||["new Decimal","cmp","div","eq","gt","gte","lt","lte","minus","mod","plus","times","toFraction","pow","random","log","sqrt","toNearest","divToInt"][b?0>b?-b:b:0>1/b?1:0])+"() "+(["number type has more than 15 significant digits","LN10 out of digits"][r]||r+([x?" out of range":" not an integer"," not a boolean or binary digit"][i]||""))+": "+t);throw o.name="Decimal Error",x=b=0,o}}function m(e,r,t){var n=new e(e.ONE);for(v=!1;1&t&&(n=n.times(r)),t>>=1,t;)r=r.times(r);return v=!0,n}function h(e,r){var t,n,i,s,u,f,c,l,m,d,w,x=1,y=10,b=e,E=b.c,N=b.constructor,A=N.ONE,M=N.rounding,T=N.precision;if(b.s<0||!E||!E[0]||!b.e&&1==E[0]&&1==E.length)return new N(E&&!E[0]?-1/0:1!=b.s?0/0:E?0:b);if(null==r?(v=!1,c=T):c=r,N.precision=c+=y,t=o(E),n=t.charAt(0),!(Math.abs(s=b.e)<15e14))return b=new N(n+"."+t.slice(1)),c+2>q.length&&p(N,1,c+2,"ln"),b=h(b,c-y).plus(new N(q.slice(0,c+2)).times(s+"")),N.precision=T,null==r?g(b,T,M,v=!0):b;for(;7>n&&1!=n||1==n&&t.charAt(1)>3;)b=b.times(e),t=o(b.c),n=t.charAt(0),x++;for(s=b.e,n>1?(b=new N("0."+t),s++):b=new N(n+"."+t.slice(1)),d=b,l=u=b=I(b.minus(A),b.plus(A),c,1),w=g(b.times(b),c,1),i=3;;){if(u=g(u.times(w),c,1),m=l.plus(I(u,new N(i),c,1)),o(m.c).slice(0,c)===o(l.c).slice(0,c)){if(l=l.times(2),0!==s&&(c+2>q.length&&p(N,1,c+2,"ln"),l=l.plus(new N(q.slice(0,c+2)).times(s+""))),l=I(l,new N(x),c,1),null!=r)return N.precision=T,l;if(!a(l.c,c-y,M,f))return g(l,N.precision=T,M,v=!0);N.precision=c+=y,m=u=b=I(d.minus(A),d.plus(A),c,1),w=g(b.times(b),c,1),i=f=1}l=m,i+=2}}function g(e,r,t,n){var i,o,a,s,u,f,c,l,p=e.constructor;e:if(null!=r){if(!(c=e.c))return e;for(i=1,s=c[0];s>=10;s/=10,i++);if(o=r-i,0>o)o+=T,a=r,u=c[l=0],f=u/N(10,i-a-1)%10|0;else if(l=Math.ceil((o+1)/T),l>=c.length){if(!n)break e;for(;c.length<=l;c.push(0));u=f=0,i=1,o%=T,a=o-T+1}else{for(u=s=c[l],i=1;s>=10;s/=10,i++);o%=T,a=o-T+i,f=0>a?0:E(u/N(10,i-a-1)%10)}if(n=n||0>r||null!=c[l+1]||(0>a?u:u%N(10,i-a-1)),n=4>t?(f||n)&&(0==t||t==(e.s<0?3:2)):f>5||5==f&&(4==t||n||6==t&&(o>0?a>0?u/N(10,i-a):0:c[l-1])%10&1||t==(e.s<0?8:7)),1>r||!c[0])return c.length=0,n?(r-=e.e+1,c[0]=N(10,r%T),e.e=-r||0):c[0]=e.e=0,e;if(0==o?(c.length=l,s=1,l--):(c.length=l+1,s=N(10,T-o),c[l]=a>0?(u/N(10,i-a)%N(10,a)|0)*s:0),n)for(;;){if(0==l){for(o=1,a=c[0];a>=10;a/=10,o++);for(a=c[0]+=s,s=1;a>=10;a/=10,s++);o!=s&&(e.e++,c[0]==M&&(c[0]=1));break}if(c[l]+=s,c[l]!=M)break;c[l--]=0,s=1}for(o=c.length;0===c[--o];c.pop());}return v&&(e.e>p.maxE?e.c=e.e=null:e.ea,!i||!o)return u==f?0:!i^t?1:-1;if(u!=f)return u>f^t?1:-1;for(a=-1,s=(u=i.length)<(f=o.length)?u:f;++ao[a]^t?1:-1;return u==f?0:u>f^t?1:-1},O.decimalPlaces=O.dp=function(){var e,r,t=null;if(e=this.c){if(t=((r=e.length-1)-E(this.e/T))*T,r=e[r])for(;r%10==0;r/=10,t--);0>t&&(t=0)}return t},O.dividedBy=O.div=function(e,r){return b=2,I(this,new this.constructor(e,r))},O.dividedToIntegerBy=O.divToInt=function(e,r){var t=this,n=t.constructor; -return b=18,g(I(t,new n(e,r),0,1,1),n.precision,n.rounding)},O.equals=O.eq=function(e,r){return b=3,0===this.cmp(e,r)},O.exponential=O.exp=function(){return f(this)},O.floor=function(){return g(new this.constructor(this),this.e+1,3)},O.greaterThan=O.gt=function(e,r){return b=4,this.cmp(e,r)>0},O.greaterThanOrEqualTo=O.gte=function(e,r){return b=5,r=this.cmp(e,r),1==r||0===r},O.isFinite=function(){return!!this.c},O.isInteger=O.isInt=function(){return!!this.c&&E(this.e/T)>this.c.length-2},O.isNaN=function(){return!this.s},O.isNegative=O.isNeg=function(){return this.s<0},O.isZero=function(){return!!this.c&&0==this.c[0]},O.lessThan=O.lt=function(e,r){return b=6,this.cmp(e,r)<0},O.lessThanOrEqualTo=O.lte=function(e,r){return b=7,r=this.cmp(e,r),-1==r||0===r},O.logarithm=O.log=function(e,r){var t,n,i,s,u,f,c,l,m,d=this,w=d.constructor,x=w.precision,y=w.rounding,E=5;if(null==e)e=new w(10),t=!0;else{if(b=15,e=new w(e,r),n=e.c,e.s<0||!n||!n[0]||!e.e&&1==n[0]&&1==n.length)return new w(0/0);t=e.eq(10)}if(n=d.c,d.s<0||!n||!n[0]||!d.e&&1==n[0]&&1==n.length)return new w(n&&!n[0]?-1/0:1!=d.s?0/0:n?0:1/0);if(u=t&&(s=n[0],n.length>1||1!=s&&10!=s&&100!=s&&1e3!=s&&1e4!=s&&1e5!=s&&1e6!=s),v=!1,c=x+E,l=c+10,f=h(d,c),t?(l>q.length&&p(w,1,l,"log"),i=new w(q.slice(0,l))):i=h(e,c),m=I(f,i,c,1),a(m.c,s=x,y))do if(c+=10,f=h(d,c),t?(l=c+10,l>q.length&&p(w,1,l,"log"),i=new w(q.slice(0,l))):i=h(e,c),m=I(f,i,c,1),!u){+o(m.c).slice(s+1,s+15)+1==1e14&&(m=g(m,x+1,0));break}while(a(m.c,s+=10,y));return v=!0,g(m,x,y)},O.minus=function(e,r){var t,n,i,o,a=this,s=a.constructor,u=a.s;if(b=8,e=new s(e,r),r=e.s,!u||!r)return new s(0/0);if(u!=r)return e.s=-r,a.plus(e);var f=a.c,c=e.c,l=E(e.e/T),p=E(a.e/T),m=s.precision,h=s.rounding;if(!p||!l){if(!f||!c)return f?(e.s=-r,e):new s(c?a:0/0);if(!f[0]||!c[0])return a=c[0]?(e.s=-r,e):new s(f[0]?a:3==h?-0:0),v?g(a,m,h):a}if(f=f.slice(),n=f.length,u=p-l){for((o=0>u)?(u=-u,t=f,n=c.length):(l=p,t=c),(p=Math.ceil(m/T))>n&&(n=p),u>(n+=2)&&(u=n,t.length=1),t.reverse(),r=u;r--;t.push(0));t.reverse()}else for((o=n<(i=c.length))&&(i=n),u=r=0;i>r;r++)if(f[r]!=c[r]){o=f[r]0)for(;r--;f[i++]=0);for(p=M-1,r=c.length;r>u;){if(f[--r]=10;r/=10,u++);return e.e=u+l*T-1,v?g(e,m,h):e},O.modulo=O.mod=function(e,r){var t,n,i=this,o=i.constructor,a=o.modulo;return b=9,e=new o(e,r),r=e.s,t=!i.c||!r||e.c&&!e.c[0],t||!e.c||i.c&&!i.c[0]?t?new o(0/0):g(new o(i),o.precision,o.rounding):(v=!1,9==a?(e.s=1,n=I(i,e,0,3,1),e.s=r,n.s*=r):n=I(i,e,0,a,1),n=n.times(e),v=!0,i.minus(n))},O.naturalLogarithm=O.ln=function(){return h(this)},O.negated=O.neg=function(){var e=new this.constructor(this);return e.s=-e.s||null,g(e)},O.plus=function(e,r){var t,n=this,i=n.constructor,o=n.s;if(b=10,e=new i(e,r),r=e.s,!o||!r)return new i(0/0);if(o!=r)return e.s=-r,n.minus(e);var a=n.c,s=e.c,u=E(e.e/T),f=E(n.e/T),c=i.precision,l=i.rounding;if(!f||!u){if(!a||!s)return new i(o/0);if(!a[0]||!s[0])return n=s[0]?e:new i(a[0]?n:0*o),v?g(n,c,l):n}if(a=a.slice(),o=f-u){for(0>o?(o=-o,t=a,r=s.length):(u=f,t=s,r=a.length),(f=Math.ceil(c/T))>r&&(r=f),o>++r&&(o=r,t.length=1),t.reverse();o--;t.push(0));t.reverse()}for(a.length-s.length<0&&(t=s,s=a,a=t),o=s.length,r=0,f=M;o;a[o]%=f)r=(a[--o]=a[o]+s[o]+r)/f|0;for(r&&(a.unshift(r),++u),o=a.length;0==a[--o];a.pop());for(e.c=a,o=1,r=a[0];r>=10;r/=10,o++);return e.e=o+u*T-1,v?g(e,c,l):e},O.precision=O.sd=function(e){var r=null,t=this;return e!=r&&e!==!!e&&1!==e&&0!==e&&p(t.constructor,"argument",e,"precision",1),t.c&&(r=l(t.c),e&&t.e+1>r&&(r=t.e+1)),r},O.round=function(){var e=this,r=e.constructor;return g(new r(e),e.e+1,r.rounding)},O.squareRoot=O.sqrt=function(){var e,r,t,n,i,a,s=this,u=s.c,f=s.s,c=s.e,l=s.constructor,p=new l(.5);if(1!==f||!u||!u[0])return new l(!f||0>f&&(!u||u[0])?0/0:u?s:1/0);for(v=!1,f=Math.sqrt(+s),0==f||f==1/0?(r=o(u),(r.length+c)%2==0&&(r+="0"),f=Math.sqrt(r),c=E((c+1)/2)-(0>c||c%2),f==1/0?r="1e"+c:(r=f.toExponential(),r=r.slice(0,r.indexOf("e")+1)+c),n=new l(r)):n=new l(f.toString()),t=(c=l.precision)+3;;)if(a=n,n=p.times(a.plus(I(s,a,t+2,1))),o(a.c).slice(0,t)===(r=o(n.c)).slice(0,t)){if(r=r.slice(t-3,t+1),"9999"!=r&&(i||"4999"!=r)){(!+r||!+r.slice(1)&&"5"==r.charAt(0))&&(g(n,c+1,1),e=!n.times(n).eq(s));break}if(!i&&(g(a,c+1,0),a.times(a).eq(s))){n=a;break}t+=4,i=1}return v=!0,g(n,c,l.rounding,e)},O.times=function(e,r){var t,n,i=this,o=i.constructor,a=i.c,s=(b=11,e=new o(e,r),e.c),u=E(i.e/T),f=E(e.e/T),c=i.s;if(r=e.s,e.s=c==r?1:-1,!((u||a&&a[0])&&(f||s&&s[0])))return new o(!c||!r||a&&!a[0]&&!s||s&&!s[0]&&!a?0/0:a&&s?0*e.s:e.s/0);for(n=u+f,c=a.length,r=s.length,r>c&&(t=a,a=s,s=t,f=c,c=r,r=f),f=c+r,t=[];f--;t.push(0));for(u=r-1;u>-1;u--){for(r=0,f=c+u;f>u;)r=t[f]+s[u]*a[f-u-1]+r,t[f--]=r%M|0,r=r/M|0;t[f]=(t[f]+r)%M|0}for(r?++n:t[0]||t.shift(),f=t.length;!t[--f];t.pop());for(e.c=t,c=1,r=t[0];r>=10;r/=10,c++);return e.e=c+n*T-1,v?g(e,o.precision,o.rounding):e},O.toDecimalPlaces=O.toDP=function(e,r){var t=this;return t=new t.constructor(t),null!=e&&u(t,e,"toDP")?g(t,(0|e)+t.e+1,s(t,r,"toDP")):t},O.toExponential=function(e,r){var t=this;return t.c?c(t,null!=e&&u(t,e,"toExponential")?0|e:null,null!=e&&s(t,r,"toExponential"),1):t.toString()},O.toFixed=function(e,r){var t,n=this,i=n.constructor,o=i.toExpNeg,a=i.toExpPos;return null!=e&&(e=u(n,e,t="toFixed")?n.e+(0|e):null,r=s(n,r,t)),i.toExpNeg=-(i.toExpPos=1/0),null!=e&&n.c?(t=c(n,e,r),n.s<0&&n.c&&(n.c[0]?t.indexOf("-")<0&&(t="-"+t):t=t.replace("-",""))):t=n.toString(),i.toExpNeg=o,i.toExpPos=a,t},O.toFormat=function(e,r){var t=this;if(!t.c)return t.toString();var n,i=t.s<0,o=t.constructor.format,a=o.groupSeparator,s=+o.groupSize,u=+o.secondaryGroupSize,f=t.toFixed(e,r).split("."),c=f[0],l=f[1],p=i?c.slice(1):c,m=p.length;if(u&&(n=s,s=u,m-=u=n),s>0&&m>0){for(n=m%s||s,c=p.substr(0,n);m>n;n+=s)c+=a+p.substr(n,s);u>0&&(c+=a+p.slice(n)),i&&(c="-"+c)}return l?c+o.decimalSeparator+((u=+o.fractionGroupSize)?l.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+o.fractionGroupSeparator):l):c},O.toFraction=function(e){var r,t,n,i,a,s,u,f,c=this,m=c.constructor,h=r=new m(m.ONE),g=s=new m(0),d=c.c,w=new m(g);if(!d)return c.toString();for(n=w.e=l(d)-c.e-1,w.c[0]=N(10,(u=n%T)<0?T+u:u),(null==e||(!(b=12,a=new m(e)).s||(x=a.cmp(h)<0||!a.c)||m.errors&&E(a.e/T)0)&&(e=n>0?w:h),v=!1,a=new m(o(d)),u=m.precision,m.precision=n=d.length*T*2;f=I(a,w,0,1,1),t=r.plus(f.times(g)),1!=t.cmp(e);)r=g,g=t,h=s.plus(f.times(t=h)),s=t,w=a.minus(f.times(t=w)),a=t;return t=I(e.minus(r),g,0,1,1),s=s.plus(t.times(h)),r=r.plus(t.times(g)),s.s=h.s=c.s,i=I(h,g,n,1).minus(c).abs().cmp(I(s,r,n,1).minus(c).abs())<1?[h+"",g+""]:[s+"",r+""],v=!0,m.precision=u,i},O.toNearest=function(e,r){var t=this,n=t.constructor;return t=new n(t),null==e?(e=new n(n.ONE),r=n.rounding):(b=17,e=new n(e),r=s(t,r,"toNearest")),e.c?t.c&&(e.c[0]?(v=!1,t=I(t,e,0,4>r?[4,5,7,8][r]:r,1).times(e),v=!0,g(t)):t.c=[t.e=0]):t.s&&(e.s&&(e.s=t.s),t=e),t},O.toNumber=function(){var e=this;return+e||(e.s?0*e.s:0/0)},O.toPower=O.pow=function(e,r){var t,n,i,s,u=this,c=u.constructor,l=u.s,p=(b=13,+(e=new c(e,r))),d=0>p?-p:p,w=c.precision,x=c.rounding;if(!u.c||!e.c||(i=!u.c[0])||!e.c[0])return new c(N(i?0*l:+u,p));if(u=new c(u),t=u.c.length,!u.e&&u.c[0]==u.s&&1==t)return u;if(r=e.c.length-1,e.e||e.c[0]!=e.s||r)if(n=E(e.e/T),i=n>=r,!i&&0>l)s=new c(0/0);else{if(i&&B>t*T*d){if(s=m(c,u,d),e.s<0)return c.ONE.div(s)}else{if(l=0>l&&1&e.c[Math.max(n,r)]?-1:1,r=N(+u,p),n=0!=r&&isFinite(r)?new c(r+"").e:E(p*(Math.log("0."+o(u.c))/Math.LN10+u.e+1)),n>c.maxE+1||n0?l/0:0);v=!1,c.rounding=u.s=1,d=Math.min(12,(n+"").length),s=f(e.times(h(u,w+d)),w),s=g(s,w+5,1),a(s.c,w,x)&&(n=w+10,s=g(f(e.times(h(u,n+d)),n),n+5,1),+o(s.c).slice(w+1,w+15)+1==1e14&&(s=g(s,w+1,0))),s.s=l,v=!0,c.rounding=x}s=g(s,w,x)}else s=g(u,w,x);return s},O.toPrecision=function(e,r){var t=this;return null!=e&&u(t,e,"toPrecision",1)&&t.c?c(t,0|--e,s(t,r,"toPrecision"),2):t.toString()},O.toSignificantDigits=O.toSD=function(e,r){var t=this,n=t.constructor;return t=new n(t),null!=e&&u(t,e,"toSD",1)?g(t,0|e,s(t,r,"toSD")):g(t,n.precision,n.rounding)},O.toString=function(e){var r,t,n,i=this,a=i.constructor,s=i.e;if(null===s)t=i.s?"Infinity":"NaN";else{if(e===r&&(s<=a.toExpNeg||s>=a.toExpPos))return c(i,null,a.rounding,1);if(t=o(i.c),0>s){for(;++s;t="0"+t);t="0."+t}else if(n=t.length,s>0)if(++s>n)for(s-=n;s--;t+="0");else n>s&&(t=t.slice(0,s)+"."+t.slice(s));else if(r=t.charAt(0),n>1)t=r+"."+t.slice(1);else if("0"==r)return r;if(null!=e)if((x=!(e>=2&&65>e))||e!=(0|e)&&a.errors)p(a,"base",e,"toString",0);else if(t=d(a,t,0|e,10,i.s),"0"==t)return t}return i.s<0?"-"+t:t},O.truncated=O.trunc=function(){return g(new this.constructor(this),this.e+1,1)},O.valueOf=O.toJSON=function(){return this.toString()},d=function(){function e(e,r,t){for(var n,i,o=[0],a=0,s=e.length;s>a;){for(i=o.length;i--;o[i]*=r);for(o[n=0]+=S.indexOf(e.charAt(a++));nt-1&&(null==o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/t|0,o[n]%=t)}return o.reverse()}return function(r,t,n,i,o){var a,s,u,f,c,l,p=t.indexOf("."),h=r.precision,g=r.rounding;for(37>i&&(t=t.toLowerCase()),p>=0&&(t=t.replace(".",""),l=new r(i),f=m(r,l,t.length-p),l.c=e(f.toFixed(),10,n),l.e=l.c.length),c=e(t,i,n),a=s=c.length;0==c[--s];c.pop());if(!c[0])return"0";if(0>p?a--:(f.c=c,f.e=a,f.s=o,f=I(f,l,h,g,0,n),c=f.c,u=f.r,a=f.e),p=c[h],s=n/2,u=u||null!=c[h+1],4>g?(null!=p||u)&&(0==g||g==(f.s<0?3:2)):p>s||p==s&&(4==g||u||6==g&&1&c[h-1]||g==(f.s<0?8:7)))for(c.length=h,--n;++c[--h]>n;)c[h]=0,h||(++a,c.unshift(1));else c.length=h;for(s=c.length;!c[--s];);for(p=0,t="";s>=p;t+=S.charAt(c[p++]));if(0>a){for(;++a;t="0"+t);t="0."+t}else if(p=t.length,++a>p)for(a-=p;a--;t+="0");else p>a&&(t=t.slice(0,a)+"."+t.slice(a));return t}}();var I=function(){function e(e,r,t){var n,i=0,o=e.length;for(e=e.slice();o--;)n=e[o]*r+i,e[o]=n%t|0,i=n/t|0;return i&&e.unshift(i),e}function r(e,r,t,n){var i,o;if(t!=n)o=t>n?1:-1;else for(i=o=0;t>i;i++)if(e[i]!=r[i]){o=e[i]>r[i]?1:-1;break}return o}function t(e,r,t,n){for(var i=0;t--;)e[t]-=i,i=e[t]1;e.shift());}return function(n,i,o,a,s,u){var f,c,l,p,m,h,d,w,x,y,v,b,N,A,S,O,C,U,B,q=n.constructor,I=n.s==i.s?1:-1,z=n.c,_=i.c;if(!(z&&z[0]&&_&&_[0]))return new q(n.s&&i.s&&(z?!_||z[0]!=_[0]:_)?z&&0==z[0]||!_?0*I:I/0:0/0);for(u?(p=1,c=n.e-i.e):(u=M,p=T,c=E(n.e/p)-E(i.e/p)),U=_.length,O=z.length,x=new q(I),y=x.c=[],l=0;_[l]==(z[l]||0);l++);if(_[l]>(z[l]||0)&&c--,null==o?(I=o=q.precision,a=q.rounding):I=s?o+(n.e-i.e)+1:o,0>I)y.push(1),m=!0;else{if(I=I/p+2|0,l=0,1==U){for(h=0,_=_[0],I++;(O>l||h)&&I--;l++)A=h*u+(z[l]||0),y[l]=A/_|0,h=A%_|0;m=h||O>l}else{for(h=u/(_[0]+1)|0,h>1&&(_=e(_,h,u),z=e(z,h,u),U=_.length,O=z.length),S=U,v=z.slice(0,U),b=v.length;U>b;v[b++]=0);B=_.slice(),B.unshift(0),C=_[0],_[1]>=u/2&&C++;do h=0,f=r(_,v,U,b),0>f?(N=v[0],U!=b&&(N=N*u+(v[1]||0)),h=N/C|0,h>1?(h>=u&&(h=u-1),d=e(_,h,u),w=d.length,b=v.length,f=r(d,v,w,b),1==f&&(h--,t(d,w>U?B:_,w,u))):(0==h&&(f=h=1),d=_.slice()),w=d.length,b>w&&d.unshift(0),t(v,d,b,u),-1==f&&(b=v.length,f=r(_,v,U,b),1>f&&(h++,t(v,b>U?B:_,b,u))),b=v.length):0===f&&(h++,v=[0]),y[l++]=h,f&&v[0]?v[b++]=z[S]||0:(v=[z[S]],b=1);while((S++=10;I/=10,l++);x.e=l+c*p-1,g(x,s?o+x.e+1:o,a,m)}return x}}();w=function(){function e(e){var r,t,n,i=this,o="config",a=i.errors?parseInt:parseFloat;return e==t||"object"!=typeof e&&!p(i,"object expected",e,o)?i:((n=e[r="precision"])!=t&&((x=1>n||n>U)||a(n)!=n?p(i,r,n,o,0):i[r]=0|n),(n=e[r="rounding"])!=t&&((x=0>n||n>8)||a(n)!=n?p(i,r,n,o,0):i[r]=0|n),(n=e[r="toExpNeg"])!=t&&((x=-C>n||n>0)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="toExpPos"])!=t&&((x=0>n||n>C)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="minE"])!=t&&((x=-C>n||n>0)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="maxE"])!=t&&((x=0>n||n>C)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="errors"])!=t&&(n===!!n||1===n||0===n?(x=b=0,i[r]=!!n):p(i,r,n,o,1)),(n=e[r="crypto"])!=t&&(n===!!n||1===n||0===n?i[r]=!(!n||!y||"object"!=typeof y):p(i,r,n,o,1)),(n=e[r="modulo"])!=t&&((x=0>n||n>9)||a(n)!=n?p(i,r,n,o,0):i[r]=0|n),(e=e[r="format"])!=t&&("object"==typeof e?i[r]=e:p(i,"format object expected",e,o)),i)}function r(e){return new this(e).exp()}function t(e){return new this(e).ln()}function n(e,r){return new this(e).log(r)}function i(e,r,t){var n,i,o=0;for("[object Array]"==A.call(r[0])&&(r=r[0]),n=new e(r[0]);++oi;)n=r[i],n>=429e7?r[i]=y.getRandomValues(new Uint32Array(1))[0]:o[i++]=n%1e7;else if(y&&y.randomBytes){for(r=y.randomBytes(t*=4);t>i;)n=r[i]+(r[i+1]<<8)+(r[i+2]<<16)+((127&r[i+3])<<24),n>=214e7?y.randomBytes(4).copy(r,i):(o.push(n%1e7),i+=4);i=t/4}else p(a,"crypto unavailable",y,"random");if(!i)for(;t>i;)o[i++]=1e7*Math.random()|0;for(t=o[--i],e%=T,t&&e&&(n=N(10,T-e),o[i]=(t/n|0)*n);0===o[i];i--)o.pop();if(0>i)o=[t=0];else{for(t=-1;0===o[0];)o.shift(),t-=T;for(i=1,n=o[0];n>=10;)n/=10,i++;T>i&&(t-=T-i)}return s.e=t,s.c=o,s}function c(e){return new this(e).sqrt()}function l(i){function u(e,r){var t=this;if(!(t instanceof u))return p(u,"Decimal called without new",e),new u(e,r);if(t.constructor=u,e instanceof u){if(null==r)return b=0,t.s=e.s,t.e=e.e,t.c=(e=e.c)?e.slice():e,t;if(10==r)return g(new u(e),u.precision,u.rounding);e+=""}return m(u,t,e,r)}return u.precision=20,u.rounding=4,u.modulo=1,u.toExpNeg=-7,u.toExpPos=21,u.minE=-C,u.maxE=C,u.errors=!0,u.crypto=!1,u.format={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0},u.prototype=O,u.ONE=new u(1),u.ROUND_UP=0,u.ROUND_DOWN=1,u.ROUND_CEIL=2,u.ROUND_FLOOR=3,u.ROUND_HALF_UP=4,u.ROUND_HALF_DOWN=5,u.ROUND_HALF_EVEN=6,u.ROUND_HALF_CEIL=7,u.ROUND_HALF_FLOOR=8,u.EUCLID=9,u.config=e,u.constructor=l,u.exp=r,u.ln=t,u.log=n,u.max=o,u.min=a,u.pow=s,u.sqrt=c,u.random=f,null!=i&&u.config(i),u}var m=function(){var e=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,r=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")};return function(t,n,i,o){var a,s,u,f,c,l;if("string"!=typeof i&&(i=(f="number"==typeof i||"[object Number]"==A.call(i))&&0===i&&0>1/i?"-0":i+""),c=i,null==o&&e.test(i))n.s=45===i.charCodeAt(0)?(i=i.slice(1),-1):1;else{if(10==o)return g(new t(i),t.precision,t.rounding);if(i=r.call(i).replace(/^\+(?!-)/,""),n.s=45===i.charCodeAt(0)?(i=i.replace(/^-(?!-)/,""),-1):1,null!=o?o!=(0|o)&&t.errors||(x=!(o>=2&&65>o))?(p(t,"base",o,0,0),l=e.test(i)):(a="["+S.slice(0,o=0|o)+"]+",i=i.replace(/\.$/,"").replace(/^\./,"0."),(l=new RegExp("^"+a+"(?:\\."+a+")?$",37>o?"i":"").test(i))?(f&&(i.replace(/^0\.0*|\./,"").length>15&&p(t,0,c),f=!f),i=d(t,i,10,o,n.s)):"Infinity"!=i&&"NaN"!=i&&(p(t,"not a base "+o+" number",c),i="NaN")):l=e.test(i),!l)return n.c=n.e=null,"Infinity"!=i&&("NaN"!=i&&p(t,"not a number",c),n.s=null),b=0,n}for((s=i.indexOf("."))>-1&&(i=i.replace(".","")),(u=i.search(/e/i))>0?(0>s&&(s=u),s+=+i.slice(u+1),i=i.substring(0,u)):0>s&&(s=i.length),u=0;48===i.charCodeAt(u);u++);for(o=i.length;48===i.charCodeAt(--o););if(i=i.slice(u,o+1)){if(o=i.length,f&&o>15&&p(t,0,c),n.e=s=s-u-1,n.c=[],u=(s+1)%T,0>s&&(u+=T),o>u){for(u&&n.c.push(+i.slice(0,u)),o-=T;o>u;)n.c.push(+i.slice(u,u+=T));i=i.slice(u),u=T-i.length}else u-=o;for(;u--;i+="0");n.c.push(+i),v&&(n.e>t.maxE?n.c=n.e=null:n.e0;return n=r?r:n,r});e.range=function(e,r,t){return new u(e instanceof s?e.toNumber():e,r instanceof s?r.toNumber():r,t instanceof s?t.toNumber():t)};var f=this.ranges.map(function(r,t){var n=i[t];return r instanceof o?n?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+t+"]; return range( "+r.start._compile(e)+", "+r.end._compile(e)+", "+(r.step?r.step._compile(e):"1")+" );})(scope)":"range("+r.start._compile(e)+", "+r.end._compile(e)+", "+(r.step?r.step._compile(e):"1")+")":n?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+t+"]; return "+r._compile(e)+";})(scope)":r._compile(e)});return n?"(function () { var obj = "+this.object._compile(e)+"; var size = math.size(obj).valueOf(); return math.subset( obj, math.index("+f.join(", ")+") "+(r?", "+r:"")+" );})()":"math.subset("+this.object._compile(e)+",math.index("+f.join(", ")+")"+(r?", "+r:"")+")"},n.prototype.forEach=function(e){e(this.object,"object",this);for(var r=0;r3)throw new Error("Too many arguments");this.start=e,this.end=r,this.step=t||null}var i=t(173),o=i.isNode;n.prototype=new i,n.prototype.type="RangeNode",n.prototype._compile=function(e){return"math.range("+this.start._compile(e)+", "+this.end._compile(e)+(this.step?", "+this.step._compile(e):"")+")"},n.prototype.forEach=function(e){e(this.start,"start",this),e(this.end,"end",this),this.step&&e(this.step,"step",this)},n.prototype.map=function(e){return new n(this._ifNode(e(this.start,"start",this)),this._ifNode(e(this.end,"end",this)),this.step&&this._ifNode(e(this.step,"step",this)))},n.prototype.clone=function(){return new n(this.start,this.end,this.step&&this.step)},n.prototype.toString=function(){var e=this.start.toString();return this.step&&(e+=":"+this.step.toString()),e+=":"+this.end.toString()},n.prototype.toTex=function(){var e=this.start.toTex();return this.step&&(e+=":"+this.step.toTex()),e+=":"+this.end.toTex()},e.exports=n},function(e,r,t){"use strict"; -function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!u(e))throw new TypeError('String expected for parameter "name"');this.name=e}function i(e){throw new Error("Undefined symbol "+e)}var o=t(173),a=t(10),s=t(315),u=t(176).isString;n.prototype=new o,n.prototype.type="SymbolNode",n.prototype._compile=function(e){return e.undef=i,e.Unit=a,this.name in e.math?'("'+this.name+'" in scope ? scope["'+this.name+'"] : math["'+this.name+'"])':'("'+this.name+'" in scope ? scope["'+this.name+'"] : '+(a.isValuelessUnit(this.name)?'new Unit(null, "'+this.name+'")':'undef("'+this.name+'")')+")"},n.prototype.forEach=function(){},n.prototype.map=function(){return this.clone()},n.prototype.clone=function(){return new n(this.name)},n.prototype.toString=function(){return this.name},n.prototype.toTex=function(){return s.toSymbol(this.name)},e.exports=n},function(e,r,t){"use strict";function n(e,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof o))throw new TypeError('Expected IndexNode for parameter "index"');if(!(r instanceof i))throw new TypeError('Expected Node for parameter "expr"');this.index=e,this.expr=r}var i=t(173),o=t(167);n.prototype=new i,n.prototype.type="UpdateNode",n.prototype._compile=function(e){return'scope["'+this.index.objectName()+'"] = '+this.index.compileSubset(e,this.expr._compile(e))},n.prototype.forEach=function(e){e(this.index,"index",this),e(this.expr,"expr",this)},n.prototype.map=function(e){return new n(this._ifNode(e(this.index,"index",this)),this._ifNode(e(this.expr,"expr",this)))},n.prototype.clone=function(){return new n(this.index,this.expr)},n.prototype.toString=function(){return this.index.toString()+" = "+this.expr.toString()},n.prototype.toTex=function(){return this.index.toTex()+" = "+this.expr.toTex()},e.exports=n},function(e,r,t){"use strict";function n(){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator")}function i(e){for(var r in e)if(e.hasOwnProperty(r)&&r in a)throw new Error('Scope contains an illegal symbol, "'+r+'" is a reserved keyword')}function o(e){var r=Object.create(e);for(var t in e)if(e.hasOwnProperty(t)){var n=e[t],i=n&&n.transform;i&&(r[t]=i)}return r}var a=t(314);n.prototype.eval=function(){throw new Error("Node.eval is deprecated. Use Node.compile(math).eval([scope]) instead.")},n.prototype.type="Node",n.prototype.compile=function(e){if(!(e instanceof Object))throw new TypeError("Object expected for parameter math");var r={math:o(e),_validateScope:i},t=this._compile(r),n=Object.keys(r).map(function(e){return" var "+e+' = defs["'+e+'"];'}),a=n.join(" ")+'return { "eval": function (scope) { if (scope) _validateScope(scope); scope = scope || {}; return '+t+"; }};",s=new Function("defs",a);return s(r)},n.prototype._compile=function(){throw new Error("Cannot compile a Node interface")},n.prototype.forEach=function(){throw new Error("Cannot run forEach on a Node interface")},n.prototype.map=function(){throw new Error("Cannot run map on a Node interface")},n.prototype._ifNode=function(e){if(!(e instanceof n))throw new TypeError("Callback function must return a Node");return e},n.prototype.traverse=function(e){function r(e,t){e.forEach(function(e,n,i){t(e,n,i),r(e,t)})}e(this,null,null),r(this,e)},n.prototype.transform=function(e){function r(e,t){return e.map(function(e,n,i){var o=t(e,n,i);return o!==e?o:r(e,t)})}var t=e(this,null,null);return t!==this?t:r(this,e)},n.prototype.filter=function(e){var r=[];return this.traverse(function(t,n,i){e(t,n,i)&&r.push(t)}),r},n.prototype.find=function(){throw new Error("Function Node.find is deprecated. Use Node.filter instead.")},n.prototype.match=function(){throw new Error("Function Node.match is deprecated. See functions Node.filter, Node.transform, Node.traverse.")},n.prototype.clone=function(){throw new Error("Cannot clone a Node interface")},n.prototype.toString=function(){return""},n.prototype.toTex=function(){return""},n.isNode=function(e){return e instanceof n},e.exports=n},function(e,r,t){var n=(t(156),t(157));r.transform=function(e){return e instanceof n?new n(e.index+1,e.min+1,e.max+1):e}},function(e,r){"use strict";r.isBoolean=function(e){return e instanceof Boolean||"boolean"==typeof e}},function(e,r,t){"use strict";function n(e,t){if(Array.isArray(e)){for(var i="[",o=e.length,a=0;o>a;a++)0!=a&&(i+=", "),i+=n(e[a],t);return i+="]"}return r.format(e,t)}var i=t(4),o=t(152),a=t(159);r.isString=function(e){return e instanceof String||"string"==typeof e},r.endsWith=function(e,r){var t=e.length-r.length,n=e.length;return e.substring(t,n)===r},r.format=function(e,t){return i.isNumber(e)?i.format(e,t):e instanceof a?o.format(e,t):Array.isArray(e)?n(e,t):r.isString(e)?'"'+e+'"':"function"==typeof e?e.syntax?e.syntax+"":"function":e instanceof Object?"function"==typeof e.format?e.format(t):e.toString():String(e)}},function(e){e.exports={name:"e",category:"Constants",syntax:["e"],description:"Euler's number, the base of the natural logarithm. Approximately equal to 2.71828",examples:["e","e ^ 2","exp(2)","log(e)"],seealso:["exp"]}},function(e){e.exports={name:"false",category:"Constants",syntax:["false"],description:"Boolean value false",examples:["false"],seealso:["true"]}},function(e){e.exports={name:"i",category:"Constants",syntax:["i"],description:"Imaginary unit, defined as i*i=-1. A complex number is described as a + b*i, where a is the real part, and b is the imaginary part.",examples:["i","i * i","sqrt(-1)"],seealso:[]}},function(e){e.exports={name:"Infinity",category:"Constants",syntax:["Infinity"],description:"Infinity, a number which is larger than the maximum number that can be handled by a floating point number.",examples:["Infinity","1 / 0"],seealso:[]}},function(e){e.exports={name:"LN2",category:"Constants",syntax:["LN2"],description:"Returns the natural logarithm of 2, approximately equal to 0.693",examples:["LN2","log(2)"],seealso:[]}},function(e){e.exports={name:"LN10",category:"Constants",syntax:["LN10"],description:"Returns the natural logarithm of 10, approximately equal to 2.302",examples:["LN10","log(10)"],seealso:[]}},function(e){e.exports={name:"LOG2E",category:"Constants",syntax:["LOG2E"],description:"Returns the base-2 logarithm of E, approximately equal to 1.442",examples:["LOG2E","log(e, 2)"],seealso:[]}},function(e){e.exports={name:"LOG10E",category:"Constants",syntax:["LOG10E"],description:"Returns the base-10 logarithm of E, approximately equal to 0.434",examples:["LOG10E","log(e, 10)"],seealso:[]}},function(e){e.exports={name:"NaN",category:"Constants",syntax:["NaN"],description:"Not a number",examples:["NaN","0 / 0"],seealso:[]}},function(e){e.exports={name:"null",category:"Constants",syntax:["null"],description:"Value null",examples:["null"],seealso:["true","false"]}},function(e){e.exports={name:"pi",category:"Constants",syntax:["pi"],description:"The number pi is a mathematical constant that is the ratio of a circle's circumference to its diameter, and is approximately equal to 3.14159",examples:["pi","sin(pi/2)"],seealso:["tau"]}},function(e){e.exports={name:"phi",category:"Constants",syntax:["phi"],description:"Phi is the golden ratio. Two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Phi is defined as `(1 + sqrt(5)) / 2` and is approximately 1.618034...",examples:["tau"],seealso:[]}},function(e){e.exports={name:"SQRT1_2",category:"Constants",syntax:["SQRT1_2"],description:"Returns the square root of 1/2, approximately equal to 0.707",examples:["SQRT1_2","sqrt(1/2)"],seealso:[]}},function(e){e.exports={name:"SQRT2",category:"Constants",syntax:["SQRT2"],description:"Returns the square root of 2, approximately equal to 1.414",examples:["SQRT2","sqrt(2)"],seealso:[]}},function(e){e.exports={name:"tau",category:"Constants",syntax:["tau"],description:"Tau is the ratio constant of a circle's circumference to radius, equal to 2 * pi, approximately 6.2832.",examples:["tau","2 * pi"],seealso:["pi"]}},function(e){e.exports={name:"true",category:"Constants",syntax:["true"],description:"Boolean value true",examples:["true"],seealso:["false"]}},function(e){e.exports={name:"version",category:"Constants",syntax:["version"],description:"A string with the version number of math.js",examples:["version"],seealso:[]}},function(e,r,t){"use strict";e.exports=function(e){function r(r){if(!s.hasOwnProperty(r))throw new Error("Unknown distribution "+r);var t=Array.prototype.slice.call(arguments,1),o=s[r].apply(this,t);return function(r){var t={random:function(r,t,i){var s,f,c;if(arguments.length>3)throw new e.error.ArgumentsError("random",arguments.length,0,3);if(1===arguments.length?a(r)?s=r:c=r:2===arguments.length?a(r)?(s=r,c=t):(f=r,c=t):(s=r,f=t,c=i),void 0===c&&(c=1),void 0===f&&(f=0),void 0!==s){var l=u(s.valueOf(),f,c,o);return s instanceof n?new n(l):l}return o(f,c)},randomInt:function(r,t,i){var o,f,c;if(arguments.length>3||arguments.length<1)throw new e.error.ArgumentsError("randomInt",arguments.length,1,3);if(1===arguments.length?a(r)?o=r:c=r:2===arguments.length?a(r)?(o=r,c=t):(f=r,c=t):(o=r,f=t,c=i),void 0===f&&(f=0),void 0!==o){var l=u(o.valueOf(),f,c,s);return o instanceof n?new n(l):l}return s(f,c)},pickRandom:function(r){if(1!==arguments.length)throw new e.error.ArgumentsError("pickRandom",arguments.length,1);if(r instanceof n)r=r.valueOf();else if(!Array.isArray(r))throw new e.error.UnsupportedTypeError("pickRandom",e["typeof"](r));if(i.size(r).length>1)throw new Error("Only one dimensional vectors supported");return r[Math.floor(Math.random()*r.length)]}},o=function(e,t){return e+r()*(t-e)},s=function(e,t){return Math.floor(e+r()*(t-e))},u=function(e,r,t,n){var i,o,a=[];if(e=e.slice(0),e.length>1)for(o=0,i=e.shift();i>o;o++)a.push(u(e,r,t,n));else for(o=0,i=e.shift();i>o;o++)a.push(n(r,t));return a};return t}(o)}var n=t(9),i=t(153),o=t(13),a=o.isCollection,s={uniform:function(){return Math.random},normal:function(){return function(){for(var e,r,t=-1;0>t||t>1;)e=Math.random(),r=Math.random(),t=1/6*Math.pow(-2*Math.log(e),.5)*Math.cos(2*Math.PI*r)+.5;return t}}};return r}},function(e,r,t){function n(e){return t(i(e))}function i(e){return o[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var o={"./clone":143,"./clone.js":143,"./filter":144,"./filter.js":144,"./forEach":151,"./forEach.js":151,"./format":145,"./format.js":145,"./import":146,"./import.js":146,"./map":147,"./map.js":147,"./print":148,"./print.js":148,"./sort":149,"./sort.js":149,"./typeof":150,"./typeof.js":150};n.keys=function(){return Object.keys(o)},n.resolve=i,e.exports=n,n.id=195},function(e,r){"use strict";r.type=function(e){var r=typeof e;if("object"===r){if(null===e)return"null";if(e instanceof Boolean)return"boolean";if(e instanceof Number)return"number";if(e instanceof String)return"string";if(Array.isArray(e))return"array";if(e instanceof Date)return"date";if(e instanceof Function)return"function";if(e instanceof RegExp)return"regexp"}return r}},function(e){e.exports={name:"abs",category:"Arithmetic",syntax:["abs(x)"],description:"Compute the absolute value.",examples:["abs(3.5)","abs(-4.2)"],seealso:["sign"]}},function(e){e.exports={name:"add",category:"Operators",syntax:["x + y","add(x, y)"],description:"Add two values.",examples:["a = 2.1 + 3.6","a - 3.6","3 + 2i",'"hello" + " world"',"3 cm + 2 inch"],seealso:["subtract"]}},function(e){e.exports={name:"ceil",category:"Arithmetic",syntax:["ceil(x)"],description:"Round a value towards plus infinity. If x is complex, both real and imaginary part are rounded towards plus infinity.",examples:["ceil(3.2)","ceil(3.8)","ceil(-4.2)"],seealso:["floor","fix","round"]}},function(e){e.exports={name:"cube",category:"Arithmetic",syntax:["cube(x)"],description:"Compute the cube of a value. The cube of x is x * x * x.",examples:["cube(2)","2^3","2 * 2 * 2"],seealso:["multiply","square","pow"]}},function(e){e.exports={name:"divide",category:"Operators",syntax:["x / y","divide(x, y)"],description:"Divide two values.",examples:["a = 2 / 3","a * 3","4.5 / 2","3 + 4 / 2","(3 + 4) / 2","18 km / 4.5"],seealso:["multiply"]}},function(e){e.exports={name:"dotDivide",category:"Operators",syntax:["x ./ y","dotDivide(x, y)"],description:"Divide two values element wise.",examples:["a = [1, 2, 3; 4, 5, 6]","b = [2, 1, 1; 3, 2, 5]","a ./ b"],seealso:["multiply","dotMultiply","divide"]}},function(e){e.exports={name:"dotMultiply",category:"Operators",syntax:["x .* y","dotMultiply(x, y)"],description:"Multiply two values element wise.",examples:["a = [1, 2, 3; 4, 5, 6]","b = [2, 1, 1; 3, 2, 5]","a .* b"],seealso:["multiply","divide","dotDivide"]}},function(e){e.exports={name:"dotpow",category:"Operators",syntax:["x .^ y","dotpow(x, y)"],description:"Calculates the power of x to y element wise.",examples:["a = [1, 2, 3; 4, 5, 6]","a .^ 2"],seealso:["pow"]}},function(e){e.exports={name:"exp",category:"Arithmetic",syntax:["exp(x)"],description:"Calculate the exponent of a value.",examples:["exp(1.3)","e ^ 1.3","log(exp(1.3))","x = 2.4","(exp(i*x) == cos(x) + i*sin(x)) # Euler's formula"],seealso:["pow","log"]}},function(e){e.exports={name:"fix",category:"Arithmetic",syntax:["fix(x)"],description:"Round a value towards zero. If x is complex, both real and imaginary part are rounded towards zero.",examples:["fix(3.2)","fix(3.8)","fix(-4.2)","fix(-4.8)"],seealso:["ceil","floor","round"]}},function(e){e.exports={name:"floor",category:"Arithmetic",syntax:["floor(x)"],description:"Round a value towards minus infinity.If x is complex, both real and imaginary part are rounded towards minus infinity.",examples:["floor(3.2)","floor(3.8)","floor(-4.2)"],seealso:["ceil","fix","round"]}},function(e){e.exports={name:"gcd",category:"Arithmetic",syntax:["gcd(a, b)","gcd(a, b, c, ...)"],description:"Compute the greatest common divisor.",examples:["gcd(8, 12)","gcd(-4, 6)","gcd(25, 15, -10)"],seealso:["lcm","xgcd"]}},function(e){e.exports={name:"lcm",category:"Arithmetic",syntax:["lcm(x, y)"],description:"Compute the least common multiple.",examples:["lcm(4, 6)","lcm(6, 21)","lcm(6, 21, 5)"],seealso:["gcd"]}},function(e){e.exports={name:"log",category:"Arithmetic",syntax:["log(x)","log(x, base)"],description:"Compute the logarithm of a value. If no base is provided, the natural logarithm of x is calculated. If base if provided, the logarithm is calculated for the specified base. log(x, base) is defined as log(x) / log(base).",examples:["log(3.5)","a = log(2.4)","exp(a)","10 ^ 4","log(10000, 10)","log(10000) / log(10)","b = log(1024, 2)","2 ^ b"],seealso:["exp","log10"]}},function(e){e.exports={name:"log10",category:"Arithmetic",syntax:["log10(x)"],description:"Compute the 10-base logarithm of a value.",examples:["log10(0.00001)","log10(10000)","10 ^ 4","log(10000) / log(10)","log(10000, 10)"],seealso:["exp","log"]}},function(e){e.exports={name:"mod",category:"Operators",syntax:["x % y","x mod y","mod(x, y)"],description:"Calculates the modulus, the remainder of an integer division.",examples:["7 % 3","11 % 2","10 mod 4","function isOdd(x) = x % 2","isOdd(2)","isOdd(3)"],seealso:["divide"]}},function(e){e.exports={name:"multiply",category:"Operators",syntax:["x * y","multiply(x, y)"],description:"multiply two values.",examples:["a = 2.1 * 3.4","a / 3.4","2 * 3 + 4","2 * (3 + 4)","3 * 2.1 km"],seealso:["divide"]}},function(e){e.exports={name:"norm",category:"Arithmetic",syntax:["norm(x)","norm(x, p)"],description:"Calculate the norm of a number, vector or matrix.",examples:["abs(-3.5)","norm(-3.5)","norm(3 - 4i))","norm([1, 2, -3], Infinity)","norm([1, 2, -3], -Infinity)","norm([3, 4], 2)","norm([[1, 2], [3, 4]], 1)","norm([[1, 2], [3, 4]], 'inf')","norm([[1, 2], [3, 4]], 'fro')"]}},function(e){e.exports={name:"nthRoot",category:"Arithmetic",syntax:["nthRoot(a)","nthRoot(a, root)"],description:'Calculate the nth root of a value. The principal nth root of a positive real number A, is the positive real solution of the equation "x^root = A".',examples:["4 ^ 3","nthRoot(64, 3)","nthRoot(9, 2)","sqrt(9)"],seealso:["sqrt","pow"]}},function(e){e.exports={name:"pow",category:"Operators",syntax:["x ^ y","pow(x, y)"],description:"Calculates the power of x to y, x^y.",examples:["2^3 = 8","2*2*2","1 + e ^ (pi * i)"],seealso:["multiply"]}},function(e){e.exports={name:"round",category:"Arithmetic",syntax:["round(x)","round(x, n)"],description:"round a value towards the nearest integer.If x is complex, both real and imaginary part are rounded towards the nearest integer. When n is specified, the value is rounded to n decimals.",examples:["round(3.2)","round(3.8)","round(-4.2)","round(-4.8)","round(pi, 3)","round(123.45678, 2)"],seealso:["ceil","floor","fix"]}},function(e){e.exports={name:"sign",category:"Arithmetic",syntax:["sign(x)"],description:"Compute the sign of a value. The sign of a value x is 1 when x>1, -1 when x<0, and 0 when x=0.",examples:["sign(3.5)","sign(-4.2)","sign(0)"],seealso:["abs"]}},function(e){e.exports={name:"sqrt",category:"Arithmetic",syntax:["sqrt(x)"],description:"Compute the square root value. If x = y * y, then y is the square root of x.",examples:["sqrt(25)","5 * 5","sqrt(-1)"],seealso:["square","multiply"]}},function(e){e.exports={name:"square",category:"Arithmetic",syntax:["square(x)"],description:"Compute the square of a value. The square of x is x * x.",examples:["square(3)","sqrt(9)","3^2","3 * 3"],seealso:["multiply","pow","sqrt","cube"]}},function(e){e.exports={name:"subtract",category:"Operators",syntax:["x - y","subtract(x, y)"],description:"subtract two values.",examples:["a = 5.3 - 2","a + 2","2/3 - 1/6","2 * 3 - 3","2.1 km - 500m"],seealso:["add"]}},function(e){e.exports={name:"unaryMinus",category:"Operators",syntax:["-x","unaryMinus(x)"],description:"Inverse the sign of a value. Converts booleans and strings to numbers.",examples:["-4.5","-(-5.6)",'-"22"'],seealso:["add","subtract","unaryPlus"]}},function(e){e.exports={name:"unaryPlus",category:"Operators",syntax:["+x","unaryPlus(x)"],description:"Converts booleans and strings to numbers.",examples:["+true",'+"2"'],seealso:["add","subtract","unaryMinus"]}},function(e){e.exports={name:"xgcd",category:"Arithmetic",syntax:["xgcd(a, b)"],description:"Calculate the extended greatest common divisor for two values",examples:["xgcd(8, 12)","gcd(8, 12)","xgcd(36163, 21199)"],seealso:["gcd","lcm"]}},function(e){e.exports={name:"bitAnd",category:"Bitwise",syntax:["x & y","bitAnd(x, y)"],description:"Bitwise AND operation. Performs the logical AND operation on each pair of the corresponding bits of the two given values by multiplying them. If both bits in the compared position are 1, the bit in the resulting binary representation is 1, otherwise, the result is 0",examples:["5 & 3","bitAnd(53, 131)","[1, 12, 31] & 42"],seealso:["bitNot","bitOr","bitXor","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"bitNot",category:"Bitwise",syntax:["~x","bitNot(x)"],description:"Bitwise NOT operation. Performs a logical negation on each bit of the given value. Bits that are 0 become 1, and those that are 1 become 0.",examples:["~1","~2","bitNot([2, -3, 4])"],seealso:["bitAnd","bitOr","bitXor","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"bitOr",category:"Bitwise",syntax:["x | y","bitOr(x, y)"],description:"Bitwise OR operation. Performs the logical inclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if the first bit is 1 or the second bit is 1 or both bits are 1, otherwise, the result is 0.",examples:["5 | 3","bitOr([1, 2, 3], 4)"],seealso:["bitAnd","bitNot","bitXor","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"bitXor",category:"Bitwise",syntax:["bitXor(x, y)"],description:"Bitwise XOR operation, exclusive OR. Performs the logical exclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1.",examples:["bitOr(1, 2)","bitXor([2, 3, 4], 4)"],seealso:["bitAnd","bitNot","bitOr","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"leftShift",category:"Bitwise",syntax:["x << y","leftShift(x, y)"],description:"Bitwise left logical shift of a value x by y number of bits.",examples:["4 << 1","8 >> 1"],seealso:["bitAnd","bitNot","bitOr","bitXor","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"rightArithShift",category:"Bitwise",syntax:["x >> y","leftShift(x, y)"],description:"Bitwise right arithmetic shift of a value x by y number of bits.",examples:["8 >> 1","4 << 1","-12 >> 2"],seealso:["bitAnd","bitNot","bitOr","bitXor","leftShift","rightLogShift"]}},function(e){e.exports={name:"rightLogShift",category:"Bitwise",syntax:["x >> y","leftShift(x, y)"],description:"Bitwise right logical shift of a value x by y number of bits.",examples:["8 >>> 1","4 << 1","-12 >>> 2"],seealso:["bitAnd","bitNot","bitOr","bitXor","leftShift","rightArithShift"]}},function(e){e.exports={name:"arg",category:"Complex",syntax:["arg(x)"],description:"Compute the argument of a complex value. If x = a+bi, the argument is computed as atan2(b, a).",examples:["arg(2 + 2i)","atan2(3, 2)","arg(2 + 3i)"],seealso:["re","im","conj","abs"]}},function(e){e.exports={name:"conj",category:"Complex",syntax:["conj(x)"],description:"Compute the complex conjugate of a complex value. If x = a+bi, the complex conjugate is a-bi.",examples:["conj(2 + 3i)","conj(2 - 3i)","conj(-5.2i)"],seealso:["re","im","abs","arg"]}},function(e){e.exports={name:"re",category:"Complex",syntax:["re(x)"],description:"Get the real part of a complex number.",examples:["re(2 + 3i)","im(2 + 3i)","re(-5.2i)","re(2.4)"],seealso:["im","conj","abs","arg"]}},function(e){e.exports={name:"im",category:"Complex",syntax:["im(x)"],description:"Get the imaginary part of a complex number.",examples:["im(2 + 3i)","re(2 + 3i)","im(-5.2i)","im(2.4)"],seealso:["re","conj","abs","arg"]}},function(e){e.exports={name:"bignumber",category:"Type",syntax:["bignumber(x)"],description:"Create a big number from a number or string.",examples:["0.1 + 0.2","bignumber(0.1) + bignumber(0.2)",'bignumber("7.2")','bignumber("7.2e500")',"bignumber([0.1, 0.2, 0.3])"],seealso:["boolean","complex","index","matrix","string","unit"]}},function(e){e.exports={name:"boolean",category:"Type",syntax:["x","boolean(x)"],description:"Convert a string or number into a boolean.",examples:["boolean(0)","boolean(1)","boolean(3)",'boolean("true")','boolean("false")',"boolean([1, 0, 1, 1])"],seealso:["bignumber","complex","index","matrix","number","string","unit"]}},function(e){e.exports={name:"complex",category:"Type",syntax:["complex()","complex(re, im)","complex(string)"],description:"Create a complex number.",examples:["complex()","complex(2, 3)",'complex("7 - 2i")'],seealso:["bignumber","boolean","index","matrix","number","string","unit"]}},function(e){e.exports={name:"index",category:"Type",syntax:["[start]","[start:end]","[start:step:end]","[start1, start 2, ...]","[start1:end1, start2:end2, ...]","[start1:step1:end1, start2:step2:end2, ...]"],description:"Create an index to get or replace a subset of a matrix",examples:["[]","[1, 2, 3]","A = [1, 2, 3; 4, 5, 6]","A[1, :]","A[1, 2] = 50","A[0:2, 0:2] = ones(2, 2)"],seealso:["bignumber","boolean","complex","matrix,","number","range","string","unit"]}},function(e){e.exports={name:"matrix",category:"Type",syntax:["[]","[a1, b1, ...; a2, b2, ...]","matrix()","matrix([...])"],description:"Create a matrix.",examples:["[]","[1, 2, 3]","[1, 2, 3; 4, 5, 6]","matrix()","matrix([3, 4])"],seealso:["bignumber","boolean","complex","index","number","string","unit"]}},function(e){e.exports={name:"number",category:"Type",syntax:["x","number(x)"],description:"Create a number or convert a string or boolean into a number.",examples:["2","2e3","4.05","number(2)",'number("7.2")',"number(true)","number([true, false, true, true])",'number("52cm", "m")'],seealso:["bignumber","boolean","complex","index","matrix","string","unit"]}},function(e){e.exports={name:"string",category:"Type",syntax:['"text"',"string(x)"],description:"Create a string or convert a value to a string",examples:['"Hello World!"',"string(4.2)","string(3 + 2i)"],seealso:["bignumber","boolean","complex","index","matrix","number","unit"]}},function(e){e.exports={name:"unit",category:"Type",syntax:["value unit","unit(value, unit)","unit(string)"],description:"Create a unit.",examples:["5.5 mm","3 inch",'unit(7.1, "kilogram")','unit("23 deg")'],seealso:["bignumber","boolean","complex","index","matrix","number","string"]}},function(e){e.exports={name:"eval",category:"Expression",syntax:["eval(expression)","eval([expr1, expr2, expr3, ...])"],description:"Evaluate an expression or an array with expressions.",examples:['eval("2 + 3")','eval("sqrt(" + 4 + ")")'],seealso:[]}},function(e){e.exports={name:"help",category:"Expression",syntax:["help(object)","help(string)"],description:"Display documentation on a function or data type.",examples:["help(sqrt)",'help("complex")'],seealso:[]}},function(e){e.exports={name:"and",category:"Logical",syntax:["x and y","and(x, y)"],description:"Logical and. Test whether two values are both defined with a nonzero/nonempty value.",examples:["true and false","true and true","2 and 4"],seealso:["not","or","xor"]}},function(e){e.exports={name:"not",category:"Logical",syntax:["!x","not x","not(x)"],description:"Logical not. Flips the boolean value of given argument.",examples:["!true","not false","!2","!0"],seealso:["and","or","xor"]}},function(e){e.exports={name:"or",category:"Logical",syntax:["x or y","or(x, y)"],description:"Logical or. Test if at least one value is defined with a nonzero/nonempty value.",examples:["true or false","false or false","0 or 4"],seealso:["not","and","xor"]}},function(e){e.exports={name:"xor",category:"Logical",syntax:["x or y","or(x, y)"],description:"Logical exclusive or, xor. Test whether one and only one value is defined with a nonzero/nonempty value.",examples:["true xor false","false xor false","true xor true","0 or 4"],seealso:["not","and","or"]}},function(e){e.exports={name:"concat",category:"Matrix",syntax:["concat(A, B, C, ...)","concat(A, B, C, ..., dim)"],description:"Concatenate matrices. By default, the matrices are concatenated by the last dimension. The dimension on which to concatenate can be provided as last argument.",examples:["A = [1, 2; 5, 6]","B = [3, 4; 7, 8]","concat(A, B)","concat(A, B, 1)","concat(A, B, 2)"],seealso:["det","diag","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"cross",category:"Matrix",syntax:["cross(A, B)"],description:"Calculate the cross product for two vectors in three dimensional space.",examples:["cross([1, 1, 0], [0, 1, 1])","cross([3, -3, 1], [4, 9, 2])","cross([2, 3, 4], [5, 6, 7])"],seealso:["multiply","dot"]}},function(e){e.exports={name:"det",category:"Matrix",syntax:["det(x)"],description:"Calculate the determinant of a matrix",examples:["det([1, 2; 3, 4])","det([-2, 2, 3; -1, 1, 3; 2, 0, -1])"],seealso:["concat","diag","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"diag",category:"Matrix",syntax:["diag(x)","diag(x, k)"],description:"Create a diagonal matrix or retrieve the diagonal of a matrix. When x is a vector, a matrix with the vector values on the diagonal will be returned. When x is a matrix, a vector with the diagonal values of the matrix is returned. When k is provided, the k-th diagonal will be filled in or retrieved, if k is positive, the values are placed on the super diagonal. When k is negative, the values are placed on the sub diagonal.",examples:["diag(1:3)","diag(1:3, 1)","a = [1, 2, 3; 4, 5, 6; 7, 8, 9]","diag(a)"],seealso:["concat","det","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"dot",category:"Matrix",syntax:["dot(A, B)"],description:"Calculate the dot product of two vectors. The dot product of A = [a1, a2, a3, ..., an] and B = [b1, b2, b3, ..., bn] is defined as dot(A, B) = a1 * b1 + a2 * b2 + a3 * b3 + ... + an * bn",examples:["dot([2, 4, 1], [2, 2, 3])","[2, 4, 1] * [2, 2, 3]"],seealso:["multiply","cross"]}},function(e){e.exports={name:"eye",category:"Matrix",syntax:["eye(n)","eye(m, n)","eye([m, n])","eye"],description:"Returns the identity matrix with size m-by-n. The matrix has ones on the diagonal and zeros elsewhere.",examples:["eye(3)","eye(3, 5)","a = [1, 2, 3; 4, 5, 6]","eye(size(a))"],seealso:["concat","det","diag","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"flatten",category:"Matrix",syntax:["flatten(x)"],description:"Flatten a multi dimensional matrix into a single dimensional matrix.",examples:["a = [1, 2, 3; 4, 5, 6]","size(a)","b = flatten(a)","size(b)"],seealso:["concat","resize","size","squeeze"]}},function(e){e.exports={name:"inv",category:"Matrix",syntax:["inv(x)"],description:"Calculate the inverse of a matrix",examples:["inv([1, 2; 3, 4])","inv(4)","1 / 4"],seealso:["concat","det","diag","eye","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"ones",category:"Matrix",syntax:["ones(m)","ones(m, n)","ones(m, n, p, ...)","ones([m])","ones([m, n])","ones([m, n, p, ...])","ones"],description:"Create a matrix containing ones.",examples:["ones(3)","ones(3, 5)","ones([2,3]) * 4.5","a = [1, 2, 3; 4, 5, 6]","ones(size(a))"],seealso:["concat","det","diag","eye","inv","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"range",category:"Type",syntax:["start:end","start:step:end","range(start, end)","range(start, end, step)","range(string)"],description:"Create a range. Lower bound of the range is included, upper bound is excluded.",examples:["1:5","3:-1:-3","range(3, 7)","range(0, 12, 2)",'range("4:10")',"a = [1, 2, 3, 4; 5, 6, 7, 8]","a[1:2, 1:2]"],seealso:["concat","det","diag","eye","inv","ones","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"resize",category:"Matrix",syntax:["resize(x, size)","resize(x, size, defaultValue)"],description:"Resize a matrix.",examples:["resize([1,2,3,4,5], [3])","resize([1,2,3], [5])","resize([1,2,3], [5], -1)","resize(2, [2, 3])",'resize("hello", [8], "!")'],seealso:["size","subset","squeeze"]}},function(e){e.exports={name:"size",category:"Matrix",syntax:["size(x)"],description:"Calculate the size of a matrix.",examples:["size(2.3)",'size("hello world")',"a = [1, 2; 3, 4; 5, 6]","size(a)","size(1:6)"],seealso:["concat","det","diag","eye","inv","ones","range","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"squeeze",category:"Matrix",syntax:["squeeze(x)"],description:"Remove inner and outer singleton dimensions from a matrix.",examples:["a = zeros(3,2,1)","size(squeeze(a))","b = zeros(1,1,3)","size(squeeze(b))"],seealso:["concat","det","diag","eye","inv","ones","range","size","subset","transpose","zeros"]}},function(e){e.exports={name:"subset",category:"Matrix",syntax:["value(index)","value(index) = replacement","subset(value, [index])","subset(value, [index], replacement)"],description:"Get or set a subset of a matrix or string. Indexes are one-based. Both the ranges lower-bound and upper-bound are included.",examples:["d = [1, 2; 3, 4]","e = []","e[1, 1:2] = [5, 6]","e[2, :] = [7, 8]","f = d * e","f[2, 1]","f[:, 1]"],seealso:["concat","det","diag","eye","inv","ones","range","size","squeeze","transpose","zeros"]}},function(e){e.exports={name:"transpose",category:"Matrix",syntax:["x'","transpose(x)"],description:"Transpose a matrix",examples:["a = [1, 2, 3; 4, 5, 6]","a'","transpose(a)"],seealso:["concat","det","diag","eye","inv","ones","range","size","squeeze","subset","zeros"]} -},function(e){e.exports={name:"zeros",category:"Matrix",syntax:["zeros(m)","zeros(m, n)","zeros(m, n, p, ...)","zeros([m])","zeros([m, n])","zeros([m, n, p, ...])","zeros"],description:"Create a matrix containing zeros.",examples:["zeros(3)","zeros(3, 5)","a = [1, 2, 3; 4, 5, 6]","zeros(size(a))"],seealso:["concat","det","diag","eye","inv","ones","range","size","squeeze","subset","transpose"]}},function(e){e.exports={name:"combinations",category:"Probability",syntax:["combinations(n, k)"],description:"Compute the number of combinations of n items taken k at a time",examples:["combinations(7, 5)"],seealso:["permutations","factorial"]}},function(e){e.exports={name:"factorial",category:"Probability",syntax:["n!","factorial(n)"],description:"Compute the factorial of a value",examples:["5!","5 * 4 * 3 * 2 * 1","3!"],seealso:["combinations","permutations","gamma"]}},function(e){e.exports={name:"gamma",category:"Probability",syntax:["gamma(n)"],description:"Compute the gamma function. For small values, the Lanczos approximation is used, and for large values the extended Stirling approximation.",examples:["gamma(4)","3!","gamma(1/2)","sqrt(pi)"],seealso:["factorial"]}},function(e){e.exports={name:"permutations",category:"Probability",syntax:["permutations(n)","permutations(n, k)"],description:"Compute the number of permutations of n items taken k at a time",examples:["permutations(5)","permutations(5, 3)"],seealso:["combinations","factorial"]}},function(e){e.exports={name:"pickRandom",category:"Probability",syntax:["pickRandom(array)"],description:"Pick a random entry from a given array.",examples:["pickRandom(0:10)","pickRandom([1, 3, 1, 6])"],seealso:["random","randomInt"]}},function(e){e.exports={name:"random",category:"Probability",syntax:["random()","random(max)","random(min, max)","random(size)","random(size, max)","random(size, min, max)"],description:"Return a random number.",examples:["random()","random(10, 20)","random([2, 3])"],seealso:["pickRandom","randomInt"]}},function(e){e.exports={name:"randInt",category:"Probability",syntax:["randInt()","randInt(max)","randInt(min, max)","randInt(size)","randInt(size, max)","randInt(size, min, max)"],description:"Return a random integer number",examples:["randInt()","randInt(10, 20)","randInt([2, 3], 10)"],seealso:["pickRandom","random"]}},function(e){e.exports={name:"compare",category:"Relational",syntax:["compare(x, y)"],description:"Compare two values. Returns 1 if x is larger than y, -1 if x is smaller than y, and 0 if x and y are equal.",examples:["compare(2, 3)","compare(3, 2)","compare(2, 2)","compare(5cm, 40mm)","compare(2, [1, 2, 3])"],seealso:["equal","unequal","smaller","smallerEq","largerEq"]}},function(e){e.exports={name:"deepEqual",category:"Relational",syntax:["deepEqual(x, y)"],description:"Check equality of two matrices element wise. Returns true if the size of both matrices is equal and when and each of the elements are equal.",examples:["[1,3,4] == [1,3,4]","[1,3,4] == [1,3]"],seealso:["equal","unequal","smaller","larger","smallerEq","largerEq","compare"]}},function(e){e.exports={name:"equal",category:"Relational",syntax:["x == y","equal(x, y)"],description:"Check equality of two values. Returns true if the values are equal, and false if not.",examples:["2+2 == 3","2+2 == 4","a = 3.2","b = 6-2.8","a == b","50cm == 0.5m"],seealso:["unequal","smaller","larger","smallerEq","largerEq","compare","deepEqual"]}},function(e){e.exports={name:"larger",category:"Relational",syntax:["x > y","larger(x, y)"],description:"Check if value x is larger than y. Returns true if x is larger than y, and false if not.",examples:["2 > 3","5 > 2*2","a = 3.3","b = 6-2.8","(a > b)","(b < a)","5 cm > 2 inch"],seealso:["equal","unequal","smaller","smallerEq","largerEq","compare"]}},function(e){e.exports={name:"largerEq",category:"Relational",syntax:["x >= y","largerEq(x, y)"],description:"Check if value x is larger or equal to y. Returns true if x is larger or equal to y, and false if not.",examples:["2 > 1+1","2 >= 1+1","a = 3.2","b = 6-2.8","(a > b)"],seealso:["equal","unequal","smallerEq","smaller","largerEq","compare"]}},function(e){e.exports={name:"smaller",category:"Relational",syntax:["x < y","smaller(x, y)"],description:"Check if value x is smaller than value y. Returns true if x is smaller than y, and false if not.",examples:["2 < 3","5 < 2*2","a = 3.3","b = 6-2.8","(a < b)","5 cm < 2 inch"],seealso:["equal","unequal","larger","smallerEq","largerEq","compare"]}},function(e){e.exports={name:"smallerEq",category:"Relational",syntax:["x <= y","smallerEq(x, y)"],description:"Check if value x is smaller or equal to value y. Returns true if x is smaller than y, and false if not.",examples:["2 < 1+1","2 <= 1+1","a = 3.2","b = 6-2.8","(a < b)"],seealso:["equal","unequal","larger","smaller","largerEq","compare"]}},function(e){e.exports={name:"unequal",category:"Relational",syntax:["x != y","unequal(x, y)"],description:"Check unequality of two values. Returns true if the values are unequal, and false if they are equal.",examples:["2+2 != 3","2+2 != 4","a = 3.2","b = 6-2.8","a != b","50cm != 0.5m","5 cm != 2 inch"],seealso:["equal","smaller","larger","smallerEq","largerEq","compare","deepEqual"]}},function(e){e.exports={name:"max",category:"Statistics",syntax:["max(a, b, c, ...)","max(A)","max(A, dim)"],description:"Compute the maximum value of a list of values.",examples:["max(2, 3, 4, 1)","max([2, 3, 4, 1])","max([2, 5; 4, 3], 0)","max([2, 5; 4, 3], 1)","max(2.7, 7.1, -4.5, 2.0, 4.1)","min(2.7, 7.1, -4.5, 2.0, 4.1)"],seealso:["mean","median","min","prod","std","sum","var"]}},function(e){e.exports={name:"mean",category:"Statistics",syntax:["mean(a, b, c, ...)","mean(A)","mean(A, dim)"],description:"Compute the arithmetic mean of a list of values.",examples:["mean(2, 3, 4, 1)","mean([2, 3, 4, 1])","mean([2, 5; 4, 3], 0)","mean([2, 5; 4, 3], 1)","mean([1.0, 2.7, 3.2, 4.0])"],seealso:["max","median","min","prod","std","sum","var"]}},function(e){e.exports={name:"median",category:"Statistics",syntax:["median(a, b, c, ...)","median(A)"],description:"Compute the median of all values. The values are sorted and the middle value is returned. In case of an even number of values, the average of the two middle values is returned.",examples:["median(5, 2, 7)","median([3, -1, 5, 7])"],seealso:["max","mean","min","prod","std","sum","var"]}},function(e){e.exports={name:"min",category:"Statistics",syntax:["min(a, b, c, ...)","min(A)","min(A, dim)"],description:"Compute the minimum value of a list of values.",examples:["min(2, 3, 4, 1)","min([2, 3, 4, 1])","min([2, 5; 4, 3], 0)","min([2, 5; 4, 3], 1)","min(2.7, 7.1, -4.5, 2.0, 4.1)","max(2.7, 7.1, -4.5, 2.0, 4.1)"],seealso:["max","mean","median","prod","std","sum","var"]}},function(e){e.exports={name:"prod",category:"Statistics",syntax:["prod(a, b, c, ...)","prod(A)"],description:"Compute the product of all values.",examples:["prod(2, 3, 4)","prod([2, 3, 4])","prod([2, 5; 4, 3])"],seealso:["max","mean","min","median","min","std","sum","var"]}},function(e){e.exports={name:"std",category:"Statistics",syntax:["std(a, b, c, ...)","std(A)","std(A, normalization)"],description:'Compute the standard deviation of all values, defined as std(A) = sqrt(var(A)). Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',examples:["std(2, 4, 6)","std([2, 4, 6, 8])",'std([2, 4, 6, 8], "uncorrected")','std([2, 4, 6, 8], "biased")',"std([1, 2, 3; 4, 5, 6])"],seealso:["max","mean","min","median","min","prod","sum","var"]}},function(e){e.exports={name:"sum",category:"Statistics",syntax:["sum(a, b, c, ...)","sum(A)"],description:"Compute the sum of all values.",examples:["sum(2, 3, 4, 1)","sum([2, 3, 4, 1])","sum([2, 5; 4, 3])"],seealso:["max","mean","median","min","prod","std","sum","var"]}},function(e){e.exports={name:"var",category:"Statistics",syntax:["var(a, b, c, ...)","var(A)","var(A, normalization)"],description:'Compute the variance of all values. Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',examples:["var(2, 4, 6)","var([2, 4, 6, 8])",'var([2, 4, 6, 8], "uncorrected")','var([2, 4, 6, 8], "biased")',"var([1, 2, 3; 4, 5, 6])"],seealso:["max","mean","min","median","min","prod","std","sum"]}},function(e){e.exports={name:"acos",category:"Trigonometry",syntax:["acos(x)"],description:"Compute the inverse cosine of a value in radians.",examples:["acos(0.5)","acos(cos(2.3))"],seealso:["cos","atan","asin"]}},function(e){e.exports={name:"asin",category:"Trigonometry",syntax:["asin(x)"],description:"Compute the inverse sine of a value in radians.",examples:["asin(0.5)","asin(sin(2.3))"],seealso:["sin","acos","atan"]}},function(e){e.exports={name:"atan",category:"Trigonometry",syntax:["atan(x)"],description:"Compute the inverse tangent of a value in radians.",examples:["atan(0.5)","atan(tan(2.3))"],seealso:["tan","acos","asin"]}},function(e){e.exports={name:"atan2",category:"Trigonometry",syntax:["atan2(y, x)"],description:"Computes the principal value of the arc tangent of y/x in radians.",examples:["atan2(2, 2) / pi","angle = 60 deg in rad","x = cos(angle)","y = sin(angle)","atan2(y, x)"],seealso:["sin","cos","tan"]}},function(e){e.exports={name:"cos",category:"Trigonometry",syntax:["cos(x)"],description:"Compute the cosine of x in radians.",examples:["cos(2)","cos(pi / 4) ^ 2","cos(180 deg)","cos(60 deg)","sin(0.2)^2 + cos(0.2)^2"],seealso:["acos","sin","tan"]}},function(e){e.exports={name:"cosh",category:"Trigonometry",syntax:["cosh(x)"],description:"Compute the hyperbolic cosine of x in radians.",examples:["cosh(0.5)"],seealso:["sinh","tanh","coth"]}},function(e){e.exports={name:"cot",category:"Trigonometry",syntax:["cot(x)"],description:"Compute the cotangent of x in radians. Defined as 1/tan(x)",examples:["cot(2)","1 / tan(2)"],seealso:["sec","csc","tan"]}},function(e){e.exports={name:"coth",category:"Trigonometry",syntax:["coth(x)"],description:"Compute the hyperbolic cotangent of x in radians.",examples:["coth(2)","1 / tanh(2)"],seealso:["sech","csch","tanh"]}},function(e){e.exports={name:"csc",category:"Trigonometry",syntax:["csc(x)"],description:"Compute the cosecant of x in radians. Defined as 1/sin(x)",examples:["csc(2)","1 / sin(2)"],seealso:["sec","cot","sin"]}},function(e){e.exports={name:"csch",category:"Trigonometry",syntax:["csch(x)"],description:"Compute the hyperbolic cosecant of x in radians. Defined as 1/sinh(x)",examples:["csch(2)","1 / sinh(2)"],seealso:["sech","coth","sinh"]}},function(e){e.exports={name:"sec",category:"Trigonometry",syntax:["sec(x)"],description:"Compute the secant of x in radians. Defined as 1/cos(x)",examples:["sec(2)","1 / cos(2)"],seealso:["cot","csc","cos"]}},function(e){e.exports={name:"sech",category:"Trigonometry",syntax:["sech(x)"],description:"Compute the hyperbolic secant of x in radians. Defined as 1/cosh(x)",examples:["sech(2)","1 / cosh(2)"],seealso:["coth","csch","cosh"]}},function(e){e.exports={name:"sin",category:"Trigonometry",syntax:["sin(x)"],description:"Compute the sine of x in radians.",examples:["sin(2)","sin(pi / 4) ^ 2","sin(90 deg)","sin(30 deg)","sin(0.2)^2 + cos(0.2)^2"],seealso:["asin","cos","tan"]}},function(e){e.exports={name:"sinh",category:"Trigonometry",syntax:["sinh(x)"],description:"Compute the hyperbolic sine of x in radians.",examples:["sinh(0.5)"],seealso:["cosh","tanh"]}},function(e){e.exports={name:"tan",category:"Trigonometry",syntax:["tan(x)"],description:"Compute the tangent of x in radians.",examples:["tan(0.5)","sin(0.5) / cos(0.5)","tan(pi / 4)","tan(45 deg)"],seealso:["atan","sin","cos"]}},function(e){e.exports={name:"tanh",category:"Trigonometry",syntax:["tanh(x)"],description:"Compute the hyperbolic tangent of x in radians.",examples:["tanh(0.5)","sinh(0.5) / cosh(0.5)"],seealso:["sinh","cosh"]}},function(e){e.exports={name:"to",category:"Units",syntax:["x to unit","to(x, unit)"],description:"Change the unit of a value.",examples:["5 inch to cm","3.2kg to g","16 bytes in bits"],seealso:[]}},function(e){e.exports={name:"clone",category:"Utils",syntax:["clone(x)"],description:"Clone a variable. Creates a copy of primitive variables,and a deep copy of matrices",examples:["clone(3.5)","clone(2 - 4i)","clone(45 deg)","clone([1, 2; 3, 4])",'clone("hello world")'],seealso:[]}},function(e){e.exports={name:"map",category:"Utils",syntax:["map(x, callback)"],description:"Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array.",examples:["map([1, 2, 3], function(val) { return value * value })"],seealso:["filter","forEach"]}},function(e){e.exports={name:"filter",category:"Utils",syntax:["filter(x, test)"],description:"Filter items in a matrix.",examples:["isPositive(x) = x > 0","filter([6, -2, -1, 4, 3], isPositive)","filter([6, -2, 0, 1, 0], x != 0)"],seealso:["sort","map","forEach"]}},function(e){e.exports={name:"forEach",category:"Utils",syntax:["forEach(x, callback)"],description:"Iterates over all elements of a matrix/array, and executes the given callback function.",examples:["forEach([1, 2, 3], function(val) { console.log(val) })"],seealso:["map","sort","filter"]}},function(e){e.exports={name:"format",category:"Utils",syntax:["format(value)","format(value, precision)"],description:"Format a value of any type as string.",examples:["format(2.3)","format(3 - 4i)","format([])","format(pi, 3)"],seealso:["print"]}},function(e){e.exports={name:"import",category:"Utils",syntax:["import(string)"],description:"Import functions from a file.",examples:['import("numbers")','import("./mylib.js")'],seealso:[]}},function(e){e.exports={name:"sort",category:"Utils",syntax:["sort(x)","sort(x, compare)"],description:'Sort the items in a matrix. Compare can be a string "asc" or "desc", or a custom sort function.',examples:["sort([5, 10, 1])",'sort(["C", "B", "A", "D"])',"sortByLength(a, b) = size(a)[1] - size(b)[1]",'sort(["Langdon", "Tom", "Sara"], sortByLength)'],seealso:["map","filter","forEach"]}},function(e){e.exports={name:"typeof",category:"Utils",syntax:["typeof(x)"],description:"Get the type of a variable.",examples:["typeof(3.5)","typeof(2 - 4i)","typeof(45 deg)",'typeof("hello world")'],seealso:[]}},function(e){"use strict";e.exports={end:!0}},function(e,r,t){"use strict";function n(){for(var e,r=Array.prototype.slice.call(arguments),t=0,n=r.length;n>t;t++){e=r[t];for(var i in e)e.hasOwnProperty(i)&&(w[i]=e[i])}}function i(e,r){return"undefined"!=typeof e[r]}function o(e){return function(r){return i(e,r)}}function a(e){return function(t){if("boolean"==typeof e[t])t=e[t]===!0?"\\"+t:"\\mathrm{"+t+"}";else if("string"==typeof e[t])t=e[t];else if("string"==typeof t){var n=t.indexOf("_");-1!==n&&(t=r.toSymbol(t.substring(0,n))+"_{"+r.toSymbol(t.substring(n+1))+"}")}return t}}var s=t(161),u=t(168),f={Alpha:"A",alpha:!0,Beta:"B",beta:!0,Gamma:!0,gamma:!0,Delta:!0,delta:!0,Epsilon:"E",epsilon:!0,varepsilon:!0,Zeta:"Z",zeta:!0,Eta:"H",eta:!0,Theta:!0,theta:!0,vartheta:!0,Iota:"I",iota:!0,Kappa:"K",kappa:!0,varkappa:!0,Lambda:!0,lambda:!0,Mu:"M",mu:!0,Nu:"N",nu:!0,Xi:!0,xi:!0,Omicron:"O",omicron:!0,Pi:!0,pi:!0,varpi:!0,Rho:"P",rho:!0,varrho:!0,Sigma:!0,sigma:!0,varsigma:!0,Tau:"T",tau:!0,Upsilon:!0,upsilon:!0,Phi:!0,phi:!0,varphi:!0,Chi:"X",chi:!0,Psi:!0,psi:!0,Omega:!0,omega:!0},c={dots:!0,ldots:!0,cdots:!0,vdots:!0,ddots:!0,idots:!0},l={"true":"\\mathrm{True}","false":"\\mathrm{False}"},p={inf:"\\infty",Inf:"\\infty",infinity:"\\infty",Infinity:"\\infty",oo:"\\infty",lim:!0,undefined:"\\mathbf{?}"},m={acos:"\\cos^{-1}",arccos:"\\cos^{-1}",cos:!0,csc:!0,csch:!1,exp:!0,ker:!0,limsup:!0,min:!0,sinh:!0,asin:"\\sin^{-1}",arcsin:"\\sin^{-1}",cosh:!0,deg:!0,gcd:!0,lg:!0,ln:!0,Pr:!0,sup:!0,atan:"\\tan^{-1}",atan2:"\\tan2^{-1}",arctan:"\\tan^{-1}",cot:!0,det:!0,hom:!0,log:!0,log10:"\\log_{10}",sec:!0,sech:!1,tan:!0,arg:!0,coth:!0,dim:!0,inf:!0,max:!0,sin:!0,tanh:!0,fix:!1,lcm:!1,sign:!1,xgcd:!1,unaryMinus:!1,unaryPlus:!1,complex:!1,conj:!1,im:!1,re:!1,diag:!1,resize:!1,size:!1,squeeze:!1,subset:!1,index:!1,ones:!1,zeros:!1,range:!1,random:!1,mean:"\\mu",median:!1,prod:!1,std:"\\sigma","var":"\\sigma^2"},h={sqrt:!0,inv:!0,"int":"\\int",Int:"\\int",integrate:"\\int",eigenvalues:"\\lambda",liminf:!0,lim:!0,exp:"e^",sum:!0,eye:"\\mathbf{I}"},g={"<=":"\\leq",">=":"\\geq","!=":"\\neq","in":!0,"*":"\\cdot","/":"\\frac",mod:"\\bmod",to:"\\rightarrow"},d={deg:"^{\\circ}"},w={};n(m,h,f,c,l,p),r.isSymbol=o(w),r.toSymbol=a(w),r.isFunction=o(m),r.toFunction=a(m),r.isCurlyFunction=o(h),r.toCurlyFunction=a(h),r.isOperator=o(g),r.toOperator=a(g),r.isUnit=o(d),r.toUnit=function(){var e=a(d);return function(t,n){return r.isUnit(t)?e(t):(n?"":"\\,")+"\\mathrm{"+t+"}"}}(),r.addBraces=function(e,r,t){if(null===r)return e;var n=["",""];switch(t=t||"normal","undefined"==typeof r||r===!1?n=["{","}"]:r===!0?(n=["(",")"],t="lr"):n=Array.isArray(r)&&2===r.length?r:[r,r],t){case"normal":case!1:return n[0]+e+n[1];case"lr":return"\\left"+n[0]+"{"+e+"}\\right"+n[1];case"be":return"\\begin{"+n[0]+"}"+e+"\\end{"+n[1]+"}"}return n[0]+e+n[1]},r.toArgs=function(e){var t=e.name,n=e.args,i=r.toSymbol(e.name),o=null,a=null,f=!1,c=!1,l="",p="",m=null;switch(t){case"add":m="+";break;case"subtract":m="-";break;case"larger":m=">";break;case"largerEq":m=">=";break;case"smaller":m="<";break;case"smallerEq":m="<=";break;case"unequal":m="!=";break;case"equal":m="=";break;case"mod":m="mod";break;case"multiply":m="*";break;case"pow":m="^";break;case"concat":m="||";break;case"factorial":m="!";break;case"permutations":if(1!==n.length){var h=n[0].toTex(),g=n[1].toTex();return"\\frac{"+h+"!}{\\left("+h+" - "+g+"\\right)!}"}m="!";break;case"combinations":m="\\choose";break;case"abs":a="|",f="lr";break;case"norm":if(a="\\|",f="lr",2===n.length){var d=n[1].toTex();"\\text{inf}"===d?d="\\infty":"\\text{-inf}"===d?d="{- \\infty}":"\\text{fro}"===d&&(d="F"),p="_{"+d+"}",n=[n[0]]}break;case"ceil":a=["\\lceil","\\rceil"],f="lr";break;case"floor":a=["\\lfloor","\\rfloor"],f="lr";break;case"round":a=["\\lfloor","\\rceil"],f="lr",2===n.length&&(p="_"+r.addBraces(n[1].toTex()),n=[n[0]]);break;case"inv":p="^{-1}";break;case"transpose":p="^{T}",a=!1;break;case"log":var w="e";2===n.length&&(w=n[1].toTex(),i="\\log_{"+w+"}",n=[n[0]]),"e"===w&&(i="\\ln"),c=!0;break;case"square":p="^{2}";break;case"cube":p="^{3}";break;case"eye":c=!0,a=!1,i+="_";break;case"det":if(e.args[0]instanceof s)return e.args[0].toTex("vmatrix");a="vmatrix",f="be";break;default:c=!0}return null!==m?(a="+"===m||"-"===m,o=new u(m,t,n).toTex()):m=", ",null!==a||r.isCurlyFunction(t)||(a=!0),o=o||n.map(function(e){return"{"+e.toTex()+"}"}).join(m),l+(c?i:"")+r.addBraces(o,a,f)+p}}])}); +if(a(r))return r>=-1&&1>=r?Math.asin(r):c(new i(r,0));if(u(r)){var t=r.re,l=r.im,p=new i(l*l-t*t+1,-2*t*l),m=e.sqrt(p),h=new i(m.re-l,m.im+t),g=e.log(h);return new i(g.im,-g.re)}if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.asin(r);if(r instanceof n)return c(r.toNumber());throw new e.error.UnsupportedTypeError("asin",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=i.isComplex,f=o.isCollection;e.atan=function c(r){if(1!=arguments.length)throw new e.error.ArgumentsError("atan",arguments.length,1);if(a(r))return Math.atan(r);if(u(r)){var t=r.re,l=r.im,p=t*t+(1-l)*(1-l),m=new i((1-l*l-t*t)/p,-2*t/p),h=e.log(m);return new i(-.5*h.im,.5*h.re)}if(f(r))return o.deepMap(r,c);if(s(r)||null===r)return Math.atan(r);if(r instanceof n)return c(r.toNumber());throw new e.error.UnsupportedTypeError("atan",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(13),a=r.number.isNumber,s=r["boolean"].isBoolean,u=(i.isComplex,o.isCollection);e.atan2=function f(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("atan2",arguments.length,2);if(a(r)&&a(t))return Math.atan2(r,t);if(u(r)||u(t))return o.deepMap2(r,t,f);if(s(r)||null===r)return f(+r,t);if(s(t)||null===t)return f(r,+t);if(r instanceof n)return f(r.toNumber(),t);if(t instanceof n)return f(r,t.toNumber());throw new e.error.UnsupportedTypeError("atan2",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.cos=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cos",arguments.length,1);if(s(r))return Math.cos(r);if(f(r))return new i(Math.cos(r.re)*e.cosh(-r.im),Math.sin(r.re)*e.sinh(-r.im));if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function cos is no angle");return Math.cos(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return Math.cos(r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cos",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.cosh=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cosh",arguments.length,1);if(s(r))return(Math.exp(r)+Math.exp(-r))/2;if(f(r)){var t=Math.exp(r.re),m=Math.exp(-r.re);return new i(Math.cos(r.im)*(t+m)/2,Math.sin(r.im)*(t-m)/2)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function cosh is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cosh",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.cot=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("cot",arguments.length,1);if(s(r))return 1/Math.tan(r);if(f(r)){var t=Math.exp(-4*r.im)-2*Math.exp(-2*r.im)*Math.cos(2*r.re)+1;return new i(2*Math.exp(-2*r.im)*Math.sin(2*r.re)/t,(Math.exp(-4*r.im)-1)/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function cot is no angle");return 1/Math.tan(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(+r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cot",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.coth=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("coth",arguments.length,1);if(s(r)){var t=Math.exp(2*r);return(t+1)/(t-1)}if(f(r)){var m=Math.exp(2*r.re),h=m*Math.cos(2*r.im),g=m*Math.sin(2*r.im),d=(h-1)*(h-1)+g*g;return new i(((h+1)*(h-1)+g*g)/d,-2*g/d)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function coth is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("coth",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.csc=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("csc",arguments.length,1);if(s(r))return 1/Math.sin(r);if(f(r)){var t=.25*(Math.exp(-2*r.im)+Math.exp(2*r.im))-.5*Math.cos(2*r.re);return new i(.5*Math.sin(r.re)*(Math.exp(-r.im)+Math.exp(r.im))/t,.5*Math.cos(r.re)*(Math.exp(-r.im)-Math.exp(r.im))/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function csc is no angle");return 1/Math.sin(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(+r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("csc",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number,u=r.number.isNumber,f=r["boolean"].isBoolean,c=i.isComplex,l=o.isUnit,p=a.isCollection;e.csch=function m(r){if(1!=arguments.length)throw new e.error.ArgumentsError("csch",arguments.length,1);if(u(r))return 0==r?Number.NaN:Math.abs(2/(Math.exp(r)-Math.exp(-r)))*s.sign(r);if(c(r)){var t=Math.exp(r.re),h=Math.exp(-r.re),g=Math.cos(r.im)*(t-h),d=Math.sin(r.im)*(t+h),w=g*g+d*d;return new i(2*g/w,-2*d/w)}if(l(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function csch is no angle");return m(r.value)}if(p(r))return a.deepMap(r,m);if(f(r)||null===r)return m(r?1:0);if(r instanceof n)return m(r.toNumber());throw new e.error.UnsupportedTypeError("csch",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sec=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sec",arguments.length,1);if(s(r))return 1/Math.cos(r);if(f(r)){var t=.25*(Math.exp(-2*r.im)+Math.exp(2*r.im))+.5*Math.cos(2*r.re);return new i(.5*Math.cos(r.re)*(Math.exp(-r.im)+Math.exp(r.im))/t,.5*Math.sin(r.re)*(Math.exp(r.im)-Math.exp(-r.im))/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sec is no angle");return 1/Math.cos(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(+r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sec",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sech=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sech",arguments.length,1);if(s(r))return 2/(Math.exp(r)+Math.exp(-r));if(f(r)){var t=Math.exp(r.re),m=Math.exp(-r.re),h=Math.cos(r.im)*(t+m),g=Math.sin(r.im)*(t-m),d=h*h+g*g;return new i(2*h/d,-2*g/d)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sech is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sech",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sin=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sin",arguments.length,1);if(s(r))return Math.sin(r);if(f(r))return new i(Math.sin(r.re)*e.cosh(-r.im),Math.cos(r.re)*e.sinh(r.im));if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sin is no angle");return Math.sin(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return Math.sin(r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sin",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.sinh=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("sinh",arguments.length,1);if(s(r))return Math.abs(r)<1?r+r*r*r/6+r*r*r*r*r/120:(Math.exp(r)-Math.exp(-r))/2;if(f(r)){var t=Math.cos(r.im),m=Math.sin(r.im),h=Math.exp(r.re),g=Math.exp(-r.re);return new i(t*(h-g)/2,m*(h+g)/2)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function sinh is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sinh",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.tan=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("tan",arguments.length,1);if(s(r))return Math.tan(r);if(f(r)){var t=Math.exp(-4*r.im)+2*Math.exp(-2*r.im)*Math.cos(2*r.re)+1;return new i(2*Math.exp(-2*r.im)*Math.sin(2*r.re)/t,(1-Math.exp(-4*r.im))/t)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function tan is no angle");return Math.tan(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return Math.tan(r);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tan",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=e.type.BigNumber,i=t(6),o=t(10),a=t(13),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.tanh=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("tanh",arguments.length,1);if(s(r)){var t=Math.exp(2*r);return(t-1)/(t+1)}if(f(r)){var m=Math.exp(2*r.re),h=m*Math.cos(2*r.im),g=m*Math.sin(2*r.im),d=(h+1)*(h+1)+g*g;return new i(((h-1)*(h+1)+g*g)/d,2*g/d)}if(c(r)){if(!r.hasBase(o.BASE_UNITS.ANGLE))throw new TypeError("Unit in function tanh is no angle");return p(r.value)}if(l(r))return a.deepMap(r,p);if(u(r)||null===r)return p(r?1:0);if(r instanceof n)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tanh",e["typeof"](r))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=t(10),i=t(13),o=r.string.isString,a=n.isUnit,s=i.isCollection;e.to=function u(r,t){if(2!=arguments.length)throw new e.error.ArgumentsError("to",arguments.length,2);if(a(r)&&(a(t)||o(t)))return r.to(t);if(s(r)||s(t))return i.deepMap2(r,t,u);throw new e.error.UnsupportedTypeError("to",e["typeof"](r),e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=r.object;e.clone=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("clone",arguments.length,1);return n.clone(r)}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){if("function"==typeof r)return e.filter(function(e){return r(e)});if(r instanceof RegExp)return e.filter(function(e){return r.test(e)});throw new TypeError("Function or RegExp expected")}var n=t(9);e.filter=function(t,i){if(2!==arguments.length)throw new e.error.ArgumentsError("filter",arguments.length,2);if(t instanceof n){var o=t.size();if(o.length>1)throw new Error("Only one dimensional matrices supported");return new n(r(t.toArray(),i))}if(Array.isArray(t))return r(t,i);throw new e.error.UnsupportedTypeError("filter",e["typeof"](t),e["typeof"](compare))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=r.string;e.format=function(r,t){var i=arguments.length;if(1!==i&&2!==i)throw new e.error.ArgumentsError("format",i,1,2);return n.format(r,t)}}},function(e,r,t){"use strict";e.exports=function(e){function r(r,t,n){(n.override||void 0===e[r])&&(e[r]=n.wrap&&"function"==typeof t?function(){for(var r=[],n=0,i=arguments.length;i>n;n++){var o=arguments[n];r[n]=o&&o.valueOf()}return t.apply(e,r)}:t,e.chaining.Chain.createProxy(r,t))}function n(e){return"function"==typeof e||s(e)||u(e)||f(e)||c(e)}var i=t(160),o=t(6),a=t(10),s=i.number.isNumber,u=i.string.isString,f=o.isComplex,c=a.isUnit;e["import"]=function l(i,o){var a=arguments.length;if(1!=a&&2!=a)throw new e.error.ArgumentsError("import",a,1,2);var s,f={override:o&&o.override||!1,wrap:o&&o.wrap||!1};if(u(i)){var c=t(195)(i);l(c,o)}else{if("object"!=typeof i)throw new TypeError("Object or module name expected");for(s in i)if(i.hasOwnProperty(s)){var p=i[s];n(p)?r(s,p,f):l(p,o)}}}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=function(n,i){return Array.isArray(n)?n.map(function(e,r){return t(e,i.concat(r))}):r(n,i,e)};return t(e,[])}var n=t(9);e.map=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("map",arguments.length,2);if(Array.isArray(t))return r(t,i);if(t instanceof n)return t.map(i);throw new e.error.UnsupportedTypeError("map",e["typeof"](t))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(160),n=r.string.isString;e.print=function(r,t,i){var o=arguments.length;if(2!=o&&3!=o)throw new e.error.ArgumentsError("print",o,2,3);if(!n(r))throw new TypeError("String expected as first parameter in function format");if(!(t instanceof Object))throw new TypeError("Object expected as second parameter in function format");return r.replace(/\$([\w\.]+)/g,function(r,o){for(var a=o.split("."),s=t[a.shift()];a.length&&void 0!==s;){var u=a.shift();s=u?s[u]:s+"."}return void 0!==s?n(s)?s:e.format(s,i):r})}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(9);e.sort=function(t,n){var i=null;if(1===arguments.length)i=e.compare;else{if(2!==arguments.length)throw new e.error.ArgumentsError("sort",arguments.length,1,2);if("function"==typeof n)i=n;else if("asc"===n)i=e.compare;else{if("desc"!==n)throw new e.error.UnsupportedTypeError("sort",e["typeof"](t),e["typeof"](n));i=function(r,t){return-e.compare(r,t)}}}if(t instanceof r){var o=t.size();if(o.length>1)throw new Error("Only one dimensional matrices supported");return new r(t.toArray().sort(i))}if(Array.isArray(t))return t.sort(i);throw new e.error.UnsupportedTypeError("sort",e["typeof"](t),e["typeof"](n))}}},function(e,r,t){"use strict";e.exports=function(e){var r=t(196),n=t(6),i=t(9),o=t(10),a=t(8),s=t(7),u=t(11);e["typeof"]=function(t){if(1!=arguments.length)throw new e.error.ArgumentsError("typeof",arguments.length,1);var f=r.type(t);if("object"===f){if(t instanceof n)return"complex";if(t instanceof i)return"matrix";if(t instanceof o)return"unit";if(t instanceof a)return"index";if(t instanceof s)return"range";if(t instanceof u)return"help";if(t instanceof e.type.BigNumber)return"bignumber";if(t instanceof e.chaining.Chain)return"chain"}return f}}},function(e,r,t){"use strict";e.exports=function(e){function r(e,r){var t=function(n,i){Array.isArray(n)?n.forEach(function(e,r){t(e,i.concat(r))}):r(n,i,e)};t(e,[])}var n=t(9);e.forEach=function(t,i){if(2!=arguments.length)throw new e.error.ArgumentsError("forEach",arguments.length,2);if(Array.isArray(t))return r(t,i);if(t instanceof n)return t.forEach(i);throw new e.error.UnsupportedTypeError("forEach",e["typeof"](t))}}},function(e,r,t){"use strict";function n(e,t,n){var a,s,u=e.constructor,f=+(e.s<0),c=+(t.s<0);if(f){a=o(i(r.not(e)));for(var l=0;l0;)n(p[--g],m[--d])==w&&(x=x.plus(y)),y=y.times(v);for(;d>0;)n(h,m[--d])==w&&(x=x.plus(y)),y=y.times(v);return u.precision=b,0==w&&(x.s=-x.s),x}function i(e){for(var r=e.c,t=r[0]+"",n=1;n0)if(++s>f)for(s-=f;s--;u+="0");else f>s&&(u=u.slice(0,s)+"."+u.slice(s));return u}function o(e){for(var r=[0],t=0;t1&&(null==r[i+1]&&(r[i+1]=0),r[i+1]+=r[i]>>1,r[i]&=1)}return r.reverse()}{var a=t(155),s=t(4).isNumber;t(4).digits}r.isBigNumber=function(e){return e instanceof a},r.e=function(e){var r=a.constructor({precision:e});return new r(1).exp()},r.phi=function(e){var r=a.constructor({precision:e});return new r(1).plus(new r(5).sqrt()).div(2)},r.arctan=function(e){for(var r=e,t=0/0,n=e.times(e),i=e,o=-1,a=3;!r.equals(t);a+=2)i=i.times(n),t=r,r=o>0?r.plus(i.div(a)):r.minus(i.div(a)),o=-o;return r},r.pi=function(e){var t=a.constructor({precision:e+4}),n=new t(4).times(r.arctan(new t(1).div(5))).minus(r.arctan(new t(1).div(239)));return t.config({precision:e}),new t(4).times(n)},r.tau=function(e){var t=r.pi(e+2),n=a.constructor({precision:e});return new n(2).times(t)},r.and=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function bitAnd must be integer numbers");var t=e.constructor;if(e.isNaN()||r.isNaN())return new t(0/0);if(e.isZero()||r.eq(-1)||e.eq(r))return e;if(r.isZero()||e.eq(-1))return r;if(!e.isFinite()||!r.isFinite()){if(!e.isFinite()&&!r.isFinite())return e.isNegative()==r.isNegtive()?e:new t(0);if(!e.isFinite())return r.isNegative()?e:e.isNegative()?new t(0):r;if(!r.isFinite())return e.isNegative()?r:r.isNegative()?new t(0):e}return n(e,r,function(e,r){return e&r})},r.leftShift=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function leftShift must be integer numbers");var t=e.constructor;return e.isNaN()||r.isNaN()||r.isNegative()&&!r.isZero()?new t(0/0):e.isZero()||r.isZero()?e:e.isFinite()||r.isFinite()?e.times(r.lt(55)?Math.pow(2,r.toNumber())+"":new t(2).pow(r)):new t(0/0)},r.not=function(e){if(e.isFinite()&&!e.isInteger())throw new Error("Parameter in function bitNot must be integer numbers");var r=e.constructor,t=r.precision;r.precision=1e9;var e=e.plus(r.ONE);return e.s=-e.s||null,r.precision=t,e},r.or=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function bitOr must be integer numbers");var t=e.constructor;if(e.isNaN()||r.isNaN())return new t(0/0);var i=new t(-1);return e.isZero()||r.eq(i)||e.eq(r)?r:r.isZero()||e.eq(i)?e:e.isFinite()&&r.isFinite()?n(e,r,function(e,r){return e|r}):!e.isFinite()&&!e.isNegative()&&r.isNegative()||e.isNegative()&&!r.isNegative()&&!r.isFinite()?i:e.isNegative()&&r.isNegative()?e.isFinite()?e:r:e.isFinite()?r:e},r.rightShift=function(e,r){if(e.isFinite()&&!e.isInteger()||r.isFinite()&&!r.isInteger())throw new Error("Parameters in function rightArithShift must be integer numbers");var t=e.constructor;return e.isNaN()||r.isNaN()||r.isNegative()&&!r.isZero()?new t(0/0):e.isZero()||r.isZero()?e:r.isFinite()?r.lt(55)?e.div(Math.pow(2,r.toNumber())+"").floor():e.div(new t(2).pow(r)).floor():new t(e.isNegative()?-1:e.isFinite()?0:0/0)},r.xor=function(e,t){if(e.isFinite()&&!e.isInteger()||t.isFinite()&&!t.isInteger())throw new Error("Parameters in function bitXor must be integer numbers");var i=e.constructor;if(e.isNaN()||t.isNaN())return new i(0/0);if(e.isZero())return t;if(t.isZero())return e;if(e.eq(t))return new i(0);var o=new i(-1);return e.eq(o)?r.not(t):t.eq(o)?r.not(e):e.isFinite()&&t.isFinite()?n(e,t,function(e,r){return e^r}):e.isFinite()||t.isFinite()?new i(e.isNegative()==t.isNegative()?1/0:-1/0):o},r.format=function(e,t){if("function"==typeof t)return t(e);if(!e.isFinite())return e.isNaN()?"NaN":e.gt(0)?"Infinity":"-Infinity";var n="auto",i=void 0;switch(void 0!==t&&(t.notation&&(n=t.notation),s(t)?i=t:t.precision&&(i=t.precision)),n){case"fixed":return r.toFixed(e,i);case"exponential":return r.toExponential(e,i);case"auto":var o=.001,a=1e5;t&&t.exponential&&(void 0!==t.exponential.lower&&(o=t.exponential.lower),void 0!==t.exponential.upper&&(a=t.exponential.upper));{({toExpNeg:e.constructor.toExpNeg,toExpPos:e.constructor.toExpPos})}if(e.constructor.config({toExpNeg:Math.round(Math.log(o)/Math.LN10),toExpPos:Math.round(Math.log(a)/Math.LN10)}),e.isZero())return"0";var u,f=e.abs();return u=f.gte(o)&&f.lt(a)?e.toSignificantDigits(i).toFixed():r.toExponential(e,i),u.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],r=arguments[4];return"."!==e?e+r:r});default:throw new Error('Unknown notation "'+n+'". Choose "auto", "exponential", or "fixed".')}},r.toExponential=function(e,r){return void 0!==r?e.toExponential(r-1):e.toExponential()},r.toFixed=function(e,r){return e.toFixed(r||0)}},function(e,r,t){"use strict";function n(e){for(var r=[];m(e);)r.push(e.length),e=e[0];return r}function i(e,r,t){var n,o=e.length;if(o!=r[t])throw new l(o,r[t]);if(tn;n++){var s=e[n];if(!m(s))throw new l(r.length-1,r.length,"<");i(e[n],r,a)}}else for(n=0;o>n;n++)if(m(e[n]))throw new l(r.length+1,r.length,">")}function o(e,t,n,i){var a,s,u=e.length,f=t[n],l=Math.min(u,f);if(e.length=f,na;a++)s=e[a],m(s)||(s=[s],e[a]=s),o(s,t,p,i);for(a=l;f>a;a++)s=[],e[a]=s,o(s,t,p,i)}else{for(a=0;l>a;a++)for(;m(e[a]);)e[a]=e[a][0];if(i!==r.UNINITIALIZED)for(a=l;f>a;a++)e[a]=c.clone(i)}}function a(e,r,t){var n,i;if(r>t){var o=t+1;for(n=0,i=e.length;i>n;n++)e[n]=a(e[n],r,o)}else for(;m(e);)e=e[0];return e}function s(e,r,t){var n,i;if(m(e)){var o=t+1;for(n=0,i=e.length;i>n;n++)e[n]=s(e[n],r,o)}else for(var a=t;r>a;a++)e=[e];return e}var u=t(4),f=t(176),c=t(3),l=(t(196),t(157)),p=t(158),m=Array.isArray;r.size=function(e){var t=n(e);return r.validate(e,t),t},r.validate=function(e,r){var t=0==r.length;if(t){if(m(e))throw new l(e.length,0)}else i(e,r,0)},r.validateIndex=function(e,r){if(!u.isNumber(e)||!u.isInteger(e))throw new TypeError("Index must be an integer (value: "+e+")");if(0>e)throw new p(e);if(void 0!==r&&e>=r)throw new p(e,r)},r.UNINITIALIZED={},r.resize=function(e,r,t){if(!m(e)||!m(r))throw new TypeError("Array expected");if(0===r.length)throw new Error("Resizing to scalar is not supported");r.forEach(function(e){if(!u.isNumber(e)||!u.isInteger(e)||0>e)throw new TypeError("Invalid size, must contain positive integers (size: "+f.format(r)+")")});var n=void 0!==t?t:0;return o(e,r,0,n),e},r.squeeze=function(e,t){for(var n=t||r.size(e);m(e)&&1===e.length;)e=e[0],n.shift();for(var i=n.length;1===n[i-1];)i--;return ia;a++)e=[e],o.unshift(1);for(e=s(e,t,0);o.lengthi;i++)n=n.concat.apply(n,r[i]);r=n}return r},r.argsToArray=function(e){for(var r=[],t=0,n=e.length;n>t;t++)r[t]=e[t];return r},r.isArray=m},function(e){e.exports="1.2.1-SNAPSHOT"},function(e,r,t){var n;!function(i){"use strict";function o(e){for(var r,t,n=1,i=e.length,o=e[0]+"";i>n;n++){for(r=e[n]+"",t=T-r.length;t--;)r="0"+r;o+=r}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function a(e,r,t,n){var i,o,a,s,u;for(o=1,a=e[0];a>=10;a/=10,o++);return a=r-o,0>a?(a+=T,i=0):(i=Math.ceil((a+1)/T),a%=T),o=N(10,T-a),u=e[i]%o|0,null==n?3>a?(0==a?u=u/100|0:1==a&&(u=u/10|0),s=4>t&&99999==u||t>3&&49999==u||5e4==u||0==u):s=(4>t&&u+1==o||t>3&&u+1==o/2)&&(e[i+1]/o/100|0)==N(10,a-2)-1||(u==o/2||0==u)&&0==(e[i+1]/o/100|0):4>a?(0==a?u=u/1e3|0:1==a?u=u/100|0:2==a&&(u=u/10|0),s=(n||4>t)&&9999==u||!n&&t>3&&4999==u):s=((n||4>t)&&u+1==o||!n&&t>3&&u+1==o/2)&&(e[i+1]/o/1e3|0)==N(10,a-3)-1,s}function s(e,r,t){var n=e.constructor;return null==r||((x=0>r||r>8)||0!==r&&(n.errors?parseInt:parseFloat)(r)!=r)&&!p(n,"rounding mode",r,t,0)?n.rounding:0|r}function u(e,r,t,n){var i=e.constructor;return!(x=(n||0)>r||r>=U+1)&&(0===r||(i.errors?parseInt:parseFloat)(r)==r)||p(i,"argument",r,t,0)}function f(e,r){var t,n,i,s,u,f,c,l=0,p=0,m=0,h=e.constructor,d=h.ONE,w=h.rounding,x=h.precision;if(!e.c||!e.c[0]||e.e>17)return new h(e.c?e.c[0]?e.s<0?0:1/0:d:e.s?e.s<0?0:e:0/0);for(null==r?(v=!1,u=x):u=r,c=new h(.03125);e.e>-2;)e=e.times(c),m+=5;for(n=Math.log(N(2,m))/Math.LN10*2+5|0,u+=n,t=s=f=new h(d),h.precision=u;;){if(s=g(s.times(e),u,1),t=t.times(++p),c=f.plus(I(s,t,u,1)),o(c.c).slice(0,u)===o(f.c).slice(0,u)){for(i=m;i--;)f=g(f.times(f),u,1);if(null!=r)return h.precision=x,f;if(!(3>l&&a(f.c,u-n,w,l)))return g(f,h.precision=x,w,v=!0);h.precision=u+=10,t=s=c=new h(d),p=0,l++}f=c}}function c(e,r,t,n){var i,a,s=e.constructor,u=(e=new s(e)).e;if(null==r?t=0:(g(e,++r,t),t=n?r:r+e.e-u),u=e.e,i=o(e.c),1==n||2==n&&(u>=r||u<=s.toExpNeg)){for(;i.length1&&(i=i.charAt(0)+"."+i.slice(1)),i+=(0>u?"e":"e+")+u}else{if(n=i.length,0>u){for(a=t-n;++u;i="0"+i);i="0."+i}else if(++u>n){for(a=t-u,u-=n;u--;i+="0");a>0&&(i+=".")}else a=t-n,n>u?i=i.slice(0,u)+"."+i.slice(u):a>0&&(i+=".");if(a>0)for(;a--;i+="0");}return e.s<0&&e.c[0]?"-"+i:i}function l(e){var r=e.length-1,t=r*T+1;if(r=e[r]){for(;r%10==0;r/=10,t--);for(r=e[0];r>=10;r/=10,t++);}return t}function p(e,r,t,n,i){if(e.errors){var o=new Error((n||["new Decimal","cmp","div","eq","gt","gte","lt","lte","minus","mod","plus","times","toFraction","pow","random","log","sqrt","toNearest","divToInt"][b?0>b?-b:b:0>1/b?1:0])+"() "+(["number type has more than 15 significant digits","LN10 out of digits"][r]||r+([x?" out of range":" not an integer"," not a boolean or binary digit"][i]||""))+": "+t);throw o.name="Decimal Error",x=b=0,o}}function m(e,r,t){var n=new e(e.ONE);for(v=!1;1&t&&(n=n.times(r)),t>>=1,t;)r=r.times(r);return v=!0,n}function h(e,r){var t,n,i,s,u,f,c,l,m,d,w,x=1,y=10,b=e,E=b.c,N=b.constructor,A=N.ONE,M=N.rounding,T=N.precision;if(b.s<0||!E||!E[0]||!b.e&&1==E[0]&&1==E.length)return new N(E&&!E[0]?-1/0:1!=b.s?0/0:E?0:b);if(null==r?(v=!1,c=T):c=r,N.precision=c+=y,t=o(E),n=t.charAt(0),!(Math.abs(s=b.e)<15e14))return b=new N(n+"."+t.slice(1)),c+2>q.length&&p(N,1,c+2,"ln"),b=h(b,c-y).plus(new N(q.slice(0,c+2)).times(s+"")),N.precision=T,null==r?g(b,T,M,v=!0):b;for(;7>n&&1!=n||1==n&&t.charAt(1)>3;)b=b.times(e),t=o(b.c),n=t.charAt(0),x++;for(s=b.e,n>1?(b=new N("0."+t),s++):b=new N(n+"."+t.slice(1)),d=b,l=u=b=I(b.minus(A),b.plus(A),c,1),w=g(b.times(b),c,1),i=3;;){if(u=g(u.times(w),c,1),m=l.plus(I(u,new N(i),c,1)),o(m.c).slice(0,c)===o(l.c).slice(0,c)){if(l=l.times(2),0!==s&&(c+2>q.length&&p(N,1,c+2,"ln"),l=l.plus(new N(q.slice(0,c+2)).times(s+""))),l=I(l,new N(x),c,1),null!=r)return N.precision=T,l;if(!a(l.c,c-y,M,f))return g(l,N.precision=T,M,v=!0);N.precision=c+=y,m=u=b=I(d.minus(A),d.plus(A),c,1),w=g(b.times(b),c,1),i=f=1}l=m,i+=2}}function g(e,r,t,n){var i,o,a,s,u,f,c,l,p=e.constructor;e:if(null!=r){if(!(c=e.c))return e;for(i=1,s=c[0];s>=10;s/=10,i++);if(o=r-i,0>o)o+=T,a=r,u=c[l=0],f=u/N(10,i-a-1)%10|0;else if(l=Math.ceil((o+1)/T),l>=c.length){if(!n)break e;for(;c.length<=l;c.push(0));u=f=0,i=1,o%=T,a=o-T+1}else{for(u=s=c[l],i=1;s>=10;s/=10,i++);o%=T,a=o-T+i,f=0>a?0:E(u/N(10,i-a-1)%10)}if(n=n||0>r||null!=c[l+1]||(0>a?u:u%N(10,i-a-1)),n=4>t?(f||n)&&(0==t||t==(e.s<0?3:2)):f>5||5==f&&(4==t||n||6==t&&(o>0?a>0?u/N(10,i-a):0:c[l-1])%10&1||t==(e.s<0?8:7)),1>r||!c[0])return c.length=0,n?(r-=e.e+1,c[0]=N(10,r%T),e.e=-r||0):c[0]=e.e=0,e;if(0==o?(c.length=l,s=1,l--):(c.length=l+1,s=N(10,T-o),c[l]=a>0?(u/N(10,i-a)%N(10,a)|0)*s:0),n)for(;;){if(0==l){for(o=1,a=c[0];a>=10;a/=10,o++);for(a=c[0]+=s,s=1;a>=10;a/=10,s++);o!=s&&(e.e++,c[0]==M&&(c[0]=1));break}if(c[l]+=s,c[l]!=M)break;c[l--]=0,s=1}for(o=c.length;0===c[--o];c.pop());}return v&&(e.e>p.maxE?e.c=e.e=null:e.ea,!i||!o)return u==f?0:!i^t?1:-1;if(u!=f)return u>f^t?1:-1;for(a=-1,s=(u=i.length)<(f=o.length)?u:f;++ao[a]^t?1:-1;return u==f?0:u>f^t?1:-1},O.decimalPlaces=O.dp=function(){var e,r,t=null;if(e=this.c){if(t=((r=e.length-1)-E(this.e/T))*T,r=e[r])for(;r%10==0;r/=10,t--);0>t&&(t=0)}return t},O.dividedBy=O.div=function(e,r){return b=2,I(this,new this.constructor(e,r))},O.dividedToIntegerBy=O.divToInt=function(e,r){var t=this,n=t.constructor;return b=18,g(I(t,new n(e,r),0,1,1),n.precision,n.rounding)},O.equals=O.eq=function(e,r){return b=3,0===this.cmp(e,r)},O.exponential=O.exp=function(){return f(this)},O.floor=function(){return g(new this.constructor(this),this.e+1,3)},O.greaterThan=O.gt=function(e,r){return b=4,this.cmp(e,r)>0},O.greaterThanOrEqualTo=O.gte=function(e,r){return b=5,r=this.cmp(e,r),1==r||0===r},O.isFinite=function(){return!!this.c},O.isInteger=O.isInt=function(){return!!this.c&&E(this.e/T)>this.c.length-2},O.isNaN=function(){return!this.s},O.isNegative=O.isNeg=function(){return this.s<0},O.isZero=function(){return!!this.c&&0==this.c[0]},O.lessThan=O.lt=function(e,r){return b=6,this.cmp(e,r)<0},O.lessThanOrEqualTo=O.lte=function(e,r){return b=7,r=this.cmp(e,r),-1==r||0===r},O.logarithm=O.log=function(e,r){var t,n,i,s,u,f,c,l,m,d=this,w=d.constructor,x=w.precision,y=w.rounding,E=5;if(null==e)e=new w(10),t=!0;else{if(b=15,e=new w(e,r),n=e.c,e.s<0||!n||!n[0]||!e.e&&1==n[0]&&1==n.length)return new w(0/0);t=e.eq(10)}if(n=d.c,d.s<0||!n||!n[0]||!d.e&&1==n[0]&&1==n.length)return new w(n&&!n[0]?-1/0:1!=d.s?0/0:n?0:1/0);if(u=t&&(s=n[0],n.length>1||1!=s&&10!=s&&100!=s&&1e3!=s&&1e4!=s&&1e5!=s&&1e6!=s),v=!1,c=x+E,l=c+10,f=h(d,c),t?(l>q.length&&p(w,1,l,"log"),i=new w(q.slice(0,l))):i=h(e,c),m=I(f,i,c,1),a(m.c,s=x,y))do if(c+=10,f=h(d,c),t?(l=c+10,l>q.length&&p(w,1,l,"log"),i=new w(q.slice(0,l))):i=h(e,c),m=I(f,i,c,1),!u){+o(m.c).slice(s+1,s+15)+1==1e14&&(m=g(m,x+1,0));break}while(a(m.c,s+=10,y));return v=!0,g(m,x,y)},O.minus=function(e,r){var t,n,i,o,a=this,s=a.constructor,u=a.s;if(b=8,e=new s(e,r),r=e.s,!u||!r)return new s(0/0);if(u!=r)return e.s=-r,a.plus(e);var f=a.c,c=e.c,l=E(e.e/T),p=E(a.e/T),m=s.precision,h=s.rounding;if(!p||!l){if(!f||!c)return f?(e.s=-r,e):new s(c?a:0/0);if(!f[0]||!c[0])return a=c[0]?(e.s=-r,e):new s(f[0]?a:3==h?-0:0),v?g(a,m,h):a}if(f=f.slice(),n=f.length,u=p-l){for((o=0>u)?(u=-u,t=f,n=c.length):(l=p,t=c),(p=Math.ceil(m/T))>n&&(n=p),u>(n+=2)&&(u=n,t.length=1),t.reverse(),r=u;r--;t.push(0));t.reverse() +}else for((o=n<(i=c.length))&&(i=n),u=r=0;i>r;r++)if(f[r]!=c[r]){o=f[r]0)for(;r--;f[i++]=0);for(p=M-1,r=c.length;r>u;){if(f[--r]=10;r/=10,u++);return e.e=u+l*T-1,v?g(e,m,h):e},O.modulo=O.mod=function(e,r){var t,n,i=this,o=i.constructor,a=o.modulo;return b=9,e=new o(e,r),r=e.s,t=!i.c||!r||e.c&&!e.c[0],t||!e.c||i.c&&!i.c[0]?t?new o(0/0):g(new o(i),o.precision,o.rounding):(v=!1,9==a?(e.s=1,n=I(i,e,0,3,1),e.s=r,n.s*=r):n=I(i,e,0,a,1),n=n.times(e),v=!0,i.minus(n))},O.naturalLogarithm=O.ln=function(){return h(this)},O.negated=O.neg=function(){var e=new this.constructor(this);return e.s=-e.s||null,g(e)},O.plus=function(e,r){var t,n=this,i=n.constructor,o=n.s;if(b=10,e=new i(e,r),r=e.s,!o||!r)return new i(0/0);if(o!=r)return e.s=-r,n.minus(e);var a=n.c,s=e.c,u=E(e.e/T),f=E(n.e/T),c=i.precision,l=i.rounding;if(!f||!u){if(!a||!s)return new i(o/0);if(!a[0]||!s[0])return n=s[0]?e:new i(a[0]?n:0*o),v?g(n,c,l):n}if(a=a.slice(),o=f-u){for(0>o?(o=-o,t=a,r=s.length):(u=f,t=s,r=a.length),(f=Math.ceil(c/T))>r&&(r=f),o>++r&&(o=r,t.length=1),t.reverse();o--;t.push(0));t.reverse()}for(a.length-s.length<0&&(t=s,s=a,a=t),o=s.length,r=0,f=M;o;a[o]%=f)r=(a[--o]=a[o]+s[o]+r)/f|0;for(r&&(a.unshift(r),++u),o=a.length;0==a[--o];a.pop());for(e.c=a,o=1,r=a[0];r>=10;r/=10,o++);return e.e=o+u*T-1,v?g(e,c,l):e},O.precision=O.sd=function(e){var r=null,t=this;return e!=r&&e!==!!e&&1!==e&&0!==e&&p(t.constructor,"argument",e,"precision",1),t.c&&(r=l(t.c),e&&t.e+1>r&&(r=t.e+1)),r},O.round=function(){var e=this,r=e.constructor;return g(new r(e),e.e+1,r.rounding)},O.squareRoot=O.sqrt=function(){var e,r,t,n,i,a,s=this,u=s.c,f=s.s,c=s.e,l=s.constructor,p=new l(.5);if(1!==f||!u||!u[0])return new l(!f||0>f&&(!u||u[0])?0/0:u?s:1/0);for(v=!1,f=Math.sqrt(+s),0==f||f==1/0?(r=o(u),(r.length+c)%2==0&&(r+="0"),f=Math.sqrt(r),c=E((c+1)/2)-(0>c||c%2),f==1/0?r="1e"+c:(r=f.toExponential(),r=r.slice(0,r.indexOf("e")+1)+c),n=new l(r)):n=new l(f.toString()),t=(c=l.precision)+3;;)if(a=n,n=p.times(a.plus(I(s,a,t+2,1))),o(a.c).slice(0,t)===(r=o(n.c)).slice(0,t)){if(r=r.slice(t-3,t+1),"9999"!=r&&(i||"4999"!=r)){(!+r||!+r.slice(1)&&"5"==r.charAt(0))&&(g(n,c+1,1),e=!n.times(n).eq(s));break}if(!i&&(g(a,c+1,0),a.times(a).eq(s))){n=a;break}t+=4,i=1}return v=!0,g(n,c,l.rounding,e)},O.times=function(e,r){var t,n,i=this,o=i.constructor,a=i.c,s=(b=11,e=new o(e,r),e.c),u=E(i.e/T),f=E(e.e/T),c=i.s;if(r=e.s,e.s=c==r?1:-1,!((u||a&&a[0])&&(f||s&&s[0])))return new o(!c||!r||a&&!a[0]&&!s||s&&!s[0]&&!a?0/0:a&&s?0*e.s:e.s/0);for(n=u+f,c=a.length,r=s.length,r>c&&(t=a,a=s,s=t,f=c,c=r,r=f),f=c+r,t=[];f--;t.push(0));for(u=r-1;u>-1;u--){for(r=0,f=c+u;f>u;)r=t[f]+s[u]*a[f-u-1]+r,t[f--]=r%M|0,r=r/M|0;t[f]=(t[f]+r)%M|0}for(r?++n:t[0]||t.shift(),f=t.length;!t[--f];t.pop());for(e.c=t,c=1,r=t[0];r>=10;r/=10,c++);return e.e=c+n*T-1,v?g(e,o.precision,o.rounding):e},O.toDecimalPlaces=O.toDP=function(e,r){var t=this;return t=new t.constructor(t),null!=e&&u(t,e,"toDP")?g(t,(0|e)+t.e+1,s(t,r,"toDP")):t},O.toExponential=function(e,r){var t=this;return t.c?c(t,null!=e&&u(t,e,"toExponential")?0|e:null,null!=e&&s(t,r,"toExponential"),1):t.toString()},O.toFixed=function(e,r){var t,n=this,i=n.constructor,o=i.toExpNeg,a=i.toExpPos;return null!=e&&(e=u(n,e,t="toFixed")?n.e+(0|e):null,r=s(n,r,t)),i.toExpNeg=-(i.toExpPos=1/0),null!=e&&n.c?(t=c(n,e,r),n.s<0&&n.c&&(n.c[0]?t.indexOf("-")<0&&(t="-"+t):t=t.replace("-",""))):t=n.toString(),i.toExpNeg=o,i.toExpPos=a,t},O.toFormat=function(e,r){var t=this;if(!t.c)return t.toString();var n,i=t.s<0,o=t.constructor.format,a=o.groupSeparator,s=+o.groupSize,u=+o.secondaryGroupSize,f=t.toFixed(e,r).split("."),c=f[0],l=f[1],p=i?c.slice(1):c,m=p.length;if(u&&(n=s,s=u,m-=u=n),s>0&&m>0){for(n=m%s||s,c=p.substr(0,n);m>n;n+=s)c+=a+p.substr(n,s);u>0&&(c+=a+p.slice(n)),i&&(c="-"+c)}return l?c+o.decimalSeparator+((u=+o.fractionGroupSize)?l.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+o.fractionGroupSeparator):l):c},O.toFraction=function(e){var r,t,n,i,a,s,u,f,c=this,m=c.constructor,h=r=new m(m.ONE),g=s=new m(0),d=c.c,w=new m(g);if(!d)return c.toString();for(n=w.e=l(d)-c.e-1,w.c[0]=N(10,(u=n%T)<0?T+u:u),(null==e||(!(b=12,a=new m(e)).s||(x=a.cmp(h)<0||!a.c)||m.errors&&E(a.e/T)0)&&(e=n>0?w:h),v=!1,a=new m(o(d)),u=m.precision,m.precision=n=d.length*T*2;f=I(a,w,0,1,1),t=r.plus(f.times(g)),1!=t.cmp(e);)r=g,g=t,h=s.plus(f.times(t=h)),s=t,w=a.minus(f.times(t=w)),a=t;return t=I(e.minus(r),g,0,1,1),s=s.plus(t.times(h)),r=r.plus(t.times(g)),s.s=h.s=c.s,i=I(h,g,n,1).minus(c).abs().cmp(I(s,r,n,1).minus(c).abs())<1?[h+"",g+""]:[s+"",r+""],v=!0,m.precision=u,i},O.toNearest=function(e,r){var t=this,n=t.constructor;return t=new n(t),null==e?(e=new n(n.ONE),r=n.rounding):(b=17,e=new n(e),r=s(t,r,"toNearest")),e.c?t.c&&(e.c[0]?(v=!1,t=I(t,e,0,4>r?[4,5,7,8][r]:r,1).times(e),v=!0,g(t)):t.c=[t.e=0]):t.s&&(e.s&&(e.s=t.s),t=e),t},O.toNumber=function(){var e=this;return+e||(e.s?0*e.s:0/0)},O.toPower=O.pow=function(e,r){var t,n,i,s,u=this,c=u.constructor,l=u.s,p=(b=13,+(e=new c(e,r))),d=0>p?-p:p,w=c.precision,x=c.rounding;if(!u.c||!e.c||(i=!u.c[0])||!e.c[0])return new c(N(i?0*l:+u,p));if(u=new c(u),t=u.c.length,!u.e&&u.c[0]==u.s&&1==t)return u;if(r=e.c.length-1,e.e||e.c[0]!=e.s||r)if(n=E(e.e/T),i=n>=r,!i&&0>l)s=new c(0/0);else{if(i&&B>t*T*d){if(s=m(c,u,d),e.s<0)return c.ONE.div(s)}else{if(l=0>l&&1&e.c[Math.max(n,r)]?-1:1,r=N(+u,p),n=0!=r&&isFinite(r)?new c(r+"").e:E(p*(Math.log("0."+o(u.c))/Math.LN10+u.e+1)),n>c.maxE+1||n0?l/0:0);v=!1,c.rounding=u.s=1,d=Math.min(12,(n+"").length),s=f(e.times(h(u,w+d)),w),s=g(s,w+5,1),a(s.c,w,x)&&(n=w+10,s=g(f(e.times(h(u,n+d)),n),n+5,1),+o(s.c).slice(w+1,w+15)+1==1e14&&(s=g(s,w+1,0))),s.s=l,v=!0,c.rounding=x}s=g(s,w,x)}else s=g(u,w,x);return s},O.toPrecision=function(e,r){var t=this;return null!=e&&u(t,e,"toPrecision",1)&&t.c?c(t,0|--e,s(t,r,"toPrecision"),2):t.toString()},O.toSignificantDigits=O.toSD=function(e,r){var t=this,n=t.constructor;return t=new n(t),null!=e&&u(t,e,"toSD",1)?g(t,0|e,s(t,r,"toSD")):g(t,n.precision,n.rounding)},O.toString=function(e){var r,t,n,i=this,a=i.constructor,s=i.e;if(null===s)t=i.s?"Infinity":"NaN";else{if(e===r&&(s<=a.toExpNeg||s>=a.toExpPos))return c(i,null,a.rounding,1);if(t=o(i.c),0>s){for(;++s;t="0"+t);t="0."+t}else if(n=t.length,s>0)if(++s>n)for(s-=n;s--;t+="0");else n>s&&(t=t.slice(0,s)+"."+t.slice(s));else if(r=t.charAt(0),n>1)t=r+"."+t.slice(1);else if("0"==r)return r;if(null!=e)if((x=!(e>=2&&65>e))||e!=(0|e)&&a.errors)p(a,"base",e,"toString",0);else if(t=d(a,t,0|e,10,i.s),"0"==t)return t}return i.s<0?"-"+t:t},O.truncated=O.trunc=function(){return g(new this.constructor(this),this.e+1,1)},O.valueOf=O.toJSON=function(){return this.toString()},d=function(){function e(e,r,t){for(var n,i,o=[0],a=0,s=e.length;s>a;){for(i=o.length;i--;o[i]*=r);for(o[n=0]+=S.indexOf(e.charAt(a++));nt-1&&(null==o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/t|0,o[n]%=t)}return o.reverse()}return function(r,t,n,i,o){var a,s,u,f,c,l,p=t.indexOf("."),h=r.precision,g=r.rounding;for(37>i&&(t=t.toLowerCase()),p>=0&&(t=t.replace(".",""),l=new r(i),f=m(r,l,t.length-p),l.c=e(f.toFixed(),10,n),l.e=l.c.length),c=e(t,i,n),a=s=c.length;0==c[--s];c.pop());if(!c[0])return"0";if(0>p?a--:(f.c=c,f.e=a,f.s=o,f=I(f,l,h,g,0,n),c=f.c,u=f.r,a=f.e),p=c[h],s=n/2,u=u||null!=c[h+1],4>g?(null!=p||u)&&(0==g||g==(f.s<0?3:2)):p>s||p==s&&(4==g||u||6==g&&1&c[h-1]||g==(f.s<0?8:7)))for(c.length=h,--n;++c[--h]>n;)c[h]=0,h||(++a,c.unshift(1));else c.length=h;for(s=c.length;!c[--s];);for(p=0,t="";s>=p;t+=S.charAt(c[p++]));if(0>a){for(;++a;t="0"+t);t="0."+t}else if(p=t.length,++a>p)for(a-=p;a--;t+="0");else p>a&&(t=t.slice(0,a)+"."+t.slice(a));return t}}();var I=function(){function e(e,r,t){var n,i=0,o=e.length;for(e=e.slice();o--;)n=e[o]*r+i,e[o]=n%t|0,i=n/t|0;return i&&e.unshift(i),e}function r(e,r,t,n){var i,o;if(t!=n)o=t>n?1:-1;else for(i=o=0;t>i;i++)if(e[i]!=r[i]){o=e[i]>r[i]?1:-1;break}return o}function t(e,r,t,n){for(var i=0;t--;)e[t]-=i,i=e[t]1;e.shift());}return function(n,i,o,a,s,u){var f,c,l,p,m,h,d,w,x,y,v,b,N,A,S,O,C,U,B,q=n.constructor,I=n.s==i.s?1:-1,z=n.c,_=i.c;if(!(z&&z[0]&&_&&_[0]))return new q(n.s&&i.s&&(z?!_||z[0]!=_[0]:_)?z&&0==z[0]||!_?0*I:I/0:0/0);for(u?(p=1,c=n.e-i.e):(u=M,p=T,c=E(n.e/p)-E(i.e/p)),U=_.length,O=z.length,x=new q(I),y=x.c=[],l=0;_[l]==(z[l]||0);l++);if(_[l]>(z[l]||0)&&c--,null==o?(I=o=q.precision,a=q.rounding):I=s?o+(n.e-i.e)+1:o,0>I)y.push(1),m=!0;else{if(I=I/p+2|0,l=0,1==U){for(h=0,_=_[0],I++;(O>l||h)&&I--;l++)A=h*u+(z[l]||0),y[l]=A/_|0,h=A%_|0;m=h||O>l}else{for(h=u/(_[0]+1)|0,h>1&&(_=e(_,h,u),z=e(z,h,u),U=_.length,O=z.length),S=U,v=z.slice(0,U),b=v.length;U>b;v[b++]=0);B=_.slice(),B.unshift(0),C=_[0],_[1]>=u/2&&C++;do h=0,f=r(_,v,U,b),0>f?(N=v[0],U!=b&&(N=N*u+(v[1]||0)),h=N/C|0,h>1?(h>=u&&(h=u-1),d=e(_,h,u),w=d.length,b=v.length,f=r(d,v,w,b),1==f&&(h--,t(d,w>U?B:_,w,u))):(0==h&&(f=h=1),d=_.slice()),w=d.length,b>w&&d.unshift(0),t(v,d,b,u),-1==f&&(b=v.length,f=r(_,v,U,b),1>f&&(h++,t(v,b>U?B:_,b,u))),b=v.length):0===f&&(h++,v=[0]),y[l++]=h,f&&v[0]?v[b++]=z[S]||0:(v=[z[S]],b=1);while((S++=10;I/=10,l++);x.e=l+c*p-1,g(x,s?o+x.e+1:o,a,m)}return x}}();w=function(){function e(e){var r,t,n,i=this,o="config",a=i.errors?parseInt:parseFloat;return e==t||"object"!=typeof e&&!p(i,"object expected",e,o)?i:((n=e[r="precision"])!=t&&((x=1>n||n>U)||a(n)!=n?p(i,r,n,o,0):i[r]=0|n),(n=e[r="rounding"])!=t&&((x=0>n||n>8)||a(n)!=n?p(i,r,n,o,0):i[r]=0|n),(n=e[r="toExpNeg"])!=t&&((x=-C>n||n>0)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="toExpPos"])!=t&&((x=0>n||n>C)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="minE"])!=t&&((x=-C>n||n>0)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="maxE"])!=t&&((x=0>n||n>C)||a(n)!=n?p(i,r,n,o,0):i[r]=E(n)),(n=e[r="errors"])!=t&&(n===!!n||1===n||0===n?(x=b=0,i[r]=!!n):p(i,r,n,o,1)),(n=e[r="crypto"])!=t&&(n===!!n||1===n||0===n?i[r]=!(!n||!y||"object"!=typeof y):p(i,r,n,o,1)),(n=e[r="modulo"])!=t&&((x=0>n||n>9)||a(n)!=n?p(i,r,n,o,0):i[r]=0|n),(e=e[r="format"])!=t&&("object"==typeof e?i[r]=e:p(i,"format object expected",e,o)),i)}function r(e){return new this(e).exp()}function t(e){return new this(e).ln()}function n(e,r){return new this(e).log(r)}function i(e,r,t){var n,i,o=0;for("[object Array]"==A.call(r[0])&&(r=r[0]),n=new e(r[0]);++oi;)n=r[i],n>=429e7?r[i]=y.getRandomValues(new Uint32Array(1))[0]:o[i++]=n%1e7;else if(y&&y.randomBytes){for(r=y.randomBytes(t*=4);t>i;)n=r[i]+(r[i+1]<<8)+(r[i+2]<<16)+((127&r[i+3])<<24),n>=214e7?y.randomBytes(4).copy(r,i):(o.push(n%1e7),i+=4);i=t/4}else p(a,"crypto unavailable",y,"random");if(!i)for(;t>i;)o[i++]=1e7*Math.random()|0;for(t=o[--i],e%=T,t&&e&&(n=N(10,T-e),o[i]=(t/n|0)*n);0===o[i];i--)o.pop();if(0>i)o=[t=0];else{for(t=-1;0===o[0];)o.shift(),t-=T;for(i=1,n=o[0];n>=10;)n/=10,i++;T>i&&(t-=T-i)}return s.e=t,s.c=o,s}function c(e){return new this(e).sqrt()}function l(i){function u(e,r){var t=this;if(!(t instanceof u))return p(u,"Decimal called without new",e),new u(e,r);if(t.constructor=u,e instanceof u){if(null==r)return b=0,t.s=e.s,t.e=e.e,t.c=(e=e.c)?e.slice():e,t;if(10==r)return g(new u(e),u.precision,u.rounding);e+=""}return m(u,t,e,r)}return u.precision=20,u.rounding=4,u.modulo=1,u.toExpNeg=-7,u.toExpPos=21,u.minE=-C,u.maxE=C,u.errors=!0,u.crypto=!1,u.format={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0},u.prototype=O,u.ONE=new u(1),u.ROUND_UP=0,u.ROUND_DOWN=1,u.ROUND_CEIL=2,u.ROUND_FLOOR=3,u.ROUND_HALF_UP=4,u.ROUND_HALF_DOWN=5,u.ROUND_HALF_EVEN=6,u.ROUND_HALF_CEIL=7,u.ROUND_HALF_FLOOR=8,u.EUCLID=9,u.config=e,u.constructor=l,u.exp=r,u.ln=t,u.log=n,u.max=o,u.min=a,u.pow=s,u.sqrt=c,u.random=f,null!=i&&u.config(i),u}var m=function(){var e=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,r=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")};return function(t,n,i,o){var a,s,u,f,c,l;if("string"!=typeof i&&(i=(f="number"==typeof i||"[object Number]"==A.call(i))&&0===i&&0>1/i?"-0":i+""),c=i,null==o&&e.test(i))n.s=45===i.charCodeAt(0)?(i=i.slice(1),-1):1;else{if(10==o)return g(new t(i),t.precision,t.rounding);if(i=r.call(i).replace(/^\+(?!-)/,""),n.s=45===i.charCodeAt(0)?(i=i.replace(/^-(?!-)/,""),-1):1,null!=o?o!=(0|o)&&t.errors||(x=!(o>=2&&65>o))?(p(t,"base",o,0,0),l=e.test(i)):(a="["+S.slice(0,o=0|o)+"]+",i=i.replace(/\.$/,"").replace(/^\./,"0."),(l=new RegExp("^"+a+"(?:\\."+a+")?$",37>o?"i":"").test(i))?(f&&(i.replace(/^0\.0*|\./,"").length>15&&p(t,0,c),f=!f),i=d(t,i,10,o,n.s)):"Infinity"!=i&&"NaN"!=i&&(p(t,"not a base "+o+" number",c),i="NaN")):l=e.test(i),!l)return n.c=n.e=null,"Infinity"!=i&&("NaN"!=i&&p(t,"not a number",c),n.s=null),b=0,n}for((s=i.indexOf("."))>-1&&(i=i.replace(".","")),(u=i.search(/e/i))>0?(0>s&&(s=u),s+=+i.slice(u+1),i=i.substring(0,u)):0>s&&(s=i.length),u=0;48===i.charCodeAt(u);u++);for(o=i.length;48===i.charCodeAt(--o););if(i=i.slice(u,o+1)){if(o=i.length,f&&o>15&&p(t,0,c),n.e=s=s-u-1,n.c=[],u=(s+1)%T,0>s&&(u+=T),o>u){for(u&&n.c.push(+i.slice(0,u)),o-=T;o>u;)n.c.push(+i.slice(u,u+=T));i=i.slice(u),u=T-i.length}else u-=o;for(;u--;i+="0");n.c.push(+i),v&&(n.e>t.maxE?n.c=n.e=null:n.e=this.max?"Index out of range ("+this.index+" > "+(this.max-1)+")":"Index out of range ("+this.index+")",this.stack=(new Error).stack}r.prototype=new RangeError,r.prototype.constructor=RangeError,r.prototype.name="IndexError",e.exports=r},function(e){"use strict";function r(e){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.fn=e,this.types=Array.prototype.splice.call(arguments,1),this.message=e?0==this.types.length?"Unsupported type of argument in function "+e:"Function "+e+"("+this.types.join(", ")+") not supported":"Unsupported type of argument",this.stack=(new Error).stack}r.prototype=new TypeError,r.prototype.constructor=TypeError,r.prototype.name="UnsupportedTypeError",e.exports=r},function(e,r,t){"use strict";r.array=t(153),r["boolean"]=t(175),r.number=t(4),r.bignumber=t(152),r.object=t(3),r.string=t(176),r.types=t(196)},function(e,r,t){"use strict";function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(this.nodes=e||[],!a(this.nodes)||!this.nodes.every(s))throw new TypeError("Array containing Nodes expected")}var i=t(169),o=(t(3),t(176)),a=(t(13),t(160),Array.isArray),s=i.isNode;n.prototype=new i,n.prototype.type="ArrayNode",n.prototype._compile=function(e){var r="array"!==e.math.config().matrix,t=this.nodes.map(function(r){return r._compile(e)});return(r?"math.matrix([":"[")+t.join(",")+(r?"])":"]")},n.prototype.forEach=function(e){for(var r=0;r0;return n=r?r:n,r});e.range=function(e,r,t){return new u(e instanceof s?e.toNumber():e,r instanceof s?r.toNumber():r,t instanceof s?t.toNumber():t)};var f=this.ranges.map(function(r,t){var n=i[t];return r instanceof o?n?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+t+"]; return range( "+r.start._compile(e)+", "+r.end._compile(e)+", "+(r.step?r.step._compile(e):"1")+" );})(scope)":"range("+r.start._compile(e)+", "+r.end._compile(e)+", "+(r.step?r.step._compile(e):"1")+")":n?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+t+"]; return "+r._compile(e)+";})(scope)":r._compile(e)});return n?"(function () { var obj = "+this.object._compile(e)+"; var size = math.size(obj).valueOf(); return math.subset( obj, math.index("+f.join(", ")+") "+(r?", "+r:"")+" );})()":"math.subset("+this.object._compile(e)+",math.index("+f.join(", ")+")"+(r?", "+r:"")+")"},n.prototype.forEach=function(e){e(this.object,"object",this);for(var r=0;r3)throw new Error("Too many arguments");this.start=e,this.end=r,this.step=t||null}var i=t(169),o=i.isNode;n.prototype=new i,n.prototype.type="RangeNode",n.prototype._compile=function(e){return"math.range("+this.start._compile(e)+", "+this.end._compile(e)+(this.step?", "+this.step._compile(e):"")+")"},n.prototype.forEach=function(e){e(this.start,"start",this),e(this.end,"end",this),this.step&&e(this.step,"step",this)},n.prototype.map=function(e){return new n(this._ifNode(e(this.start,"start",this)),this._ifNode(e(this.end,"end",this)),this.step&&this._ifNode(e(this.step,"step",this)))},n.prototype.clone=function(){return new n(this.start,this.end,this.step&&this.step)},n.prototype.toString=function(){var e=this.start.toString();return this.step&&(e+=":"+this.step.toString()),e+=":"+this.end.toString()},n.prototype.toTex=function(){var e=this.start.toTex();return this.step&&(e+=":"+this.step.toTex()),e+=":"+this.end.toTex()},e.exports=n},function(e,r,t){"use strict";function n(e){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!u(e))throw new TypeError('String expected for parameter "name"');this.name=e}function i(e){throw new Error("Undefined symbol "+e)}var o=t(169),a=t(10),s=t(314),u=t(176).isString;n.prototype=new o,n.prototype.type="SymbolNode",n.prototype._compile=function(e){return e.undef=i,e.Unit=a,this.name in e.math?'("'+this.name+'" in scope ? scope["'+this.name+'"] : math["'+this.name+'"])':'("'+this.name+'" in scope ? scope["'+this.name+'"] : '+(a.isValuelessUnit(this.name)?'new Unit(null, "'+this.name+'")':'undef("'+this.name+'")')+")"},n.prototype.forEach=function(){},n.prototype.map=function(){return this.clone()},n.prototype.clone=function(){return new n(this.name)},n.prototype.toString=function(){return this.name},n.prototype.toTex=function(){return s.toSymbol(this.name)},e.exports=n},function(e,r,t){"use strict";function n(e,r){if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof o))throw new TypeError('Expected IndexNode for parameter "index"');if(!(r instanceof i))throw new TypeError('Expected Node for parameter "expr"');this.index=e,this.expr=r}var i=t(169),o=t(166);n.prototype=new i,n.prototype.type="UpdateNode",n.prototype._compile=function(e){return'scope["'+this.index.objectName()+'"] = '+this.index.compileSubset(e,this.expr._compile(e))},n.prototype.forEach=function(e){e(this.index,"index",this),e(this.expr,"expr",this)},n.prototype.map=function(e){return new n(this._ifNode(e(this.index,"index",this)),this._ifNode(e(this.expr,"expr",this)))},n.prototype.clone=function(){return new n(this.index,this.expr)},n.prototype.toString=function(){return this.index.toString()+" = "+this.expr.toString()},n.prototype.toTex=function(){return this.index.toTex()+" = "+this.expr.toTex()},e.exports=n},function(e,r,t){var n=(t(157),t(158));r.transform=function(e){return e instanceof n?new n(e.index+1,e.min+1,e.max+1):e}},function(e,r){"use strict";r.isBoolean=function(e){return e instanceof Boolean||"boolean"==typeof e}},function(e,r,t){"use strict";function n(e,t){if(Array.isArray(e)){for(var i="[",o=e.length,a=0;o>a;a++)0!=a&&(i+=", "),i+=n(e[a],t);return i+="]"}return r.format(e,t)}var i=t(4),o=t(152),a=t(155);r.isString=function(e){return e instanceof String||"string"==typeof e},r.endsWith=function(e,r){var t=e.length-r.length,n=e.length;return e.substring(t,n)===r},r.format=function(e,t){return i.isNumber(e)?i.format(e,t):e instanceof a?o.format(e,t):Array.isArray(e)?n(e,t):r.isString(e)?'"'+e+'"':"function"==typeof e?e.syntax?e.syntax+"":"function":e instanceof Object?"function"==typeof e.format?e.format(t):e.toString():String(e)}},function(e){e.exports={name:"e",category:"Constants",syntax:["e"],description:"Euler's number, the base of the natural logarithm. Approximately equal to 2.71828",examples:["e","e ^ 2","exp(2)","log(e)"],seealso:["exp"]}},function(e){e.exports={name:"false",category:"Constants",syntax:["false"],description:"Boolean value false",examples:["false"],seealso:["true"]}},function(e){e.exports={name:"i",category:"Constants",syntax:["i"],description:"Imaginary unit, defined as i*i=-1. A complex number is described as a + b*i, where a is the real part, and b is the imaginary part.",examples:["i","i * i","sqrt(-1)"],seealso:[]}},function(e){e.exports={name:"Infinity",category:"Constants",syntax:["Infinity"],description:"Infinity, a number which is larger than the maximum number that can be handled by a floating point number.",examples:["Infinity","1 / 0"],seealso:[]}},function(e){e.exports={name:"LN2",category:"Constants",syntax:["LN2"],description:"Returns the natural logarithm of 2, approximately equal to 0.693",examples:["LN2","log(2)"],seealso:[]}},function(e){e.exports={name:"LN10",category:"Constants",syntax:["LN10"],description:"Returns the natural logarithm of 10, approximately equal to 2.302",examples:["LN10","log(10)"],seealso:[]}},function(e){e.exports={name:"LOG2E",category:"Constants",syntax:["LOG2E"],description:"Returns the base-2 logarithm of E, approximately equal to 1.442",examples:["LOG2E","log(e, 2)"],seealso:[]}},function(e){e.exports={name:"LOG10E",category:"Constants",syntax:["LOG10E"],description:"Returns the base-10 logarithm of E, approximately equal to 0.434",examples:["LOG10E","log(e, 10)"],seealso:[]}},function(e){e.exports={name:"NaN",category:"Constants",syntax:["NaN"],description:"Not a number",examples:["NaN","0 / 0"],seealso:[]}},function(e){e.exports={name:"null",category:"Constants",syntax:["null"],description:"Value null",examples:["null"],seealso:["true","false"]}},function(e){e.exports={name:"pi",category:"Constants",syntax:["pi"],description:"The number pi is a mathematical constant that is the ratio of a circle's circumference to its diameter, and is approximately equal to 3.14159",examples:["pi","sin(pi/2)"],seealso:["tau"]}},function(e){e.exports={name:"phi",category:"Constants",syntax:["phi"],description:"Phi is the golden ratio. Two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Phi is defined as `(1 + sqrt(5)) / 2` and is approximately 1.618034...",examples:["tau"],seealso:[]}},function(e){e.exports={name:"SQRT1_2",category:"Constants",syntax:["SQRT1_2"],description:"Returns the square root of 1/2, approximately equal to 0.707",examples:["SQRT1_2","sqrt(1/2)"],seealso:[]}},function(e){e.exports={name:"SQRT2",category:"Constants",syntax:["SQRT2"],description:"Returns the square root of 2, approximately equal to 1.414",examples:["SQRT2","sqrt(2)"],seealso:[]}},function(e){e.exports={name:"tau",category:"Constants",syntax:["tau"],description:"Tau is the ratio constant of a circle's circumference to radius, equal to 2 * pi, approximately 6.2832.",examples:["tau","2 * pi"],seealso:["pi"]}},function(e){e.exports={name:"true",category:"Constants",syntax:["true"],description:"Boolean value true",examples:["true"],seealso:["false"]}},function(e){e.exports={name:"version",category:"Constants",syntax:["version"],description:"A string with the version number of math.js",examples:["version"],seealso:[]}},function(e,r,t){"use strict";e.exports=function(e){function r(r){if(!s.hasOwnProperty(r))throw new Error("Unknown distribution "+r);var t=Array.prototype.slice.call(arguments,1),o=s[r].apply(this,t);return function(r){var t={random:function(r,t,i){var s,f,c;if(arguments.length>3)throw new e.error.ArgumentsError("random",arguments.length,0,3);if(1===arguments.length?a(r)?s=r:c=r:2===arguments.length?a(r)?(s=r,c=t):(f=r,c=t):(s=r,f=t,c=i),void 0===c&&(c=1),void 0===f&&(f=0),void 0!==s){var l=u(s.valueOf(),f,c,o);return s instanceof n?new n(l):l}return o(f,c)},randomInt:function(r,t,i){var o,f,c;if(arguments.length>3||arguments.length<1)throw new e.error.ArgumentsError("randomInt",arguments.length,1,3);if(1===arguments.length?a(r)?o=r:c=r:2===arguments.length?a(r)?(o=r,c=t):(f=r,c=t):(o=r,f=t,c=i),void 0===f&&(f=0),void 0!==o){var l=u(o.valueOf(),f,c,s);return o instanceof n?new n(l):l}return s(f,c)},pickRandom:function(r){if(1!==arguments.length)throw new e.error.ArgumentsError("pickRandom",arguments.length,1);if(r instanceof n)r=r.valueOf();else if(!Array.isArray(r))throw new e.error.UnsupportedTypeError("pickRandom",e["typeof"](r));if(i.size(r).length>1)throw new Error("Only one dimensional vectors supported");return r[Math.floor(Math.random()*r.length)]}},o=function(e,t){return e+r()*(t-e)},s=function(e,t){return Math.floor(e+r()*(t-e))},u=function(e,r,t,n){var i,o,a=[];if(e=e.slice(0),e.length>1)for(o=0,i=e.shift();i>o;o++)a.push(u(e,r,t,n));else for(o=0,i=e.shift();i>o;o++)a.push(n(r,t));return a};return t}(o)}var n=t(9),i=t(153),o=t(13),a=o.isCollection,s={uniform:function(){return Math.random},normal:function(){return function(){for(var e,r,t=-1;0>t||t>1;)e=Math.random(),r=Math.random(),t=1/6*Math.pow(-2*Math.log(e),.5)*Math.cos(2*Math.PI*r)+.5;return t}}};return r}},function(e,r,t){function n(e){return t(i(e))}function i(e){return o[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var o={"./clone":143,"./clone.js":143,"./filter":144,"./filter.js":144,"./forEach":151,"./forEach.js":151,"./format":145,"./format.js":145,"./import":146,"./import.js":146,"./map":147,"./map.js":147,"./print":148,"./print.js":148,"./sort":149,"./sort.js":149,"./typeof":150,"./typeof.js":150};n.keys=function(){return Object.keys(o)},n.resolve=i,e.exports=n,n.id=195},function(e,r){"use strict";r.type=function(e){var r=typeof e;if("object"===r){if(null===e)return"null";if(e instanceof Boolean)return"boolean";if(e instanceof Number)return"number";if(e instanceof String)return"string";if(Array.isArray(e))return"array";if(e instanceof Date)return"date";if(e instanceof Function)return"function";if(e instanceof RegExp)return"regexp"}return r}},function(e){e.exports={name:"abs",category:"Arithmetic",syntax:["abs(x)"],description:"Compute the absolute value.",examples:["abs(3.5)","abs(-4.2)"],seealso:["sign"]}},function(e){e.exports={name:"add",category:"Operators",syntax:["x + y","add(x, y)"],description:"Add two values.",examples:["a = 2.1 + 3.6","a - 3.6","3 + 2i",'"hello" + " world"',"3 cm + 2 inch"],seealso:["subtract"]}},function(e){e.exports={name:"ceil",category:"Arithmetic",syntax:["ceil(x)"],description:"Round a value towards plus infinity. If x is complex, both real and imaginary part are rounded towards plus infinity.",examples:["ceil(3.2)","ceil(3.8)","ceil(-4.2)"],seealso:["floor","fix","round"]}},function(e){e.exports={name:"cube",category:"Arithmetic",syntax:["cube(x)"],description:"Compute the cube of a value. The cube of x is x * x * x.",examples:["cube(2)","2^3","2 * 2 * 2"],seealso:["multiply","square","pow"]}},function(e){e.exports={name:"divide",category:"Operators",syntax:["x / y","divide(x, y)"],description:"Divide two values.",examples:["a = 2 / 3","a * 3","4.5 / 2","3 + 4 / 2","(3 + 4) / 2","18 km / 4.5"],seealso:["multiply"]}},function(e){e.exports={name:"dotDivide",category:"Operators",syntax:["x ./ y","dotDivide(x, y)"],description:"Divide two values element wise.",examples:["a = [1, 2, 3; 4, 5, 6]","b = [2, 1, 1; 3, 2, 5]","a ./ b"],seealso:["multiply","dotMultiply","divide"]}},function(e){e.exports={name:"dotMultiply",category:"Operators",syntax:["x .* y","dotMultiply(x, y)"],description:"Multiply two values element wise.",examples:["a = [1, 2, 3; 4, 5, 6]","b = [2, 1, 1; 3, 2, 5]","a .* b"],seealso:["multiply","divide","dotDivide"]}},function(e){e.exports={name:"dotpow",category:"Operators",syntax:["x .^ y","dotpow(x, y)"],description:"Calculates the power of x to y element wise.",examples:["a = [1, 2, 3; 4, 5, 6]","a .^ 2"],seealso:["pow"]}},function(e){e.exports={name:"exp",category:"Arithmetic",syntax:["exp(x)"],description:"Calculate the exponent of a value.",examples:["exp(1.3)","e ^ 1.3","log(exp(1.3))","x = 2.4","(exp(i*x) == cos(x) + i*sin(x)) # Euler's formula"],seealso:["pow","log"]}},function(e){e.exports={name:"fix",category:"Arithmetic",syntax:["fix(x)"],description:"Round a value towards zero. If x is complex, both real and imaginary part are rounded towards zero.",examples:["fix(3.2)","fix(3.8)","fix(-4.2)","fix(-4.8)"],seealso:["ceil","floor","round"]}},function(e){e.exports={name:"floor",category:"Arithmetic",syntax:["floor(x)"],description:"Round a value towards minus infinity.If x is complex, both real and imaginary part are rounded towards minus infinity.",examples:["floor(3.2)","floor(3.8)","floor(-4.2)"],seealso:["ceil","fix","round"]}},function(e){e.exports={name:"gcd",category:"Arithmetic",syntax:["gcd(a, b)","gcd(a, b, c, ...)"],description:"Compute the greatest common divisor.",examples:["gcd(8, 12)","gcd(-4, 6)","gcd(25, 15, -10)"],seealso:["lcm","xgcd"]}},function(e){e.exports={name:"lcm",category:"Arithmetic",syntax:["lcm(x, y)"],description:"Compute the least common multiple.",examples:["lcm(4, 6)","lcm(6, 21)","lcm(6, 21, 5)"],seealso:["gcd"]}},function(e){e.exports={name:"log",category:"Arithmetic",syntax:["log(x)","log(x, base)"],description:"Compute the logarithm of a value. If no base is provided, the natural logarithm of x is calculated. If base if provided, the logarithm is calculated for the specified base. log(x, base) is defined as log(x) / log(base).",examples:["log(3.5)","a = log(2.4)","exp(a)","10 ^ 4","log(10000, 10)","log(10000) / log(10)","b = log(1024, 2)","2 ^ b"],seealso:["exp","log10"]}},function(e){e.exports={name:"log10",category:"Arithmetic",syntax:["log10(x)"],description:"Compute the 10-base logarithm of a value.",examples:["log10(0.00001)","log10(10000)","10 ^ 4","log(10000) / log(10)","log(10000, 10)"],seealso:["exp","log"]}},function(e){e.exports={name:"mod",category:"Operators",syntax:["x % y","x mod y","mod(x, y)"],description:"Calculates the modulus, the remainder of an integer division.",examples:["7 % 3","11 % 2","10 mod 4","function isOdd(x) = x % 2","isOdd(2)","isOdd(3)"],seealso:["divide"]}},function(e){e.exports={name:"multiply",category:"Operators",syntax:["x * y","multiply(x, y)"],description:"multiply two values.",examples:["a = 2.1 * 3.4","a / 3.4","2 * 3 + 4","2 * (3 + 4)","3 * 2.1 km"],seealso:["divide"]}},function(e){e.exports={name:"norm",category:"Arithmetic",syntax:["norm(x)","norm(x, p)"],description:"Calculate the norm of a number, vector or matrix.",examples:["abs(-3.5)","norm(-3.5)","norm(3 - 4i))","norm([1, 2, -3], Infinity)","norm([1, 2, -3], -Infinity)","norm([3, 4], 2)","norm([[1, 2], [3, 4]], 1)","norm([[1, 2], [3, 4]], 'inf')","norm([[1, 2], [3, 4]], 'fro')"]}},function(e){e.exports={name:"nthRoot",category:"Arithmetic",syntax:["nthRoot(a)","nthRoot(a, root)"],description:'Calculate the nth root of a value. The principal nth root of a positive real number A, is the positive real solution of the equation "x^root = A".',examples:["4 ^ 3","nthRoot(64, 3)","nthRoot(9, 2)","sqrt(9)"],seealso:["sqrt","pow"]}},function(e){e.exports={name:"pow",category:"Operators",syntax:["x ^ y","pow(x, y)"],description:"Calculates the power of x to y, x^y.",examples:["2^3 = 8","2*2*2","1 + e ^ (pi * i)"],seealso:["multiply"]}},function(e){e.exports={name:"round",category:"Arithmetic",syntax:["round(x)","round(x, n)"],description:"round a value towards the nearest integer.If x is complex, both real and imaginary part are rounded towards the nearest integer. When n is specified, the value is rounded to n decimals.",examples:["round(3.2)","round(3.8)","round(-4.2)","round(-4.8)","round(pi, 3)","round(123.45678, 2)"],seealso:["ceil","floor","fix"]}},function(e){e.exports={name:"sign",category:"Arithmetic",syntax:["sign(x)"],description:"Compute the sign of a value. The sign of a value x is 1 when x>1, -1 when x<0, and 0 when x=0.",examples:["sign(3.5)","sign(-4.2)","sign(0)"],seealso:["abs"]}},function(e){e.exports={name:"sqrt",category:"Arithmetic",syntax:["sqrt(x)"],description:"Compute the square root value. If x = y * y, then y is the square root of x.",examples:["sqrt(25)","5 * 5","sqrt(-1)"],seealso:["square","multiply"]}},function(e){e.exports={name:"square",category:"Arithmetic",syntax:["square(x)"],description:"Compute the square of a value. The square of x is x * x.",examples:["square(3)","sqrt(9)","3^2","3 * 3"],seealso:["multiply","pow","sqrt","cube"]}},function(e){e.exports={name:"subtract",category:"Operators",syntax:["x - y","subtract(x, y)"],description:"subtract two values.",examples:["a = 5.3 - 2","a + 2","2/3 - 1/6","2 * 3 - 3","2.1 km - 500m"],seealso:["add"]}},function(e){e.exports={name:"unaryMinus",category:"Operators",syntax:["-x","unaryMinus(x)"],description:"Inverse the sign of a value. Converts booleans and strings to numbers.",examples:["-4.5","-(-5.6)",'-"22"'],seealso:["add","subtract","unaryPlus"]}},function(e){e.exports={name:"unaryPlus",category:"Operators",syntax:["+x","unaryPlus(x)"],description:"Converts booleans and strings to numbers.",examples:["+true",'+"2"'],seealso:["add","subtract","unaryMinus"]}},function(e){e.exports={name:"xgcd",category:"Arithmetic",syntax:["xgcd(a, b)"],description:"Calculate the extended greatest common divisor for two values",examples:["xgcd(8, 12)","gcd(8, 12)","xgcd(36163, 21199)"],seealso:["gcd","lcm"]}},function(e){e.exports={name:"bitAnd",category:"Bitwise",syntax:["x & y","bitAnd(x, y)"],description:"Bitwise AND operation. Performs the logical AND operation on each pair of the corresponding bits of the two given values by multiplying them. If both bits in the compared position are 1, the bit in the resulting binary representation is 1, otherwise, the result is 0",examples:["5 & 3","bitAnd(53, 131)","[1, 12, 31] & 42"],seealso:["bitNot","bitOr","bitXor","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"bitNot",category:"Bitwise",syntax:["~x","bitNot(x)"],description:"Bitwise NOT operation. Performs a logical negation on each bit of the given value. Bits that are 0 become 1, and those that are 1 become 0.",examples:["~1","~2","bitNot([2, -3, 4])"],seealso:["bitAnd","bitOr","bitXor","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"bitOr",category:"Bitwise",syntax:["x | y","bitOr(x, y)"],description:"Bitwise OR operation. Performs the logical inclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if the first bit is 1 or the second bit is 1 or both bits are 1, otherwise, the result is 0.",examples:["5 | 3","bitOr([1, 2, 3], 4)"],seealso:["bitAnd","bitNot","bitXor","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"bitXor",category:"Bitwise",syntax:["bitXor(x, y)"],description:"Bitwise XOR operation, exclusive OR. Performs the logical exclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1.",examples:["bitOr(1, 2)","bitXor([2, 3, 4], 4)"],seealso:["bitAnd","bitNot","bitOr","leftShift","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"leftShift",category:"Bitwise",syntax:["x << y","leftShift(x, y)"],description:"Bitwise left logical shift of a value x by y number of bits.",examples:["4 << 1","8 >> 1"],seealso:["bitAnd","bitNot","bitOr","bitXor","rightArithShift","rightLogShift"]}},function(e){e.exports={name:"rightArithShift",category:"Bitwise",syntax:["x >> y","leftShift(x, y)"],description:"Bitwise right arithmetic shift of a value x by y number of bits.",examples:["8 >> 1","4 << 1","-12 >> 2"],seealso:["bitAnd","bitNot","bitOr","bitXor","leftShift","rightLogShift"]}},function(e){e.exports={name:"rightLogShift",category:"Bitwise",syntax:["x >> y","leftShift(x, y)"],description:"Bitwise right logical shift of a value x by y number of bits.",examples:["8 >>> 1","4 << 1","-12 >>> 2"],seealso:["bitAnd","bitNot","bitOr","bitXor","leftShift","rightArithShift"]}},function(e){e.exports={name:"arg",category:"Complex",syntax:["arg(x)"],description:"Compute the argument of a complex value. If x = a+bi, the argument is computed as atan2(b, a).",examples:["arg(2 + 2i)","atan2(3, 2)","arg(2 + 3i)"],seealso:["re","im","conj","abs"]}},function(e){e.exports={name:"conj",category:"Complex",syntax:["conj(x)"],description:"Compute the complex conjugate of a complex value. If x = a+bi, the complex conjugate is a-bi.",examples:["conj(2 + 3i)","conj(2 - 3i)","conj(-5.2i)"],seealso:["re","im","abs","arg"]}},function(e){e.exports={name:"re",category:"Complex",syntax:["re(x)"],description:"Get the real part of a complex number.",examples:["re(2 + 3i)","im(2 + 3i)","re(-5.2i)","re(2.4)"],seealso:["im","conj","abs","arg"]}},function(e){e.exports={name:"im",category:"Complex",syntax:["im(x)"],description:"Get the imaginary part of a complex number.",examples:["im(2 + 3i)","re(2 + 3i)","im(-5.2i)","im(2.4)"],seealso:["re","conj","abs","arg"]}},function(e){e.exports={name:"bignumber",category:"Type",syntax:["bignumber(x)"],description:"Create a big number from a number or string.",examples:["0.1 + 0.2","bignumber(0.1) + bignumber(0.2)",'bignumber("7.2")','bignumber("7.2e500")',"bignumber([0.1, 0.2, 0.3])"],seealso:["boolean","complex","index","matrix","string","unit"]}},function(e){e.exports={name:"boolean",category:"Type",syntax:["x","boolean(x)"],description:"Convert a string or number into a boolean.",examples:["boolean(0)","boolean(1)","boolean(3)",'boolean("true")','boolean("false")',"boolean([1, 0, 1, 1])"],seealso:["bignumber","complex","index","matrix","number","string","unit"]}},function(e){e.exports={name:"complex",category:"Type",syntax:["complex()","complex(re, im)","complex(string)"],description:"Create a complex number.",examples:["complex()","complex(2, 3)",'complex("7 - 2i")'],seealso:["bignumber","boolean","index","matrix","number","string","unit"]}},function(e){e.exports={name:"index",category:"Type",syntax:["[start]","[start:end]","[start:step:end]","[start1, start 2, ...]","[start1:end1, start2:end2, ...]","[start1:step1:end1, start2:step2:end2, ...]"],description:"Create an index to get or replace a subset of a matrix",examples:["[]","[1, 2, 3]","A = [1, 2, 3; 4, 5, 6]","A[1, :]","A[1, 2] = 50","A[0:2, 0:2] = ones(2, 2)"],seealso:["bignumber","boolean","complex","matrix,","number","range","string","unit"]}},function(e){e.exports={name:"matrix",category:"Type",syntax:["[]","[a1, b1, ...; a2, b2, ...]","matrix()","matrix([...])"],description:"Create a matrix.",examples:["[]","[1, 2, 3]","[1, 2, 3; 4, 5, 6]","matrix()","matrix([3, 4])"],seealso:["bignumber","boolean","complex","index","number","string","unit"]}},function(e){e.exports={name:"number",category:"Type",syntax:["x","number(x)"],description:"Create a number or convert a string or boolean into a number.",examples:["2","2e3","4.05","number(2)",'number("7.2")',"number(true)","number([true, false, true, true])",'number("52cm", "m")'],seealso:["bignumber","boolean","complex","index","matrix","string","unit"]}},function(e){e.exports={name:"string",category:"Type",syntax:['"text"',"string(x)"],description:"Create a string or convert a value to a string",examples:['"Hello World!"',"string(4.2)","string(3 + 2i)"],seealso:["bignumber","boolean","complex","index","matrix","number","unit"]}},function(e){e.exports={name:"unit",category:"Type",syntax:["value unit","unit(value, unit)","unit(string)"],description:"Create a unit.",examples:["5.5 mm","3 inch",'unit(7.1, "kilogram")','unit("23 deg")'],seealso:["bignumber","boolean","complex","index","matrix","number","string"]}},function(e){e.exports={name:"eval",category:"Expression",syntax:["eval(expression)","eval([expr1, expr2, expr3, ...])"],description:"Evaluate an expression or an array with expressions.",examples:['eval("2 + 3")','eval("sqrt(" + 4 + ")")'],seealso:[]}},function(e){e.exports={name:"help",category:"Expression",syntax:["help(object)","help(string)"],description:"Display documentation on a function or data type.",examples:["help(sqrt)",'help("complex")'],seealso:[]}},function(e){e.exports={name:"and",category:"Logical",syntax:["x and y","and(x, y)"],description:"Logical and. Test whether two values are both defined with a nonzero/nonempty value.",examples:["true and false","true and true","2 and 4"],seealso:["not","or","xor"]}},function(e){e.exports={name:"not",category:"Logical",syntax:["!x","not x","not(x)"],description:"Logical not. Flips the boolean value of given argument.",examples:["!true","not false","!2","!0"],seealso:["and","or","xor"]}},function(e){e.exports={name:"or",category:"Logical",syntax:["x or y","or(x, y)"],description:"Logical or. Test if at least one value is defined with a nonzero/nonempty value.",examples:["true or false","false or false","0 or 4"],seealso:["not","and","xor"]}},function(e){e.exports={name:"xor",category:"Logical",syntax:["x or y","or(x, y)"],description:"Logical exclusive or, xor. Test whether one and only one value is defined with a nonzero/nonempty value.",examples:["true xor false","false xor false","true xor true","0 or 4"],seealso:["not","and","or"]}},function(e){e.exports={name:"concat",category:"Matrix",syntax:["concat(A, B, C, ...)","concat(A, B, C, ..., dim)"],description:"Concatenate matrices. By default, the matrices are concatenated by the last dimension. The dimension on which to concatenate can be provided as last argument.",examples:["A = [1, 2; 5, 6]","B = [3, 4; 7, 8]","concat(A, B)","concat(A, B, 1)","concat(A, B, 2)"],seealso:["det","diag","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"cross",category:"Matrix",syntax:["cross(A, B)"],description:"Calculate the cross product for two vectors in three dimensional space.",examples:["cross([1, 1, 0], [0, 1, 1])","cross([3, -3, 1], [4, 9, 2])","cross([2, 3, 4], [5, 6, 7])"],seealso:["multiply","dot"]}},function(e){e.exports={name:"det",category:"Matrix",syntax:["det(x)"],description:"Calculate the determinant of a matrix",examples:["det([1, 2; 3, 4])","det([-2, 2, 3; -1, 1, 3; 2, 0, -1])"],seealso:["concat","diag","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"diag",category:"Matrix",syntax:["diag(x)","diag(x, k)"],description:"Create a diagonal matrix or retrieve the diagonal of a matrix. When x is a vector, a matrix with the vector values on the diagonal will be returned. When x is a matrix, a vector with the diagonal values of the matrix is returned. When k is provided, the k-th diagonal will be filled in or retrieved, if k is positive, the values are placed on the super diagonal. When k is negative, the values are placed on the sub diagonal.",examples:["diag(1:3)","diag(1:3, 1)","a = [1, 2, 3; 4, 5, 6; 7, 8, 9]","diag(a)"],seealso:["concat","det","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"dot",category:"Matrix",syntax:["dot(A, B)"],description:"Calculate the dot product of two vectors. The dot product of A = [a1, a2, a3, ..., an] and B = [b1, b2, b3, ..., bn] is defined as dot(A, B) = a1 * b1 + a2 * b2 + a3 * b3 + ... + an * bn",examples:["dot([2, 4, 1], [2, 2, 3])","[2, 4, 1] * [2, 2, 3]"],seealso:["multiply","cross"]}},function(e){e.exports={name:"eye",category:"Matrix",syntax:["eye(n)","eye(m, n)","eye([m, n])","eye"],description:"Returns the identity matrix with size m-by-n. The matrix has ones on the diagonal and zeros elsewhere.",examples:["eye(3)","eye(3, 5)","a = [1, 2, 3; 4, 5, 6]","eye(size(a))"],seealso:["concat","det","diag","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"flatten",category:"Matrix",syntax:["flatten(x)"],description:"Flatten a multi dimensional matrix into a single dimensional matrix.",examples:["a = [1, 2, 3; 4, 5, 6]","size(a)","b = flatten(a)","size(b)"],seealso:["concat","resize","size","squeeze"]}},function(e){e.exports={name:"inv",category:"Matrix",syntax:["inv(x)"],description:"Calculate the inverse of a matrix",examples:["inv([1, 2; 3, 4])","inv(4)","1 / 4"],seealso:["concat","det","diag","eye","ones","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"ones",category:"Matrix",syntax:["ones(m)","ones(m, n)","ones(m, n, p, ...)","ones([m])","ones([m, n])","ones([m, n, p, ...])","ones"],description:"Create a matrix containing ones.",examples:["ones(3)","ones(3, 5)","ones([2,3]) * 4.5","a = [1, 2, 3; 4, 5, 6]","ones(size(a))"],seealso:["concat","det","diag","eye","inv","range","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"range",category:"Type",syntax:["start:end","start:step:end","range(start, end)","range(start, end, step)","range(string)"],description:"Create a range. Lower bound of the range is included, upper bound is excluded.",examples:["1:5","3:-1:-3","range(3, 7)","range(0, 12, 2)",'range("4:10")',"a = [1, 2, 3, 4; 5, 6, 7, 8]","a[1:2, 1:2]"],seealso:["concat","det","diag","eye","inv","ones","size","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"resize",category:"Matrix",syntax:["resize(x, size)","resize(x, size, defaultValue)"],description:"Resize a matrix.",examples:["resize([1,2,3,4,5], [3])","resize([1,2,3], [5])","resize([1,2,3], [5], -1)","resize(2, [2, 3])",'resize("hello", [8], "!")'],seealso:["size","subset","squeeze"]}},function(e){e.exports={name:"size",category:"Matrix",syntax:["size(x)"],description:"Calculate the size of a matrix.",examples:["size(2.3)",'size("hello world")',"a = [1, 2; 3, 4; 5, 6]","size(a)","size(1:6)"],seealso:["concat","det","diag","eye","inv","ones","range","squeeze","subset","transpose","zeros"]}},function(e){e.exports={name:"squeeze",category:"Matrix",syntax:["squeeze(x)"],description:"Remove inner and outer singleton dimensions from a matrix.",examples:["a = zeros(3,2,1)","size(squeeze(a))","b = zeros(1,1,3)","size(squeeze(b))"],seealso:["concat","det","diag","eye","inv","ones","range","size","subset","transpose","zeros"]}},function(e){e.exports={name:"subset",category:"Matrix",syntax:["value(index)","value(index) = replacement","subset(value, [index])","subset(value, [index], replacement)"],description:"Get or set a subset of a matrix or string. Indexes are one-based. Both the ranges lower-bound and upper-bound are included.",examples:["d = [1, 2; 3, 4]","e = []","e[1, 1:2] = [5, 6]","e[2, :] = [7, 8]","f = d * e","f[2, 1]","f[:, 1]"],seealso:["concat","det","diag","eye","inv","ones","range","size","squeeze","transpose","zeros"]}},function(e){e.exports={name:"transpose",category:"Matrix",syntax:["x'","transpose(x)"],description:"Transpose a matrix",examples:["a = [1, 2, 3; 4, 5, 6]","a'","transpose(a)"],seealso:["concat","det","diag","eye","inv","ones","range","size","squeeze","subset","zeros"]} +},function(e){e.exports={name:"zeros",category:"Matrix",syntax:["zeros(m)","zeros(m, n)","zeros(m, n, p, ...)","zeros([m])","zeros([m, n])","zeros([m, n, p, ...])","zeros"],description:"Create a matrix containing zeros.",examples:["zeros(3)","zeros(3, 5)","a = [1, 2, 3; 4, 5, 6]","zeros(size(a))"],seealso:["concat","det","diag","eye","inv","ones","range","size","squeeze","subset","transpose"]}},function(e){e.exports={name:"combinations",category:"Probability",syntax:["combinations(n, k)"],description:"Compute the number of combinations of n items taken k at a time",examples:["combinations(7, 5)"],seealso:["permutations","factorial"]}},function(e){e.exports={name:"factorial",category:"Probability",syntax:["n!","factorial(n)"],description:"Compute the factorial of a value",examples:["5!","5 * 4 * 3 * 2 * 1","3!"],seealso:["combinations","permutations","gamma"]}},function(e){e.exports={name:"gamma",category:"Probability",syntax:["gamma(n)"],description:"Compute the gamma function. For small values, the Lanczos approximation is used, and for large values the extended Stirling approximation.",examples:["gamma(4)","3!","gamma(1/2)","sqrt(pi)"],seealso:["factorial"]}},function(e){e.exports={name:"permutations",category:"Probability",syntax:["permutations(n)","permutations(n, k)"],description:"Compute the number of permutations of n items taken k at a time",examples:["permutations(5)","permutations(5, 3)"],seealso:["combinations","factorial"]}},function(e){e.exports={name:"pickRandom",category:"Probability",syntax:["pickRandom(array)"],description:"Pick a random entry from a given array.",examples:["pickRandom(0:10)","pickRandom([1, 3, 1, 6])"],seealso:["random","randomInt"]}},function(e){e.exports={name:"random",category:"Probability",syntax:["random()","random(max)","random(min, max)","random(size)","random(size, max)","random(size, min, max)"],description:"Return a random number.",examples:["random()","random(10, 20)","random([2, 3])"],seealso:["pickRandom","randomInt"]}},function(e){e.exports={name:"randInt",category:"Probability",syntax:["randInt()","randInt(max)","randInt(min, max)","randInt(size)","randInt(size, max)","randInt(size, min, max)"],description:"Return a random integer number",examples:["randInt()","randInt(10, 20)","randInt([2, 3], 10)"],seealso:["pickRandom","random"]}},function(e){e.exports={name:"compare",category:"Relational",syntax:["compare(x, y)"],description:"Compare two values. Returns 1 if x is larger than y, -1 if x is smaller than y, and 0 if x and y are equal.",examples:["compare(2, 3)","compare(3, 2)","compare(2, 2)","compare(5cm, 40mm)","compare(2, [1, 2, 3])"],seealso:["equal","unequal","smaller","smallerEq","largerEq"]}},function(e){e.exports={name:"deepEqual",category:"Relational",syntax:["deepEqual(x, y)"],description:"Check equality of two matrices element wise. Returns true if the size of both matrices is equal and when and each of the elements are equal.",examples:["[1,3,4] == [1,3,4]","[1,3,4] == [1,3]"],seealso:["equal","unequal","smaller","larger","smallerEq","largerEq","compare"]}},function(e){e.exports={name:"equal",category:"Relational",syntax:["x == y","equal(x, y)"],description:"Check equality of two values. Returns true if the values are equal, and false if not.",examples:["2+2 == 3","2+2 == 4","a = 3.2","b = 6-2.8","a == b","50cm == 0.5m"],seealso:["unequal","smaller","larger","smallerEq","largerEq","compare","deepEqual"]}},function(e){e.exports={name:"larger",category:"Relational",syntax:["x > y","larger(x, y)"],description:"Check if value x is larger than y. Returns true if x is larger than y, and false if not.",examples:["2 > 3","5 > 2*2","a = 3.3","b = 6-2.8","(a > b)","(b < a)","5 cm > 2 inch"],seealso:["equal","unequal","smaller","smallerEq","largerEq","compare"]}},function(e){e.exports={name:"largerEq",category:"Relational",syntax:["x >= y","largerEq(x, y)"],description:"Check if value x is larger or equal to y. Returns true if x is larger or equal to y, and false if not.",examples:["2 > 1+1","2 >= 1+1","a = 3.2","b = 6-2.8","(a > b)"],seealso:["equal","unequal","smallerEq","smaller","largerEq","compare"]}},function(e){e.exports={name:"smaller",category:"Relational",syntax:["x < y","smaller(x, y)"],description:"Check if value x is smaller than value y. Returns true if x is smaller than y, and false if not.",examples:["2 < 3","5 < 2*2","a = 3.3","b = 6-2.8","(a < b)","5 cm < 2 inch"],seealso:["equal","unequal","larger","smallerEq","largerEq","compare"]}},function(e){e.exports={name:"smallerEq",category:"Relational",syntax:["x <= y","smallerEq(x, y)"],description:"Check if value x is smaller or equal to value y. Returns true if x is smaller than y, and false if not.",examples:["2 < 1+1","2 <= 1+1","a = 3.2","b = 6-2.8","(a < b)"],seealso:["equal","unequal","larger","smaller","largerEq","compare"]}},function(e){e.exports={name:"unequal",category:"Relational",syntax:["x != y","unequal(x, y)"],description:"Check unequality of two values. Returns true if the values are unequal, and false if they are equal.",examples:["2+2 != 3","2+2 != 4","a = 3.2","b = 6-2.8","a != b","50cm != 0.5m","5 cm != 2 inch"],seealso:["equal","smaller","larger","smallerEq","largerEq","compare","deepEqual"]}},function(e){e.exports={name:"max",category:"Statistics",syntax:["max(a, b, c, ...)","max(A)","max(A, dim)"],description:"Compute the maximum value of a list of values.",examples:["max(2, 3, 4, 1)","max([2, 3, 4, 1])","max([2, 5; 4, 3], 0)","max([2, 5; 4, 3], 1)","max(2.7, 7.1, -4.5, 2.0, 4.1)","min(2.7, 7.1, -4.5, 2.0, 4.1)"],seealso:["mean","median","min","prod","std","sum","var"]}},function(e){e.exports={name:"mean",category:"Statistics",syntax:["mean(a, b, c, ...)","mean(A)","mean(A, dim)"],description:"Compute the arithmetic mean of a list of values.",examples:["mean(2, 3, 4, 1)","mean([2, 3, 4, 1])","mean([2, 5; 4, 3], 0)","mean([2, 5; 4, 3], 1)","mean([1.0, 2.7, 3.2, 4.0])"],seealso:["max","median","min","prod","std","sum","var"]}},function(e){e.exports={name:"median",category:"Statistics",syntax:["median(a, b, c, ...)","median(A)"],description:"Compute the median of all values. The values are sorted and the middle value is returned. In case of an even number of values, the average of the two middle values is returned.",examples:["median(5, 2, 7)","median([3, -1, 5, 7])"],seealso:["max","mean","min","prod","std","sum","var"]}},function(e){e.exports={name:"min",category:"Statistics",syntax:["min(a, b, c, ...)","min(A)","min(A, dim)"],description:"Compute the minimum value of a list of values.",examples:["min(2, 3, 4, 1)","min([2, 3, 4, 1])","min([2, 5; 4, 3], 0)","min([2, 5; 4, 3], 1)","min(2.7, 7.1, -4.5, 2.0, 4.1)","max(2.7, 7.1, -4.5, 2.0, 4.1)"],seealso:["max","mean","median","prod","std","sum","var"]}},function(e){e.exports={name:"prod",category:"Statistics",syntax:["prod(a, b, c, ...)","prod(A)"],description:"Compute the product of all values.",examples:["prod(2, 3, 4)","prod([2, 3, 4])","prod([2, 5; 4, 3])"],seealso:["max","mean","min","median","min","std","sum","var"]}},function(e){e.exports={name:"std",category:"Statistics",syntax:["std(a, b, c, ...)","std(A)","std(A, normalization)"],description:'Compute the standard deviation of all values, defined as std(A) = sqrt(var(A)). Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',examples:["std(2, 4, 6)","std([2, 4, 6, 8])",'std([2, 4, 6, 8], "uncorrected")','std([2, 4, 6, 8], "biased")',"std([1, 2, 3; 4, 5, 6])"],seealso:["max","mean","min","median","min","prod","sum","var"]}},function(e){e.exports={name:"sum",category:"Statistics",syntax:["sum(a, b, c, ...)","sum(A)"],description:"Compute the sum of all values.",examples:["sum(2, 3, 4, 1)","sum([2, 3, 4, 1])","sum([2, 5; 4, 3])"],seealso:["max","mean","median","min","prod","std","sum","var"]}},function(e){e.exports={name:"var",category:"Statistics",syntax:["var(a, b, c, ...)","var(A)","var(A, normalization)"],description:'Compute the variance of all values. Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',examples:["var(2, 4, 6)","var([2, 4, 6, 8])",'var([2, 4, 6, 8], "uncorrected")','var([2, 4, 6, 8], "biased")',"var([1, 2, 3; 4, 5, 6])"],seealso:["max","mean","min","median","min","prod","std","sum"]}},function(e){e.exports={name:"acos",category:"Trigonometry",syntax:["acos(x)"],description:"Compute the inverse cosine of a value in radians.",examples:["acos(0.5)","acos(cos(2.3))"],seealso:["cos","atan","asin"]}},function(e){e.exports={name:"asin",category:"Trigonometry",syntax:["asin(x)"],description:"Compute the inverse sine of a value in radians.",examples:["asin(0.5)","asin(sin(2.3))"],seealso:["sin","acos","atan"]}},function(e){e.exports={name:"atan",category:"Trigonometry",syntax:["atan(x)"],description:"Compute the inverse tangent of a value in radians.",examples:["atan(0.5)","atan(tan(2.3))"],seealso:["tan","acos","asin"]}},function(e){e.exports={name:"atan2",category:"Trigonometry",syntax:["atan2(y, x)"],description:"Computes the principal value of the arc tangent of y/x in radians.",examples:["atan2(2, 2) / pi","angle = 60 deg in rad","x = cos(angle)","y = sin(angle)","atan2(y, x)"],seealso:["sin","cos","tan"]}},function(e){e.exports={name:"cos",category:"Trigonometry",syntax:["cos(x)"],description:"Compute the cosine of x in radians.",examples:["cos(2)","cos(pi / 4) ^ 2","cos(180 deg)","cos(60 deg)","sin(0.2)^2 + cos(0.2)^2"],seealso:["acos","sin","tan"]}},function(e){e.exports={name:"cosh",category:"Trigonometry",syntax:["cosh(x)"],description:"Compute the hyperbolic cosine of x in radians.",examples:["cosh(0.5)"],seealso:["sinh","tanh","coth"]}},function(e){e.exports={name:"cot",category:"Trigonometry",syntax:["cot(x)"],description:"Compute the cotangent of x in radians. Defined as 1/tan(x)",examples:["cot(2)","1 / tan(2)"],seealso:["sec","csc","tan"]}},function(e){e.exports={name:"coth",category:"Trigonometry",syntax:["coth(x)"],description:"Compute the hyperbolic cotangent of x in radians.",examples:["coth(2)","1 / tanh(2)"],seealso:["sech","csch","tanh"]}},function(e){e.exports={name:"csc",category:"Trigonometry",syntax:["csc(x)"],description:"Compute the cosecant of x in radians. Defined as 1/sin(x)",examples:["csc(2)","1 / sin(2)"],seealso:["sec","cot","sin"]}},function(e){e.exports={name:"csch",category:"Trigonometry",syntax:["csch(x)"],description:"Compute the hyperbolic cosecant of x in radians. Defined as 1/sinh(x)",examples:["csch(2)","1 / sinh(2)"],seealso:["sech","coth","sinh"]}},function(e){e.exports={name:"sec",category:"Trigonometry",syntax:["sec(x)"],description:"Compute the secant of x in radians. Defined as 1/cos(x)",examples:["sec(2)","1 / cos(2)"],seealso:["cot","csc","cos"]}},function(e){e.exports={name:"sech",category:"Trigonometry",syntax:["sech(x)"],description:"Compute the hyperbolic secant of x in radians. Defined as 1/cosh(x)",examples:["sech(2)","1 / cosh(2)"],seealso:["coth","csch","cosh"]}},function(e){e.exports={name:"sin",category:"Trigonometry",syntax:["sin(x)"],description:"Compute the sine of x in radians.",examples:["sin(2)","sin(pi / 4) ^ 2","sin(90 deg)","sin(30 deg)","sin(0.2)^2 + cos(0.2)^2"],seealso:["asin","cos","tan"]}},function(e){e.exports={name:"sinh",category:"Trigonometry",syntax:["sinh(x)"],description:"Compute the hyperbolic sine of x in radians.",examples:["sinh(0.5)"],seealso:["cosh","tanh"]}},function(e){e.exports={name:"tan",category:"Trigonometry",syntax:["tan(x)"],description:"Compute the tangent of x in radians.",examples:["tan(0.5)","sin(0.5) / cos(0.5)","tan(pi / 4)","tan(45 deg)"],seealso:["atan","sin","cos"]}},function(e){e.exports={name:"tanh",category:"Trigonometry",syntax:["tanh(x)"],description:"Compute the hyperbolic tangent of x in radians.",examples:["tanh(0.5)","sinh(0.5) / cosh(0.5)"],seealso:["sinh","cosh"]}},function(e){e.exports={name:"to",category:"Units",syntax:["x to unit","to(x, unit)"],description:"Change the unit of a value.",examples:["5 inch to cm","3.2kg to g","16 bytes in bits"],seealso:[]}},function(e){e.exports={name:"clone",category:"Utils",syntax:["clone(x)"],description:"Clone a variable. Creates a copy of primitive variables,and a deep copy of matrices",examples:["clone(3.5)","clone(2 - 4i)","clone(45 deg)","clone([1, 2; 3, 4])",'clone("hello world")'],seealso:[]}},function(e){e.exports={name:"map",category:"Utils",syntax:["map(x, callback)"],description:"Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array.",examples:["map([1, 2, 3], function(val) { return value * value })"],seealso:["filter","forEach"]}},function(e){e.exports={name:"filter",category:"Utils",syntax:["filter(x, test)"],description:"Filter items in a matrix.",examples:["isPositive(x) = x > 0","filter([6, -2, -1, 4, 3], isPositive)","filter([6, -2, 0, 1, 0], x != 0)"],seealso:["sort","map","forEach"]}},function(e){e.exports={name:"forEach",category:"Utils",syntax:["forEach(x, callback)"],description:"Iterates over all elements of a matrix/array, and executes the given callback function.",examples:["forEach([1, 2, 3], function(val) { console.log(val) })"],seealso:["map","sort","filter"]}},function(e){e.exports={name:"format",category:"Utils",syntax:["format(value)","format(value, precision)"],description:"Format a value of any type as string.",examples:["format(2.3)","format(3 - 4i)","format([])","format(pi, 3)"],seealso:["print"]}},function(e){e.exports={name:"import",category:"Utils",syntax:["import(string)"],description:"Import functions from a file.",examples:['import("numbers")','import("./mylib.js")'],seealso:[]}},function(e){e.exports={name:"sort",category:"Utils",syntax:["sort(x)","sort(x, compare)"],description:'Sort the items in a matrix. Compare can be a string "asc" or "desc", or a custom sort function.',examples:["sort([5, 10, 1])",'sort(["C", "B", "A", "D"])',"sortByLength(a, b) = size(a)[1] - size(b)[1]",'sort(["Langdon", "Tom", "Sara"], sortByLength)'],seealso:["map","filter","forEach"]}},function(e){e.exports={name:"typeof",category:"Utils",syntax:["typeof(x)"],description:"Get the type of a variable.",examples:["typeof(3.5)","typeof(2 - 4i)","typeof(45 deg)",'typeof("hello world")'],seealso:[]}},function(e,r,t){"use strict";function n(){for(var e,r=Array.prototype.slice.call(arguments),t=0,n=r.length;n>t;t++){e=r[t];for(var i in e)e.hasOwnProperty(i)&&(w[i]=e[i])}}function i(e,r){return"undefined"!=typeof e[r]}function o(e){return function(r){return i(e,r)}}function a(e){return function(t){if("boolean"==typeof e[t])t=e[t]===!0?"\\"+t:"\\mathrm{"+t+"}";else if("string"==typeof e[t])t=e[t];else if("string"==typeof t){var n=t.indexOf("_");-1!==n&&(t=r.toSymbol(t.substring(0,n))+"_{"+r.toSymbol(t.substring(n+1))+"}")}return t}}var s=t(161),u=t(170),f={Alpha:"A",alpha:!0,Beta:"B",beta:!0,Gamma:!0,gamma:!0,Delta:!0,delta:!0,Epsilon:"E",epsilon:!0,varepsilon:!0,Zeta:"Z",zeta:!0,Eta:"H",eta:!0,Theta:!0,theta:!0,vartheta:!0,Iota:"I",iota:!0,Kappa:"K",kappa:!0,varkappa:!0,Lambda:!0,lambda:!0,Mu:"M",mu:!0,Nu:"N",nu:!0,Xi:!0,xi:!0,Omicron:"O",omicron:!0,Pi:!0,pi:!0,varpi:!0,Rho:"P",rho:!0,varrho:!0,Sigma:!0,sigma:!0,varsigma:!0,Tau:"T",tau:!0,Upsilon:!0,upsilon:!0,Phi:!0,phi:!0,varphi:!0,Chi:"X",chi:!0,Psi:!0,psi:!0,Omega:!0,omega:!0},c={dots:!0,ldots:!0,cdots:!0,vdots:!0,ddots:!0,idots:!0},l={"true":"\\mathrm{True}","false":"\\mathrm{False}"},p={inf:"\\infty",Inf:"\\infty",infinity:"\\infty",Infinity:"\\infty",oo:"\\infty",lim:!0,undefined:"\\mathbf{?}"},m={acos:"\\cos^{-1}",arccos:"\\cos^{-1}",cos:!0,csc:!0,csch:!1,exp:!0,ker:!0,limsup:!0,min:!0,sinh:!0,asin:"\\sin^{-1}",arcsin:"\\sin^{-1}",cosh:!0,deg:!0,gcd:!0,lg:!0,ln:!0,Pr:!0,sup:!0,atan:"\\tan^{-1}",atan2:"\\tan2^{-1}",arctan:"\\tan^{-1}",cot:!0,det:!0,hom:!0,log:!0,log10:"\\log_{10}",sec:!0,sech:!1,tan:!0,arg:!0,coth:!0,dim:!0,inf:!0,max:!0,sin:!0,tanh:!0,fix:!1,lcm:!1,sign:!1,xgcd:!1,unaryMinus:!1,unaryPlus:!1,complex:!1,conj:!1,im:!1,re:!1,diag:!1,resize:!1,size:!1,squeeze:!1,subset:!1,index:!1,ones:!1,zeros:!1,range:!1,random:!1,mean:"\\mu",median:!1,prod:!1,std:"\\sigma","var":"\\sigma^2"},h={sqrt:!0,inv:!0,"int":"\\int",Int:"\\int",integrate:"\\int",eigenvalues:"\\lambda",liminf:!0,lim:!0,exp:"e^",sum:!0,eye:"\\mathbf{I}"},g={"<=":"\\leq",">=":"\\geq","!=":"\\neq","in":!0,"*":"\\cdot","/":"\\frac",mod:"\\bmod",to:"\\rightarrow"},d={deg:"^{\\circ}"},w={};n(m,h,f,c,l,p),r.isSymbol=o(w),r.toSymbol=a(w),r.isFunction=o(m),r.toFunction=a(m),r.isCurlyFunction=o(h),r.toCurlyFunction=a(h),r.isOperator=o(g),r.toOperator=a(g),r.isUnit=o(d),r.toUnit=function(){var e=a(d);return function(t,n){return r.isUnit(t)?e(t):(n?"":"\\,")+"\\mathrm{"+t+"}"}}(),r.addBraces=function(e,r,t){if(null===r)return e;var n=["",""];switch(t=t||"normal","undefined"==typeof r||r===!1?n=["{","}"]:r===!0?(n=["(",")"],t="lr"):n=Array.isArray(r)&&2===r.length?r:[r,r],t){case"normal":case!1:return n[0]+e+n[1];case"lr":return"\\left"+n[0]+"{"+e+"}\\right"+n[1];case"be":return"\\begin{"+n[0]+"}"+e+"\\end{"+n[1]+"}"}return n[0]+e+n[1]},r.toArgs=function(e){var t=e.name,n=e.args,i=r.toSymbol(e.name),o=null,a=null,f=!1,c=!1,l="",p="",m=null;switch(t){case"add":m="+";break;case"subtract":m="-";break;case"larger":m=">";break;case"largerEq":m=">=";break;case"smaller":m="<";break;case"smallerEq":m="<=";break;case"unequal":m="!=";break;case"equal":m="=";break;case"mod":m="mod";break;case"multiply":m="*";break;case"pow":m="^";break;case"concat":m="||";break;case"factorial":m="!";break;case"permutations":if(1!==n.length){var h=n[0].toTex(),g=n[1].toTex();return"\\frac{"+h+"!}{\\left("+h+" - "+g+"\\right)!}"}m="!";break;case"combinations":m="\\choose";break;case"abs":a="|",f="lr";break;case"norm":if(a="\\|",f="lr",2===n.length){var d=n[1].toTex();"\\text{inf}"===d?d="\\infty":"\\text{-inf}"===d?d="{- \\infty}":"\\text{fro}"===d&&(d="F"),p="_{"+d+"}",n=[n[0]]}break;case"ceil":a=["\\lceil","\\rceil"],f="lr";break;case"floor":a=["\\lfloor","\\rfloor"],f="lr";break;case"round":a=["\\lfloor","\\rceil"],f="lr",2===n.length&&(p="_"+r.addBraces(n[1].toTex()),n=[n[0]]);break;case"inv":p="^{-1}";break;case"transpose":p="^{T}",a=!1;break;case"log":var w="e";2===n.length&&(w=n[1].toTex(),i="\\log_{"+w+"}",n=[n[0]]),"e"===w&&(i="\\ln"),c=!0;break;case"square":p="^{2}";break;case"cube":p="^{3}";break;case"eye":c=!0,a=!1,i+="_";break;case"det":if(e.args[0]instanceof s)return e.args[0].toTex("vmatrix");a="vmatrix",f="be";break;default:c=!0}return null!==m?(a="+"===m||"-"===m,o=new u(m,t,n).toTex()):m=", ",null!==a||r.isCurlyFunction(t)||(a=!0),o=o||n.map(function(e){return"{"+e.toTex()+"}"}).join(m),l+(c?i:"")+r.addBraces(o,a,f)+p}},function(e){"use strict";e.exports={end:!0}}])}); //# sourceMappingURL=math.map \ No newline at end of file diff --git a/lib/version.js b/lib/version.js index 115cb1184..3de76710c 100644 --- a/lib/version.js +++ b/lib/version.js @@ -1,3 +1,3 @@ -module.exports = '1.2.0'; +module.exports = '1.2.1-SNAPSHOT'; // Note: This file is automatically generated when building math.js. // Changes made in this file will be overwritten. diff --git a/package.json b/package.json index 8bab7239d..528519586 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mathjs", - "version": "1.2.0", + "version": "1.2.1-SNAPSHOT", "description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser and offers an integrated solution to work with numbers, big numbers, complex numbers, units, and matrices.", "author": "Jos de Jong (https://github.com/josdejong)", "contributors": [ diff --git a/tools/validate.js b/tools/validate.js index b6bc91910..deede17d8 100644 --- a/tools/validate.js +++ b/tools/validate.js @@ -8,11 +8,11 @@ var gutil = require('gulp-util'), // names to ignore var ignore = [ // functions not supported by the parser: - 'compile', 'parse', 'parser', 'select', 'print', 'config', 'in', 'create', + 'compile', 'parse', 'parser', 'chain', 'print', 'config', 'in', 'create', // private functions: '_divide', // deprecated functions: - 'workspace', 'unary', 'edivide', 'emultiply', 'epow', 'smallereq', 'largereq', 'ifElse' + 'workspace', 'unary', 'edivide', 'emultiply', 'epow', 'smallereq', 'largereq', 'ifElse', 'select' ]; // test whether all functions are documented