mathjs 12.4.1 → 12.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HISTORY.md +17 -0
- package/README.md +4 -0
- package/bin/cli.js +1 -1
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/create.js +3 -3
- package/lib/cjs/core/function/config.js +1 -11
- package/lib/cjs/core/function/import.js +3 -4
- package/lib/cjs/defaultInstance.js +1 -1
- package/lib/cjs/entry/allFactoriesAny.js +1 -1
- package/lib/cjs/entry/allFactoriesNumber.js +1 -1
- package/lib/cjs/expression/node/AccessorNode.js +2 -3
- package/lib/cjs/expression/node/ArrayNode.js +2 -3
- package/lib/cjs/expression/node/AssignmentNode.js +2 -3
- package/lib/cjs/expression/node/BlockNode.js +2 -3
- package/lib/cjs/expression/node/ConditionalNode.js +2 -3
- package/lib/cjs/expression/node/ConstantNode.js +2 -3
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +2 -3
- package/lib/cjs/expression/node/FunctionNode.js +5 -6
- package/lib/cjs/expression/node/IndexNode.js +2 -3
- package/lib/cjs/expression/node/Node.js +1 -2
- package/lib/cjs/expression/node/ObjectNode.js +2 -3
- package/lib/cjs/expression/node/OperatorNode.js +2 -3
- package/lib/cjs/expression/node/ParenthesisNode.js +2 -3
- package/lib/cjs/expression/node/RangeNode.js +2 -3
- package/lib/cjs/expression/node/RelationalNode.js +2 -3
- package/lib/cjs/expression/node/SymbolNode.js +2 -3
- package/lib/cjs/expression/parse.js +7 -7
- package/lib/cjs/function/algebra/derivative.js +1 -1
- package/lib/cjs/function/algebra/rationalize.js +2 -2
- package/lib/cjs/function/algebra/simplifyConstant.js +1 -1
- package/lib/cjs/function/statistics/mad.js +1 -1
- package/lib/cjs/function/statistics/std.js +1 -1
- package/lib/cjs/function/statistics/utils/improveErrorMessage.js +2 -2
- package/lib/cjs/function/utils/isNaN.js +5 -3
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/unit/Unit.js +3 -2
- package/lib/cjs/utils/array.js +0 -11
- package/lib/cjs/utils/bignumber/formatter.js +1 -1
- package/lib/cjs/utils/factory.js +1 -2
- package/lib/cjs/utils/map.js +2 -4
- package/lib/cjs/utils/object.js +1 -7
- package/lib/cjs/utils/snapshot.js +5 -5
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/create.js +3 -3
- package/lib/esm/core/function/config.js +1 -11
- package/lib/esm/core/function/import.js +3 -4
- package/lib/esm/expression/node/FunctionNode.js +3 -3
- package/lib/esm/expression/parse.js +7 -7
- package/lib/esm/function/algebra/derivative.js +1 -1
- package/lib/esm/function/algebra/rationalize.js +2 -2
- package/lib/esm/function/algebra/simplifyConstant.js +1 -1
- package/lib/esm/function/statistics/mad.js +1 -1
- package/lib/esm/function/statistics/std.js +1 -1
- package/lib/esm/function/statistics/utils/improveErrorMessage.js +2 -2
- package/lib/esm/function/utils/isNaN.js +1 -3
- package/lib/esm/type/unit/Unit.js +3 -2
- package/lib/esm/utils/array.js +0 -10
- package/lib/esm/utils/bignumber/formatter.js +1 -1
- package/lib/esm/utils/factory.js +1 -2
- package/lib/esm/utils/object.js +1 -4
- package/lib/esm/utils/snapshot.js +4 -4
- package/lib/esm/version.js +1 -1
- package/package.json +15 -15
- package/types/EXPLANATION.md +13 -1
- package/types/index.d.ts +18 -1
package/lib/cjs/core/create.js
CHANGED
@@ -19,7 +19,7 @@ var _DimensionError = require("../error/DimensionError.js");
|
|
19
19
|
var _IndexError = require("../error/IndexError.js");
|
20
20
|
var _config2 = require("./config.js");
|
21
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
22
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
22
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
23
23
|
/**
|
24
24
|
* Create a mathjs instance from given factory functions and optionally config
|
25
25
|
*
|
@@ -179,7 +179,7 @@ function create(factories, config) {
|
|
179
179
|
// listen for changes in config, import all functions again when changed
|
180
180
|
// TODO: move this listener into the import function?
|
181
181
|
math.on('config', function () {
|
182
|
-
|
182
|
+
Object.values(importedFactories).forEach(function (factory) {
|
183
183
|
if (factory && factory.meta && factory.meta.recreateOnConfigChange) {
|
184
184
|
// FIXME: only re-create when the current instance is the same as was initially created
|
185
185
|
// FIXME: delete the functions/constants before importing them again?
|
@@ -199,7 +199,7 @@ function create(factories, config) {
|
|
199
199
|
|
200
200
|
// import the factory functions like createAdd as an array instead of object,
|
201
201
|
// else they will get a different naming (`createAdd` instead of `add`).
|
202
|
-
math["import"](
|
202
|
+
math["import"](Object.values((0, _object.deepFlatten)(factories)));
|
203
203
|
math.ArgumentsError = _ArgumentsError.ArgumentsError;
|
204
204
|
math.DimensionError = _DimensionError.DimensionError;
|
205
205
|
math.IndexError = _IndexError.IndexError;
|
@@ -91,16 +91,6 @@ function configFactory(config, emit) {
|
|
91
91
|
return _config;
|
92
92
|
}
|
93
93
|
|
94
|
-
/**
|
95
|
-
* Test whether an Array contains a specific item.
|
96
|
-
* @param {Array.<string>} array
|
97
|
-
* @param {string} item
|
98
|
-
* @return {boolean}
|
99
|
-
*/
|
100
|
-
function contains(array, item) {
|
101
|
-
return array.indexOf(item) !== -1;
|
102
|
-
}
|
103
|
-
|
104
94
|
/**
|
105
95
|
* Validate an option
|
106
96
|
* @param {Object} options Object with options
|
@@ -108,7 +98,7 @@ function contains(array, item) {
|
|
108
98
|
* @param {Array.<string>} values Array with valid values for this option
|
109
99
|
*/
|
110
100
|
function validateOption(options, name, values) {
|
111
|
-
if (options[name] !== undefined && !
|
101
|
+
if (options[name] !== undefined && !values.includes(options[name])) {
|
112
102
|
// unknown value
|
113
103
|
console.warn('Warning: Unknown value "' + options[name] + '" for configuration option "' + name + '". ' + 'Available options: ' + values.map(function (value) {
|
114
104
|
return JSON.stringify(value);
|
@@ -10,7 +10,6 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
10
|
var _is = require("../../utils/is.js");
|
11
11
|
var _factory = require("../../utils/factory.js");
|
12
12
|
var _object = require("../../utils/object.js");
|
13
|
-
var _array = require("../../utils/array.js");
|
14
13
|
var _ArgumentsError = require("../../error/ArgumentsError.js");
|
15
14
|
function importFactory(typed, load, math, importedFactories) {
|
16
15
|
/**
|
@@ -225,7 +224,7 @@ function importFactory(typed, load, math, importedFactories) {
|
|
225
224
|
*/
|
226
225
|
function _importFactory(factory, options) {
|
227
226
|
var name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : factory.fn;
|
228
|
-
if (
|
227
|
+
if (name.includes('.')) {
|
229
228
|
throw new Error('Factory name should not contain a nested path. ' + 'Name: ' + JSON.stringify(name));
|
230
229
|
}
|
231
230
|
var namespace = isTransformFunctionFactory(factory) ? math.expression.transform : math;
|
@@ -235,7 +234,7 @@ function importFactory(typed, load, math, importedFactories) {
|
|
235
234
|
// collect all dependencies, handle finding both functions and classes and other special cases
|
236
235
|
var dependencies = {};
|
237
236
|
factory.dependencies.map(_factory.stripOptionalNotation).forEach(function (dependency) {
|
238
|
-
if (
|
237
|
+
if (dependency.includes('.')) {
|
239
238
|
throw new Error('Factory dependency should not contain a nested path. ' + 'Name: ' + JSON.stringify(dependency));
|
240
239
|
}
|
241
240
|
if (dependency === 'math') {
|
@@ -318,7 +317,7 @@ function importFactory(typed, load, math, importedFactories) {
|
|
318
317
|
return !(0, _object.hasOwnProperty)(unsafe, name);
|
319
318
|
}
|
320
319
|
function factoryAllowedInExpressions(factory) {
|
321
|
-
return factory.fn.
|
320
|
+
return !factory.fn.includes('.') &&
|
322
321
|
// FIXME: make checking on path redundant, check on meta data instead
|
323
322
|
!(0, _object.hasOwnProperty)(unsafe, factory.fn) && (!factory.meta || !factory.meta.isClass);
|
324
323
|
}
|
@@ -8,5 +8,5 @@ exports["default"] = void 0;
|
|
8
8
|
var all = _interopRequireWildcard(require("./factoriesAny.js"));
|
9
9
|
var _create = require("./core/create.js");
|
10
10
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
12
12
|
var _default = exports["default"] = (0, _create.create)(all);
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.all = void 0;
|
8
8
|
var allFactories = _interopRequireWildcard(require("../factoriesAny.js"));
|
9
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
11
11
|
// creating all factories here in a separate file is needed to get tree-shaking working
|
12
12
|
|
13
13
|
var all = exports.all = allFactories;
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.all = void 0;
|
8
8
|
var allFactories = _interopRequireWildcard(require("../factoriesNumber.js"));
|
9
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
11
11
|
// creating all factories here in a separate file is needed to get tree-shaking working
|
12
12
|
|
13
13
|
var all = exports.all = allFactories;
|
@@ -35,7 +35,6 @@ var createAccessorNode = exports.createAccessorNode = /* #__PURE__ */(0, _factor
|
|
35
35
|
return !((0, _is.isAccessorNode)(node) || (0, _is.isArrayNode)(node) || (0, _is.isConstantNode)(node) || (0, _is.isFunctionNode)(node) || (0, _is.isObjectNode)(node) || (0, _is.isParenthesisNode)(node) || (0, _is.isSymbolNode)(node));
|
36
36
|
}
|
37
37
|
var AccessorNode = /*#__PURE__*/function (_Node) {
|
38
|
-
(0, _inherits2["default"])(AccessorNode, _Node);
|
39
38
|
/**
|
40
39
|
* @constructor AccessorNode
|
41
40
|
* @extends {Node}
|
@@ -61,7 +60,8 @@ var createAccessorNode = exports.createAccessorNode = /* #__PURE__ */(0, _factor
|
|
61
60
|
}
|
62
61
|
|
63
62
|
// readonly property name
|
64
|
-
(0,
|
63
|
+
(0, _inherits2["default"])(AccessorNode, _Node);
|
64
|
+
return (0, _createClass2["default"])(AccessorNode, [{
|
65
65
|
key: "name",
|
66
66
|
get: function get() {
|
67
67
|
if (this.index) {
|
@@ -221,7 +221,6 @@ var createAccessorNode = exports.createAccessorNode = /* #__PURE__ */(0, _factor
|
|
221
221
|
return new AccessorNode(json.object, json.index);
|
222
222
|
}
|
223
223
|
}]);
|
224
|
-
return AccessorNode;
|
225
224
|
}(Node);
|
226
225
|
(0, _defineProperty2["default"])(AccessorNode, "name", name);
|
227
226
|
return AccessorNode;
|
@@ -21,7 +21,6 @@ var dependencies = ['Node'];
|
|
21
21
|
var createArrayNode = exports.createArrayNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
22
22
|
var Node = _ref.Node;
|
23
23
|
var ArrayNode = /*#__PURE__*/function (_Node) {
|
24
|
-
(0, _inherits2["default"])(ArrayNode, _Node);
|
25
24
|
/**
|
26
25
|
* @constructor ArrayNode
|
27
26
|
* @extends {Node}
|
@@ -40,7 +39,8 @@ var createArrayNode = exports.createArrayNode = /* #__PURE__ */(0, _factory.fact
|
|
40
39
|
}
|
41
40
|
return _this;
|
42
41
|
}
|
43
|
-
(0,
|
42
|
+
(0, _inherits2["default"])(ArrayNode, _Node);
|
43
|
+
return (0, _createClass2["default"])(ArrayNode, [{
|
44
44
|
key: "type",
|
45
45
|
get: function get() {
|
46
46
|
return name;
|
@@ -206,7 +206,6 @@ var createArrayNode = exports.createArrayNode = /* #__PURE__ */(0, _factory.fact
|
|
206
206
|
return new ArrayNode(json.items);
|
207
207
|
}
|
208
208
|
}]);
|
209
|
-
return ArrayNode;
|
210
209
|
}(Node);
|
211
210
|
(0, _defineProperty2["default"])(ArrayNode, "name", name);
|
212
211
|
return ArrayNode;
|
@@ -51,7 +51,6 @@ var createAssignmentNode = exports.createAssignmentNode = /* #__PURE__ */(0, _fa
|
|
51
51
|
return parenthesis === 'all' || exprPrecedence !== null && exprPrecedence <= precedence;
|
52
52
|
}
|
53
53
|
var AssignmentNode = /*#__PURE__*/function (_Node) {
|
54
|
-
(0, _inherits2["default"])(AssignmentNode, _Node);
|
55
54
|
/**
|
56
55
|
* @constructor AssignmentNode
|
57
56
|
* @extends {Node}
|
@@ -109,7 +108,8 @@ var createAssignmentNode = exports.createAssignmentNode = /* #__PURE__ */(0, _fa
|
|
109
108
|
}
|
110
109
|
|
111
110
|
// class name for typing purposes:
|
112
|
-
(0,
|
111
|
+
(0, _inherits2["default"])(AssignmentNode, _Node);
|
112
|
+
return (0, _createClass2["default"])(AssignmentNode, [{
|
113
113
|
key: "name",
|
114
114
|
get:
|
115
115
|
// readonly property name
|
@@ -338,7 +338,6 @@ var createAssignmentNode = exports.createAssignmentNode = /* #__PURE__ */(0, _fa
|
|
338
338
|
return new AssignmentNode(json.object, json.index, json.value);
|
339
339
|
}
|
340
340
|
}]);
|
341
|
-
return AssignmentNode;
|
342
341
|
}(Node);
|
343
342
|
(0, _defineProperty2["default"])(AssignmentNode, "name", name);
|
344
343
|
return AssignmentNode;
|
@@ -22,7 +22,6 @@ var createBlockNode = exports.createBlockNode = /* #__PURE__ */(0, _factory.fact
|
|
22
22
|
var ResultSet = _ref.ResultSet,
|
23
23
|
Node = _ref.Node;
|
24
24
|
var BlockNode = /*#__PURE__*/function (_Node) {
|
25
|
-
(0, _inherits2["default"])(BlockNode, _Node);
|
26
25
|
/**
|
27
26
|
* @constructor BlockNode
|
28
27
|
* @extends {Node}
|
@@ -53,7 +52,8 @@ var createBlockNode = exports.createBlockNode = /* #__PURE__ */(0, _factory.fact
|
|
53
52
|
});
|
54
53
|
return _this;
|
55
54
|
}
|
56
|
-
(0,
|
55
|
+
(0, _inherits2["default"])(BlockNode, _Node);
|
56
|
+
return (0, _createClass2["default"])(BlockNode, [{
|
57
57
|
key: "type",
|
58
58
|
get: function get() {
|
59
59
|
return name;
|
@@ -215,7 +215,6 @@ var createBlockNode = exports.createBlockNode = /* #__PURE__ */(0, _factory.fact
|
|
215
215
|
return new BlockNode(json.blocks);
|
216
216
|
}
|
217
217
|
}]);
|
218
|
-
return BlockNode;
|
219
218
|
}(Node);
|
220
219
|
(0, _defineProperty2["default"])(BlockNode, "name", name);
|
221
220
|
return BlockNode;
|
@@ -46,7 +46,6 @@ var createConditionalNode = exports.createConditionalNode = /* #__PURE__ */(0, _
|
|
46
46
|
throw new TypeError('Unsupported type of condition "' + (0, _is.typeOf)(condition) + '"');
|
47
47
|
}
|
48
48
|
var ConditionalNode = /*#__PURE__*/function (_Node) {
|
49
|
-
(0, _inherits2["default"])(ConditionalNode, _Node);
|
50
49
|
/**
|
51
50
|
* A lazy evaluating conditional operator: 'condition ? trueExpr : falseExpr'
|
52
51
|
*
|
@@ -75,7 +74,8 @@ var createConditionalNode = exports.createConditionalNode = /* #__PURE__ */(0, _
|
|
75
74
|
_this.falseExpr = falseExpr;
|
76
75
|
return _this;
|
77
76
|
}
|
78
|
-
(0,
|
77
|
+
(0, _inherits2["default"])(ConditionalNode, _Node);
|
78
|
+
return (0, _createClass2["default"])(ConditionalNode, [{
|
79
79
|
key: "type",
|
80
80
|
get: function get() {
|
81
81
|
return name;
|
@@ -255,7 +255,6 @@ var createConditionalNode = exports.createConditionalNode = /* #__PURE__ */(0, _
|
|
255
255
|
return new ConditionalNode(json.condition, json.trueExpr, json.falseExpr);
|
256
256
|
}
|
257
257
|
}]);
|
258
|
-
return ConditionalNode;
|
259
258
|
}(Node);
|
260
259
|
(0, _defineProperty2["default"])(ConditionalNode, "name", name);
|
261
260
|
return ConditionalNode;
|
@@ -22,7 +22,6 @@ var dependencies = ['Node'];
|
|
22
22
|
var createConstantNode = exports.createConstantNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
23
23
|
var Node = _ref.Node;
|
24
24
|
var ConstantNode = /*#__PURE__*/function (_Node) {
|
25
|
-
(0, _inherits2["default"])(ConstantNode, _Node);
|
26
25
|
/**
|
27
26
|
* A ConstantNode holds a constant value like a number or string.
|
28
27
|
*
|
@@ -42,7 +41,8 @@ var createConstantNode = exports.createConstantNode = /* #__PURE__ */(0, _factor
|
|
42
41
|
_this.value = value;
|
43
42
|
return _this;
|
44
43
|
}
|
45
|
-
(0,
|
44
|
+
(0, _inherits2["default"])(ConstantNode, _Node);
|
45
|
+
return (0, _createClass2["default"])(ConstantNode, [{
|
46
46
|
key: "type",
|
47
47
|
get: function get() {
|
48
48
|
return name;
|
@@ -204,7 +204,6 @@ var createConstantNode = exports.createConstantNode = /* #__PURE__ */(0, _factor
|
|
204
204
|
return new ConstantNode(json.value);
|
205
205
|
}
|
206
206
|
}]);
|
207
|
-
return ConstantNode;
|
208
207
|
}(Node);
|
209
208
|
(0, _defineProperty2["default"])(ConstantNode, "name", name);
|
210
209
|
return ConstantNode;
|
@@ -41,7 +41,6 @@ var createFunctionAssignmentNode = exports.createFunctionAssignmentNode = /* #__
|
|
41
41
|
return parenthesis === 'all' || exprPrecedence !== null && exprPrecedence <= precedence;
|
42
42
|
}
|
43
43
|
var FunctionAssignmentNode = /*#__PURE__*/function (_Node) {
|
44
|
-
(0, _inherits2["default"])(FunctionAssignmentNode, _Node);
|
45
44
|
/**
|
46
45
|
* @constructor FunctionAssignmentNode
|
47
46
|
* @extends {Node}
|
@@ -99,7 +98,8 @@ var createFunctionAssignmentNode = exports.createFunctionAssignmentNode = /* #__
|
|
99
98
|
_this.expr = expr;
|
100
99
|
return _this;
|
101
100
|
}
|
102
|
-
(0,
|
101
|
+
(0, _inherits2["default"])(FunctionAssignmentNode, _Node);
|
102
|
+
return (0, _createClass2["default"])(FunctionAssignmentNode, [{
|
103
103
|
key: "type",
|
104
104
|
get: function get() {
|
105
105
|
return name;
|
@@ -277,7 +277,6 @@ var createFunctionAssignmentNode = exports.createFunctionAssignmentNode = /* #__
|
|
277
277
|
return new FunctionAssignmentNode(json.name, json.params, json.expr);
|
278
278
|
}
|
279
279
|
}]);
|
280
|
-
return FunctionAssignmentNode;
|
281
280
|
}(Node);
|
282
281
|
(0, _defineProperty2["default"])(FunctionAssignmentNode, "name", name);
|
283
282
|
return FunctionAssignmentNode;
|
@@ -26,7 +26,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
26
26
|
var name = 'FunctionNode';
|
27
27
|
var dependencies = ['math', 'Node', 'SymbolNode'];
|
28
28
|
var createFunctionNode = exports.createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
29
|
-
var
|
29
|
+
var _FunctionNode;
|
30
30
|
var math = _ref.math,
|
31
31
|
Node = _ref.Node,
|
32
32
|
SymbolNode = _ref.SymbolNode;
|
@@ -108,7 +108,6 @@ var createFunctionNode = exports.createFunctionNode = /* #__PURE__ */(0, _factor
|
|
108
108
|
return latex;
|
109
109
|
}
|
110
110
|
var FunctionNode = /*#__PURE__*/function (_Node) {
|
111
|
-
(0, _inherits2["default"])(FunctionNode, _Node);
|
112
111
|
/**
|
113
112
|
* @constructor FunctionNode
|
114
113
|
* @extends {./Node}
|
@@ -137,7 +136,8 @@ var createFunctionNode = exports.createFunctionNode = /* #__PURE__ */(0, _factor
|
|
137
136
|
}
|
138
137
|
|
139
138
|
// readonly property name
|
140
|
-
(0,
|
139
|
+
(0, _inherits2["default"])(FunctionNode, _Node);
|
140
|
+
return (0, _createClass2["default"])(FunctionNode, [{
|
141
141
|
key: "name",
|
142
142
|
get: function get() {
|
143
143
|
return this.fn.name || '';
|
@@ -515,15 +515,14 @@ var createFunctionNode = exports.createFunctionNode = /* #__PURE__ */(0, _factor
|
|
515
515
|
return this.type + ':' + this.name;
|
516
516
|
}
|
517
517
|
}]);
|
518
|
-
return FunctionNode;
|
519
518
|
}(Node);
|
520
|
-
|
519
|
+
_FunctionNode = FunctionNode;
|
521
520
|
(0, _defineProperty2["default"])(FunctionNode, "name", name);
|
522
521
|
(0, _defineProperty2["default"])(FunctionNode, "onUndefinedFunction", function (name) {
|
523
522
|
throw new Error('Undefined function ' + name);
|
524
523
|
});
|
525
524
|
(0, _defineProperty2["default"])(FunctionNode, "fromJSON", function (json) {
|
526
|
-
return new
|
525
|
+
return new _FunctionNode(json.fn, json.args);
|
527
526
|
});
|
528
527
|
return FunctionNode;
|
529
528
|
}, {
|
@@ -25,7 +25,6 @@ var createIndexNode = exports.createIndexNode = /* #__PURE__ */(0, _factory.fact
|
|
25
25
|
var Node = _ref.Node,
|
26
26
|
size = _ref.size;
|
27
27
|
var IndexNode = /*#__PURE__*/function (_Node) {
|
28
|
-
(0, _inherits2["default"])(IndexNode, _Node);
|
29
28
|
/**
|
30
29
|
* @constructor IndexNode
|
31
30
|
* @extends Node
|
@@ -56,7 +55,8 @@ var createIndexNode = exports.createIndexNode = /* #__PURE__ */(0, _factory.fact
|
|
56
55
|
}
|
57
56
|
return _this;
|
58
57
|
}
|
59
|
-
(0,
|
58
|
+
(0, _inherits2["default"])(IndexNode, _Node);
|
59
|
+
return (0, _createClass2["default"])(IndexNode, [{
|
60
60
|
key: "type",
|
61
61
|
get: function get() {
|
62
62
|
return name;
|
@@ -256,7 +256,6 @@ var createIndexNode = exports.createIndexNode = /* #__PURE__ */(0, _factory.fact
|
|
256
256
|
return new IndexNode(json.dimensions, json.dotNotation);
|
257
257
|
}
|
258
258
|
}]);
|
259
|
-
return IndexNode;
|
260
259
|
}(Node);
|
261
260
|
(0, _defineProperty2["default"])(IndexNode, "name", name);
|
262
261
|
return IndexNode;
|
@@ -35,7 +35,7 @@ var createNode = exports.createNode = /* #__PURE__ */(0, _factory.factory)(name,
|
|
35
35
|
function Node() {
|
36
36
|
(0, _classCallCheck2["default"])(this, Node);
|
37
37
|
}
|
38
|
-
(0, _createClass2["default"])(Node, [{
|
38
|
+
return (0, _createClass2["default"])(Node, [{
|
39
39
|
key: "type",
|
40
40
|
get: function get() {
|
41
41
|
return 'Node';
|
@@ -426,7 +426,6 @@ var createNode = exports.createNode = /* #__PURE__ */(0, _factory.factory)(name,
|
|
426
426
|
return this;
|
427
427
|
}
|
428
428
|
}]);
|
429
|
-
return Node;
|
430
429
|
}();
|
431
430
|
return Node;
|
432
431
|
}, {
|
@@ -24,7 +24,6 @@ var dependencies = ['Node'];
|
|
24
24
|
var createObjectNode = exports.createObjectNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
25
25
|
var Node = _ref.Node;
|
26
26
|
var ObjectNode = /*#__PURE__*/function (_Node) {
|
27
|
-
(0, _inherits2["default"])(ObjectNode, _Node);
|
28
27
|
/**
|
29
28
|
* @constructor ObjectNode
|
30
29
|
* @extends {Node}
|
@@ -47,7 +46,8 @@ var createObjectNode = exports.createObjectNode = /* #__PURE__ */(0, _factory.fa
|
|
47
46
|
}
|
48
47
|
return _this;
|
49
48
|
}
|
50
|
-
(0,
|
49
|
+
(0, _inherits2["default"])(ObjectNode, _Node);
|
50
|
+
return (0, _createClass2["default"])(ObjectNode, [{
|
51
51
|
key: "type",
|
52
52
|
get: function get() {
|
53
53
|
return name;
|
@@ -224,7 +224,6 @@ var createObjectNode = exports.createObjectNode = /* #__PURE__ */(0, _factory.fa
|
|
224
224
|
return new ObjectNode(json.properties);
|
225
225
|
}
|
226
226
|
}]);
|
227
|
-
return ObjectNode;
|
228
227
|
}(Node);
|
229
228
|
(0, _defineProperty2["default"])(ObjectNode, "name", name);
|
230
229
|
return ObjectNode;
|
@@ -235,7 +235,6 @@ var createOperatorNode = exports.createOperatorNode = /* #__PURE__ */(0, _factor
|
|
235
235
|
return result;
|
236
236
|
}
|
237
237
|
var OperatorNode = /*#__PURE__*/function (_Node) {
|
238
|
-
(0, _inherits2["default"])(OperatorNode, _Node);
|
239
238
|
/**
|
240
239
|
* @constructor OperatorNode
|
241
240
|
* @extends {Node}
|
@@ -268,7 +267,8 @@ var createOperatorNode = exports.createOperatorNode = /* #__PURE__ */(0, _factor
|
|
268
267
|
_this.args = args || [];
|
269
268
|
return _this;
|
270
269
|
}
|
271
|
-
(0,
|
270
|
+
(0, _inherits2["default"])(OperatorNode, _Node);
|
271
|
+
return (0, _createClass2["default"])(OperatorNode, [{
|
272
272
|
key: "type",
|
273
273
|
get: function get() {
|
274
274
|
return name;
|
@@ -665,7 +665,6 @@ var createOperatorNode = exports.createOperatorNode = /* #__PURE__ */(0, _factor
|
|
665
665
|
return new OperatorNode(json.op, json.fn, json.args, json.implicit, json.isPercentage);
|
666
666
|
}
|
667
667
|
}]);
|
668
|
-
return OperatorNode;
|
669
668
|
}(Node);
|
670
669
|
(0, _defineProperty2["default"])(OperatorNode, "name", name);
|
671
670
|
return OperatorNode;
|
@@ -20,7 +20,6 @@ var dependencies = ['Node'];
|
|
20
20
|
var createParenthesisNode = exports.createParenthesisNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
21
21
|
var Node = _ref.Node;
|
22
22
|
var ParenthesisNode = /*#__PURE__*/function (_Node) {
|
23
|
-
(0, _inherits2["default"])(ParenthesisNode, _Node);
|
24
23
|
/**
|
25
24
|
* @constructor ParenthesisNode
|
26
25
|
* @extends {Node}
|
@@ -39,7 +38,8 @@ var createParenthesisNode = exports.createParenthesisNode = /* #__PURE__ */(0, _
|
|
39
38
|
_this.content = content;
|
40
39
|
return _this;
|
41
40
|
}
|
42
|
-
(0,
|
41
|
+
(0, _inherits2["default"])(ParenthesisNode, _Node);
|
42
|
+
return (0, _createClass2["default"])(ParenthesisNode, [{
|
43
43
|
key: "type",
|
44
44
|
get: function get() {
|
45
45
|
return name;
|
@@ -184,7 +184,6 @@ var createParenthesisNode = exports.createParenthesisNode = /* #__PURE__ */(0, _
|
|
184
184
|
return new ParenthesisNode(json.content);
|
185
185
|
}
|
186
186
|
}]);
|
187
|
-
return ParenthesisNode;
|
188
187
|
}(Node);
|
189
188
|
(0, _defineProperty2["default"])(ParenthesisNode, "name", name);
|
190
189
|
return ParenthesisNode;
|
@@ -42,7 +42,6 @@ var createRangeNode = exports.createRangeNode = /* #__PURE__ */(0, _factory.fact
|
|
42
42
|
return parens;
|
43
43
|
}
|
44
44
|
var RangeNode = /*#__PURE__*/function (_Node) {
|
45
|
-
(0, _inherits2["default"])(RangeNode, _Node);
|
46
45
|
/**
|
47
46
|
* @constructor RangeNode
|
48
47
|
* @extends {Node}
|
@@ -65,7 +64,8 @@ var createRangeNode = exports.createRangeNode = /* #__PURE__ */(0, _factory.fact
|
|
65
64
|
_this.step = step || null; // optional step
|
66
65
|
return _this;
|
67
66
|
}
|
68
|
-
(0,
|
67
|
+
(0, _inherits2["default"])(RangeNode, _Node);
|
68
|
+
return (0, _createClass2["default"])(RangeNode, [{
|
69
69
|
key: "type",
|
70
70
|
get: function get() {
|
71
71
|
return name;
|
@@ -282,7 +282,6 @@ var createRangeNode = exports.createRangeNode = /* #__PURE__ */(0, _factory.fact
|
|
282
282
|
return new RangeNode(json.start, json.end, json.step);
|
283
283
|
}
|
284
284
|
}]);
|
285
|
-
return RangeNode;
|
286
285
|
}(Node);
|
287
286
|
(0, _defineProperty2["default"])(RangeNode, "name", name);
|
288
287
|
return RangeNode;
|
@@ -31,7 +31,6 @@ var createRelationalNode = exports.createRelationalNode = /* #__PURE__ */(0, _fa
|
|
31
31
|
largerEq: '>='
|
32
32
|
};
|
33
33
|
var RelationalNode = /*#__PURE__*/function (_Node) {
|
34
|
-
(0, _inherits2["default"])(RelationalNode, _Node);
|
35
34
|
/**
|
36
35
|
* A node representing a chained conditional expression, such as 'x > y > z'
|
37
36
|
*
|
@@ -60,7 +59,8 @@ var createRelationalNode = exports.createRelationalNode = /* #__PURE__ */(0, _fa
|
|
60
59
|
_this.params = params;
|
61
60
|
return _this;
|
62
61
|
}
|
63
|
-
(0,
|
62
|
+
(0, _inherits2["default"])(RelationalNode, _Node);
|
63
|
+
return (0, _createClass2["default"])(RelationalNode, [{
|
64
64
|
key: "type",
|
65
65
|
get: function get() {
|
66
66
|
return name;
|
@@ -236,7 +236,6 @@ var createRelationalNode = exports.createRelationalNode = /* #__PURE__ */(0, _fa
|
|
236
236
|
return new RelationalNode(json.conditionals, json.params);
|
237
237
|
}
|
238
238
|
}]);
|
239
|
-
return RelationalNode;
|
240
239
|
}(Node);
|
241
240
|
(0, _defineProperty2["default"])(RelationalNode, "name", name);
|
242
241
|
return RelationalNode;
|
@@ -31,7 +31,6 @@ var createSymbolNode = exports.createSymbolNode = /* #__PURE__ */(0, _factory.fa
|
|
31
31
|
return Unit ? Unit.isValuelessUnit(name) : false;
|
32
32
|
}
|
33
33
|
var SymbolNode = /*#__PURE__*/function (_Node) {
|
34
|
-
(0, _inherits2["default"])(SymbolNode, _Node);
|
35
34
|
/**
|
36
35
|
* @constructor SymbolNode
|
37
36
|
* @extends {Node}
|
@@ -50,7 +49,8 @@ var createSymbolNode = exports.createSymbolNode = /* #__PURE__ */(0, _factory.fa
|
|
50
49
|
_this.name = name;
|
51
50
|
return _this;
|
52
51
|
}
|
53
|
-
(0,
|
52
|
+
(0, _inherits2["default"])(SymbolNode, _Node);
|
53
|
+
return (0, _createClass2["default"])(SymbolNode, [{
|
54
54
|
key: "type",
|
55
55
|
get: function get() {
|
56
56
|
return 'SymbolNode';
|
@@ -226,7 +226,6 @@ var createSymbolNode = exports.createSymbolNode = /* #__PURE__ */(0, _factory.fa
|
|
226
226
|
return new SymbolNode(json.name);
|
227
227
|
}
|
228
228
|
}]);
|
229
|
-
return SymbolNode;
|
230
229
|
}(Node);
|
231
230
|
return SymbolNode;
|
232
231
|
}, {
|
@@ -959,7 +959,7 @@ var createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(nam
|
|
959
959
|
}
|
960
960
|
|
961
961
|
/**
|
962
|
-
* multiply, divide
|
962
|
+
* multiply, divide
|
963
963
|
* @return {Node} node
|
964
964
|
* @private
|
965
965
|
*/
|
@@ -1023,7 +1023,7 @@ var createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(nam
|
|
1023
1023
|
* @private
|
1024
1024
|
*/
|
1025
1025
|
function parseRule2(state) {
|
1026
|
-
var node =
|
1026
|
+
var node = parseModulusPercentage(state);
|
1027
1027
|
var last = node;
|
1028
1028
|
var tokenStates = [];
|
1029
1029
|
while (true) {
|
@@ -1045,7 +1045,7 @@ var createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(nam
|
|
1045
1045
|
// Rewind once and build the "number / number" node; the symbol will be consumed later
|
1046
1046
|
(0, _extends2["default"])(state, tokenStates.pop());
|
1047
1047
|
tokenStates.pop();
|
1048
|
-
last =
|
1048
|
+
last = parseModulusPercentage(state);
|
1049
1049
|
node = new OperatorNode('/', 'divide', [node, last]);
|
1050
1050
|
} else {
|
1051
1051
|
// Not a match, so rewind
|
@@ -1066,11 +1066,11 @@ var createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(nam
|
|
1066
1066
|
}
|
1067
1067
|
|
1068
1068
|
/**
|
1069
|
-
*
|
1069
|
+
* modulus and percentage
|
1070
1070
|
* @return {Node} node
|
1071
1071
|
* @private
|
1072
1072
|
*/
|
1073
|
-
function
|
1073
|
+
function parseModulusPercentage(state) {
|
1074
1074
|
var node, name, fn, params;
|
1075
1075
|
node = parseUnary(state);
|
1076
1076
|
var operators = {
|
@@ -1233,7 +1233,7 @@ var createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(nam
|
|
1233
1233
|
if ((0, _object.hasOwnProperty)(CONSTANTS, name)) {
|
1234
1234
|
// true, false, null, ...
|
1235
1235
|
node = new ConstantNode(CONSTANTS[name]);
|
1236
|
-
} else if (NUMERIC_CONSTANTS.
|
1236
|
+
} else if (NUMERIC_CONSTANTS.includes(name)) {
|
1237
1237
|
// NaN, Infinity
|
1238
1238
|
node = new ConstantNode(numeric(name, 'number'));
|
1239
1239
|
} else {
|
@@ -1263,7 +1263,7 @@ var createParse = exports.createParse = /* #__PURE__ */(0, _factory.factory)(nam
|
|
1263
1263
|
*/
|
1264
1264
|
function parseAccessors(state, node, types) {
|
1265
1265
|
var params;
|
1266
|
-
while ((state.token === '(' || state.token === '[' || state.token === '.') && (!types || types.
|
1266
|
+
while ((state.token === '(' || state.token === '[' || state.token === '.') && (!types || types.includes(state.token))) {
|
1267
1267
|
// eslint-disable-line no-unmodified-loop-condition
|
1268
1268
|
params = [];
|
1269
1269
|
if (state.token === '(') {
|
@@ -163,7 +163,7 @@ var createDerivative = exports.createDerivative = /* #__PURE__ */(0, _factory.fa
|
|
163
163
|
return constTag(constNodes, node.content, varName);
|
164
164
|
},
|
165
165
|
'Object, FunctionAssignmentNode, string': function ObjectFunctionAssignmentNodeString(constNodes, node, varName) {
|
166
|
-
if (node.params.
|
166
|
+
if (!node.params.includes(varName)) {
|
167
167
|
constNodes[node] = true;
|
168
168
|
return true;
|
169
169
|
}
|
@@ -235,7 +235,7 @@ var createRationalize = exports.createRationalize = /* #__PURE__ */(0, _factory.
|
|
235
235
|
recPoly(node.args[0]);
|
236
236
|
}
|
237
237
|
} else {
|
238
|
-
if (oper.
|
238
|
+
if (!oper.includes(node.op)) {
|
239
239
|
throw new Error('Operator ' + node.op + ' invalid in polynomial expression');
|
240
240
|
}
|
241
241
|
for (var i = 0; i < node.args.length; i++) {
|
@@ -733,7 +733,7 @@ var createRationalize = exports.createRationalize = /* #__PURE__ */(0, _factory.
|
|
733
733
|
throw new Error('There is an unsolved function call');
|
734
734
|
} else if (tp === 'OperatorNode') {
|
735
735
|
// ***** OperatorName *****
|
736
|
-
if ('+-*^'.
|
736
|
+
if (!'+-*^'.includes(node.op)) throw new Error('Operator ' + node.op + ' invalid');
|
737
737
|
if (noPai !== null) {
|
738
738
|
// -(unary),^ : children of *,+,-
|
739
739
|
if ((node.fn === 'unaryMinus' || node.fn === 'pow') && noPai.fn !== 'add' && noPai.fn !== 'subtract' && noPai.fn !== 'multiply') {
|