From bf4c8db46c692fd133e7edcac2a85f1ea06c0e65 Mon Sep 17 00:00:00 2001 From: jos Date: Tue, 13 May 2014 21:01:49 +0200 Subject: [PATCH] Released version 0.21.1 --- HISTORY.md | 2 +- bower.json | 2 +- component.json | 2 +- dist/math.js | 30 ++++++++---------------------- dist/math.map | 2 +- dist/math.min.js | 16 ++++++++-------- package.json | 2 +- 7 files changed, 21 insertions(+), 35 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 9ae80f237..6996860cb 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,7 +2,7 @@ https://github.com/josdejong/mathjs -## not yet released, version 0.21.1 +## 2014-05-13, version 0.21.1 - Removed `crypto` library from the bundle. - Deprecated functions `Parser.parse` and `Parser.compile`. Use diff --git a/bower.json b/bower.json index 828acccd6..9d30f61cb 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "mathjs", - "version": "0.22.0-SNAPSHOT", + "version": "0.21.1", "main": "./dist/math.js", "ignore": [ "coverage", diff --git a/component.json b/component.json index 3448330b6..1fd8ff1fc 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": "0.20.1-SNAPSHOT", + "version": "0.21.1", "keywords": [ "math", "mathematics", diff --git a/dist/math.js b/dist/math.js index d16d133f0..496bde9c6 100644 --- a/dist/math.js +++ b/dist/math.js @@ -6,8 +6,8 @@ * It features real and complex numbers, units, matrices, a large set of * mathematical functions, and a flexible expression parser. * - * @version 0.22.0-SNAPSHOT - * @date 2014-05-09 + * @version 0.21.1 + * @date 2014-05-13 * * @license * Copyright (C) 2013-2014 Jos de Jong @@ -242,9 +242,6 @@ return /******/ (function(modules) { // webpackBootstrap math.expression = {}; math.expression.node = __webpack_require__(14); math.expression.parse = __webpack_require__(12); - math.expression.Scope = function () { - throw new Error('Scope is deprecated. Use a regular Object instead'); - }; math.expression.Parser = __webpack_require__(13); math.expression.docs = __webpack_require__(15); @@ -4053,7 +4050,7 @@ return /******/ (function(modules) { // webpackBootstrap } /** - * parse units like in '2i', '2 cm' + * parse units conversion 'in' like '5cm in inch' * @return {Node} node * @private */ @@ -4110,7 +4107,7 @@ return /******/ (function(modules) { // webpackBootstrap fn = (name == '^') ? 'pow' : 'epow'; getToken(); - params = [node, parsePow()]; + params = [node, parseUnary()]; // Go back to unary, we can have '2^-3' node = new OperatorNode(name, fn, params); } @@ -4140,6 +4137,8 @@ return /******/ (function(modules) { // webpackBootstrap params = [node]; node = new OperatorNode(name, fn, params); + + node = parseParams(node); // cases like "A'[2,3]" } return node; @@ -4571,17 +4570,6 @@ return /******/ (function(modules) { // webpackBootstrap * // parsers scope * parser.clear(); // clear the parsers scope * - * // it is possible to parse an expression into a node tree: - * var node = parser.parse(expr); // parse an expression into a node tree - * var code = node.compile(math); // compile a node tree into javascript - * // code - * var code = parser.compile(expr); // parse and compile an expression into - * // javascript code. Equivalent of - * // parser.parse(expr).compile(math) - * - * // A compiled expression can be evaluated as - * var result = code.eval([scope]); // scope is an optional object - * * Example usage: * var parser = new Parser(math); * // Note: there is a convenience method which can be used instead: @@ -4639,8 +4627,7 @@ return /******/ (function(modules) { // webpackBootstrap * @throws {Error} */ Parser.prototype.parse = function (expr) { - // TODO: validate arguments - return _parse(expr); + throw new Error('Parser.parse is deprecated. Use math.parse instead.'); }; /** @@ -4651,8 +4638,7 @@ return /******/ (function(modules) { // webpackBootstrap * @throws {Error} */ Parser.prototype.compile = function (expr) { - // TODO: validate arguments - return _parse(expr).compile(this.math); + throw new Error('Parser.compile is deprecated. Use math.compile instead.'); }; /** diff --git a/dist/math.map b/dist/math.map index 1aaa8c8ed..b35d7d7d8 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","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_256__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","mathjs","config","Object","create","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","collection","expression","node","parse","Scope","Parser","docs","chaining","Selector","pi","Math","PI","e","E","tau","i","Infinity","NaN","LN2","LN10","LOG2E","LOG10E","SQRT1_2","SQRT2","x","undefined","Array","isArray","map","value","Number","valueOf","String","Boolean","Date","RegExp","TypeError","key","hasOwnProperty","extend","a","b","prop","deepEqual","len","length","ArgumentsError","DimensionError","IndexError","UnsupportedTypeError","re","im","SyntaxError","arguments","arg","construct","fromPolar","r","phi","isNumber","skipWhitespace","next","isDigitDot","isDigit","index","text","charAt","revert","oldIndex","parseNumber","parseComplex","cnext","util","isUnit","isString","string","isComplex","str","first","separator","second","substring","hasBase","BASE_UNITS","ANGLE","toNumber","cos","sin","toPolar","sqrt","atan2","equals","other","format","strRe","strIm","toString","start","end","step","parseFloat","array","args","split","nums","invalid","some","num","isNaN","isRange","size","diff","sign","ceil","min","max","forEach","callback","obj","toArray","_ranges","ii","push","_createRange","isInteger","validateIndex","isIndex","ranges","apply","range","values","dim","isScalar","row","strings","join","data","_data","preprocess","types","_size","_get","get","submatrix","_getSubmatrix","shift","dims","last","child","_set","defaultValue","sSize","iSize","set","unshift","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","resize","elem","isMatrix","subset","replacement","index_i","me","recurse","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","abs","bestDiff","log","scientific","PREFIXES","NONE","SHORT","da","h","k","M","G","T","P","Z","Y","d","u","n","f","z","y","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","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","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","_reduce","mat","ret","val","tran","_switch","j","I","J","tmp","argsToArray","slice","isCollection","deepMap","deepMap2","array1","array2","reduce","deepForEach","nodes","extra_nodes","parseStart","nextPreview","getToken","token_type","TOKENTYPE","NULL","token","DELIMITER","c2","DELIMITERS","isAlpha","NAMED_DELIMITERS","SYMBOL","UNKNOWN","createSyntaxError","NUMBER","skipNewlines","parseBlock","createError","block","visible","ConstantNode","parseAns","BlockNode","add","parseFunctionAssignment","AssignmentNode","parseAssignment","parseRange","SymbolNode","IndexNode","UpdateNode","ParamsNode","valid","params","param","FunctionNode","parseBitwiseConditions","RangeNode","parseIfElse","parseComparison","TernaryNode","operators","fn","parseConditions","==","!=","<",">","<=",">=","OperatorNode","parseAddSubtract","parseMultiplyDivide","+","-","*",".*","/","./","%","mod","symbol","parseUnary","UnitNode","parsePow","parseLeftHandOperators","parseCustomNodes","!","'","handler","parseSymbol","parseParams","parseString","bracket","tPrev","parseMatrix","rows","cols","parseRow","ArrayNode","parseParentheses","parseEnd","col","message",",","(",")","[","]","\"","\n",";","^",".^","=",":","?","scope","_parse","compile","remove","clear","Node","compare","cube","divide","edivide","emultiply","epow","exp","fix","floor","gcd","larger","largereq","lcm","log10","multiply","norm","round","smaller","smallereq","square","subtract","unary","unequal","xgcd","conj","bignumber","complex","help","det","diag","eye","inv","ones","squeeze","transpose","zeros","combinations","distribution","factorial","permutations","pickRandom","random","randomInt","mean","median","prod","std","sum","acos","asin","atan","cosh","cot","coth","csc","csch","sech","sinh","tan","tanh","ifElse","createProxy","concat","done","search","isBoolean","plus","nearlyEqual","cmp","times","_divideComplex","den","div","equal","eq","isNegative","gt","gte","t","ln","_mod","isZero","_multiplyMatrixMatrix","result","_multiplyVectorMatrix","_multiplyMatrixVector","_multiplyVectorVector","dot","_multiplyComplex","sizeX","sizeY","RangeError","POSITIVE_INFINITY","v","NEGATIVE_INFINITY","rs","powComplex","temp1","temp2","px","roundNumber","toDecimalPlaces","lte","minus","neg","_xgcd","q","lastx","lasty","bool","lcase","toLowerCase","select","_concat","concatDim","prevDim","asMatrix","matrices","_det","compute_mu","mu","fa","vector","iMax","asArray","kSuper","kSub","asBigNumber","one","minimum","_inv","temp","Ac","Bc","Ar","Br","_range","_rangeInc","_bigRange","zero","_bigRangeInc","includeEnd","pop","_resizeString","defaultChar","_getSubset","_getSubstring","substr","strLen","_setSubset","_setSubstring","chars","transposedRow","transposed","isPositiveInteger","distributions","uniform","normal","u1","u2","picked","randFunctions","arg1","arg2","arg3","_randomDataForMatrix","_random","_randomInt","possibles","randFunc","uniformRandFunctions","arity","dividedBy","_getSmaller","_min","_getLarger","_max","_nmean","_mean","_median","flat","flatten","sort","left","right","middle","_prod","variance","_sum","_var","normalization","DEFAULT_NORMALIZATION","temp3","temp4","ep","en","cim","sim","_ifElseCollection","condition","trueExpr","falseExpr","trueIsMatrix","falseIsMatrix","_import","override","wrap","isSupportedType","math_import","opts","_module","_mapArray","arrayIn","print","template","replace","original","keys","_forEachArray","__WEBPACK_AMD_DEFINE_RESULT__","global","checkRoundingDigits","rm","repeating","checkRM","method","Decimal","outOfRange","parseInt","ifExceptionsThrow","checkArg","MAX_DIGITS","pr","dp","xc","yc","ri","yL","yz","xi","xL","rL","qc","rnd","denom","guard","sd","rep","external","more","intPow","x1","x2","half","isNeg","convertBase","crypto","DecimalConstructor","NUMERALS","EXP_LIMIT","INT_POW_LIMIT","base10","inf","sd10","xLTy","xe","ye","reverse","pos","indexOf","sep1","sep2","arr","toFixed","maxD","d0","d2","frac","n0","n1","d1","yN","isFinite","strL","toBaseOut","baseIn","baseOut","arrL","maxOrMin","ltgt","DecimalFactory","parseDecimal","isValid","trim","isNum","orig","test","getMathRandom","getRandomValues","getRandomBytes","buf","rb","readDoubleBE","limit","ld","rand","count","stack","actual","expected","relation","splice","every","isNode","_compile","defs","find","filter","results","match","js","valueType","variable","compileSubset","properties","someUseEnd","rangesUseEnd","useEnd","objectName","op","lhs","rhs","undef","ops","code","defsCode","factoryCode","Function","formatArray","_validate","dimNext","_resize","oldLen","newLen","minLen","validate","unsqueeze","notation","toExponential","lower","upper","exponential","valueStr","toPrecision","DBL_EPSILON","EPSILON","webpackContext","req","webpackContextResolve","./clone","./clone.js","./forEach","./forEach.js","./format","./format.js","./ifElse","./ifElse.js","./import","./import.js","./map","./map.js","./print","./print.js","./typeof","./typeof.js","resolve","isBigNumber","toExpNeg","toExpPos","toSignificantDigits","webpackPolyfill","deprecate","paths","children"],"mappings":"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EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,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YACI,iCACJE,UACE,YACA,kBACA,uBAEFI,SAAY,eAAgB,aAAc,YAKvC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,OACRgQ,SAAY,aACZE,QACE,qBACA,UACA,gBAEFD,YAAe,mDACfE,UACE,mBACA,qBACA,wBACA,wBACA,8BAEFI,SACE,MACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,SACRgQ,SAAY,aACZE,QACE,uBACA,aAEFD,YAAe,mLACfE,UACE,kBACA,yBAEFI,SACE,MACA,OACA,MACA,OACA,MACA,MACA,SAOC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,MACA,OACA,SACA,OACA,MACA,MACA,SAOC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,OACRgQ,SAAY,aACZE,QACE,qBACA,WAEFD,YAAe,qCACfE,UACE,gBACA,kBACA,sBAEFI,SACE,MACA,OACA,MACA,SACA,MACA,MACA,MACA,SAOC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,SACA,yBAEFD,YAAe,4KACfE,UACE,eACA,oBACA,mCACA,8BACA,2BAEFI,SACE,MACA,OACA,MACA,SACA,MACA,OACA,MACA,SAOC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,UAEFD,YAAe,iCACfE,UACE,kBACA,oBACA,qBAEFI,SACE,MACA,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAAS9d,GAEdA,EAAOD,SACLwN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA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"} \ No newline at end of file +{"version":3,"file":"math.map","sources":["./dist/math.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_256__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","mathjs","config","Object","create","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","collection","expression","node","parse","Parser","docs","chaining","Selector","pi","Math","PI","e","E","tau","i","Infinity","NaN","LN2","LN10","LOG2E","LOG10E","SQRT1_2","SQRT2","x","undefined","Array","isArray","map","value","Number","valueOf","String","Boolean","Date","RegExp","TypeError","key","hasOwnProperty","extend","a","b","prop","deepEqual","len","length","ArgumentsError","DimensionError","IndexError","UnsupportedTypeError","re","im","SyntaxError","arguments","arg","construct","fromPolar","r","phi","isNumber","skipWhitespace","next","isDigitDot","isDigit","index","text","charAt","revert","oldIndex","parseNumber","parseComplex","cnext","util","isUnit","isString","string","isComplex","str","first","separator","second","substring","hasBase","BASE_UNITS","ANGLE","toNumber","cos","sin","toPolar","sqrt","atan2","equals","other","format","strRe","strIm","toString","start","end","step","parseFloat","array","args","split","nums","invalid","some","num","isNaN","isRange","size","diff","sign","ceil","min","max","forEach","callback","obj","toArray","_ranges","ii","push","_createRange","isInteger","validateIndex","isIndex","ranges","apply","range","values","dim","isScalar","row","strings","join","data","_data","preprocess","types","_size","_get","get","submatrix","_getSubmatrix","shift","dims","last","child","_set","defaultValue","sSize","iSize","set","unshift","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","resize","elem","isMatrix","subset","replacement","index_i","me","recurse","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","abs","bestDiff","log","scientific","PREFIXES","NONE","SHORT","da","h","k","M","G","T","P","Z","Y","d","u","n","f","z","y","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","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","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","_reduce","mat","ret","val","tran","_switch","j","I","J","tmp","argsToArray","slice","isCollection","deepMap","deepMap2","array1","array2","reduce","deepForEach","nodes","extra_nodes","parseStart","nextPreview","getToken","token_type","TOKENTYPE","NULL","token","DELIMITER","c2","DELIMITERS","isAlpha","NAMED_DELIMITERS","SYMBOL","UNKNOWN","createSyntaxError","NUMBER","skipNewlines","parseBlock","createError","block","visible","ConstantNode","parseAns","BlockNode","add","parseFunctionAssignment","AssignmentNode","parseAssignment","parseRange","SymbolNode","IndexNode","UpdateNode","ParamsNode","valid","params","param","FunctionNode","parseBitwiseConditions","RangeNode","parseIfElse","parseComparison","TernaryNode","operators","fn","parseConditions","==","!=","<",">","<=",">=","OperatorNode","parseAddSubtract","parseMultiplyDivide","+","-","*",".*","/","./","%","mod","symbol","parseUnary","UnitNode","parsePow","parseLeftHandOperators","parseCustomNodes","!","'","parseParams","handler","parseSymbol","parseString","bracket","tPrev","parseMatrix","rows","cols","parseRow","ArrayNode","parseParentheses","parseEnd","col","message",",","(",")","[","]","\"","\n",";","^",".^","=",":","?","scope","_parse","compile","remove","clear","Node","compare","cube","divide","edivide","emultiply","epow","exp","fix","floor","gcd","larger","largereq","lcm","log10","multiply","norm","round","smaller","smallereq","square","subtract","unary","unequal","xgcd","conj","bignumber","complex","help","det","diag","eye","inv","ones","squeeze","transpose","zeros","combinations","distribution","factorial","permutations","pickRandom","random","randomInt","mean","median","prod","std","sum","acos","asin","atan","cosh","cot","coth","csc","csch","sech","sinh","tan","tanh","ifElse","createProxy","concat","done","search","isBoolean","plus","nearlyEqual","cmp","times","_divideComplex","den","div","equal","eq","isNegative","gt","gte","t","ln","_mod","isZero","_multiplyMatrixMatrix","result","_multiplyVectorMatrix","_multiplyMatrixVector","_multiplyVectorVector","dot","_multiplyComplex","sizeX","sizeY","RangeError","POSITIVE_INFINITY","v","NEGATIVE_INFINITY","rs","powComplex","temp1","temp2","px","roundNumber","toDecimalPlaces","lte","minus","neg","_xgcd","q","lastx","lasty","bool","lcase","toLowerCase","select","_concat","concatDim","prevDim","asMatrix","matrices","_det","compute_mu","mu","fa","vector","iMax","asArray","kSuper","kSub","asBigNumber","one","minimum","_inv","temp","Ac","Bc","Ar","Br","_range","_rangeInc","_bigRange","zero","_bigRangeInc","includeEnd","pop","_resizeString","defaultChar","_getSubset","_getSubstring","substr","strLen","_setSubset","_setSubstring","chars","transposedRow","transposed","isPositiveInteger","distributions","uniform","normal","u1","u2","picked","randFunctions","arg1","arg2","arg3","_randomDataForMatrix","_random","_randomInt","possibles","randFunc","uniformRandFunctions","arity","dividedBy","_getSmaller","_min","_getLarger","_max","_nmean","_mean","_median","flat","flatten","sort","left","right","middle","_prod","variance","_sum","_var","normalization","DEFAULT_NORMALIZATION","temp3","temp4","ep","en","cim","sim","_ifElseCollection","condition","trueExpr","falseExpr","trueIsMatrix","falseIsMatrix","_import","override","wrap","isSupportedType","math_import","opts","_module","_mapArray","arrayIn","print","template","replace","original","keys","_forEachArray","__WEBPACK_AMD_DEFINE_RESULT__","global","checkRoundingDigits","rm","repeating","checkRM","method","Decimal","outOfRange","parseInt","ifExceptionsThrow","checkArg","MAX_DIGITS","pr","dp","xc","yc","ri","yL","yz","xi","xL","rL","qc","rnd","denom","guard","sd","rep","external","more","intPow","x1","x2","half","isNeg","convertBase","crypto","DecimalConstructor","NUMERALS","EXP_LIMIT","INT_POW_LIMIT","base10","inf","sd10","xLTy","xe","ye","reverse","pos","indexOf","sep1","sep2","arr","toFixed","maxD","d0","d2","frac","n0","n1","d1","yN","isFinite","strL","toBaseOut","baseIn","baseOut","arrL","maxOrMin","ltgt","DecimalFactory","parseDecimal","isValid","trim","isNum","orig","test","getMathRandom","getRandomValues","getRandomBytes","buf","rb","readDoubleBE","limit","ld","rand","count","stack","actual","expected","relation","splice","every","isNode","_compile","defs","find","filter","results","match","js","valueType","variable","compileSubset","properties","someUseEnd","rangesUseEnd","useEnd","objectName","op","lhs","rhs","undef","ops","code","defsCode","factoryCode","Function","formatArray","_validate","dimNext","_resize","oldLen","newLen","minLen","validate","unsqueeze","notation","toExponential","lower","upper","exponential","valueStr","toPrecision","DBL_EPSILON","EPSILON","webpackContext","req","webpackContextResolve","./clone","./clone.js","./forEach","./forEach.js","./format","./format.js","./ifElse","./ifElse.js","./import","./import.js","./map","./map.js","./print","./print.js","./typeof","./typeof.js","resolve","isBigNumber","toExpNeg","toExpPos","toSignificantDigits","webpackPolyfill","deprecate","paths","children"],"mappings":"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,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAG9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc,EAAMC,GAC9Bf,EAAoB,IAAIc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,EAAOD,SACLuN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAAS7d,GAEdA,EAAOD,SACLuN,KAAQ,OACRgQ,SAAY,aACZE,QACE,qBACA,UACA,gBAEFD,YAAe,mDACfE,UACE,mBACA,qBACA,wBACA,wBACA,8BAEFI,SACE,MACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAAS7d,GAEdA,EAAOD,SACLuN,KAAQ,SACRgQ,SAAY,aACZE,QACE,uBACA,aAEFD,YAAe,mLACfE,UACE,kBACA,yBAEFI,SACE,MACA,OACA,MACA,OACA,MACA,MACA,SAOC,SAAS7d,GAEdA,EAAOD,SACLuN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,SACA,eAEFD,YAAe,iDACfE,UACE,kBACA,oBACA,uBACA,uBACA,gCACA,iCAEFI,SACE,MACA,OACA,SACA,OACA,MACA,MACA,SAOC,SAAS7d,GAEdA,EAAOD,SACLuN,KAAQ,OACRgQ,SAAY,aACZE,QACE,qBACA,WAEFD,YAAe,qCACfE,UACE,gBACA,kBACA,sBAEFI,SACE,MACA,OACA,MACA,SACA,MACA,MACA,MACA,SAOC,SAAS7d,GAEdA,EAAOD,SACLuN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,SACA,yBAEFD,YAAe,4KACfE,UACE,eACA,oBACA,mCACA,8BACA,2BAEFI,SACE,MACA,OACA,MACA,SACA,MACA,OACA,MACA,SAOC,SAAS7d,GAEdA,EAAOD,SACLuN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,UAEFD,YAAe,iCACfE,UACE,kBACA,oBACA,qBAEFI,SACE,MACA,OACA,SACA,MACA,OACA,MACA,MACA,SAOC,SAAS7d,GAEdA,EAAOD,SACLuN,KAAQ,MACRgQ,SAAY,aACZE,QACE,oBACA,SACA,yBAEFD,YAAe,gIACfE,UACE,eACA,oBACA,mCACA,8BACA,2BAEFI,SACE,MACA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"} \ No newline at end of file diff --git a/dist/math.min.js b/dist/math.min.js index a5e77b8f9..1adbd6a88 100644 --- a/dist/math.min.js +++ b/dist/math.min.js @@ -6,8 +6,8 @@ * It features real and complex numbers, units, matrices, a large set of * mathematical functions, and a flexible expression parser. * - * @version 0.22.0-SNAPSHOT - * @date 2014-05-09 + * @version 0.21.1 + * @date 2014-05-13 * * @license * Copyright (C) 2013-2014 Jos de Jong @@ -24,10 +24,10 @@ * License for the specific language governing permissions and limitations under * the License. */ -!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("crypto")):"function"==typeof define&&define.amd?define(["crypto"],r):"object"==typeof exports?exports.mathjs=r(require("crypto")):e.mathjs=r(e.crypto)}(this,function(e){return function(e){function r(t){if(n[t])return n[t].exports;var i=n[t]={exports:{},id:t,loaded:!1};return e[t].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var n={};return r.m=e,r.c=n,r.p="",r(0)}([function(e,r,n){e.exports=n(1)},function(e,r,n){function t(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={},t={matrix:"matrix",number:"number",precision:20,epsilon:1e-14};r.config=function(e){if(e){if(i.deepExtend(t,e),e.precision&&r.type.BigNumber.config({precision:e.precision}),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(t)};var o=n(118).constructor();if("function"!=typeof o.prototype.clone&&(o.prototype.clone=function(){return new o(this)}),"function"==typeof o.convert)throw new Error("Cannot add function convert to BigNumber: function already exists");return o.convert=function(e){return digits(e)>15?e:new o(e)},r.error=n(4),r.type={},r.type.Complex=n(5),r.type.Range=n(6),r.type.Index=n(7),r.type.Matrix=n(8),r.type.Unit=n(9),r.type.Help=n(10),r.type.BigNumber=o,r.collection=n(11),r.expression={},r.expression.node=n(14),r.expression.parse=n(12),r.expression.Scope=function(){throw new Error("Scope is deprecated. Use a regular Object instead")},r.expression.Parser=n(13),r.expression.docs=n(15),n(17)(r,t),n(18)(r,t),n(19)(r,t),n(20)(r,t),n(21)(r,t),n(22)(r,t),n(23)(r,t),n(24)(r,t),n(25)(r,t),n(26)(r,t),n(27)(r,t),n(28)(r,t),n(29)(r,t),n(30)(r,t),n(31)(r,t),n(32)(r,t),n(33)(r,t),n(34)(r,t),n(35)(r,t),n(36)(r,t),n(37)(r,t),n(38)(r,t),n(39)(r,t),n(40)(r,t),n(41)(r,t),n(42)(r,t),n(43)(r,t),n(44)(r,t),n(45)(r,t),n(46)(r,t),n(47)(r,t),n(48)(r,t),n(49)(r,t),n(50)(r,t),n(51)(r,t),n(52)(r,t),n(53)(r,t),n(54)(r,t),n(55)(r,t),n(56)(r,t),n(57)(r,t),n(58)(r,t),n(59)(r,t),n(60)(r,t),n(61)(r,t),n(62)(r,t),n(63)(r,t),n(64)(r,t),n(65)(r,t),n(66)(r,t),n(67)(r,t),n(68)(r,t),n(69)(r,t),n(70)(r,t),n(71)(r,t),n(72)(r,t),n(73)(r,t),n(74)(r,t),n(75)(r,t),n(76)(r,t),n(77)(r,t),n(78)(r,t),n(79)(r,t),n(80)(r,t),n(81)(r,t),n(82)(r,t),n(83)(r,t),n(84)(r,t),n(85)(r,t),n(86)(r,t),n(87)(r,t),n(88)(r,t),n(89)(r,t),n(90)(r,t),n(91)(r,t),n(92)(r,t),n(93)(r,t),n(94)(r,t),n(95)(r,t),n(96)(r,t),n(97)(r,t),n(98)(r,t),n(99)(r,t),n(100)(r,t),n(101)(r,t),n(102)(r,t),n(103)(r,t),n(104)(r,t),n(105)(r,t),n(106)(r,t),n(107)(r,t),n(108)(r,t),n(109)(r,t),n(110)(r,t),n(111)(r,t),n(112)(r,t),n(113)(r,t),n(114)(r,t),n(115)(r,t),n(116)(r,t),n(117)(r,t),n(2)(r,t),r.chaining={},r.chaining.Selector=n(16)(r,t),r.config(e),r}var i=n(3);e.exports=t},function(e,r,n){e.exports=function(e){var r=n(5);e.pi=Math.PI,e.e=Math.E,e.tau=2*Math.PI,e.i=new r(0,1),e.Infinity=1/0,e.NaN=0/0,e["true"]=!0,e["false"]=!1,e.E=Math.E,e.LN2=Math.LN2,e.LN10=Math.LN10,e.LOG2E=Math.LOG2E,e.LOG10E=Math.LOG10E,e.PI=Math.PI,e.SQRT1_2=Math.SQRT1_2,e.SQRT2=Math.SQRT2}},function(e,r){r.clone=function n(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 n(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 t={};for(var i in e)e.hasOwnProperty(i)&&(t[i]=n(e[i]));return t},r.extend=function(e,r){for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);return e},r.deepExtend=function t(e,r){if(Array.isArray(r))throw new TypeError("Arrays are not supported by deepExtend");for(var n in r)if(r.hasOwnProperty(n))if(r[n]&&r[n].constructor===Object)void 0===e[n]&&(e[n]={}),e[n].constructor===Object?t(e[n],r[n]):e[n]=r[n];else{if(Array.isArray(r[n]))throw new TypeError("Arrays are not supported by deepExtend");e[n]=r[n]}return e},r.deepEqual=function(e,n){var t,i,o;if(Array.isArray(e)){if(!Array.isArray(n))return!1;if(e.length!=n.length)return!1;for(i=0,o=e.length;o>i;i++)if(!r.deepEqual(e[i],n[i]))return!1;return!0}if(e instanceof Object){if(Array.isArray(n)||!(n instanceof Object))return!1;for(t in e)if(!r.deepEqual(e[t],n[t]))return!1;for(t in n)if(!r.deepEqual(e[t],n[t]))return!1;return!0}return typeof e==typeof n&&e==n}},function(e,r,n){r.ArgumentsError=n(119),r.DimensionError=n(120),r.IndexError=n(121),r.UnsupportedTypeError=n(122)},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");switch(arguments.length){case 0:this.re=0,this.im=0;break;case 1:var n=arguments[0];if("object"==typeof n){if("re"in n&&"im"in n){var i=new t(n.re,n.im);this.re=i.re,this.im=i.im;break}if("r"in n&&"phi"in n){var i=t.fromPolar(n.r,n.phi);this.re=i.re,this.im=i.im;break}}throw new SyntaxError("Object with the re and im or r and phi properties expected.");case 2:if(!h(e)||!h(r))throw new TypeError("Two numbers expected in Complex constructor");this.re=e,this.im=r;break;default:throw new SyntaxError("One, two or three arguments expected in Complex constructor")}}function i(){for(;" "==y||" "==y;)s()}function o(e){return e>="0"&&"9">=e||"."==e}function a(e){return e>="0"&&"9">=e}function s(){w++,y=x.charAt(w)}function u(e){w=e,y=x.charAt(w)}function f(){var e,r="";if(e=w,"+"==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=x.charAt(w+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=n(123),p=n(9),m=l.number,h=l.number.isNumber,g=p.isUnit,d=l.string.isString;t.isComplex=function(e){return e instanceof t};var x,w,y;t.parse=function(e){if(x=e,w=-1,y="",!d(x))return null;s(),i();var r=f();if(r){if("I"==y||"i"==y)return s(),i(),y?null:new t(0,Number(r));i();var n=y;if("+"!=n&&"-"!=n)return i(),y?null:new t(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"-"==n&&(o="-"==o[0]?"+"+o.substring(1):"-"+o),s(),i(),y?null:new t(Number(r),Number(o))}return(r=c())?(i(),y?null:new t(0,Number(r))):null},t.fromPolar=function(){switch(arguments.length){case 1:var e=arguments[0];if("object"==typeof e)return t.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],n=arguments[1];if(h(r)){if(g(n)&&n.hasBase(p.BASE_UNITS.ANGLE)&&(n=n.toNumber("rad")),h(n))return new t(r*Math.cos(n),r*Math.sin(n));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")}},t.prototype.toPolar=function(){return{r:Math.sqrt(this.re*this.re+this.im*this.im),phi:Math.atan2(this.im,this.re)}},t.prototype.clone=function(){return new t(this.re,this.im)},t.prototype.equals=function(e){return this.re===e.re&&this.im===e.im},t.prototype.format=function(e){var r="",n=m.format(this.re,e),t=m.format(this.im,e);return r=0==this.im?n:0==this.re?1==this.im?"i":-1==this.im?"-i":t+"i":this.im>0?1==this.im?n+" + i":n+" + "+t+"i":-1==this.im?n+" - i":n+" - "+t.substring(1)+"i"},t.prototype.toString=function(){return this.format()},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))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!=n&&!o.isNumber(n))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!=n?parseFloat(n):1}{var i=n(123),o=i.number,a=i.string;i.array}t.parse=function(e){if(!a.isString(e))return null;var r=e.split(":"),n=r.map(function(e){return parseFloat(e)}),i=n.some(function(e){return isNaN(e)});if(i)return null;switch(n.length){case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[2],n[1]);default:return null}},t.prototype.clone=function(){return new t(this.start,this.end,this.step)},t.isRange=function(e){return e instanceof t},t.prototype.size=function(){var e=0,r=this.start,n=this.step,t=this.end,i=t-r;return o.sign(n)==o.sign(i)?e=Math.ceil(i/n):0==i&&(e=0),isNaN(e)&&(e=0),[e]},t.prototype.min=function(){var e=this.size()[0];return e>0?this.step>0?this.start:this.start+(e-1)*this.step:void 0},t.prototype.max=function(){var e=this.size()[0];return e>0?this.step>0?this.start+(e-1)*this.step:this.start:void 0},t.prototype.forEach=function(e){var r=this.start,n=this.step,t=this.end,i=0;if(n>0)for(;t>r;)e(r,i,this),r+=n,i++;else if(0>n)for(;r>t;)e(r,i,this),r+=n,i++},t.prototype.map=function(e){var r=[];return this.forEach(function(n,t,i){r[t]=e(n,t,i)}),r},t.prototype.toArray=function(){var e=[];return this.forEach(function(r,n){e[n]=r}),e},t.prototype.valueOf=function(){return this.toArray()},t.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)},t.prototype.toString=function(){return this.format()},e.exports=t},function(e,r,n){function t(){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this._ranges=[];for(var e=0,r=arguments.length;r>e;e++){var n=arguments[e];if(n instanceof a)this._ranges.push(n);else if(c(n))this._ranges.push(i(n));else{if(!u(n))throw new TypeError("Ranges must be an Array, Number, or Range");this._ranges.push(i([n,n+1]))}}}function i(e){for(var r=e.length,n=0;r>n;n++)if(!u(e[n])||!f(e[n]))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=n(123),a=n(6),s=o.number,u=s.isNumber,f=s.isInteger,c=Array.isArray;o.array.validateIndex}t.prototype.clone=function(){var e=new t;return e._ranges=o.object.clone(this._ranges),e},t.isIndex=function(e){return e instanceof t},t.create=function(e){var r=new t;return t.apply(r,e),r},t.prototype.size=function l(){for(var l=[],e=0,r=this._ranges.length;r>e;e++){var n=this._ranges[e];l[e]=n.size()[0]}return l},t.prototype.max=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r];e[r]=t.max()}return e},t.prototype.min=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r];e[r]=t.min()}return e},t.prototype.forEach=function(e){for(var r=0,n=this._ranges.length;n>r;r++)e(this._ranges[r],r,this)},t.prototype.range=function(e){return this._ranges[e]||null},t.prototype.isScalar=function(){for(var e=this.size(),r=0,n=e.length;n>r;r++)if(1!==e[r])return!1;return!0},t.prototype.toArray=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r],i=[],o=t.start,a=t.end,s=t.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},t.prototype.valueOf=t.prototype.toArray,t.prototype.toString=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r],i=s.format(t.start);1!=t.step&&(i+=":"+s.format(t.step)),i+=":"+s.format(t.end),e.push(i)}return"["+e.join(", ")+"]"},e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(e instanceof t)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 n=r.isScalar();if(n)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=new t(o(e._data,r,i.length,0));d(a._data)&&1==a._data.length;)a._data=a._data[0],a._size.shift();return a}function o(e,r,n,t){var i=t==n-1,a=r.range(t);return a.map(i?function(r){return x(r,e.length),e[r]}:function(i){x(i,e.length);var a=e[i];return o(a,r,n,t+1)})}function a(e,r,n,i){if(!(r instanceof p))throw new TypeError("Invalid index");var o,a=r.size(),f=r.isScalar();if(n instanceof t?(o=n.size(),n=n.valueOf()):o=h.size(n),f){if(0!=o.length)throw new TypeError("Scalar expected");e.set(r.min(),n,i)}else{if(a.lengthc;c++)n=[n],o.unshift(1);if(!g.deepEqual(a,o))throw new l(a,o);var d=r.max().map(function(e){return e+1});u(e,d,i);var x=a.length,w=0;s(e._data,r,n,x,w)}return e}function s(e,r,n,t,i){var o=i==t-1,a=r.range(i);a.forEach(o?function(r,t){x(r),e[r]=n[t]}:function(o,a){x(o),s(e[o],r,n[a],t,i+1)})}function u(e,r,n){for(var t=g.clone(e._size),i=!1;t.lengtho;o++)r[o]>t[o]&&(t[o]=r[o],i=!0);i&&e.resize(t,n)}function f(e){for(var r=0,n=e.length;n>r;r++){var i=e[r];d(i)?e[r]=f(i):i instanceof t&&(e[r]=f(i._data))}return e}var c=n(123),l=n(120),p=n(7),m=(c.number,c.string),h=c.array,g=c.object,d=Array.isArray,x=h.validateIndex;t.isMatrix=function(e){return e instanceof t},t.prototype.subset=function(e,r,n){switch(arguments.length){case 1:return i(this,e);case 2:case 3:return a(this,e,r,n);default:throw new SyntaxError("Wrong number of arguments")}},t.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,n=0,t=e.length;t>n;n++){var i=e[n];x(i,r.length),r=r[i]}return g.clone(r)},t.prototype.set=function(e,r,n){var t,i;if(!d(e))throw new Error("Array expected");if(e.lengtht;t++){var s=e[t];x(s,a.length),a=a[s]}return s=e[e.length-1],x(s,a.length),a[s]=r,this},t.prototype.resize=function(e,r){return this._size=g.clone(e),this._data=h.resize(this._data,this._size,r),this},t.prototype.clone=function(){var e=new t;return e._data=g.clone(this._data),e._size=g.clone(this._size),e},t.prototype.size=function(){return this._size},t.prototype.map=function(e){var r=this,n=new t,i=[],o=function(n,t){return d(n)?n.map(function(e,r){return i[t]=r,o(e,t+1)}):e(n,i,r)};return n._data=o(this._data,0),n._size=g.clone(this._size),n},t.prototype.forEach=function(e){var r=this,n=[],t=function(i,o){d(i)?i.forEach(function(e,r){n[o]=r,t(e,o+1)}):e(i,n,r)};t(this._data,0)},t.prototype.toArray=function(){return g.clone(this._data)},t.prototype.valueOf=function(){return this._data},t.prototype.format=function(e){return m.format(this._data,e)},t.prototype.toString=function(){return m.format(this._data)},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new Error("Constructor must be called with the new operator");if(null!=e&&!w(e))throw new TypeError("First parameter in Unit constructor must be a number");if(null!=r&&(!y(r)||""==r))throw new TypeError("Second parameter in Unit constructor must be a string");if(null!=r){var n=l(r);if(!n)throw new SyntaxError('Unknown unit "'+r+'"');this.unit=n.unit,this.prefix=n.prefix}else this.unit=UNIT_NONE,this.prefix=b;null!=e?(this.value=this._normalize(e),this.fixPrefix=!1):(this.value=null,this.fixPrefix=!0)}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 N)if(N.hasOwnProperty(r)&&x.endsWith(e,r)){var n=N[r],t=e.length-r.length,i=e.substring(0,t),o=n.prefixes[i];if(void 0!==o)return{unit:n,prefix:o}}return null}var p,m,h,g=n(123),d=g.number,x=g.string,w=g.number.isNumber,y=g.string.isString;t.parse=function(e){if(p=e,m=-1,h="",!y(p))return null;s(),i();var r,n=f();if(n){if(r=c(),s(),i(),h)return null;if(n&&r)try{return new t(Number(n),r)}catch(o){}}else{if(r=c(),s(),i(),h)return null;if(r)try{return new t(null,r)}catch(o){}}return null},t.isUnit=function(e){return e instanceof t},t.prototype.clone=function(){var e=new t;for(var r in this)this.hasOwnProperty(r)&&(e[r]=this[r]);return e},t.prototype._normalize=function(e){return(e+this.unit.offset)*this.unit.value*this.prefix.value},t.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},t.isValuelessUnit=function(e){return null!=l(e)},t.prototype.hasBase=function(e){return this.unit.base===e},t.prototype.equalBase=function(e){return this.unit.base===e.unit.base},t.prototype.equals=function(e){return this.equalBase(e)&&this.value==e.value},t.prototype.to=function(e){var r;if(y(e)){if(r=new t(null,e),!this.equalBase(r))throw new Error("Units do not match");return r.value=this.value,r}if(e instanceof t){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=this.value,r.fixPrefix=!0,r}throw new Error("String or Unit expected as parameter")},t.prototype.toNumber=function(e){var r=this.to(e);return r._unnormalize(r.value,r.prefix.value)},t.prototype.toString=function(){return this.format()},t.prototype.format=function(e){var r,n;if(this.fixPrefix)r=this._unnormalize(this.value),n=null!=this.value?d.format(r,e)+" ":"",n+=this.prefix.name+this.unit.name;else{var t=this._bestPrefix();r=this._unnormalize(this.value,t.value),n=d.format(r,e)+" ",n+=t.name+this.unit.name}return n},t.prototype._bestPrefix=function(){var e=Math.abs(this.value/this.unit.value),r=b,n=Math.abs(Math.log(e/r.value)/Math.LN10-1.2),t=this.unit.prefixes;for(var i in t)if(t.hasOwnProperty(i)){var o=t[i];if(o.scientific){var a=Math.abs(Math.log(e/o.value)/Math.LN10-1.2);n>a&&(r=o,n=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:{}};BASE_UNIT_NONE={},UNIT_NONE={name:"",base:BASE_UNIT_NONE,value:1,offset:0};var N={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},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}},M={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",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 A in M)if(M.hasOwnProperty(A)){var T=N[M[A]],S=Object.create(T);S.name=A,N[A]=S}N.lt=N.l,N.liter=N.litre,N.liters=N.litres,N.lb=N.lbm,N.lbs=N.lbm,t.PREFIXES=v,t.BASE_UNITS=E,t.UNITS=N,e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.math=e,this.doc=r}var i=n(123),o=i.object,a=i.string;t.isHelp=function(e){return e instanceof t},t.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 n=this.math.parser();r+="Examples:\n";for(var i=0;i=r){if(u(e[0])){for(f=i(e),a=[],o=0;on;n++){var a=[];for(r=0;t>r;r++)a.push(e[r][n]);o.push(a)}return o}{var o=n(123),a=n(120),s=n(8),u=o.array.isArray;o.string.isString}r.argsToArray=function(e){var r;return 0==e.length?r=[]:1==e.length?(r=e[0],r instanceof s&&(r=r.valueOf()),u(r)||(r=[r])):r=Array.prototype.slice.apply(e),r},r.isCollection=function(e){return u(e)||e instanceof s},r.deepMap=function f(e,r){return e&&"function"==typeof e.map?e.map(function(e){return f(e,r)}):r(e)},r.deepMap2=function c(e,r,n){var t,i,o;if(u(e))if(u(r)){if(e.length!=r.length)throw new a(e.length,r.length);for(t=[],i=e.length,o=0;i>o;o++)t[o]=c(e[o],r[o],n)}else{if(r instanceof s)return t=c(e,r.valueOf(),n),new s(t);for(t=[],i=e.length,o=0;i>o;o++)t[o]=c(e[o],r,n)}else{if(e instanceof s)return r instanceof s?(t=c(e.valueOf(),r.valueOf(),n),new s(t)):(t=c(e.valueOf(),r,n),new s(t));if(u(r))for(t=[],i=r.length,o=0;i>o;o++)t[o]=c(e,r[o],n);else{if(r instanceof s)return t=c(e,r.valueOf(),n),new s(t);t=n(e,r)}}return t},r.reduce=function(e,r,n){return e instanceof s?new s(t(e.valueOf(),r,n)):t(e,r,n)},r.deepForEach=function l(e,r){e instanceof s&&(e=e.valueOf());for(var n=0,t=e.length;t>n;n++){var i=e[n];u(i)?l(i,r):r(i)}}},function(e,r,n){function t(e,r){if(1!=arguments.length&&2!=arguments.length)throw new F("parse",arguments.length,1,2);if(fr="object"===V(r)?r:{},G(e))return cr=e,p();if(D(e)||e instanceof H)return Y.deepMap(e,function(e){if(!G(e))throw new TypeError("String expected");return cr=e,p()});throw new TypeError("String or matrix expected")}function i(){lr=0,pr=cr.charAt(0)}function o(){lr++,pr=cr.charAt(lr)}function a(){return cr.charAt(lr+1)}function s(){for(hr=ar.NULL,mr="";" "==pr||" "==pr;)o();if("#"==pr)for(;"\n"!=pr&&""!=pr;)o();if(""==pr)return void(hr=ar.DELIMITER);var e=pr+a();if(sr[e])return hr=ar.DELIMITER,mr=e,o(),void o();if(sr[pr])return hr=ar.DELIMITER,mr=pr,void o();if(!c(pr)){if(f(pr)){for(;f(pr)||l(pr);)mr+=pr,o();return void(hr=ur[mr]?ar.DELIMITER:ar.SYMBOL)}for(hr=ar.UNKNOWN;""!=pr;)mr+=pr,o();throw j('Syntax error in part "'+mr+'"')}if(hr=ar.NUMBER,"."==pr)mr+=pr,o(),l(pr)||(hr=ar.UNKNOWN);else{for(;l(pr);)mr+=pr,o();"."==pr&&(mr+=pr,o())}for(;l(pr);)mr+=pr,o();if("E"==pr||"e"==pr)for(mr+=pr,o(),("+"==pr||"-"==pr)&&(mr+=pr,o()),l(pr)||(hr=ar.UNKNOWN);l(pr);)mr+=pr,o()}function u(){for(;"\n"==mr;)s()}function f(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"==e}function c(e){return e>="0"&&"9">=e||"."==e}function l(e){return e>="0"&&"9">=e}function p(){i(),s();var e=m();if(""!=mr)throw hr==ar.DELIMITER?P("Unknown operator "+mr):j('Unexpected part "'+mr+'"');return e}function m(){var e,r,n;if(""==mr)return new $("undefined","undefined");for("\n"!=mr&&";"!=mr&&(e=h());"\n"==mr||";"==mr;)r||(r=new Q,e&&(n=";"!=mr,r.add(e,n))),s(),"\n"!=mr&&";"!=mr&&""!=mr&&(e=h(),n=";"!=mr,r.add(e,n));return r?r:e}function h(){var e=g(),r="ans";return new Z(r,e)}function g(){if(hr==ar.SYMBOL&&"function"==mr)throw j('Deprecated keyword "function". Functions can now be assigned without it, like "f(x) = x^2".');return d()}function d(){var e,r,n,t=x();if("="==mr){if(t instanceof nr)return e=t.name,s(),n=d(),new Z(e,n);if(t instanceof J)return s(),n=d(),new or(t,n);if(t instanceof er){var i=!0;if(r=[],t.object instanceof nr?(e=t.object.name,t.params.forEach(function(e,n){e instanceof nr?r[n]=e.name:i=!1})):i=!1,i)return s(),n=d(),new K(e,r,n)}throw j("Invalid left hand side of assignment operator =")}return t}function x(){var e,r=[];if(e=":"==mr?new $("number","1"):w(),":"==mr){for(r.push(e);":"==mr;)s(),r.push(")"==mr||"]"==mr||","==mr||""==mr?new nr("end"):w());if(3==r.length){var n=r[2];r[2]=r[1],r[1]=n}e=new rr(r)}return e}function w(){var e=y();return e}function y(){for(var e=v();"?"==mr;){s();var r=[e];if(r.push(v()),":"!=mr)throw j("False part of conditional expression expected");s(),r.push(y()),e=new tr(["?",":"],"ifElse",r)}return e}function v(){var e,r,n,t,i;for(e=b(),r={"==":"equal","!=":"unequal","<":"smaller",">":"larger","<=":"smallereq",">=":"largereq"};mr in r;)n=mr,t=r[n],s(),i=[e,b()],e=new X(n,t,i);return e}function b(){var e,r,n,t,i;for(e=E(),r={to:"to","in":"to"};mr in r;)n=mr,t=r[n],s(),i=[e,E()],e=new X(n,t,i);return e}function E(){var e,r,n,t,i;for(e=N(),r={"+":"add","-":"subtract"};mr in r;)n=mr,t=r[n],s(),i=[e,N()],e=new X(n,t,i);return e}function N(){var e,r,n,t,i;for(e=M(),r={"*":"multiply",".*":"emultiply","/":"divide","./":"edivide","%":"mod",mod:"mod"};mr in r;)n=mr,t=r[n],s(),i=[e,M()],e=new X(n,t,i);return e}function M(){var e,r;return e=A(),(hr==ar.SYMBOL||"in"==mr)&&(r=mr,s(),e=new ir(e,r)),e}function A(){var e,r,n;return"-"==mr?(e=mr,r="unary",s(),n=[A()],new X(e,r,n)):T()}function T(){var e,r,n,t;return e=S(),("^"==mr||".^"==mr)&&(r=mr,n="^"==r?"pow":"epow",s(),t=[e,T()],e=new X(r,n,t)),e}function S(){var e,r,n,t,i;for(e=O(),r={"!":"factorial","'":"transpose"};mr in r;)n=mr,t=r[n],s(),i=[e],e=new X(n,t,i);return e}function O(){var e,r=[];if(hr==ar.SYMBOL&&fr[mr]){if(e=fr[mr],s(),"("==mr){if(r=[],s(),")"!=mr)for(r.push(x());","==mr;)s(),r.push(x());if(")"!=mr)throw j("Parenthesis ) expected");s()}return new e(r)}return C()}function C(){var e,r;return hr==ar.SYMBOL||hr==ar.DELIMITER&&mr in ur?(r=mr,s(),e=new nr(r),U(e)):q()}function U(e){for(var r,n;"("==mr||"["==mr;){if(r=mr,n=[],s(),")"!=mr&&"]"!=mr)for(n.push(x());","==mr;)s(),n.push(x());if("("==r&&")"!=mr)throw j("Parenthesis ) expected");if("["==r&&"]"!=mr)throw j("Parenthesis ] expected");s(),e="("==r?new er(e,n):new J(e,n)}return e}function q(){var e,r,n;if('"'==mr){for(r="",n="";""!=pr&&('"'!=pr||"\\"==n);)r+=pr,n=pr,o();if(s(),'"'!=mr)throw j('End of string " expected');return s(),e=new $("string",r),e=U(e)}return B()}function B(){var e,r,n,t;if("["==mr){if(s(),u(),"]"!=mr){var i=z();if(";"==mr){for(n=1,r=[i];";"==mr;)s(),u(),r[n]=z(),n++,u();if("]"!=mr)throw j("End of matrix ] expected");s(),t=r[0].nodes.length;for(var o=1;n>o;o++)if(r[o].nodes.length!=t)throw P("Column dimensions mismatch ("+r[o].nodes.length+" != "+t+")");e=new W(r)}else{if("]"!=mr)throw j("End of matrix ] expected");s(),e=i}}else s(),e=new W([]);return e=U(e)}return I()}function z(){for(var e=[d()],r=1;","==mr;)s(),u(),e[r]=d(),r++,u();return new W(e)}function I(){var e,r;return hr==ar.NUMBER?(r=mr,s(),"i"==mr||"I"==mr?(s(),e=new $("complex",r)):e=new $("number",r),e=U(e)):_()}function _(){var e;if("("==mr){if(s(),e=d(),")"!=mr)throw j("Parenthesis ) expected");return s(),e=U(e)}return R()}function R(){throw j(""==mr?"Unexpected end of expression":"Value expected")}function L(){return lr-mr.length+1}function j(e){var r=L(),n=new SyntaxError(e+" (char "+r+")");return n["char"]=r,n}function P(e){var r=L(),n=new Error(e+" (char "+r+")");return n["char"]=r,n}var k=n(123),F=n(119),G=k.string.isString,D=Array.isArray,V=k.types.type,H=(n(5),n(8)),Y=(n(9),n(11)),W=n(124),Z=n(125),Q=n(126),$=n(127),K=n(128),J=n(129),X=n(130),er=n(131),rr=n(132),nr=n(133),tr=n(134),ir=n(135),or=n(136),ar={NULL:0,DELIMITER:1,NUMBER:2,SYMBOL:3,UNKNOWN:4},sr={",":!0,"(":!0,")":!0,"[":!0,"]":!0,'"':!0,"\n":!0,";":!0,"+":!0,"-":!0,"*":!0,".*":!0,"/":!0,"./":!0,"%":!0,"^":!0,".^":!0,"!":!0,"'":!0,"=":!0,":":!0,"?":!0,"==":!0,"!=":!0,"<":!0,">":!0,"<=":!0,">=":!0},ur={mod:!0,to:!0,"in":!0},fr={},cr="",lr=0,pr="",mr="",hr=ar.NULL;e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if("object"!=typeof e)throw new TypeError("Object expected as parameter math");this.math=e,this.scope={}}var i=n(12);t.prototype.parse=function(e){return i(e)},t.prototype.compile=function(e){return i(e).compile(this.math)},t.prototype.eval=function(e){return i(e).compile(this.math).eval(this.scope)},t.prototype.get=function(e){return this.scope[e]},t.prototype.set=function(e,r){return this.scope[e]=r},t.prototype.remove=function(e){delete this.scope[e]},t.prototype.clear=function(){for(var e in this.scope)this.scope.hasOwnProperty(e)&&delete this.scope[e]},e.exports=t},function(e,r,n){r.ArrayNode=n(124),r.AssignmentNode=n(125),r.BlockNode=n(126),r.ConstantNode=n(127),r.IndexNode=n(129),r.FunctionNode=n(128),r.Node=n(137),r.OperatorNode=n(130),r.ParamsNode=n(131),r.RangeNode=n(132),r.SymbolNode=n(133),r.TernaryNode=n(134),r.UnitNode=n(135),r.UpdateNode=n(136)},function(e,r,n){r.e=n(139),r.E=n(139),r["false"]=n(140),r.i=n(141),r.Infinity=n(142),r.LN2=n(143),r.LN10=n(144),r.LOG2E=n(145),r.LOG10E=n(146),r.NaN=n(147),r.pi=n(148),r.PI=n(148),r.SQRT1_2=n(149),r.SQRT2=n(150),r.tau=n(151),r["true"]=n(152),r.abs=n(157),r.add=n(158),r.ceil=n(159),r.compare=n(160),r.cube=n(161),r.divide=n(162),r.edivide=n(163),r.emultiply=n(164),r.epow=n(165),r.equal=n(166),r.exp=n(167),r.fix=n(168),r.floor=n(169),r.gcd=n(170),r.larger=n(171),r.largereq=n(172),r.lcm=n(173),r.log=n(174),r.log10=n(175),r.mod=n(176),r.multiply=n(177),r.norm=n(178),r.pow=n(179),r.round=n(180),r.sign=n(181),r.smaller=n(182),r.smallereq=n(183),r.sqrt=n(184),r.square=n(185),r.subtract=n(186),r.unary=n(187),r.unequal=n(188),r.xgcd=n(189),r.arg=n(190),r.conj=n(191),r.re=n(192),r.im=n(193),r.bignumber=n(194),r["boolean"]=n(195),r.complex=n(196),r.index=n(197),r.matrix=n(198),r.number=n(199),r.string=n(200),r.unit=n(201),r.eval=n(202),r.help=n(203),r.concat=n(204),r.det=n(205),r.diag=n(206),r.eye=n(207),r.inv=n(208),r.ones=n(209),r.range=n(210),r.resize=n(211),r.size=n(212),r.squeeze=n(213),r.subset=n(214),r.transpose=n(215),r.zeros=n(216),r.combinations=n(217),r.distribution=n(218),r.factorial=n(219),r.permutations=n(220),r.pickRandom=n(221),r.random=n(222),r.randomInt=n(223),r.max=n(224),r.mean=n(225),r.median=n(226),r.min=n(227),r.prod=n(228),r.std=n(229),r.sum=n(230),r["var"]=n(231),r.acos=n(232),r.asin=n(233),r.atan=n(234),r.atan2=n(235),r.cos=n(236),r.cosh=n(237),r.cot=n(238),r.coth=n(239),r.csc=n(240),r.csch=n(241),r.sec=n(242),r.sech=n(243),r.sin=n(244),r.sinh=n(245),r.tan=n(246),r.tanh=n(247),r.to=n(248),r.clone=n(249),r.map=n(250),r.forEach=n(251),r.format=n(252),r.ifElse=n(253),r["import"]=n(254),r["typeof"]=n(255)},function(e,r,n){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 t(e,n){var t=Array.prototype.slice;r.prototype[e]="function"==typeof n?function(){var e=[this.value].concat(t.call(arguments,0));return new r(n.apply(this,e))}:new r(n)}var i=n(138);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=t;for(var o in e)e.hasOwnProperty(o)&&t(o,e[o]);return r}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(12),i=n(11),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 t(r).compile(e);if(a(r))return i.deepMap(r,function(r){return t(r).compile(e)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(12),i=n(11),o=r.string.isString,a=i.isCollection;e.eval=function(r,n){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("eval",arguments.length,1,2);if(n=n||{},o(r))return t(r).compile(e).eval(n);if(a(r))return i.deepMap(r,function(r){return t(r).compile(e).eval(n)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,n){e.exports=function(e){var r=n(10);e.help=function(n){if(1!=arguments.length)throw new SyntaxError("Wrong number of arguments in function help ("+arguments.length+" provided, 1 expected)");var t=null;if(n instanceof String||"string"==typeof n)t=n;else{var i;for(i in e)if(e.hasOwnProperty(i)&&n===e[i]){t=i;break}}var o=e.expression.docs[t];if(!t||!o)throw new Error('No documentation found on "'+t+'"');return new r(e,o)}}},function(e,r,n){e.exports=function(e){var r=n(12);e.parse=function(){return r.apply(r,arguments)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(11)),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 t)return r.abs();if(f(r))return o.deepMap(r,c);if(s(r))return Math.abs(r);throw new e.error.UnsupportedTypeError("abs",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(9)),a=n(11),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,n){if(2!=arguments.length)throw new e.error.ArgumentsError("add",arguments.length,2);if(u(r)){if(u(n))return r+n;if(c(n))return new i(r+n.re,n.im)}if(c(r)){if(c(n))return new i(r.re+n.re,r.im+n.im);if(u(n))return new i(r.re+n,r.im)}if(l(r)&&l(n)){if(null==r.value)throw new Error("Parameter x contains a unit with undefined value");if(null==n.value)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var o=r.clone();return o.value+=n.value,o.fixPrefix=!1,o}if(r instanceof t)return u(n)?n=t.convert(n):s(n)&&(n=new t(n?1:0)),n instanceof t?r.plus(n):m(r.toNumber(),n);if(n instanceof t)return u(r)?r=t.convert(r):s(r)&&(r=new t(r?1:0)),r instanceof t?r.plus(n):m(r,n.toNumber());if(p(r)||p(n))return a.deepMap2(r,n,m);if(f(r)||f(n))return r+n;if(s(r))return m(+r,n);if(s(n))return m(r,+n);throw new e.error.UnsupportedTypeError("add",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.ceil();if(u(r))return o.deepMap(r,c);if(s(r))return Math.ceil(r);throw new e.error.UnsupportedTypeError("ceil",e["typeof"](r))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.compare=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("compare",arguments.length,2);if(u(n)&&u(t))return f(n,t,r.epsilon)?0:n>t?1:-1;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?new i(n.cmp(t)):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?new i(n.cmp(t)):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value>t.value?1:n.valuet?1:t>n?-1:0;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("compare",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.times(r).times(r);if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("cube",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=r.re*r.re+r.im*r.im;return 0!=n?new o((e.re*r.re+e.im*r.im)/n,(e.im*r.re-e.re*r.im)/n):new o(0!=e.re?e.re/0:0,0!=e.im?e.im/0:0)}var t=n(123),i=e.type.BigNumber,o=n(5),a=(n(8),n(9)),s=n(11),u=t.number.isNumber,f=t["boolean"].isBoolean,c=o.isComplex,l=a.isUnit,p=s.isCollection;e.divide=function m(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("divide",arguments.length,2);if(u(n)){if(u(t))return n/t;if(c(t))return r(new o(n,0),t)}if(c(n)){if(c(t))return r(n,t);if(u(t))return r(n,new o(t,0))}if(n instanceof i)return u(t)?t=i.convert(t):f(t)&&(t=new i(t?1:0)),t instanceof i?n.div(t):m(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):f(n)&&(n=new i(n?1:0)),n instanceof i?n.div(t):m(n,t.toNumber());if(l(n)&&u(t)){var a=n.clone();return a.value/=t,a}if(p(n))return p(t)?e.multiply(n,e.inv(t)):s.deepMap2(n,t,m);if(p(t))return e.multiply(n,e.inv(t));if(f(n))return m(+n,t);if(f(t))return m(n,+t);throw new e.error.UnsupportedTypeError("divide",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(11);e.edivide=function(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("edivide",arguments.length,2);return r.deepMap2(n,t,e.divide)}}},function(e,r,n){e.exports=function(e){var r=(n(123),n(11));e.emultiply=function(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("emultiply",arguments.length,2);return r.deepMap2(n,t,e.multiply)}}},function(e,r,n){e.exports=function(e){var r=(n(123),n(11));e.epow=function(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("epow",arguments.length,2);return r.deepMap2(n,t,e.pow)}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.equal=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("equal",arguments.length,2);if(u(n)){if(u(t))return f(n,t,r.epsilon);if(p(t))return f(n,t.re,r.epsilon)&&f(t.im,0,r.epsilon)}if(p(n)){if(u(t))return f(n.re,t,r.epsilon)&&f(n.im,0,r.epsilon);if(p(t))return f(n.re,t.re,r.epsilon)&&f(n.im,t.im,r.epsilon)}if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.eq(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.eq(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value==t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n==t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);throw new e.error.UnsupportedTypeError("equal",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(11)),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 n=Math.exp(r.re);return new i(n*Math.cos(r.im),n*Math.sin(r.im))}if(r instanceof t)return r.exp();if(f(r))return o.deepMap(r,c);if(s(r))return Math.exp(r);throw new e.error.UnsupportedTypeError("exp",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.isNegative()?r.ceil():r.floor();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("fix",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.floor();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("floor",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=r.number.isNumber,a=r["boolean"].isBoolean,s=r.number.isInteger,u=i.isCollection;e.gcd=function f(){var r,n=arguments[0],c=arguments[1];if(2==arguments.length){if(o(n)&&o(c)){if(!s(n)||!s(c))throw new Error("Parameters in function gcd must be integer numbers");for(;0!=c;)r=n%c,n=c,c=r;return 0>n?-n:n}if(u(n)||u(c))return i.deepMap2(n,c,f);if(n instanceof t)return f(n.toNumber(),c);if(c instanceof t)return f(n,c.toNumber());if(a(n))return f(+n,c);if(a(c))return f(n,+c);throw new e.error.UnsupportedTypeError("gcd",e["typeof"](n),e["typeof"](c))}if(arguments.length>2){for(var l=1;lt;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.gt(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.gt(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value>t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n>t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("larger",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.largereq=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("largereq",arguments.length,2);if(u(n)&&u(t))return f(n,t,r.epsilon)||n>t;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.gte(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.gte(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value>=t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n>=t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("largereq",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=r.number.isNumber,a=r["boolean"].isBoolean,s=r.number.isInteger,u=i.isCollection;e.lcm=function f(){var r,n=arguments[0],c=arguments[1];if(2==arguments.length){if(o(n)&&o(c)){if(!s(n)||!s(c))throw new Error("Parameters in function lcm must be integer numbers");if(0==n||0==c)return 0;for(var l=n*c;0!=c;)r=c,c=n%r,n=r;return Math.abs(l/n)}if(u(n)||u(c))return i.deepMap2(n,c,f);if(a(n))return f(+n,c);if(a(c))return f(n,+c);if(n instanceof t)return f(n.toNumber(),c);if(c instanceof t)return f(n,c.toNumber());throw new e.error.UnsupportedTypeError("lcm",e["typeof"](n),e["typeof"](c))}if(arguments.length>2){for(var p=1;p=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 t)return r.isNegative()?c(r.toNumber()):r.ln();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("log",e["typeof"](r))}if(2==arguments.length)return e.divide(c(r),c(n));throw new e.error.ArgumentsError("log",arguments.length,1,2)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)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))return c(+r);throw new e.error.UnsupportedTypeError("log10",e["typeof"](r))}}},function(e,r,n){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 t=n(123),i=e.type.BigNumber,o=n(11),a=t.number.isNumber,s=t["boolean"].isBoolean,u=o.isCollection;e.mod=function f(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("mod",arguments.length,2);if(a(n)&&a(t))return r(n,t);if(n instanceof i)return a(t)?t=i.convert(t):s(t)&&(t=new i(t?1:0)),t instanceof i?t.isZero()?n:n.mod(t):f(n.toNumber(),t);if(t instanceof i)return a(n)?n=i.convert(n):s(n)&&(n=new i(n?1:0)),n instanceof i?t.isZero()?n:n.mod(t):f(n,t.toNumber());if(u(n)||u(t))return o.deepMap2(n,t,f);if(s(n))return f(+n,t);if(s(t))return f(n,+t);throw new e.error.UnsupportedTypeError("mod",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){function r(r,n){for(var t=[],i=r.length,o=n[0].length,a=r[0].length,s=0;i>s;s++){t[s]=[];for(var u=0;o>u;u++){for(var f=null,c=0;a>c;c++){var l=e.multiply(r[s][c],n[c][u]);f=null===f?l:e.add(f,l)}t[s][u]=f}}return t}function t(r,n){for(var t=[],i=n.length,o=n[0].length,a=0;o>a;a++){for(var s=null,u=0;i>u;u++){var f=e.multiply(r[u],n[u][a]);s=0===u?f:e.add(s,f)}t[a]=s}return t}function i(r,n){for(var t=[],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],n[u]);s=0===u?f:e.add(s,f)}t[a]=s}return t}function o(r,n){var t=r.length;if(!t)throw new Error("Cannot multiply two empty vectors");for(var i=0,o=0;t>o;o++)i=e.add(i,e.multiply(r[o],n[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=n(123),u=e.type.BigNumber,f=n(5),c=n(8),l=n(9),p=n(11),m=s.array,h=s.number.isNumber,g=s["boolean"].isBoolean,d=f.isComplex,x=Array.isArray,w=l.isUnit;e.multiply=function y(n,s){var l;if(2!=arguments.length)throw new e.error.ArgumentsError("multiply",arguments.length,2);if(h(n)){if(h(s))return n*s;if(d(s))return a(new f(n,0),s);if(w(s))return l=s.clone(),l.value*=n,l}if(d(n)){if(h(s))return a(n,new f(s,0));if(d(s))return a(n,s)}if(n instanceof u)return h(s)?s=u.convert(s):g(s)&&(s=new u(s?1:0)),s instanceof u?n.times(s):y(n.toNumber(),s);if(s instanceof u)return h(n)?n=u.convert(n):g(n)&&(n=new u(n?1:0)),n instanceof u?n.times(s):y(n,s.toNumber());if(w(n)&&h(s))return l=n.clone(),l.value*=s,l;if(x(n)){if(x(s)){var v=m.size(n),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(n,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 t(n,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(n,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(n,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?new c(y(n,s.valueOf())):p.deepMap2(n,s,y)}if(n instanceof c)return new c(s instanceof c?y(n.valueOf(),s.valueOf()):y(n.valueOf(),s));if(x(s))return p.deepMap2(n,s,y);if(s instanceof c)return new c(p.deepMap2(n,s.valueOf(),y));if(g(n))return y(+n,s);if(g(s))return y(n,+s);throw new e.error.UnsupportedTypeError("multiply",e["typeof"](n),e["typeof"](s))}}},function(e,r,n){e.exports=function(e){{var r=n(123),t=n(153),i=e.type.BigNumber,o=n(5),a=n(8),s=n(11),u=r.number.isNumber,f=r["boolean"].isBoolean,c=o.isComplex;s.isCollection}e.norm=function l(r,n){if(arguments.length<1||arguments.length>2)throw new e.error.ArgumentsError("abs",arguments.length,1,2);if(u(r))return Math.abs(r);if(c(r))return Math.sqrt(r.re*r.re+r.im*r.im);if(r instanceof i)return r.abs();if(f(r))return Math.abs(r);if(isArray(r)){var o=t.size(r);if(null==n&&(n=2),1==o.length){if(n===Number.POSITIVE_INFINITY||"inf"===n){var s;return e.forEach(r,function(r){var n=e.abs(r);(!s||e.larger(n,s))&&(s=n)}),s}if(n===Number.NEGATIVE_INFINITY||"-inf"===n){var s;return e.forEach(r,function(r){var n=e.abs(r);(!s||e.smaller(n,s))&&(s=n)}),s}if("fro"===n)return l(r);if(u(n)&&!isNaN(n)){if(!e.equal(n,0)){var s=0;return e.forEach(r,function(r){s=e.add(e.pow(e.abs(r),n),s)}),e.pow(s,1/n)}return Number.POSITIVE_INFINITY}throw new Error("Unsupported parameter value")}if(2==o.length){if(1==n){for(var p=[],m=0;m=0?Math.pow(n,t):r(new o(n,0),new o(t,0));if(p(t))return r(new o(n,0),t)}if(p(n)){if(u(t))return r(n,new o(t,0));if(p(t))return r(n,t)}if(n instanceof i)return u(t)?t=i.convert(t):f(t)&&(t=new i(t?1:0)),t instanceof i?t.isInteger()&&!n.isNegative()?n.pow(t):m(n.toNumber(),t.toNumber()):m(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):f(n)&&(n=new i(n?1:0)),n instanceof i?t.isInteger()&&!n.isNegative()?n.pow(t):m(n.toNumber(),t.toNumber()):m(n,t.toNumber());if(c(n)){if(!u(t)||!l(t)||0>t)throw new TypeError("For A^b, b must be a positive integer (value is "+t+")");var h=s.size(n);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=n;t>=1;)1==(1&t)&&(g=e.multiply(d,g)),t>>=1,d=e.multiply(d,d);return g}if(n instanceof a)return new a(m(n.valueOf(),t));if(f(n))return m(+n,t);if(f(t))return m(n,+t);throw new e.error.UnsupportedTypeError("pow",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=Math.pow(10,r);return Math.round(e*n)/n}var t=n(123),i=e.type.BigNumber,o=n(5),a=n(11),s=t.number.isNumber,u=t.number.isInteger,f=t["boolean"].isBoolean,c=o.isComplex,l=a.isCollection;e.round=function p(n,t){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("round",arguments.length,1,2);if(void 0==t){if(s(n))return Math.round(n);if(c(n))return new o(Math.round(n.re),Math.round(n.im));if(n instanceof i)return n.toDecimalPlaces(0);if(l(n))return a.deepMap(n,p);if(f(n))return Math.round(n);throw new e.error.UnsupportedTypeError("round",e["typeof"](n))}if(!s(t)||!u(t)){if(!(t instanceof i)){if(f(t))return p(n,+t);throw new TypeError("Number of decimals in function round must be an integer")}t=parseFloat(t.valueOf())}if(0>t||t>15)throw new Error("Number of decimals in function round must be in te range of 0-15");if(s(n))return r(n,t);if(c(n))return new o(r(n.re,t),r(n.im,t));if(n instanceof i)return n.toDecimalPlaces(t);if(l(n)||l(t))return a.deepMap2(n,t,p);if(f(n))return p(+n,t);throw new e.error.UnsupportedTypeError("round",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=Math.sqrt(r.re*r.re+r.im*r.im);return new i(r.re/n,r.im/n)}if(r instanceof t)return new t(r.cmp(0));if(c(r))return o.deepMap(r,l);if(u(r))return a.sign(r);throw new e.error.UnsupportedTypeError("sign",e["typeof"](r))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.smaller=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("smaller",arguments.length,2);if(u(n)&&u(t))return!f(n,t,r.epsilon)&&t>n;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.lt(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.lt(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.valuen;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("smaller",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.smallereq=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("smallereq",arguments.length,2);if(u(n)&&u(t))return f(n,t,r.epsilon)||t>n;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.lte(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.lte(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value<=t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return t>=n;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("smallereq",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=Math.sqrt(r.re*r.re+r.im*r.im);return r.im>=0?new i(.5*Math.sqrt(2*(n+r.re)),.5*Math.sqrt(2*(n-r.re))):new i(.5*Math.sqrt(2*(n+r.re)),-.5*Math.sqrt(2*(n-r.re)))}if(r instanceof t)return r.isNegative()?c(r.toNumber()):r.sqrt();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("sqrt",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.times(r);if(f(r))return o.deepMap(r,c);if(s(r))return r*r;throw new e.error.UnsupportedTypeError("square",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(9)),a=n(11),s=r["boolean"].isBoolean,u=r.number.isNumber,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.subtract=function p(r,n){if(2!=arguments.length)throw new e.error.ArgumentsError("subtract",arguments.length,2);if(u(r)){if(u(n))return r-n;if(f(n))return new i(r-n.re,-n.im)}else if(f(r)){if(u(n))return new i(r.re-n,r.im);if(f(n))return new i(r.re-n.re,r.im-n.im)}if(r instanceof t)return u(n)?n=t.convert(n):s(n)&&(n=new t(n?1:0)),n instanceof t?r.minus(n):p(r.toNumber(),n);if(n instanceof t)return u(r)?r=t.convert(r):s(r)&&(r=new t(r?1:0)),r instanceof t?r.minus(n):p(r,n.toNumber());if(c(r)&&c(n)){if(null==r.value)throw new Error("Parameter x contains a unit with undefined value");if(null==n.value)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var o=r.clone();return o.value-=n.value,o.fixPrefix=!1,o}if(l(r)||l(n))return a.deepMap2(r,n,p);if(s(r))return p(+r,n);if(s(n))return p(r,+n);throw new e.error.UnsupportedTypeError("subtract",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.unary=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("unary",arguments.length,1);if(s(r))return-r;if(f(r))return new i(-r.re,-r.im);if(r instanceof t)return r.neg();if(c(r)){var n=r.clone();return n.value=-r.value,n}if(l(r))return a.deepMap(r,p);if(u(r))return-r;throw new e.error.UnsupportedTypeError("unary",e["typeof"](r))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.unequal=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("unequal",arguments.length,2);if(u(n)){if(u(t))return!f(n,t,r.epsilon);if(p(t))return!f(n,t.re,r.epsilon)||!f(t.im,0,r.epsilon)}if(p(n)){if(u(t))return!f(n.re,t,r.epsilon)||!f(n.im,0,r.epsilon);if(p(t))return!f(n.re,t.re,r.epsilon)||!f(n.im,t.im,r.epsilon)}if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?!n.eq(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?!n.eq(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value!=t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n!=t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);throw new e.error.UnsupportedTypeError("unequal",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){function r(e,r){for(var n,t,i,o=0,a=1,s=1,u=0;r;)t=Math.floor(e/r),i=e%r,n=o,o=a-t*o,a=n,n=s,s=u-t*s,u=n,e=r,r=i;return 0>e?[-e,-a,-u]:[e,e?a:0,u]}var t=n(123),i=e.type.BigNumber,o=t.number.isNumber,a=t["boolean"].isBoolean,s=t.number.isInteger;e.xgcd=function u(n,t){if(2==arguments.length){if(o(n)&&o(t)){if(!s(n)||!s(t))throw new Error("Parameters in function xgcd must be integer numbers");return r(n,t)}if(n instanceof i)return u(n.toNumber(),t);if(t instanceof i)return u(n,t.toNumber());if(a(n))return u(+n,t);if(a(t))return u(n,+t);throw new e.error.UnsupportedTypeError("xgcd",e["typeof"](n),e["typeof"](t))}throw new SyntaxError("Function xgcd expects two arguments")}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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))return c(+r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("arg",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t?new t(r):c(r)?new i(r.re,-r.im):f(r)?o.deepMap(r,l):u(r)?+r:a.clone(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t?new t(r):c(r)?r.re:f(r)?o.deepMap(r,l):u(r)?+r:a.clone(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t?new t(0):f(r)?r.im:u(r)?o.deepMap(r,c):s(r)?0:0}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),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 t||a(r)||s(r))return new t(r);if(u(r))return new t(+r);if(o(r))return i.deepMap(r,f);if(0==arguments.length)return new t(0);throw new e.error.UnsupportedTypeError("bignumber",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),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)return!1;if(r instanceof Boolean)return 1==r;if(a(r))return 0!==r;if(r instanceof t)return!r.isZero();if(s(r)){var n=r.toLowerCase();if("true"===n)return!0;if("false"===n)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,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return new i(r.toNumber(),0);if(f(r))return r.clone();if(u(r)){var n=i.parse(r);if(n)return n;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 t&&(l=l.toNumber()),p instanceof t&&(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,n){e.exports=function(e){var r=(n(123),e.type.BigNumber),t=n(7);e.index=function(){var e=new t,n=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});return t.apply(e,n),e}}},function(e,r,n){e.exports=function(e){var r=(n(123),n(8));e.matrix=function(n){if(arguments.length>1)throw new e.error.ArgumentsError("matrix",arguments.length,0,1);return new r(n)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=i.isCollection,a=r.number.isNumber,s=r["boolean"].isBoolean,u=r.string.isString;e.number=function f(r){switch(arguments.length){case 0:return 0;case 1:if(o(r))return i.deepMap(r,f);if(r instanceof t)return r.toNumber();if(u(r)){var n=Number(r);if(isNaN(n)&&(n=Number(r.valueOf())),isNaN(n))throw new SyntaxError(r.toString()+" is no valid number");return n}if(s(r))return r+0;if(a(r))return r;throw new e.error.UnsupportedTypeError("number",e["typeof"](r));default:throw new e.error.ArgumentsError("number",arguments.length,0,1)}}}},function(e,r,n){e.exports=function(e){var r=n(13);e.parser=function(){return new r(e)}}},function(e){e.exports=function(e){e.select=function(r){return new e.chaining.Selector(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(11),i=r.number,o=r.number.isNumber,a=t.isCollection;e.string=function s(r){switch(arguments.length){case 0:return"";case 1:return o(r)?i.format(r):a(r)?t.deepMap(r,s):null===r?"null":r.toString();default:throw new e.error.ArgumentsError("string",arguments.length,0,1)}}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(9),o=n(11),a=o.isCollection,s=r.string.isString;e.unit=function u(r){switch(arguments.length){case 1:var n=arguments[0];if(n instanceof i)return n.clone();if(s(n)){if(i.isValuelessUnit(n))return new i(null,n);var f=i.parse(n);if(f)return f;throw new SyntaxError('String "'+n+'" 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 t?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,n){e.exports=function(e){function r(n,t,i,o){if(i>o){if(n.length!=t.length)throw new e.error.DimensionError(n.length,t.length);for(var a=[],s=0;sn;n++){var h=arguments[n];if(h instanceof i&&(p=!0),n==o-1&&u(h)){if(t=l,l=h,!f(l)||0>l)throw new TypeError("Dimension number must be a positive integer (dim = "+l+")");if(n>0&&l>t)throw new e.error.DimensionError(l,t,">")}else{if(!c(h))throw new e.error.UnsupportedTypeError("concat",e["typeof"](h));var g=a.clone(h).valueOf(),d=s.size(h.valueOf());if(m[n]=g,t=l,l=d.length-1,n>0&&l!=t)throw new e.error.DimensionError(l,t)}}if(0==m.length)throw new SyntaxError("At least one matrix expected");for(var x=m.shift();m.length;)x=r(x,m.shift(),l,0);return p?new i(x):x}}},function(e,r,n){e.exports=function(e){function r(r,n){function t(r){var n,t,i=new Array(r.length),o=0;for(n=1;nt;t++)i[n][t]=0;for(t=n+1;ta;a++)i=e.multiply(t(i),r);return n%2==0?e.unary(i[0][0]):i[0][0]}var t=n(123),i=n(8),o=t.object,a=t.string;e.det=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("det",arguments.length,1);var t;switch(n instanceof i?t=n.size():n instanceof Array?(n=new i(n),t=n.size()):t=[],t.length){case 0:return o.clone(n);case 1:if(1==t[0])return o.clone(n.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+a.format(t)+")");case 2:var s=t[0],u=t[1];if(s==u)return r(n.clone().valueOf(),s,u);throw new RangeError("Matrix must be square (size: "+a.format(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+a.format(t)+")")}}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(8),o=r.object,a=r.array.isArray,s=r.number.isNumber,u=r.number.isInteger;e.diag=function(r,n){var f,c,l,p;if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("diag",arguments.length,1,2);if(n){if(n instanceof t&&(n=n.toNumber()),!s(n)||!u(n))throw new TypeError("Second parameter in function diag must be an integer")}else n=0;var m,h=n>0?n:0,g=0>n?-n: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 x=new i,w=c[0]instanceof t?new t(0):0;for(x.resize([c.length+g,c.length+h],w),f=x.valueOf(),p=c.length,l=0;p>l;l++)f[l+g][l+h]=o.clone(c[l]);return m?x.valueOf():x;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,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(8),a=n(11),s=t.number.isNumber,u=t.number.isInteger,f=Array.isArray;e.eye=function(n){var t=a.argsToArray(arguments),c=n instanceof o?!0:f(n)?!1:"matrix"===r.matrix;if(0==t.length)return c?new o:[];if(1==t.length)t[1]=t[0];else if(t.length>2)throw new e.error.ArgumentsError("eye",t.length,0,2);var l=t[0],p=t[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;t=t.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(t,d);for(var x=e.min(t),w=h.valueOf(),y=0;x>y;y++)w[y][y]=g;return c?h:h.valueOf()}}},function(e,r,n){e.exports=function(e){function r(r,n,t){var i,o,a,s,u;if(1==n){if(s=r[0][0],0==s)throw Error("Cannot calculate inverse, determinant is zero");return[[e.divide(1,s)]]}if(2==n){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.unary(r[0][1]),f)],[e.divide(e.unary(r[1][0]),f),e.divide(r[0][0],f)]]}var c=r.concat();for(i=0;n>i;i++)c[i]=c[i].concat();for(var l=e.eye(n).valueOf(),p=0;t>p;p++){for(i=p;n>i&&0==c[i][p];)i++;if(i==n||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;n>i;i++){var g=c[i],d=l[i];if(i!=p){if(0!=g[p]){for(a=e.divide(e.unary(g[p]),m[p]),o=p;t>o;o++)g[o]=e.add(g[o],e.multiply(a,m[o]));for(o=0;t>o;o++)d[o]=e.add(d[o],e.multiply(a,h[o]))}}else{for(a=m[p],o=p;t>o;o++)g[o]=e.divide(g[o],a);for(o=0;t>o;o++)d[o]=e.divide(d[o],a)}}}return l}{var t=n(123),i=t.string,o=n(8);n(11)}e.inv=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("inv",arguments.length,1);var t=e.size(n).valueOf();switch(t.length){case 0:return e.divide(1,n);case 1:if(1==t[0])return n instanceof o?new o([e.divide(1,n.valueOf()[0])]):[e.divide(1,n[0])];throw new RangeError("Matrix must be square (size: "+i.format(t)+")");case 2:var a=t[0],s=t[1];if(a==s)return n instanceof o?new o(r(n.valueOf(),a,s)):r(n,a,s);throw new RangeError("Matrix must be square (size: "+i.format(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+i.format(t)+")")}}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(8),a=n(11),s=t.array,u=Array.isArray;e.ones=function(e){var n=a.argsToArray(arguments),t=e instanceof o?!0:u(e)?!1:"matrix"===r.matrix;if(0==n.length)return t?new o:[];var f=!1;n=n.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,n,l),t?new o(c):c}}},function(e,r,n){e.exports=function(e,r){function t(e,r,n){var t=[],i=e;if(n>0)for(;r>i;)t.push(i),i+=n;else if(0>n)for(;i>r;)t.push(i),i+=n;return t}function i(e,r,n){var t=[],i=e;if(n>0)for(;r>=i;)t.push(i),i+=n;else if(0>n)for(;i>=r;)t.push(i),i+=n;return t}function o(e,r,n){var t=[],i=e.clone(),o=new f(0);if(n.gt(o))for(;i.lt(r);)t.push(i),i=i.plus(n);else if(n.lt(o))for(;i.gt(r);)t.push(i),i=i.plus(n);return t}function a(e,r,n){var t=[],i=e.clone(),o=new f(0);if(n.gt(o))for(;i.lte(r);)t.push(i),i=i.plus(n);else if(n.lt(o))for(;i.gte(r);)t.push(i),i=i.plus(n);return t}function s(e){var n=e.split(":"),t=null;if("bignumber"===r.number)try{t=n.map(function(e){return new f(e)})}catch(i){return null}else{t=n.map(function(e){return Number(e)});var o=t.some(function(e){return isNaN(e)});if(o)return null}switch(t.length){case 2:return{start:t[0],end:t[1],step:1};case 3:return{start:t[0],end:t[2],step:t[1]};default:return null}}var u=n(123),f=e.type.BigNumber,c=n(8),l=(n(11),u["boolean"].isBoolean),p=u.string.isString,m=u.number.isNumber;e.range=function(){var n,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 x=s(g[0]);if(!x)throw new SyntaxError('String "'+g[0]+'" is no valid range');n=x.start,u=x.end,h=x.step;break;case 2:n=g[0],u=g[1],h=1;break;case 3:n=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(n)||n 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(n instanceof f||u instanceof f||h instanceof f){var w=!0;n instanceof f||(n=f.convert(n)),u instanceof f||(u=f.convert(u)),h instanceof f||(h=f.convert(h)),n instanceof f&&u instanceof f&&h instanceof f||(w=!1,n instanceof f&&(n=n.toNumber()),u instanceof f&&(u=u.toNumber()),h instanceof f&&(h=h.toNumber()))}var y=w?d?a:o:d?i:t,v=y(n,u,h);return"array"===r.matrix?v:new c(v)}}},function(e,r,n){e.exports=function(e,r){function t(r,n,t){if(void 0!==t){if(!c(t)||1!==t.length)throw new TypeError("Single character expected as defaultValue")}else t=" ";if(1!==n.length)throw new e.error.DimensionError(n.length,1);var i=n[0];if(!l(i)||!p(i))throw new TypeError("Invalid size, must contain positive integers (size: "+f.format(n)+")");if(r.length>i)return r.substring(0,i);if(r.lengtha;a++)o+=t;return o}return r}var i=n(123),o=e.type.BigNumber,a=n(8),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(n,i,f){if(2!=arguments.length&&3!=arguments.length)throw new e.error.ArgumentsError("resize",arguments.length,2,3);var l=n instanceof a?!0:m(n)?!1:"array"!==r.matrix;if(n instanceof a&&(n=n.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(n))return t(n,i,f);if(0==i.length){for(;m(n);)n=n[0];return u(n)}m(n)||(n=[n]),n=u(n);var p=s.resize(n,i,f);return l?new a(p):p}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(8),u=t.array,f=t.number.isNumber,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit;e.size=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("size",arguments.length,1);var t="array"===r.matrix;if(f(n)||p(n)||m(n)||c(n)||null==n||n instanceof i)return t?[]:new s([]);if(l(n))return t?[n.length]:new s([n.length]);if(Array.isArray(n))return u.size(n);if(n instanceof s)return new s(n.size());throw new e.error.UnsupportedTypeError("size",e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(8),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 t){var n=o.squeeze(r.toArray());return a(n)?new t(n):n}return i.clone(r)}}},function(e,r,n){e.exports=function(e){function r(r,n){var i,o;if(l(r))return i=new s(r),o=i.subset(n),o.valueOf();if(r instanceof s)return r.subset(n);if(c(r))return t(r,n);throw new e.error.UnsupportedTypeError("subset",e["typeof"](r))}function t(r,n){if(!(n instanceof u))throw new TypeError("Index expected");if(1!=n.size().length)throw new e.error.DimensionError(n.size().length,1);var t=n.range(0),i="",o=r.length;return t.forEach(function(e){f.validateIndex(e,o),i+=r.charAt(e)}),i}function i(r,n,t,i){var a;if(l(r))return a=new s(e.clone(r)),a.subset(n,t,i),a.valueOf();if(r instanceof s)return r.clone().subset(n,t,i);if(c(r))return o(r,n,t,i);throw new e.error.UnsupportedTypeError("subset",e["typeof"](r))}function o(r,n,t,i){if(!(n instanceof u))throw new TypeError("Index expected");if(1!=n.size().length)throw new e.error.DimensionError(n.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=n.range(0),a=o.size()[0];if(a!=t.length)throw new e.error.DimensionError(o.size()[0],t.length);for(var s=r.length,l=[],p=0;s>p;p++)l[p]=r.charAt(p);if(o.forEach(function(e,r){f.validateIndex(e),l[e]=t.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=n(123),s=n(8),u=n(7),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,n){e.exports=function(e){var r=n(123),t=n(8),i=(n(11),r.object),o=r.string;e.transpose=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("transpose",arguments.length,1);var n=e.size(r).valueOf();switch(n.length){case 0:return i.clone(r);case 1:return i.clone(r);case 2:var a,s=n[1],u=n[0],f=r instanceof t,c=r.valueOf(),l=[],p=i.clone;if(0===s)throw new RangeError("Cannot transpose a 2D matrix with no rows(size: "+o.format(n)+")");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 t(l):l;default:throw new RangeError("Matrix must be two dimensional (size: "+o.format(n)+")")}}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(8),a=n(11),s=t.array,u=Array.isArray;e.zeros=function(e){var n=a.argsToArray(arguments),t=e instanceof o?!0:u(e)?!1:"matrix"===r.matrix;if(0==n.length)return t?new o:[];var f=!1;n=n.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,n,l),t?new o(c):c}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=r.number.isNumber,a=r["boolean"].isBoolean,s=r.number.isInteger,u=i.isCollection;e.factorial=function c(r){var n,l;if(1!=arguments.length)throw new e.error.ArgumentsError("factorial",arguments.length,1);if(o(r)){if(!s(r)||0>r)throw new TypeError("Positive integer value expected in function factorial");for(n=r-1,l=r;n>1;)l*=n,n--;return 0==l&&(l=1),l}if(r instanceof t){if(!f(r))throw new TypeError("Positive integer value expected in function factorial");var p=new t(1);for(n=r.minus(p),l=r;n.gt(p);)l=l.times(n),n=n.minus(p);return l.equals(0)&&(l=p),l}if(a(r))return 1;if(u(r))return i.deepMap(r,c);throw new e.error.UnsupportedTypeError("factorial",e["typeof"](r))};var f=function(e){return e.isInteger()&&e.gte(0)}}},function(e,r,n){e.exports=function(e,r){var t=n(8),i=(n(11),{uniform:function(){return Math.random},normal:function(){return function(){for(var e,r,n=-1;0>n||n>1;)e=Math.random(),r=Math.random(),n=1/6*Math.pow(-2*Math.log(e),.5)*Math.cos(2*Math.PI*r)+.5;return n}}});e.distribution=function(n){if(!i.hasOwnProperty(n))throw new Error("unknown distribution "+n);var o=Array.prototype.slice.call(arguments,1),a=i[n].apply(this,o);return function(n){var i={random:function(n,i,a){var u,f,c;if(arguments.length>3)throw new e.error.ArgumentsError("random",arguments.length,0,3);if(1===arguments.length?Array.isArray(n)?u=n:c=n:2===arguments.length?Array.isArray(n)?u=n:(f=n,c=i):(u=n,f=i,c=a),void 0===c&&(c=1),void 0===f&&(f=0),void 0!==u){var l=s(u,f,c,o);return"array"===r.matrix?l:new t(l)}return o(f,c)},randomInt:function(n,i,o){var u,f,c;if(arguments.length>3||arguments.length<1)throw new e.error.ArgumentsError("randomInt",arguments.length,1,3);if(1===arguments.length?c=n:2===arguments.length?"[object Array]"===Object.prototype.toString.call(n)?u=n:(f=n,c=i):(u=n,f=i,c=o),void 0===f&&(f=0),void 0!==u){var l=s(u,f,c,a);return"array"===r.matrix?l:new t(l)}return a(f,c)},pickRandom:function(r){if(1!==arguments.length)throw new e.error.ArgumentsError("pickRandom",arguments.length,1);if(!Array.isArray(r))throw new e.error.UnsupportedTypeError("pickRandom",e["typeof"](r));return r[Math.floor(Math.random()*r.length)]}},o=function(e,r){return e+n()*(r-e)},a=function(e,r){return Math.floor(e+n()*(r-e))},s=function(e,r,n,t){var i,o,a=[];if(e=e.slice(0),e.length>1)for(o=0,i=e.shift();i>o;o++)a.push(s(e,r,n,t));else for(o=0,i=e.shift();i>o;o++)a.push(t(r,n));return a};return i}(a)};var o=e.distribution("uniform");e.random=o.random,e.randomInt=o.randomInt,e.pickRandom=o.pickRandom}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=r.number.isNumber,o=r.number.isInteger;e.permutations=function(r,n){var s,u,f=arguments.length;if(f>2)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(n)){if(!o(n)||0>n)throw new TypeError("Positive integer value expected in function permutations");if(n>r)throw new TypeError("second argument k must be less than or equal to first argument n");for(s=1,u=r-n+1;r>=u;u++)s*=u;return s}}if(r instanceof t){if(void 0===n&&a(r))return e.factorial(r);if(n=t.convert(n),!(n instanceof t&&a(r)&&a(n)))throw new TypeError("Positive integer value expected in function permutations");if(n.gt(r))throw new TypeError("second argument k must be less than or equal to first argument n");for(s=new t(1),u=r.minus(n).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,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=(n(11),r.number.isNumber),o=r.number.isInteger;e.combinations=function(r,n){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(n>r)throw new TypeError("k must be less than or equal to n");for(s=Math.max(n,r-n),u=1,f=1;r-s>=f;f++)u=u*(s+f)/f;return u}if(r instanceof t){if(n=t.convert(n),!(n instanceof t&&a(r)&&a(n)))throw new TypeError("Positive integer value expected in function combinations");if(n.gt(r))throw new TypeError("k must be less than n in function combinations");for(s=r.minus(n),n.lt(s)&&(s=n),u=new t(1),f=new t(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,n){e.exports=function(e){function r(r,n){return e.smaller(r,n)?r:n}function t(r){var n=void 0;if(i.deepForEach(r,function(r){(void 0===n||e.smaller(r,n))&&(n=r)}),void 0===n)throw new Error("Cannot calculate min of an empty array");return n}var i=(n(8),n(11)),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 t(e);if(2==arguments.length)return i.reduce(arguments[0],arguments[1],r);throw new SyntaxError("Wrong number of parameters")}return t(arguments)}}},function(e,r,n){e.exports=function(e){function r(r,n){return e.larger(r,n)?r:n}function t(r){var n=void 0;if(i.deepForEach(r,function(r){(void 0===n||e.larger(r,n))&&(n=r)}),void 0===n)throw new Error("Cannot calculate max of an empty array");return n}var i=(n(8),n(11)),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 t(e);if(2==arguments.length)return i.reduce(arguments[0],arguments[1],r);throw new SyntaxError("Wrong number of parameters")}return t(arguments)}}},function(e,r,n){e.exports=function(e){function r(r,n){var t;return t=i.reduce(r,n,e.add),e.divide(t,a(r)[n])}function t(r){var n=0,t=0;if(i.deepForEach(r,function(r){n=e.add(n,r),t++}),0===t)throw new Error("Cannot calculate mean of an empty array");return e.divide(n,t)}var i=(n(8),n(11)),o=i.isCollection,a=n(153).size;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 t(e);if(2==arguments.length)return r(arguments[0],arguments[1]);throw new SyntaxError("Wrong number of parameters")}return t(arguments)}}},function(e,r,n){e.exports=function(e){function r(r){var n=u(r);n.sort(e.compare);var o=n.length;if(0==o)throw new Error("Cannot calculate median of an empty array");if(o%2==0){var s=n[o/2-1],f=n[o/2];if(!(a(s)||s instanceof i||s instanceof t))throw new e.error.UnsupportedTypeError("median",e["typeof"](s));if(!(a(f)||f instanceof i||f instanceof t))throw new e.error.UnsupportedTypeError("median",e["typeof"](f));return e.divide(e.add(s,f),2)}var c=n[(o-1)/2];if(!(a(c)||c instanceof i||c instanceof t))throw new e.error.UnsupportedTypeError("median",e["typeof"](c));return c}var t=(n(8),n(9)),i=e.type.BigNumber,o=n(11),a=n(154).isNumber,s=o.isCollection,u=n(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,n){e.exports=function(e){function r(r){var n=void 0;if(t.deepForEach(r,function(r){n=void 0===n?r:e.multiply(n,r)}),void 0===n)throw new Error("Cannot calculate prod of an empty array");return n}var t=(n(8),n(11)),i=t.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){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,n){e.exports=function(e){function r(r){var n=void 0;if(t.deepForEach(r,function(r){n=void 0===n?r:e.add(n,r)}),void 0===n)throw new Error("Cannot calculate sum of an empty array");return n}var t=(n(8),n(11)),i=t.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,n){e.exports=function(e){function r(r,n){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 n=e.subtract(r,s);o=e.add(o,e.multiply(n,n))}),n){case"uncorrected":return e.divide(o,a);case"biased":return e.divide(o,a+1);case"unbiased":var u=o instanceof t?new t(0):0;return 1==a?u:e.divide(o,a-1);default:throw new Error('Unknown normalization "'+n+'". Choose "unbiased" (default), "uncorrected", or "biased".')}}var t=(n(8),e.type.BigNumber),i=n(11),o=i.isCollection,a=n(138).isString,s="unbiased";e["var"]=function(e,n){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(n))throw new Error("String expected for parameter normalization");return r(e,n)}throw new SyntaxError("Wrong number of parameters")}return r(arguments,s)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=new i(r.im*r.im-r.re*r.re+1,-2*r.re*r.im),l=e.sqrt(n),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))return Math.acos(r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("acos",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=r.re,l=r.im,p=new i(l*l-n*n+1,-2*n*l),m=e.sqrt(p),h=new i(m.re-l,m.im+n),g=e.log(h);return new i(g.im,-g.re)}if(f(r))return o.deepMap(r,c);if(s(r))return Math.asin(r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("asin",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=r.re,l=r.im,p=n*n+(1-l)*(1-l),m=new i((1-l*l-n*n)/p,-2*n/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))return Math.atan(r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("atan",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),a=r.number.isNumber,s=r["boolean"].isBoolean,u=(i.isComplex,o.isCollection);e.atan2=function f(r,n){if(2!=arguments.length)throw new e.error.ArgumentsError("atan2",arguments.length,2);if(a(r)&&a(n))return Math.atan2(r,n);if(u(r)||u(n))return o.deepMap2(r,n,f);if(s(r))return f(+r,n);if(s(n))return f(r,+n);if(r instanceof t)return f(r.toNumber(),n);if(n instanceof t)return f(r,n.toNumber());throw new e.error.UnsupportedTypeError("atan2",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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(.5*Math.cos(r.re)*(Math.exp(-r.im)+Math.exp(r.im)),.5*Math.sin(r.re)*(Math.exp(-r.im)-Math.exp(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))return Math.cos(r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cos",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(r.re),m=Math.exp(-r.re);return new i(Math.cos(r.im)*(n+m)/2,Math.sin(r.im)*(n-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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cosh",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=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)/n,(Math.exp(-4*r.im)-1)/n)}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))return p(+r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cot",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(2*r);return(n+1)/(n-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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("coth",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=.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))/n,.5*Math.cos(r.re)*(Math.exp(-r.im)-Math.exp(r.im))/n)}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))return p(+r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("csc",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(r.re),h=Math.exp(-r.re),g=Math.cos(r.im)*(n-h),d=Math.sin(r.im)*(n+h),x=g*g+d*d;return new i(2*g/x,-2*d/x)}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))return m(r?1:0);if(r instanceof t)return m(r.toNumber());throw new e.error.UnsupportedTypeError("csch",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=.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))/n,.5*Math.sin(r.re)*(Math.exp(r.im)-Math.exp(-r.im))/n)}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))return p(+r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sec",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(r.re),m=Math.exp(-r.re),h=Math.cos(r.im)*(n+m),g=Math.sin(r.im)*(n-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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sech",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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(.5*Math.sin(r.re)*(Math.exp(-r.im)+Math.exp(r.im)),.5*Math.cos(r.re)*(Math.exp(r.im)-Math.exp(-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))return Math.sin(r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sin",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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.exp(r)-Math.exp(-r))/2;if(f(r)){var n=Math.cos(r.im),m=Math.sin(r.im),h=Math.exp(r.re),g=Math.exp(-r.re);return new i(n*(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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sinh",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=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)/n,(1-Math.exp(-4*r.im))/n)}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))return Math.tan(r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tan",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(2*r);return(n-1)/(n+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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tanh",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(9),i=n(11),o=r.string.isString,a=t.isUnit,s=i.isCollection;e.to=function u(r,n){if(2!=arguments.length)throw new e.error.ArgumentsError("to",arguments.length,2);if(a(r)&&(a(n)||o(n)))return r.to(n);if(s(r)||s(n))return i.deepMap2(r,n,u);throw new e.error.UnsupportedTypeError("to",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=r.object;e.clone=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("clone",arguments.length,1);return t.clone(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=r.string;e.format=function(r,n){var i=arguments.length;if(1!==i&&2!==i)throw new e.error.ArgumentsError("format",i,1,2);return t.format(r,n)}}},function(e,r,n){e.exports=function(e){function r(r,n,t){var i=r instanceof o||n instanceof o||t instanceof o;if(r instanceof o||(r=new o(r)),g(n)&&(n instanceof o||(n=new o(n)),!f(r.size(),n.size())))throw new RangeError("Dimension mismatch (["+r.size().join(", ")+"] != ["+n.size().join(", ")+"])");if(g(t)&&(t instanceof o||(t=new o(t)),!f(r.size(),t.size())))throw new e.error.DimensionError(r.size(),t.size());var a=n instanceof o,s=t instanceof o,u=r.map(function(r,i){return e.ifElse(r,a?n.get(i):n,s?t.get(i):t)});return i?u:u.valueOf()}var t=n(123),i=e.type.BigNumber,o=n(8),a=n(5),s=n(9),u=n(11),f=t.object.deepEqual,c=t.number.isNumber,l=t.string.isString,p=t["boolean"].isBoolean,m=a.isComplex,h=s.isUnit,g=u.isCollection;e.ifElse=function(n,t,o){if(3!=arguments.length)throw new e.error.ArgumentsError("ifElse",arguments.length,3);if(c(n)||p(n))return n?t:o;if(n instanceof i)return n.isZero()?o:t;if(l(n))return n?t:o;if(m(n))return n.re||n.im?t:o;if(h(n))return n.value?t:o;if(null===n||void 0===n)return o;if(g(n))return r(n,t,o);throw new e.error.UnsupportedTypeError("ifElse",e["typeof"](n))}}},function(e,r,n){e.exports=function(e){function r(r,n,t){(t.override||void 0===e[r])&&(e[r]=t.wrap&&"function"==typeof n?function(){for(var r=[],t=0,i=arguments.length;i>t;t++)r[t]=arguments[t].valueOf();return n.apply(e,r)}:n,e.chaining.Selector.createProxy(r,n))}function t(e){return"function"==typeof e||s(e)||u(e)||f(e)||c(e)}var i=n(123),o=n(5),a=n(9),s=i.number.isNumber,u=i.string.isString,f=o.isComplex,c=a.isUnit;e["import"]=function l(o,a){var s=arguments.length;if(1!=s&&2!=s)throw new e.error.ArgumentsError("import",s,1,2);var f,c={override:!1,wrap:!0};if(a&&a instanceof Object&&i.object.extend(c,a),u(o)){var p=n(155)(o);l(p)}else{if("object"!=typeof o)throw new TypeError("Object or module name expected");for(f in o)if(o.hasOwnProperty(f)){var m=o[f];t(m)?r(f,m,c):l(m)}}}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=[],t=function(i,o){return Array.isArray(i)?i.map(function(e,r){return n[o]=r,t(e,o+1)}):r(i,n,e)};return t(e,0)}var t=n(8).isMatrix;e.map=function(n,i){if(2!=arguments.length)throw new e.error.ArgumentsError("map",arguments.length,2);if(Array.isArray(n))return r(n,i);if(t(n))return n.map(i);throw new e.error.UnsupportedTypeError("map",e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=r.string.isString;e.print=function(r,n,i){var o=arguments.length;if(2!=o&&3!=o)throw new e.error.ArgumentsError("print",o,2,3);if(!t(r))throw new TypeError("String expected as first parameter in function format");if(!(n 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=n[a.shift()];a.length&&void 0!==s;){var u=a.shift();s=u?s[u]:s+"."}return void 0!==s?t(s)?s:e.format(s,i):r})}}},function(e,r,n){e.exports=function(e){var r=n(156),t=n(5),i=n(8),o=n(9),a=n(7),s=n(6),u=n(10);e["typeof"]=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("typeof",arguments.length,1);var f=r.type(n);if("object"===f){if(n instanceof t)return"complex";if(n instanceof i)return"matrix";if(n instanceof o)return"unit";if(n instanceof a)return"index";if(n instanceof s)return"range";if(n instanceof u)return"help";if(n instanceof e.type.BigNumber)return"bignumber";if(n instanceof e.chaining.Selector)return"selector"}return f}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=[],t=function(i,o){Array.isArray(i)?i.forEach(function(e,r){n[o]=r,t(e,o+1)}):r(i,n,e)};t(e,0)}var t=n(8).isMatrix;e.forEach=function(n,i){if(2!=arguments.length)throw new e.error.ArgumentsError("forEach",arguments.length,2);if(Array.isArray(n))return r(n,i);if(t(n))return n.forEach(i);throw new e.error.UnsupportedTypeError("forEach",e["typeof"](n))}}},function(e,r,n){var t;(function(e){!function(i){"use strict";function o(e,r,n,t){return!((!(!t&&n>3&&4==e[r]||(t||4>n)&&9==e[r])||9!=e[r+1]||9!=e[r+2]||9!=e[r+3]||null==t&&9!=e[r+4])&&(null!=t||5!=e[r]&&e[r]||e[r+1]||e[r+2]||e[r+3]||e[r+4]))}function a(e,r,n){var t=e.constructor;return null==r||((w=0>r||r>8)||0!==r&&(t.errors?parseInt:parseFloat)(r)!=r)&&!l(t,"rounding mode",r,n,0)?t.rounding:0|r}function s(e,r,n,t){var i=e.constructor;return!(w=(t||0)>r||r>=A+1)&&(0===r||(i.errors?parseInt:parseFloat)(r)==r)||l(i,"argument",r,n,0)}function u(e,r,n,t,i,o){var a=e.constructor,s=e.e-r.e,u=e.s==r.s?1:-1,f=e.c,c=r.c;if(!(f&&f[0]&&c&&c[0]))return new a(e.s&&r.s&&(f?!c||f[0]!=c[0]:c)?f&&0==f[0]||!c?0*u:u/0:0/0);var l,p,m,g,d,x,w=c.slice(),y=x=c.length,v=f.length,b=f.slice(0,x),E=b.length,N=new a(u),M=N.c=[];for(p=u=0;c[p]==(f[p]||0);p++);if(c[p]>(f[p]||0)&&(s--,u=1),N.e=s,null==n?(n=a.precision,t=a.rounding):i&&(n+=s+1),o=o||10,n>=0){for(u+=n;E++m;m++){if(x!=(E=b.length))l=x>E?1:-1;else for(g=-1,l=0;++gb[g]?1:-1;break}if(!(0>l))break;for(d=E==x?c:w;E;){if(b[--E]1&&M.shift(),n>=p&&(n=null)}return h(N,n,t,null!=b[0],o)}function f(e,r){var n,t,i,a,s,f,c,l=0,p=0,m=0,g=e.constructor,d=g.ONE,x=g.rounding,w=g.precision;if(!e.c||!e.c[0]||e.e>17)return new g(e.c?e.c[0]?e.s<0?0:1/0:d:e.s?e.s<0?0:e:0/0);for(null==r?(b=!1,s=w):s=r,c=new g(.03125);e.e>-2;)e=e.times(c),m+=5;for(t=Math.log(Math.pow(2,m))/Math.LN10*2+5|0,s+=t,n=a=f=new g(d),g.precision=s;;){if(a=h(a.times(e),s,1),n=n.times(++p),c=f.plus(u(a,n,s,1)),c.c.slice(0,s).join("")===f.c.slice(0,s).join("")){for(i=m;i--;)f=h(f.times(f),s,1);if(null!=r)return g.precision=w,f;if(!(3>l&&o(f.c,s-t,x,l)))return h(f,g.precision=w,x,b=!0);g.precision=s+=10,n=a=c=new g(d),p=0,l++}f=c}}function c(e,r,n,t){var i=e.constructor,o=(e=new i(e)).e,a=e.c;if(!a)return e.toString();for(a.length>++r&&h(e,r,n),o=t?r:r+e.e-o;a.length=r||o<=i.toExpNeg)?(e.s<0&&a[0]?"-":"")+(a.length>1?a[0]+"."+a.slice(1).join(""):a[0])+(0>o?"e":"e+")+o:e.toString()}function l(e,r,n,t,i){if(e.errors){var o=new Error((t||["new Decimal","cmp","div","eq","gt","gte","lt","lte","minus","mod","plus","times","toFraction","pow","random","log","sqrt","toNearest","divToInt"][v?0>v?-v:v:0>1/v?1:0])+"() "+(["number type has more than 15 significant digits","LN10 out of digits"][r]||r+([w?" out of range":" not an integer"," not a boolean or binary digit"][i]||""))+": "+n);throw o.name="Decimal Error",w=v=0,o}}function p(e,r,n){var t=new e(e.ONE);for(b=!1;1&n&&(t=t.times(r)),n>>=1,n;)r=r.times(r);return b=!0,t}function m(e,r){var n,t,i,a,s,f,c,p,g,d=1,x=10,w=e,y=w.c,v=w.constructor,E=v.ONE,N=v.rounding,M=v.precision;if(w.s<0||!y||!y[0]||!w.e&&1==y[0]&&1==y.length)return new v(y&&!y[0]?-1/0:1!=w.s?0/0:y?0:w);if(null==r?(b=!1,s=M):s=r,v.precision=s+=x,!(Math.abs(t=w.e)<15e14))return w=new v(w),w.e=0,s+2>S.length&&l(v,1,s+2,"ln"),w=m(w,s-x).plus(new v(S.slice(0,s+2)).times(t+"")),v.precision=M,null==r?h(w,M,N,b=!0):w;for(;y[0]<7&&1!=y[0]||1==y[0]&&y[1]>3;)w=w.times(e),y=w.c,d++;for(t=w.e,y[0]>1?(1==d?w=new v("0."+y.join("")):w.e=-1,t++):w=new v("1."+y.slice(1).join("")),p=w,f=i=w=u(w.minus(E),w.plus(E),s,1),g=h(w.times(w),s,1),n=3;;){if(i=h(i.times(g),s,1),c=f.plus(u(i,new v(n),s,1)),c.c.slice(0,s).join("")===f.c.slice(0,s).join("")){if(f=f.times(2),0!==t&&(s+2>S.length&&l(v,1,s+2,"ln"),f=f.plus(new v(S.slice(0,s+2)).times(t+""))),f=u(f,new v(d),s,1),null!=r)return v.precision=M,f;if(!o(f.c,s-x,N,a))return h(f,v.precision=M,N,b=!0);v.precision=s+=x,c=i=w=u(p.minus(E),p.plus(E),s,1),g=h(w.times(w),s,1),n=a=1}f=c,n+=2}}function h(e,r,n,t,i){var o,a,s,u,f=e.constructor;if(r!=o){if(!(u=e.c))return e;if(s=e.s<0,a=(i=i||10)/2,o=u[r],t=t||0>r||null!=u[r+1],t=4>n?(null!=o||t)&&(0==n||2==n&&!s||3==n&&s):o>a||o==a&&(4==n||t||6==n&&1&u[r-1]||7==n&&!s||8==n&&s),1>r||!u[0])return u.length=0,t?(r=r-e.e-1,u[0]=1,e.e=-r||0):u[0]=e.e=0,e;if(u.length>r&&(u.length=r),r--,t){for(o=r;null==u[o];u[o--]=0);for(--i;++u[r]>i;)u[r]=0,r--||(++e.e,u.unshift(1))}for(r=u.length;!u[--r];u.pop());}return b&&(e.e>f.maxE?e.c=e.e=null:e.ea,!i||!o)return u==f?0:!i^n?1:-1;if(u!=f)return u>f^n?1:-1;for(a=-1,s=(u=i.length)<(f=o.length)?u:f;++ao[a]^n?1:-1;return u==f?0:u>f^n?1:-1},N.decimalPlaces=N.dp=function(){var e=this;return e.c?Math.max(e.c.length-e.e-1,0):null},N.dividedBy=N.div=function(e,r){return v=2,u(this,new this.constructor(e,r))},N.dividedToIntegerBy=N.divToInt=function(e,r){var n=this,t=n.constructor;return v=18,h(u(n,new t(e,r),0,1,1),t.precision,t.rounding)},N.equals=N.eq=function(e,r){return v=3,0===this.cmp(e,r)},N.exponential=N.exp=function(){return f(this)},N.floor=function(){return h(new this.constructor(this),this.e+1,3)},N.greaterThan=N.gt=function(e,r){return v=4,this.cmp(e,r)>0},N.greaterThanOrEqualTo=N.gte=function(e,r){return v=5,r=this.cmp(e,r),1==r||0===r},N.isFinite=function(){return!!this.c},N.isInteger=N.isInt=function(){return!!this.c&&this.e>this.c.length-2},N.isNaN=function(){return!this.s},N.isNegative=N.isNeg=function(){return this.s<0},N.isZero=function(){return!!this.c&&0==this.c[0]},N.lessThan=N.lt=function(e,r){return v=6,this.cmp(e,r)<0},N.lessThanOrEqualTo=N.lte=function(e,r){return v=7,r=this.cmp(e,r),-1==r||0===r},N.logarithm=N.log=function(e,r){var n,t,i,a,s,f,c,p,g,d=this,x=d.constructor,w=x.precision,y=x.rounding,E=5;if(null==e)e=new x(10),n=!0;else{if(v=15,e=new x(e,r),t=e.c,e.s<0||!t||!t[0]||!e.e&&1==t[0]&&1==t.length)return new x(0/0);n=e.eq(10)}if(t=d.c,d.s<0||!t||!t[0]||!d.e&&1==t[0]&&1==t.length)return new x(t&&!t[0]?-1/0:1!=d.s?0/0:t?0:1/0);if(s=n&&(1!=t[0]||t.length>1)||(1&e.c[e.c.length-1])!=(1&t[t.length-1])||0,b=!1,c=w+E,p=c+10,f=m(d,c),n?(p>S.length&&l(x,1,p,"log"),i=new x(S.slice(0,p))):i=m(e,c),g=u(f,i,c,1),o(g.c,a=w,y))do if(c+=10,f=m(d,c),n?(p=c+10,p>S.length&&l(x,1,p,"log"),i=new x(S.slice(0,p))):i=m(e,c),g=u(f,i,c,1),!s){for(t=g.c;9==t[++a];);a==w+E+10&&(g=h(g,w+1,0));break}while(o(g.c,a+=10,y));return b=!0,h(g,w,y)},N.minus=function(e,r){var n,t,i,o,a=this,s=a.constructor,u=a.s;if(v=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=a.e,l=e.c,p=e.e,m=s.precision,g=s.rounding;if(!c||!p){if(!f||!l)return f?(e.s=-r,e):new s(l?a:0/0);if(!f[0]||!l[0])return a=l[0]?(e.s=-r,e):new s(f[0]?a:3==g?-0:0),b?h(a,m,g):a}if(f=f.slice(),t=f.length,u=c-p){for((o=0>u)?(u=-u,n=f,t=l.length):(p=c,n=l),m>t&&(t=m),u>(t+=2)&&(u=t,n.length=1),n.reverse(),r=u;r--;n.push(0));n.reverse()}else for((o=t<(i=l.length))&&(i=t),u=r=0;i>r;r++)if(f[r]!=l[r]){o=f[r]0)for(;r--;f[i++]=0);for(r=l.length;r>u;){if(f[--r]o?(o=-o,n=s,r=f.length):(u=a,n=f,r=s.length),c>r&&(r=c),o>++r&&(o=r,n.length=1),n.reverse();o--;n.push(0));n.reverse()}for(s.length-f.length<0&&(n=f,f=s,s=n),o=f.length,r=0;o;s[o]%=10)r=(s[--o]=s[o]+f[o]+r)/10|0;for(r&&(s.unshift(r),++u),o=s.length;0==s[--o];s.pop());return e.c=s,e.e=u,b?h(e,c,l):e},N.precision=N.sd=function(e){var r=this;return null!=e&&e!==!!e&&1!==e&&0!==e&&l(r.constructor,"argument",e,"precision",1),r.c?e?Math.max(r.e+1,r.c.length):r.c.length:null -},N.round=function(){var e=this,r=e.constructor;return h(new r(e),e.e+1,r.rounding)},N.squareRoot=N.sqrt=function(){var e,r,n,t,i,o=this,a=o.c,s=o.s,f=o.e,c=o.constructor,l=new c(.5);if(1!==s||!a||!a[0])return new c(!s||0>s&&(!a||a[0])?0/0:a?o:1/0);for(b=!1,s=Math.sqrt(+o),0==s||s==1/0?(e=a.join(""),(e.length+f)%2==0&&(e+="0"),n=new c(Math.sqrt(e)+""),n.c||(n.c=[1]),n.e=Math.floor((f+1)/2)-(0>f||f%2)):n=new c(s.toString()),r=(f=c.precision)+3;;)if(i=n,n=l.times(i.plus(u(o,i,r+2,1))),i.c.slice(0,r).join("")===n.c.slice(0,r).join("")){if(a=n.c,9!=a[r-3]&&(t||4!=a[r-3])||9!=a[r-2]||9!=a[r-1]||9!=a[r]){if(!(a[r-3]&&5!=a[r-3]||a[r-2]||a[r-1]||a[r]||(a.length>f+1&&(a.length=f+1),n.times(n).eq(o)))){for(;a.lengthf&&(n=o,o=a,a=n,u=f,f=r,r=u),u=f+r,n=[];u--;n.push(0));for(s=r-1;s>-1;s--){for(r=0,u=f+s;u>s;r=r/10|0)r=n[u]+a[s]*o[u-s-1]+r,n[u--]=r%10|0;r&&(n[u]=(n[u]+r)%10)}for(r&&++e.e,n[0]||n.shift(),u=n.length;!n[--u];n.pop());return e.c=n,b?h(e,i.precision,i.rounding):e},N.toDecimalPlaces=N.toDP=function(e,r){var n=this;return n=new n.constructor(n),null!=e&&s(n,e,"toDP")?h(n,(0|e)+n.e+1,a(n,r,"toDP")):n},N.toExponential=function(e,r){var n=this;return c(n,null!=e&&s(n,e,"toExponential")||!n.c?0|e:n.c.length-1,null!=e&&a(n,r,"toExponential"),1)},N.toFixed=function(e,r){var n,t=this,i=t.constructor,o=i.toExpNeg,u=i.toExpPos;return null!=e&&(e=s(t,e,n="toFixed",-A)?t.e+(0|e):null,r=a(t,r,n)),i.toExpNeg=-(i.toExpPos=1/0),null==e?n=t.toString():(n=c(t,e,r),t.s<0&&t.c&&(t.c[0]?n.indexOf("-")<0&&(n="-"+n):n=n.replace("-",""))),i.toExpNeg=o,i.toExpPos=u,n},N.toFormat=function(e,r,n){var t=this.toFixed(r).split(".");return t[0].replace(/\B(?=(\d{3})+$)/g,null==e?",":e+"")+(t[1]?"."+(n?t[1].replace(/\d{5}\B/g,"$&"+n):t[1]):"")},N.toFraction=function(e){var r,n,t,i,o,a,s,f=this,c=f.constructor,p=r=new c(c.ONE),m=a=new c(0),h=f.c,g=new c(c.ONE),d=c.precision;if(!h)return f.toString();for(t=g.e=h.length-f.e-1,(null==e||(!(v=12,o=new c(e)).s||(w=o.cmp(p)<0||!o.c)||c.errors&&o.e0)&&(e=t>0?g:p),b=!1,o=new c(h.join("")),c.precision=h.length;s=u(o,g,0,1,1),n=r.plus(s.times(m)),1!=n.cmp(e);)r=m,m=n,p=a.plus(s.times(n=p)),a=n,g=o.minus(s.times(n=g)),o=n;return n=u(e.minus(r),m,0,1,1),a=a.plus(n.times(p)),r=r.plus(n.times(m)),a.s=p.s=f.s,t*=2,i=u(p,m,t,1,1).minus(f).abs().cmp(u(a,r,t,1,1).minus(f).abs())<1?[p.toString(),m.toString()]:[a.toString(),r.toString()],b=!0,c.precision=d,i},N.toNearest=function(e,r){var n=this,t=n.constructor;return n=new t(n),null==e?(e=new t(t.ONE),r=t.rounding):(v=17,e=new t(e),r=a(n,r,"toNearest")),e.c?n.c&&(b=!1,4>r&&(r=[4,5,7,8][r]),1==e.c[0]&&1==e.c.length?(n.e-=e.e,h(n,n.e+1,r),n.c[0]&&(n.e+=e.e)):e.c[0]?n=u(n,e,0,r,1).times(e):n.c=[n.e=0],b=!0,h(n)):n.s&&(e.s&&(e.s=n.s),n=e),n},N.toNumber=function(){var e=this;return+e||(0|e)*e.s},N.toPower=N.pow=function(e,r){var n,t,i,a,s=this,u=s.constructor,c=s.s,l=(v=13,+(e=new u(e,r))),g=0>l?-l:l,d=u.precision,x=u.rounding;if(!s.c||!e.c||(i=!s.c[0])||!e.c[0])return new u(Math.pow(i?0*c:+s,l));if(s=new u(s),n=s.c.length,!s.e&&s.c[0]==s.s&&1==n)return s;if(r=e.c.length-1,e.e||e.c[0]!=e.s||r)if(i=e.e>=r,!i&&0>c)a=new u(0/0);else{if(i&&T>n*g){if(a=p(u,s,g),e.s<0)return u.ONE.div(a)}else{if(c=0>c&&1&e.c[Math.max(e.e,r)]?-1:1,r=Math.pow(+s,l),t=0!=r&&isFinite(r)?new u(r+"").e:Math.floor(l*(Math.log("0."+s.c.join(""))/Math.LN10+s.e+1)),t>u.maxE+1||t0?c/0:0);if(b=!1,u.rounding=s.s=1,g=Math.min(12,(t+"").length),a=f(e.times(m(s,d+g)),d),a=h(a,d+5,1),o(a.c,d,x)){for(t=d+10,a=h(f(e.times(m(s,t+g)),t),t+5,1),g=d;9==a.c[++g];);g==d+15&&(a=h(a,d+1,0))}a.s=c,b=!0,u.rounding=x}a=h(a,d,x)}else a=h(s,d,x);return a},N.toPrecision=function(e,r){return null!=e&&s(this,e,"toPrecision",1)?c(this,0|--e,a(this,r,"toPrecision"),2):this.toString()},N.toSignificantDigits=N.toSD=function(e,r){var n=this,t=n.constructor;return n=new t(n),null!=e&&s(n,e,"toSD",1)?h(n,0|e,a(n,r,"toSD")):h(n,t.precision,t.rounding)},N.toString=function(e){var r,n,t,i=this,o=i.constructor,a=i.e;if(null===a)n=i.s?"Infinity":"NaN";else{if(e===r&&(a<=o.toExpNeg||a>=o.toExpPos))return c(i,i.c.length-1,o.rounding,1);if(n=i.c.join(""),0>a){for(;++a;n="0"+n);n="0."+n}else if(t=n.length,a>0)if(++a>t)for(a-=t;a--;n+="0");else t>a&&(n=n.slice(0,a)+"."+n.slice(a));else if(r=n.charAt(0),t>1)n=r+"."+n.slice(1);else if("0"==r)return r;if(null!=e)if((w=!(e>=2&&65>e))||e!=(0|e)&&o.errors)l(o,"base",e,"toString",0);else if(n=g(o,n,0|e,10,i.s),"0"==n)return n}return i.s<0?"-"+n:n},N.truncated=N.trunc=function(){return h(new this.constructor(this),this.e+1,1)},N.valueOf=N.toJSON=function(){return this.toString()},g=function(){function e(e,r,n){for(var t,i,o=[0],a=0,s=e.length;s>a;){for(i=o.length;i--;o[i]*=r);for(o[t=0]+=E.indexOf(e.charAt(a++));tn-1&&(null==o[t+1]&&(o[t+1]=0),o[t+1]+=o[t]/n|0,o[t]%=n)}return o.reverse()}return function(r,n,t,i,o){var a,s,f,c=n.indexOf("."),l=new r(i);for(37>i&&(n=n.toLowerCase()),0>c?(a=new r(l),f=[1]):(a=p(r,l,n.length-c-1),f=e(a.toFixed(),10,t),n=n.replace(".","")),l.c=f,l.e=f.length,s=e(n,i,t),a.c=s,a.e=s.length,a.s=o,a=u(a,l,r.precision,r.rounding,0,t),s=a.c,c=s.length;c--;)s[c]=E.charAt(s[c]);return a.s=1,a.toFixed()}}(),x=function(){function e(e){var r,n,t,i=this,o="config",a=i.errors?parseInt:parseFloat;return e==n||"object"!=typeof e&&!l(i,"object expected",e,o)?i:((t=e[r="precision"])!=n&&((w=1>t||t>A)||a(t)!=t?l(i,r,t,o,0):i[r]=0|t),(t=e[r="rounding"])!=n&&((w=0>t||t>8)||a(t)!=t?l(i,r,t,o,0):i[r]=0|t),(t=e[r="toExpNeg"])!=n&&((w=-M>t||t>0)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="toExpPos"])!=n&&((w=0>t||t>M)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="minE"])!=n&&((w=-M>t||t>0)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="maxE"])!=n&&((w=0>t||t>M)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="errors"])!=n&&(t===!!t||1===t||0===t?(w=v=0,i[r]=!!t):l(i,r,t,o,1)),(t=e[r="crypto"])!=n&&(t===!!t||1===t||0===t?i[r]=!(!t||!d||"object"!=typeof d):l(i,r,t,o,1)),(t=e[r="modulo"])!=n&&((w=0>t||t>9)||a(t)!=t?l(i,r,t,o,0):i[r]=0|t),i)}function r(e){return new this(e).exp()}function n(e){return new this(e).ln()}function t(e,r){return new this(e).log(r)}function o(e,r,n){var t,i,o=0;for("[object Array]"==y.call(r[0])&&(r=r[0]),t=new e(r[0]);++o1/i?"-0":i+""),c=i,o==s&&e.test(i))t.s="-"==i.charAt(0)?(i=i.slice(1),-1):1;else{if(10==o)return h(new n(i),n.precision,n.rounding);if(i=r.call(i).replace(/^\+(?!-)/,""),t.s="-"==i.charAt(0)?(i=i.replace(/^-(?!-)/,""),-1):1,o!=s?o!=(0|o)&&n.errors||(w=!(o>=2&&65>o))?(l(n,"base",o,0,0),p=e.test(i)):(a="["+E.slice(0,o=0|o)+"]+",i=i.replace(/\.$/,"").replace(/^\./,"0."),(p=new RegExp("^"+a+"(?:\\."+a+")?$",37>o?"i":"").test(i))?(f&&(i.replace(/^0\.0*|\./,"").length>15&&l(n,0,c),f=!f),i=g(n,i,10,o,t.s)):"Infinity"!=i&&"NaN"!=i&&(l(n,"not a base "+o+" number",c),i="NaN")):p=e.test(i),!p)return t.c=t.e=null,"Infinity"!=i&&("NaN"!=i&&l(n,"not a number",c),t.s=null),v=0,t}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;"0"==i.charAt(u);u++);if(u==(o=i.length))t.c=[t.e=0];else{for(f&&o>15&&i.slice(u).length>15&&l(n,0,c);"0"==i.charAt(--o););for(t.e=s-u-1,t.c=[],s=0;o>=u;t.c[s++]=+i.charAt(u++));b&&(t.e>n.maxE?t.c=t.e=null:t.e(256/e|0)*e-1?r(e):n%e+""):(n=d.getRandomValues(new i.Uint32Array(1))[0],n>=4e9?r(e):(n+1e9+"").slice(1))}function n(e){var r,t,i=d.randomBytes;return e?(t=i(1)[0],t>(256/e|0)*e-1?n(e):t%e+""):(r=i(8),r[0]=67,r[1]=15&r[1]|48,t=r.readDoubleBE(0),t>9003599627370495?n(e):(t-0xc72815b398000+"").slice(2))}return function(t,i){var o,a,u,f,c,p,m,h,g=this,x=new g(0),w=e;if(p=t==a||!(v=14,t=new g(t)).c&&!l(g,"limit must be finite",t,"random"))t=new g(g.ONE);else if(!t.c[0])return x;g.crypto&&(d.getRandomValues?w=r:d.randomBytes&&(w=n)),a=t.e,c=(o=t.c).length;do{u=0,h=w(o[0]+1)+w();do f=o[u],m=h.charAt(u++);while(f==m)}while(m>f||u>c||""==m);for(u=0;"0"==h.charAt(u);u++,a--);for(p?i=g.precision:null!=i&&s(t,i,"random",1)?i|=0:i=a+1,i+=u;h.length0)for(x.c=[];i>u;x.c.push(+h.charAt(u++)));else x.c=[a=0];return x.e=a,x.s=t.s,x}}();return p()}(),"undefined"!=typeof e&&e&&e.exports?(e.exports=x,d=n(256)):(d=i.crypto,t=function(){return x}.call(r,n,r,e),!(void 0!==t&&(e.exports=t)))}(this)}).call(r,n(259)(e))},function(e){function r(e,n,t,i){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.fn=e,this.count=n,this.min=t,this.max=i,this.message="Wrong number of arguments in function "+e+" ("+n+" provided, "+t+(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){function r(e,n,t){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.actual=e,this.expected=n,this.relation=t,this.message="Dimension mismatch ("+(Array.isArray(e)?"["+e.join(", ")+"]":e)+" "+(this.relation||"!=")+" "+(Array.isArray(n)?"["+n.join(", ")+"]":n)+")",this.stack=(new Error).stack}r.prototype=new RangeError,r.prototype.constructor=RangeError,r.prototype.name="DimensionError",e.exports=r},function(e){function r(e,n,t){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=n):(this.min=n,this.max=t),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){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,n){r.array=n(153),r["boolean"]=n(257),r.number=n(154),r.bignumber=n(258),r.object=n(3),r.string=n(138),r.types=n(156)},function(e,r,n){function t(e){if(!(this instanceof t))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=n(137),o=(n(3),n(138)),a=(n(11),n(123),Array.isArray),s=i.isNode;t.prototype=new i,t.prototype.type="ArrayNode",t.prototype._compile=function(e){var r="array"!==e.math.config().matrix,n=this.nodes.map(function(r){return r._compile(e)});return(r?"math.matrix([":"[")+n.join(",")+(r?"])":"]")},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this);for(var n=this.nodes,t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.toString=function(){return o.format(this.nodes)},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!o(e))throw new TypeError('String expected for parameter "name"');if(!(r instanceof i))throw new TypeError('Node expected for parameter "expr"');this.name=e,this.expr=r}var i=n(137),o=n(138).isString;t.prototype=new i,t.prototype.type="AssignmentNode",t.prototype._compile=function(e){return'scope["'+this.name+'"] = '+this.expr._compile(e)},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.expr.find(e))},t.prototype.toString=function(){return this.name+" = "+this.expr.toString()},e.exports=t},function(e,r,n){function t(){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.params=[]}var i=n(137),o=n(257).isBoolean;t.prototype=new i,t.prototype.type="BlockNode",t.prototype.add=function(e,r){if(void 0===r&&(r=!0),!(e instanceof i))throw new TypeError('Node expected for parameter "expr"');if(!o(r))throw new TypeError('Boolean expected for parameter "visible"');var n=this.params.length;this.params[n]={node:e,visible:r}},t.prototype._compile=function(e){var r=this.params.map(function(r){var n=r.node._compile(e);return r.visible?"results.push("+n+");":n+";"});return"(function () {var results = [];"+r.join("")+"return results;})()"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this);for(var n=this.params,t=0,i=n.length;i>t;t++)r=r.concat(n[t].node.find(e));return r},t.prototype.toString=function(){return this.params.map(function(e){return e.node.toString()+(e.visible?"":";")}).join("\n")},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!a(e))throw new TypeError('String expected for parameter "type"');if(!a(r))throw new TypeError('String expected for parameter "value"');this.valueType=e,this.value=r}var i=n(137),o=n(138),a=o.isString;t.prototype=new i,t.prototype.type="ConstantNode",t.prototype._compile=function(e){switch(this.valueType){case"number":return"bignumber"===e.math.config().number?'math.bignumber("'+this.value+'")':this.value.replace(/^(0*)[0-9]/,function(e,r){return e.substring(r.length)});case"string":return'"'+this.value+'"';case"complex":return"math.complex(0, "+this.value+")";case"boolean":return this.value;case"undefined":return this.value;case"null":return this.value;default:throw new TypeError('Unsupported type of constant "'+this.valueType+'"')}},t.prototype.toString=function(){switch(this.valueType){case"string":return'"'+this.value+'"';case"complex":return this.value+"i";default:return this.value}},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!o(e))throw new TypeError('String expected for parameter "name"');if(!isArray(r)||!r.every(o))throw new TypeError('Array containing strings expected for parameter "args"');if(!(n instanceof i))throw new TypeError('Node expected for parameter "expr"');this.name=e,this.args=r,this.expr=n}var i=n(137),o=n(138).isString;isArray=Array.isArray,t.prototype=new i,t.prototype.type="FunctionNode",t.prototype._compile=function(e){return'scope["'+this.name+'"] = (function (scope) { scope = Object.create(scope); var fn = function '+this.name+"("+this.args.join(",")+") { if (arguments.length != "+this.args.length+') { throw new SyntaxError("Wrong number of arguments in function '+this.name+' (" + arguments.length + " provided, '+this.args.length+' expected)"); }'+this.args.map(function(e,r){return'scope["'+e+'"] = arguments['+r+"];"}).join("")+" return "+this.expr._compile(e)+' }; fn.syntax = "'+this.name+"("+this.args.join(", ")+')"; return fn; })(scope);'},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.expr.find(e))},t.prototype.toString=function(){return"function "+this.name+"("+this.args.join(", ")+") = "+this.expr.toString()},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof i))throw new TypeError('Node expected for parameter "object"');if(!isArray(r)||!r.every(s))throw new TypeError('Array containing Nodes expected for parameter "ranges"');this.object=e,this.ranges=r}var i=n(137),o=n(132),a=n(133),s=i.isNode;t.prototype=new i,t.prototype.type="IndexNode",t.prototype._compile=function(e){return this.compileSubset(e)},t.prototype.compileSubset=function(e,r){var n={type:a,properties:{name:"end"}},t=!1,i=this.ranges.map(function(e){var r=e.find(n).length>0;return t=r?r:t,r}),s=this.ranges.map(function(r,n){var t=i[n];return r instanceof o?t?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+n+"]; var step = "+(r.step?r.step._compile(e):"1")+"; return [ "+r.start._compile(e)+" - 1, "+r.end._compile(e)+" - (step > 0 ? 0 : 2), step ];})(scope)":"(function () { var step = "+(r.step?r.step._compile(e):"1")+"; return [ "+r.start._compile(e)+" - 1, "+r.end._compile(e)+" - (step > 0 ? 0 : 2), step ];})()":t?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+n+"]; return "+r._compile(e)+" - 1;})(scope)":r._compile(e)+" - 1"});return t?"(function () { var obj = "+this.object._compile(e)+"; var size = math.size(obj).valueOf(); return math.subset( obj, math.index("+s.join(", ")+") "+(r?", "+r:"")+" );})()":"math.subset("+this.object._compile(e)+",math.index("+s.join(", ")+")"+(r?", "+r:"")+")"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this),r=r.concat(this.object.find(e));for(var n=this.ranges,t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.objectName=function(){return this.object.name},t.prototype.toString=function(){return this.object.toString()+"["+this.ranges.join(", ")+"]"},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.op=e,this.fn=r,this.params=n}var i=n(137);t.prototype=new i,t.prototype.type="OperatorNode",t.prototype._compile=function(e){if(!(this.fn in e.math))throw new Error("Function "+this.fn+' missing in provided namespace "math"');var r=this.params.map(function(r){return r._compile(e)});return"math."+this.fn+"("+r.join(", ")+")"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this);var n=this.params;if(n)for(var t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.toString=function(){var e=this.params;switch(e.length){case 1:return"-"==this.op?"-"+e[0].toString():e[0].toString()+this.op;case 2:var r=e[0].toString();e[0]instanceof t&&(r="("+r+")");var n=e[1].toString();return e[1]instanceof t&&(n="("+n+")"),r+" "+this.op+" "+n;default:return this.op+"("+this.params.join(", ")+")"}},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof i))throw new TypeError('Node expected for parameter "object"');if(!isArray(r)||!r.every(o))throw new TypeError('Array containing Nodes expected for parameter "params"');this.object=e,this.params=r}var i=n(137),o=i.isNode;t.prototype=new i,t.prototype.type="ParamsNode",t.prototype._compile=function(e){var r=this.params.map(function(r){return r._compile(e)});return this.object._compile(e)+"("+r.join(", ")+")"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this),r=r.concat(this.object.find(e));for(var n=this.params,t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.toString=function(){return this.object.toString()+"("+this.params.join(", ")+")"},e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!Array.isArray(e)||2!=e.length&&3!=e.length||!e.every(o))throw new TypeError('Expected an Array containing 2 or 3 Nodes as parameter "params"');this.start=e[0],this.end=e[1],this.step=e[2]}var i=n(137),o=i.isNode;t.prototype=new i,t.prototype.type="RangeNode",t.prototype._compile=function(e){return"math.range("+this.start._compile(e)+", "+this.end._compile(e)+", "+(this.step?this.step._compile(e)+", ":"")+"true)"},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.start.find(e)),this.step&&(r=r.concat(this.step.find(e))),r=r.concat(this.end.find(e))},t.prototype.toString=function(){var e=this.start.toString();return this.step&&(e+=":"+this.step.toString()),e+=":"+this.end.toString()},e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!s(e))throw new TypeError('String expected for parameter "name"');this.name=e}function i(e){throw new Error("Undefined symbol "+e)}var o=n(137),a=n(9),s=n(138).isString;t.prototype=new o,t.prototype.type="SymbolNode",t.prototype._compile=function(e){return e.undef=i,e.Unit=a,'(scope["'+this.name+'"] !== undefined ? scope["'+this.name+'"] : math["'+this.name+'"] !== undefined ? math["'+this.name+'"] : '+(a.isValuelessUnit(this.name)?'new Unit(null, "'+this.name+'")':'undef("'+this.name+'")')+")"},t.prototype.toString=function(){return this.name},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.ops=e,this.fn=r,this.params=n}var i=n(130);t.prototype=new i,t.prototype.type="TernaryNode",t.prototype.toString=function(){return this.params[0]+" "+this.ops[0]+" "+this.params[1]+" "+this.ops[1]+" "+this.params[2]},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof i))throw new TypeError('Node expected for parameter "value"');if(!o(r))throw new TypeError('String expected for parameter "unit"');this.value=e,this.unit=r}var i=n(137),o=(n(9),n(138).isString);t.prototype=new i,t.prototype.type="UnitNode",t.prototype._compile=function(e){return"math.unit("+this.value._compile(e)+', "'+this.unit+'")'},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.value.find(e))},t.prototype.toString=function(){return this.value+" "+this.unit},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))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=n(137),o=n(129);t.prototype=new i,t.prototype.type="UpdateNode",t.prototype._compile=function(e){return'scope["'+this.index.objectName()+'"] = '+this.index.compileSubset(e,this.expr._compile(e))},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.index.find(e)),r=r.concat(this.expr.find(e))},t.prototype.toString=function(){return this.index.toString()+" = "+this.expr.toString()},e.exports=t},function(e,r,n){function t(){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator")}var i=n(4);t.prototype.eval=function(){throw new Error("Node.eval is deprecated. Use Node.compile(math).eval([scope]) instead.")},t.prototype.type="Node",t.prototype.compile=function(e){if("object"!=typeof e)throw new TypeError("Object expected for parameter math");var r={math:e,error:i},n=this._compile(r),t=Object.keys(r).map(function(e){return" var "+e+' = defs["'+e+'"];'}),o=t.join(" ")+'return { "eval": function (scope) { try { scope = scope || {}; return '+n+"; } catch (err) { if (err instanceof defs.error.IndexError) { err = new defs.error.IndexError(err.index + 1, err.min + 1, err.max + 1); } throw err; } }};",a=new Function("defs",o);return a(r)},t.prototype._compile=function(){throw new Error("Cannot compile a Node interface")},t.prototype.find=function(e){return this.match(e)?[this]:[]},t.prototype.match=function(e){var r=!0;if(e){!e.type||this instanceof e.type||(r=!1);var n=e.properties;if(r&&n)for(var t in n)if(n.hasOwnProperty(t)&&this[t]!==n[t]){r=!1;break}}return r},t.prototype.toString=function(){return""},t.isNode=function(e){return e instanceof t},e.exports=t},function(e,r,n){function t(e,n){if(Array.isArray(e)){for(var i="[",o=e.length,a=0;o>a;a++)0!=a&&(i+=", "),i+=t(e[a],n);return i+="]"}return r.format(e,n)}var i=n(154),o=n(258),a=n(118);r.isString=function(e){return e instanceof String||"string"==typeof e},r.endsWith=function(e,r){var n=e.length-r.length,t=e.length;return e.substring(n,t)===r},r.format=function(e,n){return i.isNumber(e)?i.format(e,n):e instanceof a?o.format(e,n):Array.isArray(e)?t(e,n):r.isString(e)?'"'+e+'"':"function"==typeof e?e.syntax?e.syntax+"":"function":e instanceof Object?"function"==typeof e.format?e.format(n):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:"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:"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:["pi"],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,r,n){function t(e){for(var r=[];l(e);)r.push(e.length),e=e[0];return r}function i(e,r,n){var t,o=e.length;if(o!=r[n])throw new f(o,r[n]);if(nt;t++){var s=e[t];if(!l(s))throw new f(r.length-1,r.length,"<");i(e[t],r,a)}}else for(t=0;o>t;t++)if(l(e[t]))throw new f(r.length+1,r.length,">")}function o(e,r,n,t){if(!l(e))throw Error("Array expected");var i,a,s=e.length,f=r[n],c=Math.min(s,f);if(e.length=f,ni;i++)a=e[i],o(a,r,p,t);for(i=c;f>i;i++)a=[],e[i]=a,o(a,r,p,t)}else if(void 0!==t)for(i=s;f>i;i++)e[i]=u.clone(t)}var a=n(154),s=n(138),u=n(3),f=(n(156),n(120)),c=n(121),l=Array.isArray;r.size=function(e){var n=t(e);return r.validate(e,n),n},r.validate=function(e,r){var n=0==r.length;if(n){if(l(e))throw new f(e.length,0)}else i(e,r,0)},r.validateIndex=function(e,r){if(!a.isNumber(e)||!a.isInteger(e))throw new TypeError("Index must be an integer (value: "+e+")");if(0>e)throw new c(e);if(void 0!==r&&e>=r)throw new c(e,r)},r.resize=function(e,r,n){if(!l(e)||!l(r))throw new TypeError("Array expected");if(0===r.length)throw new Error("Resizing to scalar is not supported");r.forEach(function(e){if(!a.isNumber(e)||!a.isInteger(e)||0>e)throw new TypeError("Invalid size, must contain positive integers (size: "+s.format(r)+")")});for(var t=1,i=e[0];l(i);)t++,i=i[0];for(;tr.length;)e=e[0],t--;return o(e,r,0,n),e},r.squeeze=function(e){for(;l(e)&&1===e.length;)e=e[0];return e},r.unsqueeze=function(e,n){for(var t=r.size(e),i=0,o=n-t.length;o>i;i++)e=[e];return e},r.flatten=function(e){for(var r=e,n=Array.isArray;n(r[0]);){for(var t=[],i=0,o=r.length;o>i;i++)t=t.concat.apply(t,r[i]);r=t}return r},r.isArray=l},function(e,r){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,n){if("function"==typeof n)return n(e);if(1/0===e)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var t="auto",i=void 0;switch(void 0!==n&&(n.notation&&(t=n.notation),r.isNumber(n)?i=n:n.precision&&(i=n.precision)),t){case"fixed":return r.toFixed(e,i);case"exponential":return r.toExponential(e,i);case"auto":var o=.001,a=1e5;if(n&&n.exponential&&(void 0!==n.exponential.lower&&(o=n.exponential.lower),void 0!==n.exponential.upper&&(a=n.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 "'+t+'". 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,n,t){if(null==t)return e==n; -if(e==n)return!0;if(isNaN(e)||isNaN(n))return!1;if(isFinite(e)&&isFinite(n)){var i=Math.abs(e-n);return i 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:"Operators",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:"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 ^ 3","log(1000, 10)","log(1000) / log(10)","b = logb(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(1000)","10 ^ 3","log10(0.01)","log(1000) / log(10)","log(1000, 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:[]}},function(e){e.exports={name:"multiply",category:"Operators",syntax:["x * y","multiply(x, y)"],description:"multiply two values.",examples:["2.1 * 3.6","ans / 3.6","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:["norm([[1, 2], [3, 4]])","norm([[1, 2, 3, 4]], 3.5)","norm(-4.2)","norm([[1, 2], [-3, -4]], 'fro')"]}},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:["unequal","smaller","larger","smallereq","largereq"]}},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:"smaller",category:"Operators",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:"Operators",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:"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:["5.3 - 2","ans + 2","2/3 - 1/6","2 * 3 - 3","2.1 km - 500m"],seealso:["add"]}},function(e){e.exports={name:"unary",category:"Operators",syntax:["-x","unary(x)"],description:"Inverse the sign of a value.",examples:["-4.5","-(-5.6)"],seealso:["add","subtract"]}},function(e){e.exports={name:"unequal",category:"Operators",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"]}},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:"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])"],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:"concat",category:"Matrix",syntax:["concat(a, b, c, ...)","concat(a, b, c, ..., dim)"],description:"Concatenate matrices. By default, the matrices are concatenated by the first 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)","[a, b]","concat(a, b, 2)","[a; b]"],seealso:["det","diag","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},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:"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:"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], 0)","resize(2, [2, 3], 0)",'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 singleton dimensions from a matrix.",examples:["a = zeros(1,3,2)","size(squeeze(a))","b = zeros(3,1,1)","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:"distribution",category:"Probability",syntax:["distribution(name)","distribution(name, arg1, arg2, ...)"],description:'Create a distribution object of a specific type. A distribution object contains functions `random([size,] [min,] [max])`, `randomInt([size,] [min,] [max])`, and `pickRandom(array)`. Available types of distributions: "uniform", "normal". Note that the function distribution is currently not available via the expression parser.',examples:[],seealso:["random","randomInt"]}},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:[]}},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, 4)"],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:["distribution","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:["distribution","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:["distribution","pickRandom","random"]}},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(4, 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","acos","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","asin"]}},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(2)","cosh(pi / 4) ^ 2","cosh(180 deg)","cosh(60 deg)","sinh(0.2)^2 + cosh(0.2)^2"],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)"],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(2)","sinh(pi / 4) ^ 2","sinh(90 deg)","sinh(30 deg)","sinh(0.2)^2 + cosh(0.2)^2"],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)","tanh(pi / 4)","tanh(45 deg)"],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 in cm","3.2kg in 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 math.max(val, 1.5) })"],seealso:[]}},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.",examples:["forEach([1, 2, 3], function(val) { console.log(val) })"],seealso:[]}},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:"ifElse",category:"Utils",syntax:["ifElse(conditional, trueExpr, falseExpr)"],description:"Executes a conditional expression.",examples:["ifElse(10 > 0, 10, 0)",'ifElse("", true, false)',"ifElse([4, 6, 0, -1], true, false)"],seealso:[]}},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:"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(r){r.exports=e},function(e,r){r.isBoolean=function(e){return e instanceof Boolean||"boolean"==typeof e}},function(e,r,n){var t=n(118),i=n(154).isNumber;digits=n(154).digits,r.isBigNumber=function(e){return e instanceof t},r.format=function(e,n){if("function"==typeof n)return n(e);if(!e.isFinite())return e.isNaN()?"NaN":e.gt(0)?"Infinity":"-Infinity";var t="auto",o=void 0;switch(void 0!==n&&(n.notation&&(t=n.notation),i(n)?o=n:n.precision&&(o=n.precision)),t){case"fixed":return r.toFixed(e,o);case"exponential":return r.toExponential(e,o);case"auto":var a=.001,s=1e5;n&&n.exponential&&(void 0!==n.exponential.lower&&(a=n.exponential.lower),void 0!==n.exponential.upper&&(s=n.exponential.upper));{({toExpNeg:e.constructor.toExpNeg,toExpPos:e.constructor.toExpPos})}if(e.constructor.config({toExpNeg:Math.round(Math.log(a)/Math.LN10),toExpPos:Math.round(Math.log(s)/Math.LN10)}),e.isZero())return"0";var u,f=e.abs();return u=f.gte(a)&&f.lt(s)?e.toSignificantDigits(o).toFixed():r.toExponential(e,o),u.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],r=arguments[4];return"."!==e?e+r:r});default:throw new Error('Unknown notation "'+t+'". 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){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}}])}); +!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r(require("crypto")):"function"==typeof define&&define.amd?define(["crypto"],r):"object"==typeof exports?exports.mathjs=r(require("crypto")):e.mathjs=r(e.crypto)}(this,function(e){return function(e){function r(t){if(n[t])return n[t].exports;var i=n[t]={exports:{},id:t,loaded:!1};return e[t].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var n={};return r.m=e,r.c=n,r.p="",r(0)}([function(e,r,n){e.exports=n(1)},function(e,r,n){function t(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={},t={matrix:"matrix",number:"number",precision:20,epsilon:1e-14};r.config=function(e){if(e){if(i.deepExtend(t,e),e.precision&&r.type.BigNumber.config({precision:e.precision}),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(t)};var o=n(118).constructor();if("function"!=typeof o.prototype.clone&&(o.prototype.clone=function(){return new o(this)}),"function"==typeof o.convert)throw new Error("Cannot add function convert to BigNumber: function already exists");return o.convert=function(e){return digits(e)>15?e:new o(e)},r.error=n(4),r.type={},r.type.Complex=n(5),r.type.Range=n(6),r.type.Index=n(7),r.type.Matrix=n(8),r.type.Unit=n(9),r.type.Help=n(10),r.type.BigNumber=o,r.collection=n(11),r.expression={},r.expression.node=n(14),r.expression.parse=n(12),r.expression.Parser=n(13),r.expression.docs=n(15),n(17)(r,t),n(18)(r,t),n(19)(r,t),n(20)(r,t),n(21)(r,t),n(22)(r,t),n(23)(r,t),n(24)(r,t),n(25)(r,t),n(26)(r,t),n(27)(r,t),n(28)(r,t),n(29)(r,t),n(30)(r,t),n(31)(r,t),n(32)(r,t),n(33)(r,t),n(34)(r,t),n(35)(r,t),n(36)(r,t),n(37)(r,t),n(38)(r,t),n(39)(r,t),n(40)(r,t),n(41)(r,t),n(42)(r,t),n(43)(r,t),n(44)(r,t),n(45)(r,t),n(46)(r,t),n(47)(r,t),n(48)(r,t),n(49)(r,t),n(50)(r,t),n(51)(r,t),n(52)(r,t),n(53)(r,t),n(54)(r,t),n(55)(r,t),n(56)(r,t),n(57)(r,t),n(58)(r,t),n(59)(r,t),n(60)(r,t),n(61)(r,t),n(62)(r,t),n(63)(r,t),n(64)(r,t),n(65)(r,t),n(66)(r,t),n(67)(r,t),n(68)(r,t),n(69)(r,t),n(70)(r,t),n(71)(r,t),n(72)(r,t),n(73)(r,t),n(74)(r,t),n(75)(r,t),n(76)(r,t),n(77)(r,t),n(78)(r,t),n(79)(r,t),n(80)(r,t),n(81)(r,t),n(82)(r,t),n(83)(r,t),n(84)(r,t),n(85)(r,t),n(86)(r,t),n(87)(r,t),n(88)(r,t),n(89)(r,t),n(90)(r,t),n(91)(r,t),n(92)(r,t),n(93)(r,t),n(94)(r,t),n(95)(r,t),n(96)(r,t),n(97)(r,t),n(98)(r,t),n(99)(r,t),n(100)(r,t),n(101)(r,t),n(102)(r,t),n(103)(r,t),n(104)(r,t),n(105)(r,t),n(106)(r,t),n(107)(r,t),n(108)(r,t),n(109)(r,t),n(110)(r,t),n(111)(r,t),n(112)(r,t),n(113)(r,t),n(114)(r,t),n(115)(r,t),n(116)(r,t),n(117)(r,t),n(2)(r,t),r.chaining={},r.chaining.Selector=n(16)(r,t),r.config(e),r}var i=n(3);e.exports=t},function(e,r,n){e.exports=function(e){var r=n(5);e.pi=Math.PI,e.e=Math.E,e.tau=2*Math.PI,e.i=new r(0,1),e.Infinity=1/0,e.NaN=0/0,e["true"]=!0,e["false"]=!1,e.E=Math.E,e.LN2=Math.LN2,e.LN10=Math.LN10,e.LOG2E=Math.LOG2E,e.LOG10E=Math.LOG10E,e.PI=Math.PI,e.SQRT1_2=Math.SQRT1_2,e.SQRT2=Math.SQRT2}},function(e,r){r.clone=function n(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 n(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 t={};for(var i in e)e.hasOwnProperty(i)&&(t[i]=n(e[i]));return t},r.extend=function(e,r){for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n]);return e},r.deepExtend=function t(e,r){if(Array.isArray(r))throw new TypeError("Arrays are not supported by deepExtend");for(var n in r)if(r.hasOwnProperty(n))if(r[n]&&r[n].constructor===Object)void 0===e[n]&&(e[n]={}),e[n].constructor===Object?t(e[n],r[n]):e[n]=r[n];else{if(Array.isArray(r[n]))throw new TypeError("Arrays are not supported by deepExtend");e[n]=r[n]}return e},r.deepEqual=function(e,n){var t,i,o;if(Array.isArray(e)){if(!Array.isArray(n))return!1;if(e.length!=n.length)return!1;for(i=0,o=e.length;o>i;i++)if(!r.deepEqual(e[i],n[i]))return!1;return!0}if(e instanceof Object){if(Array.isArray(n)||!(n instanceof Object))return!1;for(t in e)if(!r.deepEqual(e[t],n[t]))return!1;for(t in n)if(!r.deepEqual(e[t],n[t]))return!1;return!0}return typeof e==typeof n&&e==n}},function(e,r,n){r.ArgumentsError=n(119),r.DimensionError=n(120),r.IndexError=n(121),r.UnsupportedTypeError=n(122)},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");switch(arguments.length){case 0:this.re=0,this.im=0;break;case 1:var n=arguments[0];if("object"==typeof n){if("re"in n&&"im"in n){var i=new t(n.re,n.im);this.re=i.re,this.im=i.im;break}if("r"in n&&"phi"in n){var i=t.fromPolar(n.r,n.phi);this.re=i.re,this.im=i.im;break}}throw new SyntaxError("Object with the re and im or r and phi properties expected.");case 2:if(!h(e)||!h(r))throw new TypeError("Two numbers expected in Complex constructor");this.re=e,this.im=r;break;default:throw new SyntaxError("One, two or three arguments expected in Complex constructor")}}function i(){for(;" "==y||" "==y;)s()}function o(e){return e>="0"&&"9">=e||"."==e}function a(e){return e>="0"&&"9">=e}function s(){w++,y=x.charAt(w)}function u(e){w=e,y=x.charAt(w)}function f(){var e,r="";if(e=w,"+"==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=x.charAt(w+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=n(123),p=n(9),m=l.number,h=l.number.isNumber,g=p.isUnit,d=l.string.isString;t.isComplex=function(e){return e instanceof t};var x,w,y;t.parse=function(e){if(x=e,w=-1,y="",!d(x))return null;s(),i();var r=f();if(r){if("I"==y||"i"==y)return s(),i(),y?null:new t(0,Number(r));i();var n=y;if("+"!=n&&"-"!=n)return i(),y?null:new t(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"-"==n&&(o="-"==o[0]?"+"+o.substring(1):"-"+o),s(),i(),y?null:new t(Number(r),Number(o))}return(r=c())?(i(),y?null:new t(0,Number(r))):null},t.fromPolar=function(){switch(arguments.length){case 1:var e=arguments[0];if("object"==typeof e)return t.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],n=arguments[1];if(h(r)){if(g(n)&&n.hasBase(p.BASE_UNITS.ANGLE)&&(n=n.toNumber("rad")),h(n))return new t(r*Math.cos(n),r*Math.sin(n));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")}},t.prototype.toPolar=function(){return{r:Math.sqrt(this.re*this.re+this.im*this.im),phi:Math.atan2(this.im,this.re)}},t.prototype.clone=function(){return new t(this.re,this.im)},t.prototype.equals=function(e){return this.re===e.re&&this.im===e.im},t.prototype.format=function(e){var r="",n=m.format(this.re,e),t=m.format(this.im,e);return r=0==this.im?n:0==this.re?1==this.im?"i":-1==this.im?"-i":t+"i":this.im>0?1==this.im?n+" + i":n+" + "+t+"i":-1==this.im?n+" - i":n+" - "+t.substring(1)+"i"},t.prototype.toString=function(){return this.format()},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))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!=n&&!o.isNumber(n))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!=n?parseFloat(n):1}{var i=n(123),o=i.number,a=i.string;i.array}t.parse=function(e){if(!a.isString(e))return null;var r=e.split(":"),n=r.map(function(e){return parseFloat(e)}),i=n.some(function(e){return isNaN(e)});if(i)return null;switch(n.length){case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[2],n[1]);default:return null}},t.prototype.clone=function(){return new t(this.start,this.end,this.step)},t.isRange=function(e){return e instanceof t},t.prototype.size=function(){var e=0,r=this.start,n=this.step,t=this.end,i=t-r;return o.sign(n)==o.sign(i)?e=Math.ceil(i/n):0==i&&(e=0),isNaN(e)&&(e=0),[e]},t.prototype.min=function(){var e=this.size()[0];return e>0?this.step>0?this.start:this.start+(e-1)*this.step:void 0},t.prototype.max=function(){var e=this.size()[0];return e>0?this.step>0?this.start+(e-1)*this.step:this.start:void 0},t.prototype.forEach=function(e){var r=this.start,n=this.step,t=this.end,i=0;if(n>0)for(;t>r;)e(r,i,this),r+=n,i++;else if(0>n)for(;r>t;)e(r,i,this),r+=n,i++},t.prototype.map=function(e){var r=[];return this.forEach(function(n,t,i){r[t]=e(n,t,i)}),r},t.prototype.toArray=function(){var e=[];return this.forEach(function(r,n){e[n]=r}),e},t.prototype.valueOf=function(){return this.toArray()},t.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)},t.prototype.toString=function(){return this.format()},e.exports=t},function(e,r,n){function t(){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this._ranges=[];for(var e=0,r=arguments.length;r>e;e++){var n=arguments[e];if(n instanceof a)this._ranges.push(n);else if(c(n))this._ranges.push(i(n));else{if(!u(n))throw new TypeError("Ranges must be an Array, Number, or Range");this._ranges.push(i([n,n+1]))}}}function i(e){for(var r=e.length,n=0;r>n;n++)if(!u(e[n])||!f(e[n]))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=n(123),a=n(6),s=o.number,u=s.isNumber,f=s.isInteger,c=Array.isArray;o.array.validateIndex}t.prototype.clone=function(){var e=new t;return e._ranges=o.object.clone(this._ranges),e},t.isIndex=function(e){return e instanceof t},t.create=function(e){var r=new t;return t.apply(r,e),r},t.prototype.size=function l(){for(var l=[],e=0,r=this._ranges.length;r>e;e++){var n=this._ranges[e];l[e]=n.size()[0]}return l},t.prototype.max=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r];e[r]=t.max()}return e},t.prototype.min=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r];e[r]=t.min()}return e},t.prototype.forEach=function(e){for(var r=0,n=this._ranges.length;n>r;r++)e(this._ranges[r],r,this)},t.prototype.range=function(e){return this._ranges[e]||null},t.prototype.isScalar=function(){for(var e=this.size(),r=0,n=e.length;n>r;r++)if(1!==e[r])return!1;return!0},t.prototype.toArray=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r],i=[],o=t.start,a=t.end,s=t.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},t.prototype.valueOf=t.prototype.toArray,t.prototype.toString=function(){for(var e=[],r=0,n=this._ranges.length;n>r;r++){var t=this._ranges[r],i=s.format(t.start);1!=t.step&&(i+=":"+s.format(t.step)),i+=":"+s.format(t.end),e.push(i)}return"["+e.join(", ")+"]"},e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(e instanceof t)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 n=r.isScalar();if(n)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=new t(o(e._data,r,i.length,0));d(a._data)&&1==a._data.length;)a._data=a._data[0],a._size.shift();return a}function o(e,r,n,t){var i=t==n-1,a=r.range(t);return a.map(i?function(r){return x(r,e.length),e[r]}:function(i){x(i,e.length);var a=e[i];return o(a,r,n,t+1)})}function a(e,r,n,i){if(!(r instanceof p))throw new TypeError("Invalid index");var o,a=r.size(),f=r.isScalar();if(n instanceof t?(o=n.size(),n=n.valueOf()):o=h.size(n),f){if(0!=o.length)throw new TypeError("Scalar expected");e.set(r.min(),n,i)}else{if(a.lengthc;c++)n=[n],o.unshift(1);if(!g.deepEqual(a,o))throw new l(a,o);var d=r.max().map(function(e){return e+1});u(e,d,i);var x=a.length,w=0;s(e._data,r,n,x,w)}return e}function s(e,r,n,t,i){var o=i==t-1,a=r.range(i);a.forEach(o?function(r,t){x(r),e[r]=n[t]}:function(o,a){x(o),s(e[o],r,n[a],t,i+1)})}function u(e,r,n){for(var t=g.clone(e._size),i=!1;t.lengtho;o++)r[o]>t[o]&&(t[o]=r[o],i=!0);i&&e.resize(t,n)}function f(e){for(var r=0,n=e.length;n>r;r++){var i=e[r];d(i)?e[r]=f(i):i instanceof t&&(e[r]=f(i._data))}return e}var c=n(123),l=n(120),p=n(7),m=(c.number,c.string),h=c.array,g=c.object,d=Array.isArray,x=h.validateIndex;t.isMatrix=function(e){return e instanceof t},t.prototype.subset=function(e,r,n){switch(arguments.length){case 1:return i(this,e);case 2:case 3:return a(this,e,r,n);default:throw new SyntaxError("Wrong number of arguments")}},t.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,n=0,t=e.length;t>n;n++){var i=e[n];x(i,r.length),r=r[i]}return g.clone(r)},t.prototype.set=function(e,r,n){var t,i;if(!d(e))throw new Error("Array expected");if(e.lengtht;t++){var s=e[t];x(s,a.length),a=a[s]}return s=e[e.length-1],x(s,a.length),a[s]=r,this},t.prototype.resize=function(e,r){return this._size=g.clone(e),this._data=h.resize(this._data,this._size,r),this},t.prototype.clone=function(){var e=new t;return e._data=g.clone(this._data),e._size=g.clone(this._size),e},t.prototype.size=function(){return this._size},t.prototype.map=function(e){var r=this,n=new t,i=[],o=function(n,t){return d(n)?n.map(function(e,r){return i[t]=r,o(e,t+1)}):e(n,i,r)};return n._data=o(this._data,0),n._size=g.clone(this._size),n},t.prototype.forEach=function(e){var r=this,n=[],t=function(i,o){d(i)?i.forEach(function(e,r){n[o]=r,t(e,o+1)}):e(i,n,r)};t(this._data,0)},t.prototype.toArray=function(){return g.clone(this._data)},t.prototype.valueOf=function(){return this._data},t.prototype.format=function(e){return m.format(this._data,e)},t.prototype.toString=function(){return m.format(this._data)},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new Error("Constructor must be called with the new operator");if(null!=e&&!w(e))throw new TypeError("First parameter in Unit constructor must be a number");if(null!=r&&(!y(r)||""==r))throw new TypeError("Second parameter in Unit constructor must be a string");if(null!=r){var n=l(r);if(!n)throw new SyntaxError('Unknown unit "'+r+'"');this.unit=n.unit,this.prefix=n.prefix}else this.unit=UNIT_NONE,this.prefix=b;null!=e?(this.value=this._normalize(e),this.fixPrefix=!1):(this.value=null,this.fixPrefix=!0)}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 N)if(N.hasOwnProperty(r)&&x.endsWith(e,r)){var n=N[r],t=e.length-r.length,i=e.substring(0,t),o=n.prefixes[i];if(void 0!==o)return{unit:n,prefix:o}}return null}var p,m,h,g=n(123),d=g.number,x=g.string,w=g.number.isNumber,y=g.string.isString;t.parse=function(e){if(p=e,m=-1,h="",!y(p))return null;s(),i();var r,n=f();if(n){if(r=c(),s(),i(),h)return null;if(n&&r)try{return new t(Number(n),r)}catch(o){}}else{if(r=c(),s(),i(),h)return null;if(r)try{return new t(null,r)}catch(o){}}return null},t.isUnit=function(e){return e instanceof t},t.prototype.clone=function(){var e=new t;for(var r in this)this.hasOwnProperty(r)&&(e[r]=this[r]);return e},t.prototype._normalize=function(e){return(e+this.unit.offset)*this.unit.value*this.prefix.value},t.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},t.isValuelessUnit=function(e){return null!=l(e)},t.prototype.hasBase=function(e){return this.unit.base===e},t.prototype.equalBase=function(e){return this.unit.base===e.unit.base},t.prototype.equals=function(e){return this.equalBase(e)&&this.value==e.value},t.prototype.to=function(e){var r;if(y(e)){if(r=new t(null,e),!this.equalBase(r))throw new Error("Units do not match");return r.value=this.value,r}if(e instanceof t){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=this.value,r.fixPrefix=!0,r}throw new Error("String or Unit expected as parameter")},t.prototype.toNumber=function(e){var r=this.to(e);return r._unnormalize(r.value,r.prefix.value)},t.prototype.toString=function(){return this.format()},t.prototype.format=function(e){var r,n;if(this.fixPrefix)r=this._unnormalize(this.value),n=null!=this.value?d.format(r,e)+" ":"",n+=this.prefix.name+this.unit.name;else{var t=this._bestPrefix();r=this._unnormalize(this.value,t.value),n=d.format(r,e)+" ",n+=t.name+this.unit.name}return n},t.prototype._bestPrefix=function(){var e=Math.abs(this.value/this.unit.value),r=b,n=Math.abs(Math.log(e/r.value)/Math.LN10-1.2),t=this.unit.prefixes;for(var i in t)if(t.hasOwnProperty(i)){var o=t[i];if(o.scientific){var a=Math.abs(Math.log(e/o.value)/Math.LN10-1.2);n>a&&(r=o,n=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:{}};BASE_UNIT_NONE={},UNIT_NONE={name:"",base:BASE_UNIT_NONE,value:1,offset:0};var N={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},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}},M={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",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 A in M)if(M.hasOwnProperty(A)){var T=N[M[A]],S=Object.create(T);S.name=A,N[A]=S}N.lt=N.l,N.liter=N.litre,N.liters=N.litres,N.lb=N.lbm,N.lbs=N.lbm,t.PREFIXES=v,t.BASE_UNITS=E,t.UNITS=N,e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.math=e,this.doc=r}var i=n(123),o=i.object,a=i.string;t.isHelp=function(e){return e instanceof t},t.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 n=this.math.parser();r+="Examples:\n";for(var i=0;i=r){if(u(e[0])){for(f=i(e),a=[],o=0;on;n++){var a=[];for(r=0;t>r;r++)a.push(e[r][n]);o.push(a)}return o}{var o=n(123),a=n(120),s=n(8),u=o.array.isArray;o.string.isString}r.argsToArray=function(e){var r;return 0==e.length?r=[]:1==e.length?(r=e[0],r instanceof s&&(r=r.valueOf()),u(r)||(r=[r])):r=Array.prototype.slice.apply(e),r},r.isCollection=function(e){return u(e)||e instanceof s},r.deepMap=function f(e,r){return e&&"function"==typeof e.map?e.map(function(e){return f(e,r)}):r(e)},r.deepMap2=function c(e,r,n){var t,i,o;if(u(e))if(u(r)){if(e.length!=r.length)throw new a(e.length,r.length);for(t=[],i=e.length,o=0;i>o;o++)t[o]=c(e[o],r[o],n)}else{if(r instanceof s)return t=c(e,r.valueOf(),n),new s(t);for(t=[],i=e.length,o=0;i>o;o++)t[o]=c(e[o],r,n)}else{if(e instanceof s)return r instanceof s?(t=c(e.valueOf(),r.valueOf(),n),new s(t)):(t=c(e.valueOf(),r,n),new s(t));if(u(r))for(t=[],i=r.length,o=0;i>o;o++)t[o]=c(e,r[o],n);else{if(r instanceof s)return t=c(e,r.valueOf(),n),new s(t);t=n(e,r)}}return t},r.reduce=function(e,r,n){return e instanceof s?new s(t(e.valueOf(),r,n)):t(e,r,n)},r.deepForEach=function l(e,r){e instanceof s&&(e=e.valueOf());for(var n=0,t=e.length;t>n;n++){var i=e[n];u(i)?l(i,r):r(i)}}},function(e,r,n){function t(e,r){if(1!=arguments.length&&2!=arguments.length)throw new F("parse",arguments.length,1,2);if(fr="object"===V(r)?r:{},G(e))return cr=e,p();if(D(e)||e instanceof H)return Y.deepMap(e,function(e){if(!G(e))throw new TypeError("String expected");return cr=e,p()});throw new TypeError("String or matrix expected")}function i(){lr=0,pr=cr.charAt(0)}function o(){lr++,pr=cr.charAt(lr)}function a(){return cr.charAt(lr+1)}function s(){for(hr=ar.NULL,mr="";" "==pr||" "==pr;)o();if("#"==pr)for(;"\n"!=pr&&""!=pr;)o();if(""==pr)return void(hr=ar.DELIMITER);var e=pr+a();if(sr[e])return hr=ar.DELIMITER,mr=e,o(),void o();if(sr[pr])return hr=ar.DELIMITER,mr=pr,void o();if(!c(pr)){if(f(pr)){for(;f(pr)||l(pr);)mr+=pr,o();return void(hr=ur[mr]?ar.DELIMITER:ar.SYMBOL)}for(hr=ar.UNKNOWN;""!=pr;)mr+=pr,o();throw j('Syntax error in part "'+mr+'"')}if(hr=ar.NUMBER,"."==pr)mr+=pr,o(),l(pr)||(hr=ar.UNKNOWN);else{for(;l(pr);)mr+=pr,o();"."==pr&&(mr+=pr,o())}for(;l(pr);)mr+=pr,o();if("E"==pr||"e"==pr)for(mr+=pr,o(),("+"==pr||"-"==pr)&&(mr+=pr,o()),l(pr)||(hr=ar.UNKNOWN);l(pr);)mr+=pr,o()}function u(){for(;"\n"==mr;)s()}function f(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"==e}function c(e){return e>="0"&&"9">=e||"."==e}function l(e){return e>="0"&&"9">=e}function p(){i(),s();var e=m();if(""!=mr)throw hr==ar.DELIMITER?P("Unknown operator "+mr):j('Unexpected part "'+mr+'"');return e}function m(){var e,r,n;if(""==mr)return new $("undefined","undefined");for("\n"!=mr&&";"!=mr&&(e=h());"\n"==mr||";"==mr;)r||(r=new Q,e&&(n=";"!=mr,r.add(e,n))),s(),"\n"!=mr&&";"!=mr&&""!=mr&&(e=h(),n=";"!=mr,r.add(e,n));return r?r:e}function h(){var e=g(),r="ans";return new Z(r,e)}function g(){if(hr==ar.SYMBOL&&"function"==mr)throw j('Deprecated keyword "function". Functions can now be assigned without it, like "f(x) = x^2".');return d()}function d(){var e,r,n,t=x();if("="==mr){if(t instanceof nr)return e=t.name,s(),n=d(),new Z(e,n);if(t instanceof J)return s(),n=d(),new or(t,n);if(t instanceof er){var i=!0;if(r=[],t.object instanceof nr?(e=t.object.name,t.params.forEach(function(e,n){e instanceof nr?r[n]=e.name:i=!1})):i=!1,i)return s(),n=d(),new K(e,r,n)}throw j("Invalid left hand side of assignment operator =")}return t}function x(){var e,r=[];if(e=":"==mr?new $("number","1"):w(),":"==mr){for(r.push(e);":"==mr;)s(),r.push(")"==mr||"]"==mr||","==mr||""==mr?new nr("end"):w());if(3==r.length){var n=r[2];r[2]=r[1],r[1]=n}e=new rr(r)}return e}function w(){var e=y();return e}function y(){for(var e=v();"?"==mr;){s();var r=[e];if(r.push(v()),":"!=mr)throw j("False part of conditional expression expected");s(),r.push(y()),e=new tr(["?",":"],"ifElse",r)}return e}function v(){var e,r,n,t,i;for(e=b(),r={"==":"equal","!=":"unequal","<":"smaller",">":"larger","<=":"smallereq",">=":"largereq"};mr in r;)n=mr,t=r[n],s(),i=[e,b()],e=new X(n,t,i);return e}function b(){var e,r,n,t,i;for(e=E(),r={to:"to","in":"to"};mr in r;)n=mr,t=r[n],s(),i=[e,E()],e=new X(n,t,i);return e}function E(){var e,r,n,t,i;for(e=N(),r={"+":"add","-":"subtract"};mr in r;)n=mr,t=r[n],s(),i=[e,N()],e=new X(n,t,i);return e}function N(){var e,r,n,t,i;for(e=M(),r={"*":"multiply",".*":"emultiply","/":"divide","./":"edivide","%":"mod",mod:"mod"};mr in r;)n=mr,t=r[n],s(),i=[e,M()],e=new X(n,t,i);return e}function M(){var e,r;return e=A(),(hr==ar.SYMBOL||"in"==mr)&&(r=mr,s(),e=new ir(e,r)),e}function A(){var e,r,n;return"-"==mr?(e=mr,r="unary",s(),n=[A()],new X(e,r,n)):T()}function T(){var e,r,n,t;return e=S(),("^"==mr||".^"==mr)&&(r=mr,n="^"==r?"pow":"epow",s(),t=[e,A()],e=new X(r,n,t)),e}function S(){var e,r,n,t,i;for(e=O(),r={"!":"factorial","'":"transpose"};mr in r;)n=mr,t=r[n],s(),i=[e],e=new X(n,t,i),e=U(e);return e}function O(){var e,r=[];if(hr==ar.SYMBOL&&fr[mr]){if(e=fr[mr],s(),"("==mr){if(r=[],s(),")"!=mr)for(r.push(x());","==mr;)s(),r.push(x());if(")"!=mr)throw j("Parenthesis ) expected");s()}return new e(r)}return C()}function C(){var e,r;return hr==ar.SYMBOL||hr==ar.DELIMITER&&mr in ur?(r=mr,s(),e=new nr(r),U(e)):q()}function U(e){for(var r,n;"("==mr||"["==mr;){if(r=mr,n=[],s(),")"!=mr&&"]"!=mr)for(n.push(x());","==mr;)s(),n.push(x());if("("==r&&")"!=mr)throw j("Parenthesis ) expected");if("["==r&&"]"!=mr)throw j("Parenthesis ] expected");s(),e="("==r?new er(e,n):new J(e,n)}return e}function q(){var e,r,n;if('"'==mr){for(r="",n="";""!=pr&&('"'!=pr||"\\"==n);)r+=pr,n=pr,o();if(s(),'"'!=mr)throw j('End of string " expected');return s(),e=new $("string",r),e=U(e)}return B()}function B(){var e,r,n,t;if("["==mr){if(s(),u(),"]"!=mr){var i=z();if(";"==mr){for(n=1,r=[i];";"==mr;)s(),u(),r[n]=z(),n++,u();if("]"!=mr)throw j("End of matrix ] expected");s(),t=r[0].nodes.length;for(var o=1;n>o;o++)if(r[o].nodes.length!=t)throw P("Column dimensions mismatch ("+r[o].nodes.length+" != "+t+")");e=new W(r)}else{if("]"!=mr)throw j("End of matrix ] expected");s(),e=i}}else s(),e=new W([]);return e=U(e)}return I()}function z(){for(var e=[d()],r=1;","==mr;)s(),u(),e[r]=d(),r++,u();return new W(e)}function I(){var e,r;return hr==ar.NUMBER?(r=mr,s(),"i"==mr||"I"==mr?(s(),e=new $("complex",r)):e=new $("number",r),e=U(e)):_()}function _(){var e;if("("==mr){if(s(),e=d(),")"!=mr)throw j("Parenthesis ) expected");return s(),e=U(e)}return R()}function R(){throw j(""==mr?"Unexpected end of expression":"Value expected")}function L(){return lr-mr.length+1}function j(e){var r=L(),n=new SyntaxError(e+" (char "+r+")");return n["char"]=r,n}function P(e){var r=L(),n=new Error(e+" (char "+r+")");return n["char"]=r,n}var k=n(123),F=n(119),G=k.string.isString,D=Array.isArray,V=k.types.type,H=(n(5),n(8)),Y=(n(9),n(11)),W=n(124),Z=n(125),Q=n(126),$=n(127),K=n(128),J=n(129),X=n(130),er=n(131),rr=n(132),nr=n(133),tr=n(134),ir=n(135),or=n(136),ar={NULL:0,DELIMITER:1,NUMBER:2,SYMBOL:3,UNKNOWN:4},sr={",":!0,"(":!0,")":!0,"[":!0,"]":!0,'"':!0,"\n":!0,";":!0,"+":!0,"-":!0,"*":!0,".*":!0,"/":!0,"./":!0,"%":!0,"^":!0,".^":!0,"!":!0,"'":!0,"=":!0,":":!0,"?":!0,"==":!0,"!=":!0,"<":!0,">":!0,"<=":!0,">=":!0},ur={mod:!0,to:!0,"in":!0},fr={},cr="",lr=0,pr="",mr="",hr=ar.NULL;e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if("object"!=typeof e)throw new TypeError("Object expected as parameter math");this.math=e,this.scope={}}var i=n(12);t.prototype.parse=function(){throw new Error("Parser.parse is deprecated. Use math.parse instead.")},t.prototype.compile=function(){throw new Error("Parser.compile is deprecated. Use math.compile instead.")},t.prototype.eval=function(e){return i(e).compile(this.math).eval(this.scope)},t.prototype.get=function(e){return this.scope[e]},t.prototype.set=function(e,r){return this.scope[e]=r},t.prototype.remove=function(e){delete this.scope[e]},t.prototype.clear=function(){for(var e in this.scope)this.scope.hasOwnProperty(e)&&delete this.scope[e]},e.exports=t},function(e,r,n){r.ArrayNode=n(124),r.AssignmentNode=n(125),r.BlockNode=n(126),r.ConstantNode=n(127),r.IndexNode=n(129),r.FunctionNode=n(128),r.Node=n(137),r.OperatorNode=n(130),r.ParamsNode=n(131),r.RangeNode=n(132),r.SymbolNode=n(133),r.TernaryNode=n(134),r.UnitNode=n(135),r.UpdateNode=n(136)},function(e,r,n){r.e=n(139),r.E=n(139),r["false"]=n(140),r.i=n(141),r.Infinity=n(142),r.LN2=n(143),r.LN10=n(144),r.LOG2E=n(145),r.LOG10E=n(146),r.NaN=n(147),r.pi=n(148),r.PI=n(148),r.SQRT1_2=n(149),r.SQRT2=n(150),r.tau=n(151),r["true"]=n(152),r.abs=n(157),r.add=n(158),r.ceil=n(159),r.compare=n(160),r.cube=n(161),r.divide=n(162),r.edivide=n(163),r.emultiply=n(164),r.epow=n(165),r.equal=n(166),r.exp=n(167),r.fix=n(168),r.floor=n(169),r.gcd=n(170),r.larger=n(171),r.largereq=n(172),r.lcm=n(173),r.log=n(174),r.log10=n(175),r.mod=n(176),r.multiply=n(177),r.norm=n(178),r.pow=n(179),r.round=n(180),r.sign=n(181),r.smaller=n(182),r.smallereq=n(183),r.sqrt=n(184),r.square=n(185),r.subtract=n(186),r.unary=n(187),r.unequal=n(188),r.xgcd=n(189),r.arg=n(190),r.conj=n(191),r.re=n(192),r.im=n(193),r.bignumber=n(194),r["boolean"]=n(195),r.complex=n(196),r.index=n(197),r.matrix=n(198),r.number=n(199),r.string=n(200),r.unit=n(201),r.eval=n(202),r.help=n(203),r.concat=n(204),r.det=n(205),r.diag=n(206),r.eye=n(207),r.inv=n(208),r.ones=n(209),r.range=n(210),r.resize=n(211),r.size=n(212),r.squeeze=n(213),r.subset=n(214),r.transpose=n(215),r.zeros=n(216),r.combinations=n(217),r.distribution=n(218),r.factorial=n(219),r.permutations=n(220),r.pickRandom=n(221),r.random=n(222),r.randomInt=n(223),r.max=n(224),r.mean=n(225),r.median=n(226),r.min=n(227),r.prod=n(228),r.std=n(229),r.sum=n(230),r["var"]=n(231),r.acos=n(232),r.asin=n(233),r.atan=n(234),r.atan2=n(235),r.cos=n(236),r.cosh=n(237),r.cot=n(238),r.coth=n(239),r.csc=n(240),r.csch=n(241),r.sec=n(242),r.sech=n(243),r.sin=n(244),r.sinh=n(245),r.tan=n(246),r.tanh=n(247),r.to=n(248),r.clone=n(249),r.map=n(250),r.forEach=n(251),r.format=n(252),r.ifElse=n(253),r["import"]=n(254),r["typeof"]=n(255)},function(e,r,n){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 t(e,n){var t=Array.prototype.slice;r.prototype[e]="function"==typeof n?function(){var e=[this.value].concat(t.call(arguments,0));return new r(n.apply(this,e))}:new r(n)}var i=n(138);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=t;for(var o in e)e.hasOwnProperty(o)&&t(o,e[o]);return r}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(12),i=n(11),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 t(r).compile(e);if(a(r))return i.deepMap(r,function(r){return t(r).compile(e)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(12),i=n(11),o=r.string.isString,a=i.isCollection;e.eval=function(r,n){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("eval",arguments.length,1,2);if(n=n||{},o(r))return t(r).compile(e).eval(n);if(a(r))return i.deepMap(r,function(r){return t(r).compile(e).eval(n)});throw new TypeError("String, array, or matrix expected")}}},function(e,r,n){e.exports=function(e){var r=n(10);e.help=function(n){if(1!=arguments.length)throw new SyntaxError("Wrong number of arguments in function help ("+arguments.length+" provided, 1 expected)");var t=null;if(n instanceof String||"string"==typeof n)t=n;else{var i;for(i in e)if(e.hasOwnProperty(i)&&n===e[i]){t=i;break}}var o=e.expression.docs[t];if(!t||!o)throw new Error('No documentation found on "'+t+'"');return new r(e,o)}}},function(e,r,n){e.exports=function(e){var r=n(12);e.parse=function(){return r.apply(r,arguments)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(11)),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 t)return r.abs();if(f(r))return o.deepMap(r,c);if(s(r))return Math.abs(r);throw new e.error.UnsupportedTypeError("abs",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(9)),a=n(11),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,n){if(2!=arguments.length)throw new e.error.ArgumentsError("add",arguments.length,2);if(u(r)){if(u(n))return r+n;if(c(n))return new i(r+n.re,n.im)}if(c(r)){if(c(n))return new i(r.re+n.re,r.im+n.im);if(u(n))return new i(r.re+n,r.im)}if(l(r)&&l(n)){if(null==r.value)throw new Error("Parameter x contains a unit with undefined value");if(null==n.value)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var o=r.clone();return o.value+=n.value,o.fixPrefix=!1,o}if(r instanceof t)return u(n)?n=t.convert(n):s(n)&&(n=new t(n?1:0)),n instanceof t?r.plus(n):m(r.toNumber(),n);if(n instanceof t)return u(r)?r=t.convert(r):s(r)&&(r=new t(r?1:0)),r instanceof t?r.plus(n):m(r,n.toNumber());if(p(r)||p(n))return a.deepMap2(r,n,m);if(f(r)||f(n))return r+n;if(s(r))return m(+r,n);if(s(n))return m(r,+n);throw new e.error.UnsupportedTypeError("add",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.ceil();if(u(r))return o.deepMap(r,c);if(s(r))return Math.ceil(r);throw new e.error.UnsupportedTypeError("ceil",e["typeof"](r))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.compare=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("compare",arguments.length,2);if(u(n)&&u(t))return f(n,t,r.epsilon)?0:n>t?1:-1;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?new i(n.cmp(t)):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?new i(n.cmp(t)):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value>t.value?1:n.valuet?1:t>n?-1:0;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("compare",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.times(r).times(r);if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("cube",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=r.re*r.re+r.im*r.im;return 0!=n?new o((e.re*r.re+e.im*r.im)/n,(e.im*r.re-e.re*r.im)/n):new o(0!=e.re?e.re/0:0,0!=e.im?e.im/0:0)}var t=n(123),i=e.type.BigNumber,o=n(5),a=(n(8),n(9)),s=n(11),u=t.number.isNumber,f=t["boolean"].isBoolean,c=o.isComplex,l=a.isUnit,p=s.isCollection;e.divide=function m(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("divide",arguments.length,2);if(u(n)){if(u(t))return n/t;if(c(t))return r(new o(n,0),t)}if(c(n)){if(c(t))return r(n,t);if(u(t))return r(n,new o(t,0))}if(n instanceof i)return u(t)?t=i.convert(t):f(t)&&(t=new i(t?1:0)),t instanceof i?n.div(t):m(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):f(n)&&(n=new i(n?1:0)),n instanceof i?n.div(t):m(n,t.toNumber());if(l(n)&&u(t)){var a=n.clone();return a.value/=t,a}if(p(n))return p(t)?e.multiply(n,e.inv(t)):s.deepMap2(n,t,m);if(p(t))return e.multiply(n,e.inv(t));if(f(n))return m(+n,t);if(f(t))return m(n,+t);throw new e.error.UnsupportedTypeError("divide",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(11);e.edivide=function(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("edivide",arguments.length,2);return r.deepMap2(n,t,e.divide)}}},function(e,r,n){e.exports=function(e){var r=(n(123),n(11));e.emultiply=function(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("emultiply",arguments.length,2);return r.deepMap2(n,t,e.multiply)}}},function(e,r,n){e.exports=function(e){var r=(n(123),n(11));e.epow=function(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("epow",arguments.length,2);return r.deepMap2(n,t,e.pow)}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.equal=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("equal",arguments.length,2);if(u(n)){if(u(t))return f(n,t,r.epsilon);if(p(t))return f(n,t.re,r.epsilon)&&f(t.im,0,r.epsilon)}if(p(n)){if(u(t))return f(n.re,t,r.epsilon)&&f(n.im,0,r.epsilon);if(p(t))return f(n.re,t.re,r.epsilon)&&f(n.im,t.im,r.epsilon)}if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.eq(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.eq(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value==t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n==t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);throw new e.error.UnsupportedTypeError("equal",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(11)),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 n=Math.exp(r.re);return new i(n*Math.cos(r.im),n*Math.sin(r.im))}if(r instanceof t)return r.exp();if(f(r))return o.deepMap(r,c);if(s(r))return Math.exp(r);throw new e.error.UnsupportedTypeError("exp",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.isNegative()?r.ceil():r.floor();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("fix",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.floor();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("floor",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=r.number.isNumber,a=r["boolean"].isBoolean,s=r.number.isInteger,u=i.isCollection;e.gcd=function f(){var r,n=arguments[0],c=arguments[1];if(2==arguments.length){if(o(n)&&o(c)){if(!s(n)||!s(c))throw new Error("Parameters in function gcd must be integer numbers");for(;0!=c;)r=n%c,n=c,c=r;return 0>n?-n:n}if(u(n)||u(c))return i.deepMap2(n,c,f);if(n instanceof t)return f(n.toNumber(),c);if(c instanceof t)return f(n,c.toNumber());if(a(n))return f(+n,c);if(a(c))return f(n,+c);throw new e.error.UnsupportedTypeError("gcd",e["typeof"](n),e["typeof"](c))}if(arguments.length>2){for(var l=1;lt;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.gt(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.gt(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value>t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n>t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("larger",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.largereq=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("largereq",arguments.length,2);if(u(n)&&u(t))return f(n,t,r.epsilon)||n>t;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.gte(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.gte(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value>=t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n>=t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("largereq",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=r.number.isNumber,a=r["boolean"].isBoolean,s=r.number.isInteger,u=i.isCollection;e.lcm=function f(){var r,n=arguments[0],c=arguments[1];if(2==arguments.length){if(o(n)&&o(c)){if(!s(n)||!s(c))throw new Error("Parameters in function lcm must be integer numbers");if(0==n||0==c)return 0;for(var l=n*c;0!=c;)r=c,c=n%r,n=r;return Math.abs(l/n)}if(u(n)||u(c))return i.deepMap2(n,c,f);if(a(n))return f(+n,c);if(a(c))return f(n,+c);if(n instanceof t)return f(n.toNumber(),c);if(c instanceof t)return f(n,c.toNumber());throw new e.error.UnsupportedTypeError("lcm",e["typeof"](n),e["typeof"](c))}if(arguments.length>2){for(var p=1;p=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 t)return r.isNegative()?c(r.toNumber()):r.ln();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("log",e["typeof"](r))}if(2==arguments.length)return e.divide(c(r),c(n));throw new e.error.ArgumentsError("log",arguments.length,1,2)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)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))return c(+r);throw new e.error.UnsupportedTypeError("log10",e["typeof"](r))}}},function(e,r,n){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 t=n(123),i=e.type.BigNumber,o=n(11),a=t.number.isNumber,s=t["boolean"].isBoolean,u=o.isCollection;e.mod=function f(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("mod",arguments.length,2);if(a(n)&&a(t))return r(n,t);if(n instanceof i)return a(t)?t=i.convert(t):s(t)&&(t=new i(t?1:0)),t instanceof i?t.isZero()?n:n.mod(t):f(n.toNumber(),t);if(t instanceof i)return a(n)?n=i.convert(n):s(n)&&(n=new i(n?1:0)),n instanceof i?t.isZero()?n:n.mod(t):f(n,t.toNumber());if(u(n)||u(t))return o.deepMap2(n,t,f);if(s(n))return f(+n,t);if(s(t))return f(n,+t);throw new e.error.UnsupportedTypeError("mod",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){function r(r,n){for(var t=[],i=r.length,o=n[0].length,a=r[0].length,s=0;i>s;s++){t[s]=[];for(var u=0;o>u;u++){for(var f=null,c=0;a>c;c++){var l=e.multiply(r[s][c],n[c][u]);f=null===f?l:e.add(f,l)}t[s][u]=f}}return t}function t(r,n){for(var t=[],i=n.length,o=n[0].length,a=0;o>a;a++){for(var s=null,u=0;i>u;u++){var f=e.multiply(r[u],n[u][a]);s=0===u?f:e.add(s,f)}t[a]=s}return t}function i(r,n){for(var t=[],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],n[u]);s=0===u?f:e.add(s,f)}t[a]=s}return t}function o(r,n){var t=r.length;if(!t)throw new Error("Cannot multiply two empty vectors");for(var i=0,o=0;t>o;o++)i=e.add(i,e.multiply(r[o],n[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=n(123),u=e.type.BigNumber,f=n(5),c=n(8),l=n(9),p=n(11),m=s.array,h=s.number.isNumber,g=s["boolean"].isBoolean,d=f.isComplex,x=Array.isArray,w=l.isUnit;e.multiply=function y(n,s){var l;if(2!=arguments.length)throw new e.error.ArgumentsError("multiply",arguments.length,2);if(h(n)){if(h(s))return n*s;if(d(s))return a(new f(n,0),s);if(w(s))return l=s.clone(),l.value*=n,l}if(d(n)){if(h(s))return a(n,new f(s,0));if(d(s))return a(n,s)}if(n instanceof u)return h(s)?s=u.convert(s):g(s)&&(s=new u(s?1:0)),s instanceof u?n.times(s):y(n.toNumber(),s);if(s instanceof u)return h(n)?n=u.convert(n):g(n)&&(n=new u(n?1:0)),n instanceof u?n.times(s):y(n,s.toNumber());if(w(n)&&h(s))return l=n.clone(),l.value*=s,l;if(x(n)){if(x(s)){var v=m.size(n),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(n,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 t(n,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(n,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(n,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?new c(y(n,s.valueOf())):p.deepMap2(n,s,y)}if(n instanceof c)return new c(s instanceof c?y(n.valueOf(),s.valueOf()):y(n.valueOf(),s));if(x(s))return p.deepMap2(n,s,y);if(s instanceof c)return new c(p.deepMap2(n,s.valueOf(),y));if(g(n))return y(+n,s);if(g(s))return y(n,+s);throw new e.error.UnsupportedTypeError("multiply",e["typeof"](n),e["typeof"](s))}}},function(e,r,n){e.exports=function(e){{var r=n(123),t=n(153),i=e.type.BigNumber,o=n(5),a=n(8),s=n(11),u=r.number.isNumber,f=r["boolean"].isBoolean,c=o.isComplex;s.isCollection}e.norm=function l(r,n){if(arguments.length<1||arguments.length>2)throw new e.error.ArgumentsError("abs",arguments.length,1,2);if(u(r))return Math.abs(r);if(c(r))return Math.sqrt(r.re*r.re+r.im*r.im);if(r instanceof i)return r.abs();if(f(r))return Math.abs(r);if(isArray(r)){var o=t.size(r);if(null==n&&(n=2),1==o.length){if(n===Number.POSITIVE_INFINITY||"inf"===n){var s;return e.forEach(r,function(r){var n=e.abs(r);(!s||e.larger(n,s))&&(s=n)}),s}if(n===Number.NEGATIVE_INFINITY||"-inf"===n){var s;return e.forEach(r,function(r){var n=e.abs(r);(!s||e.smaller(n,s))&&(s=n)}),s}if("fro"===n)return l(r);if(u(n)&&!isNaN(n)){if(!e.equal(n,0)){var s=0;return e.forEach(r,function(r){s=e.add(e.pow(e.abs(r),n),s)}),e.pow(s,1/n)}return Number.POSITIVE_INFINITY}throw new Error("Unsupported parameter value")}if(2==o.length){if(1==n){for(var p=[],m=0;m=0?Math.pow(n,t):r(new o(n,0),new o(t,0));if(p(t))return r(new o(n,0),t)}if(p(n)){if(u(t))return r(n,new o(t,0));if(p(t))return r(n,t)}if(n instanceof i)return u(t)?t=i.convert(t):f(t)&&(t=new i(t?1:0)),t instanceof i?t.isInteger()&&!n.isNegative()?n.pow(t):m(n.toNumber(),t.toNumber()):m(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):f(n)&&(n=new i(n?1:0)),n instanceof i?t.isInteger()&&!n.isNegative()?n.pow(t):m(n.toNumber(),t.toNumber()):m(n,t.toNumber());if(c(n)){if(!u(t)||!l(t)||0>t)throw new TypeError("For A^b, b must be a positive integer (value is "+t+")");var h=s.size(n);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=n;t>=1;)1==(1&t)&&(g=e.multiply(d,g)),t>>=1,d=e.multiply(d,d);return g}if(n instanceof a)return new a(m(n.valueOf(),t));if(f(n))return m(+n,t);if(f(t))return m(n,+t);throw new e.error.UnsupportedTypeError("pow",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=Math.pow(10,r);return Math.round(e*n)/n}var t=n(123),i=e.type.BigNumber,o=n(5),a=n(11),s=t.number.isNumber,u=t.number.isInteger,f=t["boolean"].isBoolean,c=o.isComplex,l=a.isCollection;e.round=function p(n,t){if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("round",arguments.length,1,2);if(void 0==t){if(s(n))return Math.round(n);if(c(n))return new o(Math.round(n.re),Math.round(n.im));if(n instanceof i)return n.toDecimalPlaces(0);if(l(n))return a.deepMap(n,p);if(f(n))return Math.round(n);throw new e.error.UnsupportedTypeError("round",e["typeof"](n))}if(!s(t)||!u(t)){if(!(t instanceof i)){if(f(t))return p(n,+t);throw new TypeError("Number of decimals in function round must be an integer")}t=parseFloat(t.valueOf())}if(0>t||t>15)throw new Error("Number of decimals in function round must be in te range of 0-15");if(s(n))return r(n,t);if(c(n))return new o(r(n.re,t),r(n.im,t));if(n instanceof i)return n.toDecimalPlaces(t);if(l(n)||l(t))return a.deepMap2(n,t,p);if(f(n))return p(+n,t);throw new e.error.UnsupportedTypeError("round",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=Math.sqrt(r.re*r.re+r.im*r.im);return new i(r.re/n,r.im/n)}if(r instanceof t)return new t(r.cmp(0));if(c(r))return o.deepMap(r,l);if(u(r))return a.sign(r);throw new e.error.UnsupportedTypeError("sign",e["typeof"](r))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.smaller=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("smaller",arguments.length,2);if(u(n)&&u(t))return!f(n,t,r.epsilon)&&t>n;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.lt(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.lt(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.valuen;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("smaller",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.smallereq=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("smallereq",arguments.length,2);if(u(n)&&u(t))return f(n,t,r.epsilon)||t>n;if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?n.lte(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?n.lte(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value<=t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return t>=n;if(c(n))return g(+n,t);if(c(t))return g(n,+t);if(p(n)||p(t))throw new TypeError("No ordering relation is defined for complex numbers");throw new e.error.UnsupportedTypeError("smallereq",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=Math.sqrt(r.re*r.re+r.im*r.im);return r.im>=0?new i(.5*Math.sqrt(2*(n+r.re)),.5*Math.sqrt(2*(n-r.re))):new i(.5*Math.sqrt(2*(n+r.re)),-.5*Math.sqrt(2*(n-r.re)))}if(r instanceof t)return r.isNegative()?c(r.toNumber()):r.sqrt();if(f(r))return o.deepMap(r,c);if(s(r))return c(+r);throw new e.error.UnsupportedTypeError("sqrt",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return r.times(r);if(f(r))return o.deepMap(r,c);if(s(r))return r*r;throw new e.error.UnsupportedTypeError("square",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=(n(8),n(9)),a=n(11),s=r["boolean"].isBoolean,u=r.number.isNumber,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.subtract=function p(r,n){if(2!=arguments.length)throw new e.error.ArgumentsError("subtract",arguments.length,2);if(u(r)){if(u(n))return r-n;if(f(n))return new i(r-n.re,-n.im)}else if(f(r)){if(u(n))return new i(r.re-n,r.im);if(f(n))return new i(r.re-n.re,r.im-n.im)}if(r instanceof t)return u(n)?n=t.convert(n):s(n)&&(n=new t(n?1:0)),n instanceof t?r.minus(n):p(r.toNumber(),n);if(n instanceof t)return u(r)?r=t.convert(r):s(r)&&(r=new t(r?1:0)),r instanceof t?r.minus(n):p(r,n.toNumber());if(c(r)&&c(n)){if(null==r.value)throw new Error("Parameter x contains a unit with undefined value");if(null==n.value)throw new Error("Parameter y contains a unit with undefined value");if(!r.equalBase(n))throw new Error("Units do not match");var o=r.clone();return o.value-=n.value,o.fixPrefix=!1,o}if(l(r)||l(n))return a.deepMap2(r,n,p);if(s(r))return p(+r,n);if(s(n))return p(r,+n);throw new e.error.UnsupportedTypeError("subtract",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),s=r.number.isNumber,u=r["boolean"].isBoolean,f=i.isComplex,c=o.isUnit,l=a.isCollection;e.unary=function p(r){if(1!=arguments.length)throw new e.error.ArgumentsError("unary",arguments.length,1);if(s(r))return-r;if(f(r))return new i(-r.re,-r.im);if(r instanceof t)return r.neg();if(c(r)){var n=r.clone();return n.value=-r.value,n}if(l(r))return a.deepMap(r,p);if(u(r))return-r;throw new e.error.UnsupportedTypeError("unary",e["typeof"](r))}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(11),u=t.number.isNumber,f=t.number.nearlyEqual,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit,h=s.isCollection;e.unequal=function g(n,t){if(2!=arguments.length)throw new e.error.ArgumentsError("unequal",arguments.length,2);if(u(n)){if(u(t))return!f(n,t,r.epsilon);if(p(t))return!f(n,t.re,r.epsilon)||!f(t.im,0,r.epsilon)}if(p(n)){if(u(t))return!f(n.re,t,r.epsilon)||!f(n.im,0,r.epsilon);if(p(t))return!f(n.re,t.re,r.epsilon)||!f(n.im,t.im,r.epsilon)}if(n instanceof i)return u(t)?t=i.convert(t):c(t)&&(t=new i(t?1:0)),t instanceof i?!n.eq(t):g(n.toNumber(),t);if(t instanceof i)return u(n)?n=i.convert(n):c(n)&&(n=new i(n?1:0)),n instanceof i?!n.eq(t):g(n,t.toNumber());if(m(n)&&m(t)){if(!n.equalBase(t))throw new Error("Cannot compare units with different base");return n.value!=t.value}if(h(n)||h(t))return s.deepMap2(n,t,g);if(l(n)||l(t))return n!=t;if(c(n))return g(+n,t);if(c(t))return g(n,+t);throw new e.error.UnsupportedTypeError("unequal",e["typeof"](n),e["typeof"](t))}}},function(e,r,n){e.exports=function(e){function r(e,r){for(var n,t,i,o=0,a=1,s=1,u=0;r;)t=Math.floor(e/r),i=e%r,n=o,o=a-t*o,a=n,n=s,s=u-t*s,u=n,e=r,r=i;return 0>e?[-e,-a,-u]:[e,e?a:0,u]}var t=n(123),i=e.type.BigNumber,o=t.number.isNumber,a=t["boolean"].isBoolean,s=t.number.isInteger;e.xgcd=function u(n,t){if(2==arguments.length){if(o(n)&&o(t)){if(!s(n)||!s(t))throw new Error("Parameters in function xgcd must be integer numbers");return r(n,t)}if(n instanceof i)return u(n.toNumber(),t);if(t instanceof i)return u(n,t.toNumber());if(a(n))return u(+n,t);if(a(t))return u(n,+t);throw new e.error.UnsupportedTypeError("xgcd",e["typeof"](n),e["typeof"](t))}throw new SyntaxError("Function xgcd expects two arguments")}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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))return c(+r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("arg",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t?new t(r):c(r)?new i(r.re,-r.im):f(r)?o.deepMap(r,l):u(r)?+r:a.clone(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t?new t(r):c(r)?r.re:f(r)?o.deepMap(r,l):u(r)?+r:a.clone(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t?new t(0):f(r)?r.im:u(r)?o.deepMap(r,c):s(r)?0:0}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),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 t||a(r)||s(r))return new t(r);if(u(r))return new t(+r);if(o(r))return i.deepMap(r,f);if(0==arguments.length)return new t(0);throw new e.error.UnsupportedTypeError("bignumber",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),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)return!1;if(r instanceof Boolean)return 1==r;if(a(r))return 0!==r;if(r instanceof t)return!r.isZero();if(s(r)){var n=r.toLowerCase();if("true"===n)return!0;if("false"===n)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,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 t)return new i(r.toNumber(),0);if(f(r))return r.clone();if(u(r)){var n=i.parse(r);if(n)return n;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 t&&(l=l.toNumber()),p instanceof t&&(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,n){e.exports=function(e){var r=(n(123),e.type.BigNumber),t=n(7);e.index=function(){var e=new t,n=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});return t.apply(e,n),e}}},function(e,r,n){e.exports=function(e){var r=(n(123),n(8));e.matrix=function(n){if(arguments.length>1)throw new e.error.ArgumentsError("matrix",arguments.length,0,1);return new r(n)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=i.isCollection,a=r.number.isNumber,s=r["boolean"].isBoolean,u=r.string.isString;e.number=function f(r){switch(arguments.length){case 0:return 0;case 1:if(o(r))return i.deepMap(r,f);if(r instanceof t)return r.toNumber();if(u(r)){var n=Number(r);if(isNaN(n)&&(n=Number(r.valueOf())),isNaN(n))throw new SyntaxError(r.toString()+" is no valid number");return n}if(s(r))return r+0;if(a(r))return r;throw new e.error.UnsupportedTypeError("number",e["typeof"](r));default:throw new e.error.ArgumentsError("number",arguments.length,0,1)}}}},function(e,r,n){e.exports=function(e){var r=n(13);e.parser=function(){return new r(e)}}},function(e){e.exports=function(e){e.select=function(r){return new e.chaining.Selector(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(11),i=r.number,o=r.number.isNumber,a=t.isCollection;e.string=function s(r){switch(arguments.length){case 0:return"";case 1:return o(r)?i.format(r):a(r)?t.deepMap(r,s):null===r?"null":r.toString();default:throw new e.error.ArgumentsError("string",arguments.length,0,1)}}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(9),o=n(11),a=o.isCollection,s=r.string.isString;e.unit=function u(r){switch(arguments.length){case 1:var n=arguments[0];if(n instanceof i)return n.clone();if(s(n)){if(i.isValuelessUnit(n))return new i(null,n);var f=i.parse(n);if(f)return f;throw new SyntaxError('String "'+n+'" 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 t?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,n){e.exports=function(e){function r(n,t,i,o){if(i>o){if(n.length!=t.length)throw new e.error.DimensionError(n.length,t.length);for(var a=[],s=0;sn;n++){var h=arguments[n];if(h instanceof i&&(p=!0),n==o-1&&u(h)){if(t=l,l=h,!f(l)||0>l)throw new TypeError("Dimension number must be a positive integer (dim = "+l+")");if(n>0&&l>t)throw new e.error.DimensionError(l,t,">")}else{if(!c(h))throw new e.error.UnsupportedTypeError("concat",e["typeof"](h));var g=a.clone(h).valueOf(),d=s.size(h.valueOf());if(m[n]=g,t=l,l=d.length-1,n>0&&l!=t)throw new e.error.DimensionError(l,t)}}if(0==m.length)throw new SyntaxError("At least one matrix expected");for(var x=m.shift();m.length;)x=r(x,m.shift(),l,0);return p?new i(x):x}}},function(e,r,n){e.exports=function(e){function r(r,n){function t(r){var n,t,i=new Array(r.length),o=0;for(n=1;nt;t++)i[n][t]=0;for(t=n+1;ta;a++)i=e.multiply(t(i),r);return n%2==0?e.unary(i[0][0]):i[0][0]}var t=n(123),i=n(8),o=t.object,a=t.string;e.det=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("det",arguments.length,1);var t;switch(n instanceof i?t=n.size():n instanceof Array?(n=new i(n),t=n.size()):t=[],t.length){case 0:return o.clone(n);case 1:if(1==t[0])return o.clone(n.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+a.format(t)+")");case 2:var s=t[0],u=t[1];if(s==u)return r(n.clone().valueOf(),s,u);throw new RangeError("Matrix must be square (size: "+a.format(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+a.format(t)+")")}}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(8),o=r.object,a=r.array.isArray,s=r.number.isNumber,u=r.number.isInteger;e.diag=function(r,n){var f,c,l,p;if(1!=arguments.length&&2!=arguments.length)throw new e.error.ArgumentsError("diag",arguments.length,1,2);if(n){if(n instanceof t&&(n=n.toNumber()),!s(n)||!u(n))throw new TypeError("Second parameter in function diag must be an integer")}else n=0;var m,h=n>0?n:0,g=0>n?-n: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 x=new i,w=c[0]instanceof t?new t(0):0;for(x.resize([c.length+g,c.length+h],w),f=x.valueOf(),p=c.length,l=0;p>l;l++)f[l+g][l+h]=o.clone(c[l]);return m?x.valueOf():x;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,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(8),a=n(11),s=t.number.isNumber,u=t.number.isInteger,f=Array.isArray;e.eye=function(n){var t=a.argsToArray(arguments),c=n instanceof o?!0:f(n)?!1:"matrix"===r.matrix;if(0==t.length)return c?new o:[];if(1==t.length)t[1]=t[0];else if(t.length>2)throw new e.error.ArgumentsError("eye",t.length,0,2);var l=t[0],p=t[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;t=t.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(t,d);for(var x=e.min(t),w=h.valueOf(),y=0;x>y;y++)w[y][y]=g;return c?h:h.valueOf()}}},function(e,r,n){e.exports=function(e){function r(r,n,t){var i,o,a,s,u;if(1==n){if(s=r[0][0],0==s)throw Error("Cannot calculate inverse, determinant is zero");return[[e.divide(1,s)]]}if(2==n){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.unary(r[0][1]),f)],[e.divide(e.unary(r[1][0]),f),e.divide(r[0][0],f)]]}var c=r.concat();for(i=0;n>i;i++)c[i]=c[i].concat();for(var l=e.eye(n).valueOf(),p=0;t>p;p++){for(i=p;n>i&&0==c[i][p];)i++;if(i==n||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;n>i;i++){var g=c[i],d=l[i];if(i!=p){if(0!=g[p]){for(a=e.divide(e.unary(g[p]),m[p]),o=p;t>o;o++)g[o]=e.add(g[o],e.multiply(a,m[o]));for(o=0;t>o;o++)d[o]=e.add(d[o],e.multiply(a,h[o]))}}else{for(a=m[p],o=p;t>o;o++)g[o]=e.divide(g[o],a);for(o=0;t>o;o++)d[o]=e.divide(d[o],a)}}}return l}{var t=n(123),i=t.string,o=n(8);n(11)}e.inv=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("inv",arguments.length,1);var t=e.size(n).valueOf();switch(t.length){case 0:return e.divide(1,n);case 1:if(1==t[0])return n instanceof o?new o([e.divide(1,n.valueOf()[0])]):[e.divide(1,n[0])];throw new RangeError("Matrix must be square (size: "+i.format(t)+")");case 2:var a=t[0],s=t[1];if(a==s)return n instanceof o?new o(r(n.valueOf(),a,s)):r(n,a,s);throw new RangeError("Matrix must be square (size: "+i.format(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+i.format(t)+")")}}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(8),a=n(11),s=t.array,u=Array.isArray;e.ones=function(e){var n=a.argsToArray(arguments),t=e instanceof o?!0:u(e)?!1:"matrix"===r.matrix;if(0==n.length)return t?new o:[];var f=!1;n=n.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,n,l),t?new o(c):c}}},function(e,r,n){e.exports=function(e,r){function t(e,r,n){var t=[],i=e;if(n>0)for(;r>i;)t.push(i),i+=n;else if(0>n)for(;i>r;)t.push(i),i+=n;return t}function i(e,r,n){var t=[],i=e;if(n>0)for(;r>=i;)t.push(i),i+=n;else if(0>n)for(;i>=r;)t.push(i),i+=n;return t}function o(e,r,n){var t=[],i=e.clone(),o=new f(0);if(n.gt(o))for(;i.lt(r);)t.push(i),i=i.plus(n);else if(n.lt(o))for(;i.gt(r);)t.push(i),i=i.plus(n);return t}function a(e,r,n){var t=[],i=e.clone(),o=new f(0);if(n.gt(o))for(;i.lte(r);)t.push(i),i=i.plus(n);else if(n.lt(o))for(;i.gte(r);)t.push(i),i=i.plus(n);return t}function s(e){var n=e.split(":"),t=null;if("bignumber"===r.number)try{t=n.map(function(e){return new f(e)})}catch(i){return null}else{t=n.map(function(e){return Number(e)});var o=t.some(function(e){return isNaN(e)});if(o)return null}switch(t.length){case 2:return{start:t[0],end:t[1],step:1};case 3:return{start:t[0],end:t[2],step:t[1]};default:return null}}var u=n(123),f=e.type.BigNumber,c=n(8),l=(n(11),u["boolean"].isBoolean),p=u.string.isString,m=u.number.isNumber;e.range=function(){var n,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 x=s(g[0]);if(!x)throw new SyntaxError('String "'+g[0]+'" is no valid range');n=x.start,u=x.end,h=x.step;break;case 2:n=g[0],u=g[1],h=1;break;case 3:n=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(n)||n 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(n instanceof f||u instanceof f||h instanceof f){var w=!0;n instanceof f||(n=f.convert(n)),u instanceof f||(u=f.convert(u)),h instanceof f||(h=f.convert(h)),n instanceof f&&u instanceof f&&h instanceof f||(w=!1,n instanceof f&&(n=n.toNumber()),u instanceof f&&(u=u.toNumber()),h instanceof f&&(h=h.toNumber()))}var y=w?d?a:o:d?i:t,v=y(n,u,h);return"array"===r.matrix?v:new c(v)}}},function(e,r,n){e.exports=function(e,r){function t(r,n,t){if(void 0!==t){if(!c(t)||1!==t.length)throw new TypeError("Single character expected as defaultValue")}else t=" ";if(1!==n.length)throw new e.error.DimensionError(n.length,1);var i=n[0];if(!l(i)||!p(i))throw new TypeError("Invalid size, must contain positive integers (size: "+f.format(n)+")");if(r.length>i)return r.substring(0,i);if(r.lengtha;a++)o+=t;return o}return r}var i=n(123),o=e.type.BigNumber,a=n(8),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(n,i,f){if(2!=arguments.length&&3!=arguments.length)throw new e.error.ArgumentsError("resize",arguments.length,2,3);var l=n instanceof a?!0:m(n)?!1:"array"!==r.matrix;if(n instanceof a&&(n=n.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(n))return t(n,i,f);if(0==i.length){for(;m(n);)n=n[0];return u(n)}m(n)||(n=[n]),n=u(n);var p=s.resize(n,i,f);return l?new a(p):p}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(5),a=n(9),s=n(8),u=t.array,f=t.number.isNumber,c=t["boolean"].isBoolean,l=t.string.isString,p=o.isComplex,m=a.isUnit;e.size=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("size",arguments.length,1);var t="array"===r.matrix;if(f(n)||p(n)||m(n)||c(n)||null==n||n instanceof i)return t?[]:new s([]);if(l(n))return t?[n.length]:new s([n.length]);if(Array.isArray(n))return u.size(n);if(n instanceof s)return new s(n.size());throw new e.error.UnsupportedTypeError("size",e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(8),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 t){var n=o.squeeze(r.toArray());return a(n)?new t(n):n}return i.clone(r)}}},function(e,r,n){e.exports=function(e){function r(r,n){var i,o;if(l(r))return i=new s(r),o=i.subset(n),o.valueOf();if(r instanceof s)return r.subset(n);if(c(r))return t(r,n);throw new e.error.UnsupportedTypeError("subset",e["typeof"](r))}function t(r,n){if(!(n instanceof u))throw new TypeError("Index expected");if(1!=n.size().length)throw new e.error.DimensionError(n.size().length,1);var t=n.range(0),i="",o=r.length;return t.forEach(function(e){f.validateIndex(e,o),i+=r.charAt(e)}),i}function i(r,n,t,i){var a;if(l(r))return a=new s(e.clone(r)),a.subset(n,t,i),a.valueOf();if(r instanceof s)return r.clone().subset(n,t,i);if(c(r))return o(r,n,t,i);throw new e.error.UnsupportedTypeError("subset",e["typeof"](r))}function o(r,n,t,i){if(!(n instanceof u))throw new TypeError("Index expected");if(1!=n.size().length)throw new e.error.DimensionError(n.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=n.range(0),a=o.size()[0];if(a!=t.length)throw new e.error.DimensionError(o.size()[0],t.length);for(var s=r.length,l=[],p=0;s>p;p++)l[p]=r.charAt(p);if(o.forEach(function(e,r){f.validateIndex(e),l[e]=t.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=n(123),s=n(8),u=n(7),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,n){e.exports=function(e){var r=n(123),t=n(8),i=(n(11),r.object),o=r.string;e.transpose=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("transpose",arguments.length,1);var n=e.size(r).valueOf();switch(n.length){case 0:return i.clone(r);case 1:return i.clone(r);case 2:var a,s=n[1],u=n[0],f=r instanceof t,c=r.valueOf(),l=[],p=i.clone;if(0===s)throw new RangeError("Cannot transpose a 2D matrix with no rows(size: "+o.format(n)+")");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 t(l):l;default:throw new RangeError("Matrix must be two dimensional (size: "+o.format(n)+")")}}}},function(e,r,n){e.exports=function(e,r){var t=n(123),i=e.type.BigNumber,o=n(8),a=n(11),s=t.array,u=Array.isArray;e.zeros=function(e){var n=a.argsToArray(arguments),t=e instanceof o?!0:u(e)?!1:"matrix"===r.matrix;if(0==n.length)return t?new o:[];var f=!1;n=n.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,n,l),t?new o(c):c}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(11),o=r.number.isNumber,a=r["boolean"].isBoolean,s=r.number.isInteger,u=i.isCollection;e.factorial=function c(r){var n,l;if(1!=arguments.length)throw new e.error.ArgumentsError("factorial",arguments.length,1);if(o(r)){if(!s(r)||0>r)throw new TypeError("Positive integer value expected in function factorial");for(n=r-1,l=r;n>1;)l*=n,n--;return 0==l&&(l=1),l}if(r instanceof t){if(!f(r))throw new TypeError("Positive integer value expected in function factorial");var p=new t(1);for(n=r.minus(p),l=r;n.gt(p);)l=l.times(n),n=n.minus(p);return l.equals(0)&&(l=p),l}if(a(r))return 1;if(u(r))return i.deepMap(r,c);throw new e.error.UnsupportedTypeError("factorial",e["typeof"](r))};var f=function(e){return e.isInteger()&&e.gte(0)}}},function(e,r,n){e.exports=function(e,r){var t=n(8),i=(n(11),{uniform:function(){return Math.random},normal:function(){return function(){for(var e,r,n=-1;0>n||n>1;)e=Math.random(),r=Math.random(),n=1/6*Math.pow(-2*Math.log(e),.5)*Math.cos(2*Math.PI*r)+.5;return n}}});e.distribution=function(n){if(!i.hasOwnProperty(n))throw new Error("unknown distribution "+n);var o=Array.prototype.slice.call(arguments,1),a=i[n].apply(this,o);return function(n){var i={random:function(n,i,a){var u,f,c;if(arguments.length>3)throw new e.error.ArgumentsError("random",arguments.length,0,3);if(1===arguments.length?Array.isArray(n)?u=n:c=n:2===arguments.length?Array.isArray(n)?u=n:(f=n,c=i):(u=n,f=i,c=a),void 0===c&&(c=1),void 0===f&&(f=0),void 0!==u){var l=s(u,f,c,o);return"array"===r.matrix?l:new t(l)}return o(f,c)},randomInt:function(n,i,o){var u,f,c;if(arguments.length>3||arguments.length<1)throw new e.error.ArgumentsError("randomInt",arguments.length,1,3);if(1===arguments.length?c=n:2===arguments.length?"[object Array]"===Object.prototype.toString.call(n)?u=n:(f=n,c=i):(u=n,f=i,c=o),void 0===f&&(f=0),void 0!==u){var l=s(u,f,c,a);return"array"===r.matrix?l:new t(l)}return a(f,c)},pickRandom:function(r){if(1!==arguments.length)throw new e.error.ArgumentsError("pickRandom",arguments.length,1);if(!Array.isArray(r))throw new e.error.UnsupportedTypeError("pickRandom",e["typeof"](r));return r[Math.floor(Math.random()*r.length)]}},o=function(e,r){return e+n()*(r-e)},a=function(e,r){return Math.floor(e+n()*(r-e))},s=function(e,r,n,t){var i,o,a=[];if(e=e.slice(0),e.length>1)for(o=0,i=e.shift();i>o;o++)a.push(s(e,r,n,t));else for(o=0,i=e.shift();i>o;o++)a.push(t(r,n));return a};return i}(a)};var o=e.distribution("uniform");e.random=o.random,e.randomInt=o.randomInt,e.pickRandom=o.pickRandom}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=r.number.isNumber,o=r.number.isInteger;e.permutations=function(r,n){var s,u,f=arguments.length;if(f>2)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(n)){if(!o(n)||0>n)throw new TypeError("Positive integer value expected in function permutations");if(n>r)throw new TypeError("second argument k must be less than or equal to first argument n");for(s=1,u=r-n+1;r>=u;u++)s*=u;return s}}if(r instanceof t){if(void 0===n&&a(r))return e.factorial(r);if(n=t.convert(n),!(n instanceof t&&a(r)&&a(n)))throw new TypeError("Positive integer value expected in function permutations"); +if(n.gt(r))throw new TypeError("second argument k must be less than or equal to first argument n");for(s=new t(1),u=r.minus(n).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,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=(n(11),r.number.isNumber),o=r.number.isInteger;e.combinations=function(r,n){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(n>r)throw new TypeError("k must be less than or equal to n");for(s=Math.max(n,r-n),u=1,f=1;r-s>=f;f++)u=u*(s+f)/f;return u}if(r instanceof t){if(n=t.convert(n),!(n instanceof t&&a(r)&&a(n)))throw new TypeError("Positive integer value expected in function combinations");if(n.gt(r))throw new TypeError("k must be less than n in function combinations");for(s=r.minus(n),n.lt(s)&&(s=n),u=new t(1),f=new t(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,n){e.exports=function(e){function r(r,n){return e.smaller(r,n)?r:n}function t(r){var n=void 0;if(i.deepForEach(r,function(r){(void 0===n||e.smaller(r,n))&&(n=r)}),void 0===n)throw new Error("Cannot calculate min of an empty array");return n}var i=(n(8),n(11)),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 t(e);if(2==arguments.length)return i.reduce(arguments[0],arguments[1],r);throw new SyntaxError("Wrong number of parameters")}return t(arguments)}}},function(e,r,n){e.exports=function(e){function r(r,n){return e.larger(r,n)?r:n}function t(r){var n=void 0;if(i.deepForEach(r,function(r){(void 0===n||e.larger(r,n))&&(n=r)}),void 0===n)throw new Error("Cannot calculate max of an empty array");return n}var i=(n(8),n(11)),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 t(e);if(2==arguments.length)return i.reduce(arguments[0],arguments[1],r);throw new SyntaxError("Wrong number of parameters")}return t(arguments)}}},function(e,r,n){e.exports=function(e){function r(r,n){var t;return t=i.reduce(r,n,e.add),e.divide(t,a(r)[n])}function t(r){var n=0,t=0;if(i.deepForEach(r,function(r){n=e.add(n,r),t++}),0===t)throw new Error("Cannot calculate mean of an empty array");return e.divide(n,t)}var i=(n(8),n(11)),o=i.isCollection,a=n(153).size;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 t(e);if(2==arguments.length)return r(arguments[0],arguments[1]);throw new SyntaxError("Wrong number of parameters")}return t(arguments)}}},function(e,r,n){e.exports=function(e){function r(r){var n=u(r);n.sort(e.compare);var o=n.length;if(0==o)throw new Error("Cannot calculate median of an empty array");if(o%2==0){var s=n[o/2-1],f=n[o/2];if(!(a(s)||s instanceof i||s instanceof t))throw new e.error.UnsupportedTypeError("median",e["typeof"](s));if(!(a(f)||f instanceof i||f instanceof t))throw new e.error.UnsupportedTypeError("median",e["typeof"](f));return e.divide(e.add(s,f),2)}var c=n[(o-1)/2];if(!(a(c)||c instanceof i||c instanceof t))throw new e.error.UnsupportedTypeError("median",e["typeof"](c));return c}var t=(n(8),n(9)),i=e.type.BigNumber,o=n(11),a=n(154).isNumber,s=o.isCollection,u=n(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,n){e.exports=function(e){function r(r){var n=void 0;if(t.deepForEach(r,function(r){n=void 0===n?r:e.multiply(n,r)}),void 0===n)throw new Error("Cannot calculate prod of an empty array");return n}var t=(n(8),n(11)),i=t.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){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,n){e.exports=function(e){function r(r){var n=void 0;if(t.deepForEach(r,function(r){n=void 0===n?r:e.add(n,r)}),void 0===n)throw new Error("Cannot calculate sum of an empty array");return n}var t=(n(8),n(11)),i=t.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,n){e.exports=function(e){function r(r,n){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 n=e.subtract(r,s);o=e.add(o,e.multiply(n,n))}),n){case"uncorrected":return e.divide(o,a);case"biased":return e.divide(o,a+1);case"unbiased":var u=o instanceof t?new t(0):0;return 1==a?u:e.divide(o,a-1);default:throw new Error('Unknown normalization "'+n+'". Choose "unbiased" (default), "uncorrected", or "biased".')}}var t=(n(8),e.type.BigNumber),i=n(11),o=i.isCollection,a=n(138).isString,s="unbiased";e["var"]=function(e,n){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(n))throw new Error("String expected for parameter normalization");return r(e,n)}throw new SyntaxError("Wrong number of parameters")}return r(arguments,s)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=new i(r.im*r.im-r.re*r.re+1,-2*r.re*r.im),l=e.sqrt(n),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))return Math.acos(r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("acos",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=r.re,l=r.im,p=new i(l*l-n*n+1,-2*n*l),m=e.sqrt(p),h=new i(m.re-l,m.im+n),g=e.log(h);return new i(g.im,-g.re)}if(f(r))return o.deepMap(r,c);if(s(r))return Math.asin(r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("asin",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),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 n=r.re,l=r.im,p=n*n+(1-l)*(1-l),m=new i((1-l*l-n*n)/p,-2*n/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))return Math.atan(r);if(r instanceof t)return c(r.toNumber());throw new e.error.UnsupportedTypeError("atan",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(11),a=r.number.isNumber,s=r["boolean"].isBoolean,u=(i.isComplex,o.isCollection);e.atan2=function f(r,n){if(2!=arguments.length)throw new e.error.ArgumentsError("atan2",arguments.length,2);if(a(r)&&a(n))return Math.atan2(r,n);if(u(r)||u(n))return o.deepMap2(r,n,f);if(s(r))return f(+r,n);if(s(n))return f(r,+n);if(r instanceof t)return f(r.toNumber(),n);if(n instanceof t)return f(r,n.toNumber());throw new e.error.UnsupportedTypeError("atan2",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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(.5*Math.cos(r.re)*(Math.exp(-r.im)+Math.exp(r.im)),.5*Math.sin(r.re)*(Math.exp(-r.im)-Math.exp(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))return Math.cos(r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cos",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(r.re),m=Math.exp(-r.re);return new i(Math.cos(r.im)*(n+m)/2,Math.sin(r.im)*(n-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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cosh",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=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)/n,(Math.exp(-4*r.im)-1)/n)}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))return p(+r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("cot",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(2*r);return(n+1)/(n-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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("coth",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=.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))/n,.5*Math.cos(r.re)*(Math.exp(-r.im)-Math.exp(r.im))/n)}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))return p(+r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("csc",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(r.re),h=Math.exp(-r.re),g=Math.cos(r.im)*(n-h),d=Math.sin(r.im)*(n+h),x=g*g+d*d;return new i(2*g/x,-2*d/x)}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))return m(r?1:0);if(r instanceof t)return m(r.toNumber());throw new e.error.UnsupportedTypeError("csch",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=.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))/n,.5*Math.sin(r.re)*(Math.exp(r.im)-Math.exp(-r.im))/n)}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))return p(+r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sec",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(r.re),m=Math.exp(-r.re),h=Math.cos(r.im)*(n+m),g=Math.sin(r.im)*(n-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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sech",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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(.5*Math.sin(r.re)*(Math.exp(-r.im)+Math.exp(r.im)),.5*Math.cos(r.re)*(Math.exp(r.im)-Math.exp(-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))return Math.sin(r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sin",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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.exp(r)-Math.exp(-r))/2;if(f(r)){var n=Math.cos(r.im),m=Math.sin(r.im),h=Math.exp(r.re),g=Math.exp(-r.re);return new i(n*(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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("sinh",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=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)/n,(1-Math.exp(-4*r.im))/n)}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))return Math.tan(r);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tan",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=e.type.BigNumber,i=n(5),o=n(9),a=n(11),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 n=Math.exp(2*r);return(n-1)/(n+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))return p(r?1:0);if(r instanceof t)return p(r.toNumber());throw new e.error.UnsupportedTypeError("tanh",e["typeof"](r))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=n(9),i=n(11),o=r.string.isString,a=t.isUnit,s=i.isCollection;e.to=function u(r,n){if(2!=arguments.length)throw new e.error.ArgumentsError("to",arguments.length,2);if(a(r)&&(a(n)||o(n)))return r.to(n);if(s(r)||s(n))return i.deepMap2(r,n,u);throw new e.error.UnsupportedTypeError("to",e["typeof"](r),e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=r.object;e.clone=function(r){if(1!=arguments.length)throw new e.error.ArgumentsError("clone",arguments.length,1);return t.clone(r)}}},function(e,r,n){e.exports=function(e){var r=n(123),t=r.string;e.format=function(r,n){var i=arguments.length;if(1!==i&&2!==i)throw new e.error.ArgumentsError("format",i,1,2);return t.format(r,n)}}},function(e,r,n){e.exports=function(e){function r(r,n,t){var i=r instanceof o||n instanceof o||t instanceof o;if(r instanceof o||(r=new o(r)),g(n)&&(n instanceof o||(n=new o(n)),!f(r.size(),n.size())))throw new RangeError("Dimension mismatch (["+r.size().join(", ")+"] != ["+n.size().join(", ")+"])");if(g(t)&&(t instanceof o||(t=new o(t)),!f(r.size(),t.size())))throw new e.error.DimensionError(r.size(),t.size());var a=n instanceof o,s=t instanceof o,u=r.map(function(r,i){return e.ifElse(r,a?n.get(i):n,s?t.get(i):t)});return i?u:u.valueOf()}var t=n(123),i=e.type.BigNumber,o=n(8),a=n(5),s=n(9),u=n(11),f=t.object.deepEqual,c=t.number.isNumber,l=t.string.isString,p=t["boolean"].isBoolean,m=a.isComplex,h=s.isUnit,g=u.isCollection;e.ifElse=function(n,t,o){if(3!=arguments.length)throw new e.error.ArgumentsError("ifElse",arguments.length,3);if(c(n)||p(n))return n?t:o;if(n instanceof i)return n.isZero()?o:t;if(l(n))return n?t:o;if(m(n))return n.re||n.im?t:o;if(h(n))return n.value?t:o;if(null===n||void 0===n)return o;if(g(n))return r(n,t,o);throw new e.error.UnsupportedTypeError("ifElse",e["typeof"](n))}}},function(e,r,n){e.exports=function(e){function r(r,n,t){(t.override||void 0===e[r])&&(e[r]=t.wrap&&"function"==typeof n?function(){for(var r=[],t=0,i=arguments.length;i>t;t++)r[t]=arguments[t].valueOf();return n.apply(e,r)}:n,e.chaining.Selector.createProxy(r,n))}function t(e){return"function"==typeof e||s(e)||u(e)||f(e)||c(e)}var i=n(123),o=n(5),a=n(9),s=i.number.isNumber,u=i.string.isString,f=o.isComplex,c=a.isUnit;e["import"]=function l(o,a){var s=arguments.length;if(1!=s&&2!=s)throw new e.error.ArgumentsError("import",s,1,2);var f,c={override:!1,wrap:!0};if(a&&a instanceof Object&&i.object.extend(c,a),u(o)){var p=n(155)(o);l(p)}else{if("object"!=typeof o)throw new TypeError("Object or module name expected");for(f in o)if(o.hasOwnProperty(f)){var m=o[f];t(m)?r(f,m,c):l(m)}}}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=[],t=function(i,o){return Array.isArray(i)?i.map(function(e,r){return n[o]=r,t(e,o+1)}):r(i,n,e)};return t(e,0)}var t=n(8).isMatrix;e.map=function(n,i){if(2!=arguments.length)throw new e.error.ArgumentsError("map",arguments.length,2);if(Array.isArray(n))return r(n,i);if(t(n))return n.map(i);throw new e.error.UnsupportedTypeError("map",e["typeof"](n))}}},function(e,r,n){e.exports=function(e){var r=n(123),t=r.string.isString;e.print=function(r,n,i){var o=arguments.length;if(2!=o&&3!=o)throw new e.error.ArgumentsError("print",o,2,3);if(!t(r))throw new TypeError("String expected as first parameter in function format");if(!(n 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=n[a.shift()];a.length&&void 0!==s;){var u=a.shift();s=u?s[u]:s+"."}return void 0!==s?t(s)?s:e.format(s,i):r})}}},function(e,r,n){e.exports=function(e){var r=n(156),t=n(5),i=n(8),o=n(9),a=n(7),s=n(6),u=n(10);e["typeof"]=function(n){if(1!=arguments.length)throw new e.error.ArgumentsError("typeof",arguments.length,1);var f=r.type(n);if("object"===f){if(n instanceof t)return"complex";if(n instanceof i)return"matrix";if(n instanceof o)return"unit";if(n instanceof a)return"index";if(n instanceof s)return"range";if(n instanceof u)return"help";if(n instanceof e.type.BigNumber)return"bignumber";if(n instanceof e.chaining.Selector)return"selector"}return f}}},function(e,r,n){e.exports=function(e){function r(e,r){var n=[],t=function(i,o){Array.isArray(i)?i.forEach(function(e,r){n[o]=r,t(e,o+1)}):r(i,n,e)};t(e,0)}var t=n(8).isMatrix;e.forEach=function(n,i){if(2!=arguments.length)throw new e.error.ArgumentsError("forEach",arguments.length,2);if(Array.isArray(n))return r(n,i);if(t(n))return n.forEach(i);throw new e.error.UnsupportedTypeError("forEach",e["typeof"](n))}}},function(e,r,n){var t;(function(e){!function(i){"use strict";function o(e,r,n,t){return!((!(!t&&n>3&&4==e[r]||(t||4>n)&&9==e[r])||9!=e[r+1]||9!=e[r+2]||9!=e[r+3]||null==t&&9!=e[r+4])&&(null!=t||5!=e[r]&&e[r]||e[r+1]||e[r+2]||e[r+3]||e[r+4]))}function a(e,r,n){var t=e.constructor;return null==r||((w=0>r||r>8)||0!==r&&(t.errors?parseInt:parseFloat)(r)!=r)&&!l(t,"rounding mode",r,n,0)?t.rounding:0|r}function s(e,r,n,t){var i=e.constructor;return!(w=(t||0)>r||r>=A+1)&&(0===r||(i.errors?parseInt:parseFloat)(r)==r)||l(i,"argument",r,n,0)}function u(e,r,n,t,i,o){var a=e.constructor,s=e.e-r.e,u=e.s==r.s?1:-1,f=e.c,c=r.c;if(!(f&&f[0]&&c&&c[0]))return new a(e.s&&r.s&&(f?!c||f[0]!=c[0]:c)?f&&0==f[0]||!c?0*u:u/0:0/0);var l,p,m,g,d,x,w=c.slice(),y=x=c.length,v=f.length,b=f.slice(0,x),E=b.length,N=new a(u),M=N.c=[];for(p=u=0;c[p]==(f[p]||0);p++);if(c[p]>(f[p]||0)&&(s--,u=1),N.e=s,null==n?(n=a.precision,t=a.rounding):i&&(n+=s+1),o=o||10,n>=0){for(u+=n;E++m;m++){if(x!=(E=b.length))l=x>E?1:-1;else for(g=-1,l=0;++gb[g]?1:-1;break}if(!(0>l))break;for(d=E==x?c:w;E;){if(b[--E]1&&M.shift(),n>=p&&(n=null)}return h(N,n,t,null!=b[0],o)}function f(e,r){var n,t,i,a,s,f,c,l=0,p=0,m=0,g=e.constructor,d=g.ONE,x=g.rounding,w=g.precision;if(!e.c||!e.c[0]||e.e>17)return new g(e.c?e.c[0]?e.s<0?0:1/0:d:e.s?e.s<0?0:e:0/0);for(null==r?(b=!1,s=w):s=r,c=new g(.03125);e.e>-2;)e=e.times(c),m+=5;for(t=Math.log(Math.pow(2,m))/Math.LN10*2+5|0,s+=t,n=a=f=new g(d),g.precision=s;;){if(a=h(a.times(e),s,1),n=n.times(++p),c=f.plus(u(a,n,s,1)),c.c.slice(0,s).join("")===f.c.slice(0,s).join("")){for(i=m;i--;)f=h(f.times(f),s,1);if(null!=r)return g.precision=w,f;if(!(3>l&&o(f.c,s-t,x,l)))return h(f,g.precision=w,x,b=!0);g.precision=s+=10,n=a=c=new g(d),p=0,l++}f=c}}function c(e,r,n,t){var i=e.constructor,o=(e=new i(e)).e,a=e.c;if(!a)return e.toString();for(a.length>++r&&h(e,r,n),o=t?r:r+e.e-o;a.length=r||o<=i.toExpNeg)?(e.s<0&&a[0]?"-":"")+(a.length>1?a[0]+"."+a.slice(1).join(""):a[0])+(0>o?"e":"e+")+o:e.toString()}function l(e,r,n,t,i){if(e.errors){var o=new Error((t||["new Decimal","cmp","div","eq","gt","gte","lt","lte","minus","mod","plus","times","toFraction","pow","random","log","sqrt","toNearest","divToInt"][v?0>v?-v:v:0>1/v?1:0])+"() "+(["number type has more than 15 significant digits","LN10 out of digits"][r]||r+([w?" out of range":" not an integer"," not a boolean or binary digit"][i]||""))+": "+n);throw o.name="Decimal Error",w=v=0,o}}function p(e,r,n){var t=new e(e.ONE);for(b=!1;1&n&&(t=t.times(r)),n>>=1,n;)r=r.times(r);return b=!0,t}function m(e,r){var n,t,i,a,s,f,c,p,g,d=1,x=10,w=e,y=w.c,v=w.constructor,E=v.ONE,N=v.rounding,M=v.precision;if(w.s<0||!y||!y[0]||!w.e&&1==y[0]&&1==y.length)return new v(y&&!y[0]?-1/0:1!=w.s?0/0:y?0:w);if(null==r?(b=!1,s=M):s=r,v.precision=s+=x,!(Math.abs(t=w.e)<15e14))return w=new v(w),w.e=0,s+2>S.length&&l(v,1,s+2,"ln"),w=m(w,s-x).plus(new v(S.slice(0,s+2)).times(t+"")),v.precision=M,null==r?h(w,M,N,b=!0):w;for(;y[0]<7&&1!=y[0]||1==y[0]&&y[1]>3;)w=w.times(e),y=w.c,d++;for(t=w.e,y[0]>1?(1==d?w=new v("0."+y.join("")):w.e=-1,t++):w=new v("1."+y.slice(1).join("")),p=w,f=i=w=u(w.minus(E),w.plus(E),s,1),g=h(w.times(w),s,1),n=3;;){if(i=h(i.times(g),s,1),c=f.plus(u(i,new v(n),s,1)),c.c.slice(0,s).join("")===f.c.slice(0,s).join("")){if(f=f.times(2),0!==t&&(s+2>S.length&&l(v,1,s+2,"ln"),f=f.plus(new v(S.slice(0,s+2)).times(t+""))),f=u(f,new v(d),s,1),null!=r)return v.precision=M,f;if(!o(f.c,s-x,N,a))return h(f,v.precision=M,N,b=!0);v.precision=s+=x,c=i=w=u(p.minus(E),p.plus(E),s,1),g=h(w.times(w),s,1),n=a=1}f=c,n+=2}}function h(e,r,n,t,i){var o,a,s,u,f=e.constructor;if(r!=o){if(!(u=e.c))return e;if(s=e.s<0,a=(i=i||10)/2,o=u[r],t=t||0>r||null!=u[r+1],t=4>n?(null!=o||t)&&(0==n||2==n&&!s||3==n&&s):o>a||o==a&&(4==n||t||6==n&&1&u[r-1]||7==n&&!s||8==n&&s),1>r||!u[0])return u.length=0,t?(r=r-e.e-1,u[0]=1,e.e=-r||0):u[0]=e.e=0,e;if(u.length>r&&(u.length=r),r--,t){for(o=r;null==u[o];u[o--]=0);for(--i;++u[r]>i;)u[r]=0,r--||(++e.e,u.unshift(1))}for(r=u.length;!u[--r];u.pop());}return b&&(e.e>f.maxE?e.c=e.e=null:e.ea,!i||!o)return u==f?0:!i^n?1:-1;if(u!=f)return u>f^n?1:-1;for(a=-1,s=(u=i.length)<(f=o.length)?u:f;++ao[a]^n?1:-1;return u==f?0:u>f^n?1:-1},N.decimalPlaces=N.dp=function(){var e=this;return e.c?Math.max(e.c.length-e.e-1,0):null},N.dividedBy=N.div=function(e,r){return v=2,u(this,new this.constructor(e,r))},N.dividedToIntegerBy=N.divToInt=function(e,r){var n=this,t=n.constructor;return v=18,h(u(n,new t(e,r),0,1,1),t.precision,t.rounding)},N.equals=N.eq=function(e,r){return v=3,0===this.cmp(e,r)},N.exponential=N.exp=function(){return f(this)},N.floor=function(){return h(new this.constructor(this),this.e+1,3)},N.greaterThan=N.gt=function(e,r){return v=4,this.cmp(e,r)>0},N.greaterThanOrEqualTo=N.gte=function(e,r){return v=5,r=this.cmp(e,r),1==r||0===r},N.isFinite=function(){return!!this.c},N.isInteger=N.isInt=function(){return!!this.c&&this.e>this.c.length-2},N.isNaN=function(){return!this.s},N.isNegative=N.isNeg=function(){return this.s<0},N.isZero=function(){return!!this.c&&0==this.c[0]},N.lessThan=N.lt=function(e,r){return v=6,this.cmp(e,r)<0},N.lessThanOrEqualTo=N.lte=function(e,r){return v=7,r=this.cmp(e,r),-1==r||0===r},N.logarithm=N.log=function(e,r){var n,t,i,a,s,f,c,p,g,d=this,x=d.constructor,w=x.precision,y=x.rounding,E=5;if(null==e)e=new x(10),n=!0;else{if(v=15,e=new x(e,r),t=e.c,e.s<0||!t||!t[0]||!e.e&&1==t[0]&&1==t.length)return new x(0/0);n=e.eq(10)}if(t=d.c,d.s<0||!t||!t[0]||!d.e&&1==t[0]&&1==t.length)return new x(t&&!t[0]?-1/0:1!=d.s?0/0:t?0:1/0);if(s=n&&(1!=t[0]||t.length>1)||(1&e.c[e.c.length-1])!=(1&t[t.length-1])||0,b=!1,c=w+E,p=c+10,f=m(d,c),n?(p>S.length&&l(x,1,p,"log"),i=new x(S.slice(0,p))):i=m(e,c),g=u(f,i,c,1),o(g.c,a=w,y))do if(c+=10,f=m(d,c),n?(p=c+10,p>S.length&&l(x,1,p,"log"),i=new x(S.slice(0,p))):i=m(e,c),g=u(f,i,c,1),!s){for(t=g.c;9==t[++a];);a==w+E+10&&(g=h(g,w+1,0));break}while(o(g.c,a+=10,y));return b=!0,h(g,w,y)},N.minus=function(e,r){var n,t,i,o,a=this,s=a.constructor,u=a.s;if(v=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=a.e,l=e.c,p=e.e,m=s.precision,g=s.rounding;if(!c||!p){if(!f||!l)return f?(e.s=-r,e):new s(l?a:0/0);if(!f[0]||!l[0])return a=l[0]?(e.s=-r,e):new s(f[0]?a:3==g?-0:0),b?h(a,m,g):a}if(f=f.slice(),t=f.length,u=c-p){for((o=0>u)?(u=-u,n=f,t=l.length):(p=c,n=l),m>t&&(t=m),u>(t+=2)&&(u=t,n.length=1),n.reverse(),r=u;r--;n.push(0));n.reverse()}else for((o=t<(i=l.length))&&(i=t),u=r=0;i>r;r++)if(f[r]!=l[r]){o=f[r]0)for(;r--;f[i++]=0);for(r=l.length;r>u;){if(f[--r]o?(o=-o,n=s,r=f.length):(u=a,n=f,r=s.length),c>r&&(r=c),o>++r&&(o=r,n.length=1),n.reverse();o--;n.push(0));n.reverse()}for(s.length-f.length<0&&(n=f,f=s,s=n),o=f.length,r=0;o;s[o]%=10)r=(s[--o]=s[o]+f[o]+r)/10|0;for(r&&(s.unshift(r),++u),o=s.length;0==s[--o];s.pop());return e.c=s,e.e=u,b?h(e,c,l):e +},N.precision=N.sd=function(e){var r=this;return null!=e&&e!==!!e&&1!==e&&0!==e&&l(r.constructor,"argument",e,"precision",1),r.c?e?Math.max(r.e+1,r.c.length):r.c.length:null},N.round=function(){var e=this,r=e.constructor;return h(new r(e),e.e+1,r.rounding)},N.squareRoot=N.sqrt=function(){var e,r,n,t,i,o=this,a=o.c,s=o.s,f=o.e,c=o.constructor,l=new c(.5);if(1!==s||!a||!a[0])return new c(!s||0>s&&(!a||a[0])?0/0:a?o:1/0);for(b=!1,s=Math.sqrt(+o),0==s||s==1/0?(e=a.join(""),(e.length+f)%2==0&&(e+="0"),n=new c(Math.sqrt(e)+""),n.c||(n.c=[1]),n.e=Math.floor((f+1)/2)-(0>f||f%2)):n=new c(s.toString()),r=(f=c.precision)+3;;)if(i=n,n=l.times(i.plus(u(o,i,r+2,1))),i.c.slice(0,r).join("")===n.c.slice(0,r).join("")){if(a=n.c,9!=a[r-3]&&(t||4!=a[r-3])||9!=a[r-2]||9!=a[r-1]||9!=a[r]){if(!(a[r-3]&&5!=a[r-3]||a[r-2]||a[r-1]||a[r]||(a.length>f+1&&(a.length=f+1),n.times(n).eq(o)))){for(;a.lengthf&&(n=o,o=a,a=n,u=f,f=r,r=u),u=f+r,n=[];u--;n.push(0));for(s=r-1;s>-1;s--){for(r=0,u=f+s;u>s;r=r/10|0)r=n[u]+a[s]*o[u-s-1]+r,n[u--]=r%10|0;r&&(n[u]=(n[u]+r)%10)}for(r&&++e.e,n[0]||n.shift(),u=n.length;!n[--u];n.pop());return e.c=n,b?h(e,i.precision,i.rounding):e},N.toDecimalPlaces=N.toDP=function(e,r){var n=this;return n=new n.constructor(n),null!=e&&s(n,e,"toDP")?h(n,(0|e)+n.e+1,a(n,r,"toDP")):n},N.toExponential=function(e,r){var n=this;return c(n,null!=e&&s(n,e,"toExponential")||!n.c?0|e:n.c.length-1,null!=e&&a(n,r,"toExponential"),1)},N.toFixed=function(e,r){var n,t=this,i=t.constructor,o=i.toExpNeg,u=i.toExpPos;return null!=e&&(e=s(t,e,n="toFixed",-A)?t.e+(0|e):null,r=a(t,r,n)),i.toExpNeg=-(i.toExpPos=1/0),null==e?n=t.toString():(n=c(t,e,r),t.s<0&&t.c&&(t.c[0]?n.indexOf("-")<0&&(n="-"+n):n=n.replace("-",""))),i.toExpNeg=o,i.toExpPos=u,n},N.toFormat=function(e,r,n){var t=this.toFixed(r).split(".");return t[0].replace(/\B(?=(\d{3})+$)/g,null==e?",":e+"")+(t[1]?"."+(n?t[1].replace(/\d{5}\B/g,"$&"+n):t[1]):"")},N.toFraction=function(e){var r,n,t,i,o,a,s,f=this,c=f.constructor,p=r=new c(c.ONE),m=a=new c(0),h=f.c,g=new c(c.ONE),d=c.precision;if(!h)return f.toString();for(t=g.e=h.length-f.e-1,(null==e||(!(v=12,o=new c(e)).s||(w=o.cmp(p)<0||!o.c)||c.errors&&o.e0)&&(e=t>0?g:p),b=!1,o=new c(h.join("")),c.precision=h.length;s=u(o,g,0,1,1),n=r.plus(s.times(m)),1!=n.cmp(e);)r=m,m=n,p=a.plus(s.times(n=p)),a=n,g=o.minus(s.times(n=g)),o=n;return n=u(e.minus(r),m,0,1,1),a=a.plus(n.times(p)),r=r.plus(n.times(m)),a.s=p.s=f.s,t*=2,i=u(p,m,t,1,1).minus(f).abs().cmp(u(a,r,t,1,1).minus(f).abs())<1?[p.toString(),m.toString()]:[a.toString(),r.toString()],b=!0,c.precision=d,i},N.toNearest=function(e,r){var n=this,t=n.constructor;return n=new t(n),null==e?(e=new t(t.ONE),r=t.rounding):(v=17,e=new t(e),r=a(n,r,"toNearest")),e.c?n.c&&(b=!1,4>r&&(r=[4,5,7,8][r]),1==e.c[0]&&1==e.c.length?(n.e-=e.e,h(n,n.e+1,r),n.c[0]&&(n.e+=e.e)):e.c[0]?n=u(n,e,0,r,1).times(e):n.c=[n.e=0],b=!0,h(n)):n.s&&(e.s&&(e.s=n.s),n=e),n},N.toNumber=function(){var e=this;return+e||(0|e)*e.s},N.toPower=N.pow=function(e,r){var n,t,i,a,s=this,u=s.constructor,c=s.s,l=(v=13,+(e=new u(e,r))),g=0>l?-l:l,d=u.precision,x=u.rounding;if(!s.c||!e.c||(i=!s.c[0])||!e.c[0])return new u(Math.pow(i?0*c:+s,l));if(s=new u(s),n=s.c.length,!s.e&&s.c[0]==s.s&&1==n)return s;if(r=e.c.length-1,e.e||e.c[0]!=e.s||r)if(i=e.e>=r,!i&&0>c)a=new u(0/0);else{if(i&&T>n*g){if(a=p(u,s,g),e.s<0)return u.ONE.div(a)}else{if(c=0>c&&1&e.c[Math.max(e.e,r)]?-1:1,r=Math.pow(+s,l),t=0!=r&&isFinite(r)?new u(r+"").e:Math.floor(l*(Math.log("0."+s.c.join(""))/Math.LN10+s.e+1)),t>u.maxE+1||t0?c/0:0);if(b=!1,u.rounding=s.s=1,g=Math.min(12,(t+"").length),a=f(e.times(m(s,d+g)),d),a=h(a,d+5,1),o(a.c,d,x)){for(t=d+10,a=h(f(e.times(m(s,t+g)),t),t+5,1),g=d;9==a.c[++g];);g==d+15&&(a=h(a,d+1,0))}a.s=c,b=!0,u.rounding=x}a=h(a,d,x)}else a=h(s,d,x);return a},N.toPrecision=function(e,r){return null!=e&&s(this,e,"toPrecision",1)?c(this,0|--e,a(this,r,"toPrecision"),2):this.toString()},N.toSignificantDigits=N.toSD=function(e,r){var n=this,t=n.constructor;return n=new t(n),null!=e&&s(n,e,"toSD",1)?h(n,0|e,a(n,r,"toSD")):h(n,t.precision,t.rounding)},N.toString=function(e){var r,n,t,i=this,o=i.constructor,a=i.e;if(null===a)n=i.s?"Infinity":"NaN";else{if(e===r&&(a<=o.toExpNeg||a>=o.toExpPos))return c(i,i.c.length-1,o.rounding,1);if(n=i.c.join(""),0>a){for(;++a;n="0"+n);n="0."+n}else if(t=n.length,a>0)if(++a>t)for(a-=t;a--;n+="0");else t>a&&(n=n.slice(0,a)+"."+n.slice(a));else if(r=n.charAt(0),t>1)n=r+"."+n.slice(1);else if("0"==r)return r;if(null!=e)if((w=!(e>=2&&65>e))||e!=(0|e)&&o.errors)l(o,"base",e,"toString",0);else if(n=g(o,n,0|e,10,i.s),"0"==n)return n}return i.s<0?"-"+n:n},N.truncated=N.trunc=function(){return h(new this.constructor(this),this.e+1,1)},N.valueOf=N.toJSON=function(){return this.toString()},g=function(){function e(e,r,n){for(var t,i,o=[0],a=0,s=e.length;s>a;){for(i=o.length;i--;o[i]*=r);for(o[t=0]+=E.indexOf(e.charAt(a++));tn-1&&(null==o[t+1]&&(o[t+1]=0),o[t+1]+=o[t]/n|0,o[t]%=n)}return o.reverse()}return function(r,n,t,i,o){var a,s,f,c=n.indexOf("."),l=new r(i);for(37>i&&(n=n.toLowerCase()),0>c?(a=new r(l),f=[1]):(a=p(r,l,n.length-c-1),f=e(a.toFixed(),10,t),n=n.replace(".","")),l.c=f,l.e=f.length,s=e(n,i,t),a.c=s,a.e=s.length,a.s=o,a=u(a,l,r.precision,r.rounding,0,t),s=a.c,c=s.length;c--;)s[c]=E.charAt(s[c]);return a.s=1,a.toFixed()}}(),x=function(){function e(e){var r,n,t,i=this,o="config",a=i.errors?parseInt:parseFloat;return e==n||"object"!=typeof e&&!l(i,"object expected",e,o)?i:((t=e[r="precision"])!=n&&((w=1>t||t>A)||a(t)!=t?l(i,r,t,o,0):i[r]=0|t),(t=e[r="rounding"])!=n&&((w=0>t||t>8)||a(t)!=t?l(i,r,t,o,0):i[r]=0|t),(t=e[r="toExpNeg"])!=n&&((w=-M>t||t>0)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="toExpPos"])!=n&&((w=0>t||t>M)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="minE"])!=n&&((w=-M>t||t>0)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="maxE"])!=n&&((w=0>t||t>M)||a(t)!=t?l(i,r,t,o,0):i[r]=Math.floor(t)),(t=e[r="errors"])!=n&&(t===!!t||1===t||0===t?(w=v=0,i[r]=!!t):l(i,r,t,o,1)),(t=e[r="crypto"])!=n&&(t===!!t||1===t||0===t?i[r]=!(!t||!d||"object"!=typeof d):l(i,r,t,o,1)),(t=e[r="modulo"])!=n&&((w=0>t||t>9)||a(t)!=t?l(i,r,t,o,0):i[r]=0|t),i)}function r(e){return new this(e).exp()}function n(e){return new this(e).ln()}function t(e,r){return new this(e).log(r)}function o(e,r,n){var t,i,o=0;for("[object Array]"==y.call(r[0])&&(r=r[0]),t=new e(r[0]);++o1/i?"-0":i+""),c=i,o==s&&e.test(i))t.s="-"==i.charAt(0)?(i=i.slice(1),-1):1;else{if(10==o)return h(new n(i),n.precision,n.rounding);if(i=r.call(i).replace(/^\+(?!-)/,""),t.s="-"==i.charAt(0)?(i=i.replace(/^-(?!-)/,""),-1):1,o!=s?o!=(0|o)&&n.errors||(w=!(o>=2&&65>o))?(l(n,"base",o,0,0),p=e.test(i)):(a="["+E.slice(0,o=0|o)+"]+",i=i.replace(/\.$/,"").replace(/^\./,"0."),(p=new RegExp("^"+a+"(?:\\."+a+")?$",37>o?"i":"").test(i))?(f&&(i.replace(/^0\.0*|\./,"").length>15&&l(n,0,c),f=!f),i=g(n,i,10,o,t.s)):"Infinity"!=i&&"NaN"!=i&&(l(n,"not a base "+o+" number",c),i="NaN")):p=e.test(i),!p)return t.c=t.e=null,"Infinity"!=i&&("NaN"!=i&&l(n,"not a number",c),t.s=null),v=0,t}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;"0"==i.charAt(u);u++);if(u==(o=i.length))t.c=[t.e=0];else{for(f&&o>15&&i.slice(u).length>15&&l(n,0,c);"0"==i.charAt(--o););for(t.e=s-u-1,t.c=[],s=0;o>=u;t.c[s++]=+i.charAt(u++));b&&(t.e>n.maxE?t.c=t.e=null:t.e(256/e|0)*e-1?r(e):n%e+""):(n=d.getRandomValues(new i.Uint32Array(1))[0],n>=4e9?r(e):(n+1e9+"").slice(1))}function n(e){var r,t,i=d.randomBytes;return e?(t=i(1)[0],t>(256/e|0)*e-1?n(e):t%e+""):(r=i(8),r[0]=67,r[1]=15&r[1]|48,t=r.readDoubleBE(0),t>9003599627370495?n(e):(t-0xc72815b398000+"").slice(2))}return function(t,i){var o,a,u,f,c,p,m,h,g=this,x=new g(0),w=e;if(p=t==a||!(v=14,t=new g(t)).c&&!l(g,"limit must be finite",t,"random"))t=new g(g.ONE);else if(!t.c[0])return x;g.crypto&&(d.getRandomValues?w=r:d.randomBytes&&(w=n)),a=t.e,c=(o=t.c).length;do{u=0,h=w(o[0]+1)+w();do f=o[u],m=h.charAt(u++);while(f==m)}while(m>f||u>c||""==m);for(u=0;"0"==h.charAt(u);u++,a--);for(p?i=g.precision:null!=i&&s(t,i,"random",1)?i|=0:i=a+1,i+=u;h.length0)for(x.c=[];i>u;x.c.push(+h.charAt(u++)));else x.c=[a=0];return x.e=a,x.s=t.s,x}}();return p()}(),"undefined"!=typeof e&&e&&e.exports?(e.exports=x,d=n(256)):(d=i.crypto,t=function(){return x}.call(r,n,r,e),!(void 0!==t&&(e.exports=t)))}(this)}).call(r,n(259)(e))},function(e){function r(e,n,t,i){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.fn=e,this.count=n,this.min=t,this.max=i,this.message="Wrong number of arguments in function "+e+" ("+n+" provided, "+t+(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){function r(e,n,t){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator");this.actual=e,this.expected=n,this.relation=t,this.message="Dimension mismatch ("+(Array.isArray(e)?"["+e.join(", ")+"]":e)+" "+(this.relation||"!=")+" "+(Array.isArray(n)?"["+n.join(", ")+"]":n)+")",this.stack=(new Error).stack}r.prototype=new RangeError,r.prototype.constructor=RangeError,r.prototype.name="DimensionError",e.exports=r},function(e){function r(e,n,t){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=n):(this.min=n,this.max=t),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){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,n){r.array=n(153),r["boolean"]=n(257),r.number=n(154),r.bignumber=n(258),r.object=n(3),r.string=n(138),r.types=n(156)},function(e,r,n){function t(e){if(!(this instanceof t))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=n(137),o=(n(3),n(138)),a=(n(11),n(123),Array.isArray),s=i.isNode;t.prototype=new i,t.prototype.type="ArrayNode",t.prototype._compile=function(e){var r="array"!==e.math.config().matrix,n=this.nodes.map(function(r){return r._compile(e)});return(r?"math.matrix([":"[")+n.join(",")+(r?"])":"]")},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this);for(var n=this.nodes,t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.toString=function(){return o.format(this.nodes)},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!o(e))throw new TypeError('String expected for parameter "name"');if(!(r instanceof i))throw new TypeError('Node expected for parameter "expr"');this.name=e,this.expr=r}var i=n(137),o=n(138).isString;t.prototype=new i,t.prototype.type="AssignmentNode",t.prototype._compile=function(e){return'scope["'+this.name+'"] = '+this.expr._compile(e)},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.expr.find(e))},t.prototype.toString=function(){return this.name+" = "+this.expr.toString()},e.exports=t},function(e,r,n){function t(){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.params=[]}var i=n(137),o=n(257).isBoolean;t.prototype=new i,t.prototype.type="BlockNode",t.prototype.add=function(e,r){if(void 0===r&&(r=!0),!(e instanceof i))throw new TypeError('Node expected for parameter "expr"');if(!o(r))throw new TypeError('Boolean expected for parameter "visible"');var n=this.params.length;this.params[n]={node:e,visible:r}},t.prototype._compile=function(e){var r=this.params.map(function(r){var n=r.node._compile(e);return r.visible?"results.push("+n+");":n+";"});return"(function () {var results = [];"+r.join("")+"return results;})()"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this);for(var n=this.params,t=0,i=n.length;i>t;t++)r=r.concat(n[t].node.find(e));return r},t.prototype.toString=function(){return this.params.map(function(e){return e.node.toString()+(e.visible?"":";")}).join("\n")},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!a(e))throw new TypeError('String expected for parameter "type"');if(!a(r))throw new TypeError('String expected for parameter "value"');this.valueType=e,this.value=r}var i=n(137),o=n(138),a=o.isString;t.prototype=new i,t.prototype.type="ConstantNode",t.prototype._compile=function(e){switch(this.valueType){case"number":return"bignumber"===e.math.config().number?'math.bignumber("'+this.value+'")':this.value.replace(/^(0*)[0-9]/,function(e,r){return e.substring(r.length)});case"string":return'"'+this.value+'"';case"complex":return"math.complex(0, "+this.value+")";case"boolean":return this.value;case"undefined":return this.value;case"null":return this.value;default:throw new TypeError('Unsupported type of constant "'+this.valueType+'"')}},t.prototype.toString=function(){switch(this.valueType){case"string":return'"'+this.value+'"';case"complex":return this.value+"i";default:return this.value}},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!o(e))throw new TypeError('String expected for parameter "name"');if(!isArray(r)||!r.every(o))throw new TypeError('Array containing strings expected for parameter "args"');if(!(n instanceof i))throw new TypeError('Node expected for parameter "expr"');this.name=e,this.args=r,this.expr=n}var i=n(137),o=n(138).isString;isArray=Array.isArray,t.prototype=new i,t.prototype.type="FunctionNode",t.prototype._compile=function(e){return'scope["'+this.name+'"] = (function (scope) { scope = Object.create(scope); var fn = function '+this.name+"("+this.args.join(",")+") { if (arguments.length != "+this.args.length+') { throw new SyntaxError("Wrong number of arguments in function '+this.name+' (" + arguments.length + " provided, '+this.args.length+' expected)"); }'+this.args.map(function(e,r){return'scope["'+e+'"] = arguments['+r+"];"}).join("")+" return "+this.expr._compile(e)+' }; fn.syntax = "'+this.name+"("+this.args.join(", ")+')"; return fn; })(scope);'},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.expr.find(e))},t.prototype.toString=function(){return"function "+this.name+"("+this.args.join(", ")+") = "+this.expr.toString()},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof i))throw new TypeError('Node expected for parameter "object"');if(!isArray(r)||!r.every(s))throw new TypeError('Array containing Nodes expected for parameter "ranges"');this.object=e,this.ranges=r}var i=n(137),o=n(132),a=n(133),s=i.isNode;t.prototype=new i,t.prototype.type="IndexNode",t.prototype._compile=function(e){return this.compileSubset(e)},t.prototype.compileSubset=function(e,r){var n={type:a,properties:{name:"end"}},t=!1,i=this.ranges.map(function(e){var r=e.find(n).length>0;return t=r?r:t,r}),s=this.ranges.map(function(r,n){var t=i[n];return r instanceof o?t?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+n+"]; var step = "+(r.step?r.step._compile(e):"1")+"; return [ "+r.start._compile(e)+" - 1, "+r.end._compile(e)+" - (step > 0 ? 0 : 2), step ];})(scope)":"(function () { var step = "+(r.step?r.step._compile(e):"1")+"; return [ "+r.start._compile(e)+" - 1, "+r.end._compile(e)+" - (step > 0 ? 0 : 2), step ];})()":t?'(function (scope) { scope = Object.create(scope); scope["end"] = size['+n+"]; return "+r._compile(e)+" - 1;})(scope)":r._compile(e)+" - 1"});return t?"(function () { var obj = "+this.object._compile(e)+"; var size = math.size(obj).valueOf(); return math.subset( obj, math.index("+s.join(", ")+") "+(r?", "+r:"")+" );})()":"math.subset("+this.object._compile(e)+",math.index("+s.join(", ")+")"+(r?", "+r:"")+")"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this),r=r.concat(this.object.find(e));for(var n=this.ranges,t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.objectName=function(){return this.object.name},t.prototype.toString=function(){return this.object.toString()+"["+this.ranges.join(", ")+"]"},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.op=e,this.fn=r,this.params=n}var i=n(137);t.prototype=new i,t.prototype.type="OperatorNode",t.prototype._compile=function(e){if(!(this.fn in e.math))throw new Error("Function "+this.fn+' missing in provided namespace "math"');var r=this.params.map(function(r){return r._compile(e)});return"math."+this.fn+"("+r.join(", ")+")"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this);var n=this.params;if(n)for(var t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.toString=function(){var e=this.params;switch(e.length){case 1:return"-"==this.op?"-"+e[0].toString():e[0].toString()+this.op;case 2:var r=e[0].toString();e[0]instanceof t&&(r="("+r+")");var n=e[1].toString();return e[1]instanceof t&&(n="("+n+")"),r+" "+this.op+" "+n;default:return this.op+"("+this.params.join(", ")+")"}},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof i))throw new TypeError('Node expected for parameter "object"');if(!isArray(r)||!r.every(o))throw new TypeError('Array containing Nodes expected for parameter "params"');this.object=e,this.params=r}var i=n(137),o=i.isNode;t.prototype=new i,t.prototype.type="ParamsNode",t.prototype._compile=function(e){var r=this.params.map(function(r){return r._compile(e)});return this.object._compile(e)+"("+r.join(", ")+")"},t.prototype.find=function(e){var r=[];this.match(e)&&r.push(this),r=r.concat(this.object.find(e));for(var n=this.params,t=0,i=n.length;i>t;t++)r=r.concat(n[t].find(e));return r},t.prototype.toString=function(){return this.object.toString()+"("+this.params.join(", ")+")"},e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!Array.isArray(e)||2!=e.length&&3!=e.length||!e.every(o))throw new TypeError('Expected an Array containing 2 or 3 Nodes as parameter "params"');this.start=e[0],this.end=e[1],this.step=e[2]}var i=n(137),o=i.isNode;t.prototype=new i,t.prototype.type="RangeNode",t.prototype._compile=function(e){return"math.range("+this.start._compile(e)+", "+this.end._compile(e)+", "+(this.step?this.step._compile(e)+", ":"")+"true)"},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.start.find(e)),this.step&&(r=r.concat(this.step.find(e))),r=r.concat(this.end.find(e))},t.prototype.toString=function(){var e=this.start.toString();return this.step&&(e+=":"+this.step.toString()),e+=":"+this.end.toString()},e.exports=t},function(e,r,n){function t(e){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!s(e))throw new TypeError('String expected for parameter "name"');this.name=e}function i(e){throw new Error("Undefined symbol "+e)}var o=n(137),a=n(9),s=n(138).isString;t.prototype=new o,t.prototype.type="SymbolNode",t.prototype._compile=function(e){return e.undef=i,e.Unit=a,'(scope["'+this.name+'"] !== undefined ? scope["'+this.name+'"] : math["'+this.name+'"] !== undefined ? math["'+this.name+'"] : '+(a.isValuelessUnit(this.name)?'new Unit(null, "'+this.name+'")':'undef("'+this.name+'")')+")"},t.prototype.toString=function(){return this.name},e.exports=t},function(e,r,n){function t(e,r,n){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");this.ops=e,this.fn=r,this.params=n}var i=n(130);t.prototype=new i,t.prototype.type="TernaryNode",t.prototype.toString=function(){return this.params[0]+" "+this.ops[0]+" "+this.params[1]+" "+this.ops[1]+" "+this.params[2]},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(!(e instanceof i))throw new TypeError('Node expected for parameter "value"');if(!o(r))throw new TypeError('String expected for parameter "unit"');this.value=e,this.unit=r}var i=n(137),o=(n(9),n(138).isString);t.prototype=new i,t.prototype.type="UnitNode",t.prototype._compile=function(e){return"math.unit("+this.value._compile(e)+', "'+this.unit+'")'},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.value.find(e))},t.prototype.toString=function(){return this.value+" "+this.unit},e.exports=t},function(e,r,n){function t(e,r){if(!(this instanceof t))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=n(137),o=n(129);t.prototype=new i,t.prototype.type="UpdateNode",t.prototype._compile=function(e){return'scope["'+this.index.objectName()+'"] = '+this.index.compileSubset(e,this.expr._compile(e))},t.prototype.find=function(e){var r=[];return this.match(e)&&r.push(this),r=r.concat(this.index.find(e)),r=r.concat(this.expr.find(e))},t.prototype.toString=function(){return this.index.toString()+" = "+this.expr.toString()},e.exports=t},function(e,r,n){function t(){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator")}var i=n(4);t.prototype.eval=function(){throw new Error("Node.eval is deprecated. Use Node.compile(math).eval([scope]) instead.")},t.prototype.type="Node",t.prototype.compile=function(e){if("object"!=typeof e)throw new TypeError("Object expected for parameter math");var r={math:e,error:i},n=this._compile(r),t=Object.keys(r).map(function(e){return" var "+e+' = defs["'+e+'"];'}),o=t.join(" ")+'return { "eval": function (scope) { try { scope = scope || {}; return '+n+"; } catch (err) { if (err instanceof defs.error.IndexError) { err = new defs.error.IndexError(err.index + 1, err.min + 1, err.max + 1); } throw err; } }};",a=new Function("defs",o);return a(r)},t.prototype._compile=function(){throw new Error("Cannot compile a Node interface")},t.prototype.find=function(e){return this.match(e)?[this]:[]},t.prototype.match=function(e){var r=!0;if(e){!e.type||this instanceof e.type||(r=!1);var n=e.properties;if(r&&n)for(var t in n)if(n.hasOwnProperty(t)&&this[t]!==n[t]){r=!1;break}}return r},t.prototype.toString=function(){return""},t.isNode=function(e){return e instanceof t},e.exports=t},function(e,r,n){function t(e,n){if(Array.isArray(e)){for(var i="[",o=e.length,a=0;o>a;a++)0!=a&&(i+=", "),i+=t(e[a],n);return i+="]"}return r.format(e,n)}var i=n(154),o=n(258),a=n(118);r.isString=function(e){return e instanceof String||"string"==typeof e},r.endsWith=function(e,r){var n=e.length-r.length,t=e.length;return e.substring(n,t)===r},r.format=function(e,n){return i.isNumber(e)?i.format(e,n):e instanceof a?o.format(e,n):Array.isArray(e)?t(e,n):r.isString(e)?'"'+e+'"':"function"==typeof e?e.syntax?e.syntax+"":"function":e instanceof Object?"function"==typeof e.format?e.format(n):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:"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:"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:["pi"],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,r,n){function t(e){for(var r=[];l(e);)r.push(e.length),e=e[0];return r}function i(e,r,n){var t,o=e.length;if(o!=r[n])throw new f(o,r[n]);if(nt;t++){var s=e[t];if(!l(s))throw new f(r.length-1,r.length,"<");i(e[t],r,a)}}else for(t=0;o>t;t++)if(l(e[t]))throw new f(r.length+1,r.length,">")}function o(e,r,n,t){if(!l(e))throw Error("Array expected");var i,a,s=e.length,f=r[n],c=Math.min(s,f);if(e.length=f,ni;i++)a=e[i],o(a,r,p,t);for(i=c;f>i;i++)a=[],e[i]=a,o(a,r,p,t)}else if(void 0!==t)for(i=s;f>i;i++)e[i]=u.clone(t)}var a=n(154),s=n(138),u=n(3),f=(n(156),n(120)),c=n(121),l=Array.isArray;r.size=function(e){var n=t(e);return r.validate(e,n),n},r.validate=function(e,r){var n=0==r.length;if(n){if(l(e))throw new f(e.length,0)}else i(e,r,0)},r.validateIndex=function(e,r){if(!a.isNumber(e)||!a.isInteger(e))throw new TypeError("Index must be an integer (value: "+e+")");if(0>e)throw new c(e);if(void 0!==r&&e>=r)throw new c(e,r)},r.resize=function(e,r,n){if(!l(e)||!l(r))throw new TypeError("Array expected");if(0===r.length)throw new Error("Resizing to scalar is not supported");r.forEach(function(e){if(!a.isNumber(e)||!a.isInteger(e)||0>e)throw new TypeError("Invalid size, must contain positive integers (size: "+s.format(r)+")")});for(var t=1,i=e[0];l(i);)t++,i=i[0];for(;tr.length;)e=e[0],t--;return o(e,r,0,n),e},r.squeeze=function(e){for(;l(e)&&1===e.length;)e=e[0];return e},r.unsqueeze=function(e,n){for(var t=r.size(e),i=0,o=n-t.length;o>i;i++)e=[e];return e},r.flatten=function(e){for(var r=e,n=Array.isArray;n(r[0]);){for(var t=[],i=0,o=r.length;o>i;i++)t=t.concat.apply(t,r[i]);r=t}return r},r.isArray=l},function(e,r){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,n){if("function"==typeof n)return n(e);if(1/0===e)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var t="auto",i=void 0;switch(void 0!==n&&(n.notation&&(t=n.notation),r.isNumber(n)?i=n:n.precision&&(i=n.precision)),t){case"fixed":return r.toFixed(e,i);case"exponential":return r.toExponential(e,i);case"auto":var o=.001,a=1e5;if(n&&n.exponential&&(void 0!==n.exponential.lower&&(o=n.exponential.lower),void 0!==n.exponential.upper&&(a=n.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 "'+t+'". 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,n,t){if(null==t)return e==n;if(e==n)return!0;if(isNaN(e)||isNaN(n))return!1;if(isFinite(e)&&isFinite(n)){var i=Math.abs(e-n);return i 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:"Operators",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:"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 ^ 3","log(1000, 10)","log(1000) / log(10)","b = logb(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(1000)","10 ^ 3","log10(0.01)","log(1000) / log(10)","log(1000, 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:[]}},function(e){e.exports={name:"multiply",category:"Operators",syntax:["x * y","multiply(x, y)"],description:"multiply two values.",examples:["2.1 * 3.6","ans / 3.6","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:["norm([[1, 2], [3, 4]])","norm([[1, 2, 3, 4]], 3.5)","norm(-4.2)","norm([[1, 2], [-3, -4]], 'fro')"]}},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:["unequal","smaller","larger","smallereq","largereq"]}},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:"smaller",category:"Operators",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:"Operators",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:"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:["5.3 - 2","ans + 2","2/3 - 1/6","2 * 3 - 3","2.1 km - 500m"],seealso:["add"]}},function(e){e.exports={name:"unary",category:"Operators",syntax:["-x","unary(x)"],description:"Inverse the sign of a value.",examples:["-4.5","-(-5.6)"],seealso:["add","subtract"]}},function(e){e.exports={name:"unequal",category:"Operators",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"]}},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:"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])"],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:"concat",category:"Matrix",syntax:["concat(a, b, c, ...)","concat(a, b, c, ..., dim)"],description:"Concatenate matrices. By default, the matrices are concatenated by the first 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)","[a, b]","concat(a, b, 2)","[a; b]"],seealso:["det","diag","eye","inv","ones","range","size","squeeze","subset","transpose","zeros"]}},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:"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:"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], 0)","resize(2, [2, 3], 0)",'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 singleton dimensions from a matrix.",examples:["a = zeros(1,3,2)","size(squeeze(a))","b = zeros(3,1,1)","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:"distribution",category:"Probability",syntax:["distribution(name)","distribution(name, arg1, arg2, ...)"],description:'Create a distribution object of a specific type. A distribution object contains functions `random([size,] [min,] [max])`, `randomInt([size,] [min,] [max])`, and `pickRandom(array)`. Available types of distributions: "uniform", "normal". Note that the function distribution is currently not available via the expression parser.',examples:[],seealso:["random","randomInt"]}},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:[]}},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, 4)"],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:["distribution","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:["distribution","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:["distribution","pickRandom","random"]}},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(4, 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","acos","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","asin"]}},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(2)","cosh(pi / 4) ^ 2","cosh(180 deg)","cosh(60 deg)","sinh(0.2)^2 + cosh(0.2)^2"],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)"],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(2)","sinh(pi / 4) ^ 2","sinh(90 deg)","sinh(30 deg)","sinh(0.2)^2 + cosh(0.2)^2"],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)","tanh(pi / 4)","tanh(45 deg)"],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 in cm","3.2kg in 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 math.max(val, 1.5) })"],seealso:[]}},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.",examples:["forEach([1, 2, 3], function(val) { console.log(val) })"],seealso:[]}},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:"ifElse",category:"Utils",syntax:["ifElse(conditional, trueExpr, falseExpr)"],description:"Executes a conditional expression.",examples:["ifElse(10 > 0, 10, 0)",'ifElse("", true, false)',"ifElse([4, 6, 0, -1], true, false)"],seealso:[]}},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:"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(r){r.exports=e},function(e,r){r.isBoolean=function(e){return e instanceof Boolean||"boolean"==typeof e}},function(e,r,n){var t=n(118),i=n(154).isNumber;digits=n(154).digits,r.isBigNumber=function(e){return e instanceof t},r.format=function(e,n){if("function"==typeof n)return n(e);if(!e.isFinite())return e.isNaN()?"NaN":e.gt(0)?"Infinity":"-Infinity";var t="auto",o=void 0;switch(void 0!==n&&(n.notation&&(t=n.notation),i(n)?o=n:n.precision&&(o=n.precision)),t){case"fixed":return r.toFixed(e,o);case"exponential":return r.toExponential(e,o);case"auto":var a=.001,s=1e5;n&&n.exponential&&(void 0!==n.exponential.lower&&(a=n.exponential.lower),void 0!==n.exponential.upper&&(s=n.exponential.upper));{({toExpNeg:e.constructor.toExpNeg,toExpPos:e.constructor.toExpPos})}if(e.constructor.config({toExpNeg:Math.round(Math.log(a)/Math.LN10),toExpPos:Math.round(Math.log(s)/Math.LN10)}),e.isZero())return"0";var u,f=e.abs();return u=f.gte(a)&&f.lt(s)?e.toSignificantDigits(o).toFixed():r.toExponential(e,o),u.replace(/((\.\d*?)(0+))($|e)/,function(){var e=arguments[2],r=arguments[4];return"."!==e?e+r:r});default:throw new Error('Unknown notation "'+t+'". 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){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}}])}); //# sourceMappingURL=math.map \ No newline at end of file diff --git a/package.json b/package.json index 057377f50..3eb4f033e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mathjs", - "version": "0.22.0-SNAPSHOT", + "version": "0.21.1", "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": [