mathjs 11.8.2 → 11.9.1
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +24 -0
- 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/entry/dependenciesAny/dependenciesFreqz.generated.js +28 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSolveODE.generated.js +46 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesZpk2tf.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +21 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +35 -30
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +2 -0
- package/lib/cjs/entry/pureFunctionsAny.generated.js +82 -45
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +2 -0
- package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +11 -3
- package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/lyap.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/algebra/polynomialRoot.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/schur.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/sylvester.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/expression/evaluate.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/range.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/numeric/solveODE.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/signal/freqz.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/signal/zpk2tf.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/utils/numeric.js +1 -1
- package/lib/cjs/expression/node/FunctionNode.js +5 -6
- package/lib/cjs/expression/node/ObjectNode.js +5 -7
- package/lib/cjs/expression/node/SymbolNode.js +1 -1
- package/lib/cjs/expression/transform/range.transform.js +7 -3
- package/lib/cjs/factoriesAny.js +21 -0
- package/lib/cjs/function/algebra/simplify.js +3 -0
- package/lib/cjs/function/matrix/range.js +34 -110
- package/lib/cjs/function/numeric/solveODE.js +315 -0
- package/lib/cjs/function/signal/freqz.js +117 -0
- package/lib/cjs/function/signal/zpk2tf.js +95 -0
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/unit/Unit.js +15 -13
- package/lib/cjs/utils/customs.js +4 -3
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesFreqz.generated.js +20 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSolveODE.generated.js +38 -0
- package/lib/esm/entry/dependenciesAny/dependenciesZpk2tf.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny.generated.js +3 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +34 -29
- package/lib/esm/entry/impureFunctionsNumber.generated.js +2 -0
- package/lib/esm/entry/pureFunctionsAny.generated.js +70 -36
- package/lib/esm/entry/pureFunctionsNumber.generated.js +2 -0
- package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +11 -3
- package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/lyap.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/algebra/polynomialRoot.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/schur.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/sylvester.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/expression/evaluate.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/range.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/numeric/solveODE.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/signal/freqz.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/signal/zpk2tf.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/utils/numeric.js +1 -1
- package/lib/esm/expression/node/FunctionNode.js +6 -7
- package/lib/esm/expression/node/ObjectNode.js +5 -7
- package/lib/esm/expression/node/SymbolNode.js +1 -1
- package/lib/esm/expression/transform/range.transform.js +7 -3
- package/lib/esm/factoriesAny.js +3 -0
- package/lib/esm/function/algebra/simplify.js +3 -0
- package/lib/esm/function/matrix/range.js +34 -110
- package/lib/esm/function/numeric/solveODE.js +284 -0
- package/lib/esm/function/signal/freqz.js +115 -0
- package/lib/esm/function/signal/zpk2tf.js +82 -0
- package/lib/esm/type/unit/Unit.js +15 -13
- package/lib/esm/utils/customs.js +4 -3
- package/lib/esm/version.js +1 -1
- package/package.json +15 -15
- package/types/index.d.ts +51 -6
@@ -9,7 +9,7 @@ var typedDocs = {
|
|
9
9
|
category: 'Core',
|
10
10
|
syntax: ['typed(signatures)', 'typed(name, signatures)'],
|
11
11
|
description: 'Create a typed function.',
|
12
|
-
examples: ['double = typed({ "number": f(x)=x+x })', 'double(2)', 'double("hello")'],
|
12
|
+
examples: ['double = typed({ "number": f(x)=x+x, "string": f(x)=concat(x,x) })', 'double(2)', 'double("hello")'],
|
13
13
|
seealso: []
|
14
14
|
};
|
15
15
|
exports.typedDocs = typedDocs;
|
@@ -85,9 +85,9 @@ var _round = require("./function/arithmetic/round.js");
|
|
85
85
|
var _sign = require("./function/arithmetic/sign.js");
|
86
86
|
var _sqrt = require("./function/arithmetic/sqrt.js");
|
87
87
|
var _sqrtm = require("./function/arithmetic/sqrtm.js");
|
88
|
-
var _sylvester = require("./function/
|
89
|
-
var _schur = require("./function/
|
90
|
-
var _lyap = require("./function/
|
88
|
+
var _sylvester = require("./function/algebra/sylvester.js");
|
89
|
+
var _schur = require("./function/algebra/schur.js");
|
90
|
+
var _lyap = require("./function/algebra/lyap.js");
|
91
91
|
var _square = require("./function/arithmetic/square.js");
|
92
92
|
var _subtract = require("./function/arithmetic/subtract.js");
|
93
93
|
var _unaryMinus = require("./function/arithmetic/unaryMinus.js");
|
@@ -187,6 +187,8 @@ var _setPowerset = require("./function/set/setPowerset.js");
|
|
187
187
|
var _setSize = require("./function/set/setSize.js");
|
188
188
|
var _setSymDifference = require("./function/set/setSymDifference.js");
|
189
189
|
var _setUnion = require("./function/set/setUnion.js");
|
190
|
+
var _zpk2tf = require("./function/signal/zpk2tf.js");
|
191
|
+
var _freqz = require("./function/signal/freqz.js");
|
190
192
|
var _erf = require("./function/special/erf.js");
|
191
193
|
var _mad = require("./function/statistics/mad.js");
|
192
194
|
var _max = require("./function/statistics/max.js");
|
@@ -242,6 +244,7 @@ var _numeric = require("./function/utils/numeric.js");
|
|
242
244
|
var _oct = require("./function/utils/oct.js");
|
243
245
|
var _print = require("./function/utils/print.js");
|
244
246
|
var _typeOf = require("./function/utils/typeOf.js");
|
247
|
+
var _solveODE = require("./function/numeric/solveODE.js");
|
245
248
|
var embeddedDocs = {
|
246
249
|
// construction functions
|
247
250
|
bignumber: _bignumber.bignumberDocs,
|
@@ -613,6 +616,8 @@ var embeddedDocs = {
|
|
613
616
|
sylvester: _sylvester.sylvesterDocs,
|
614
617
|
schur: _schur.schurDocs,
|
615
618
|
lyap: _lyap.lyapDocs,
|
619
|
+
// functions - numeric
|
620
|
+
solveODE: _solveODE.solveODEDocs,
|
616
621
|
// functions - probability
|
617
622
|
combinations: _combinations.combinationsDocs,
|
618
623
|
combinationsWithRep: _combinationsWithRep.combinationsWithRepDocs,
|
@@ -649,6 +654,9 @@ var embeddedDocs = {
|
|
649
654
|
setSize: _setSize.setSizeDocs,
|
650
655
|
setSymDifference: _setSymDifference.setSymDifferenceDocs,
|
651
656
|
setUnion: _setUnion.setUnionDocs,
|
657
|
+
// functions - signal
|
658
|
+
zpk2tf: _zpk2tf.zpk2tfDocs,
|
659
|
+
freqz: _freqz.freqzDocs,
|
652
660
|
// functions - special
|
653
661
|
erf: _erf.erfDocs,
|
654
662
|
// functions - statistics
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.lyapDocs = void 0;
|
7
7
|
var lyapDocs = {
|
8
8
|
name: 'lyap',
|
9
|
-
category: '
|
9
|
+
category: 'Algebra',
|
10
10
|
syntax: ['lyap(A,Q)'],
|
11
11
|
description: 'Solves the Continuous-time Lyapunov equation AP+PA\'+Q=0 for P',
|
12
|
-
examples: ['lyap([[-2, 0], [1, -4]], [[3, 1], [1, 3]])', 'lyap(A,Q)'],
|
12
|
+
examples: ['lyap([[-2, 0], [1, -4]], [[3, 1], [1, 3]])', 'A = [[-2, 0], [1, -4]]', 'Q = [[3, 1], [1, 3]]', 'lyap(A,Q)'],
|
13
13
|
seealso: ['schur', 'sylvester']
|
14
14
|
};
|
15
15
|
exports.lyapDocs = lyapDocs;
|
@@ -9,7 +9,7 @@ var polynomialRootDocs = {
|
|
9
9
|
category: 'Algebra',
|
10
10
|
syntax: ['x=polynomialRoot(-6, 3)', 'x=polynomialRoot(4, -4, 1)', 'x=polynomialRoot(-8, 12, -6, 1)'],
|
11
11
|
description: 'Finds the roots of a univariate polynomial given by its coefficients starting from constant, linear, and so on, increasing in degree.',
|
12
|
-
examples: ['a = polynomialRoot(-6, 11, -6 1)'],
|
12
|
+
examples: ['a = polynomialRoot(-6, 11, -6, 1)'],
|
13
13
|
seealso: ['cbrt', 'sqrt']
|
14
14
|
};
|
15
15
|
exports.polynomialRootDocs = polynomialRootDocs;
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.schurDocs = void 0;
|
7
7
|
var schurDocs = {
|
8
8
|
name: 'schur',
|
9
|
-
category: '
|
9
|
+
category: 'Algebra',
|
10
10
|
syntax: ['schur(A)'],
|
11
11
|
description: 'Performs a real Schur decomposition of the real matrix A = UTU\'',
|
12
|
-
examples: ['schur([[1, 0], [-4, 3]])', 'schur(A)'],
|
12
|
+
examples: ['schur([[1, 0], [-4, 3]])', 'A = [[1, 0], [-4, 3]]', 'schur(A)'],
|
13
13
|
seealso: ['lyap', 'sylvester']
|
14
14
|
};
|
15
15
|
exports.schurDocs = schurDocs;
|
@@ -9,7 +9,7 @@ var simplifyConstantDocs = {
|
|
9
9
|
category: 'Algebra',
|
10
10
|
syntax: ['simplifyConstant(expr)', 'simplifyConstant(expr, options)'],
|
11
11
|
description: 'Replace constant subexpressions of node with their values.',
|
12
|
-
examples: ['
|
12
|
+
examples: ['simplifyConstant("(3-3)*x")', 'simplifyConstant(parse("z-cos(tau/8)"))'],
|
13
13
|
seealso: ['simplify', 'simplifyCore', 'evaluate']
|
14
14
|
};
|
15
15
|
exports.simplifyConstantDocs = simplifyConstantDocs;
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.sylvesterDocs = void 0;
|
7
7
|
var sylvesterDocs = {
|
8
8
|
name: 'sylvester',
|
9
|
-
category: '
|
9
|
+
category: 'Algebra',
|
10
10
|
syntax: ['sylvester(A,B,C)'],
|
11
11
|
description: 'Solves the real-valued Sylvester equation AX+XB=C for X',
|
12
|
-
examples: ['sylvester([[-1, -2], [1, 1]], [[-2, 1], [-1, 2]], [[-3, 2], [3, 0]])', 'sylvester(A,B,C)'],
|
12
|
+
examples: ['sylvester([[-1, -2], [1, 1]], [[-2, 1], [-1, 2]], [[-3, 2], [3, 0]])', 'A = [[-1, -2], [1, 1]]; B = [[2, -1], [1, -2]]; C = [[-3, 2], [3, 0]]', 'sylvester(A, B, C)'],
|
13
13
|
seealso: ['schur', 'lyap']
|
14
14
|
};
|
15
15
|
exports.sylvesterDocs = sylvesterDocs;
|
@@ -9,7 +9,7 @@ var invmodDocs = {
|
|
9
9
|
category: 'Arithmetic',
|
10
10
|
syntax: ['invmod(a, b)'],
|
11
11
|
description: 'Calculate the (modular) multiplicative inverse of a modulo b. Solution to the equation ax ≣ 1 (mod b)',
|
12
|
-
examples: ['invmod(8, 12)
|
12
|
+
examples: ['invmod(8, 12)', 'invmod(7, 13)', 'invmod(15151, 15122)'],
|
13
13
|
seealso: ['gcd', 'xgcd']
|
14
14
|
};
|
15
15
|
exports.invmodDocs = invmodDocs;
|
@@ -7,9 +7,9 @@ exports.evaluateDocs = void 0;
|
|
7
7
|
var evaluateDocs = {
|
8
8
|
name: 'evaluate',
|
9
9
|
category: 'Expression',
|
10
|
-
syntax: ['evaluate(expression)', 'evaluate([expr1, expr2, expr3, ...])'],
|
10
|
+
syntax: ['evaluate(expression)', 'evaluate(expression, scope)', 'evaluate([expr1, expr2, expr3, ...])', 'evaluate([expr1, expr2, expr3, ...], scope)'],
|
11
11
|
description: 'Evaluate an expression or an array with expressions.',
|
12
|
-
examples: ['evaluate("2 + 3")', 'evaluate("sqrt("
|
12
|
+
examples: ['evaluate("2 + 3")', 'evaluate("sqrt(16)")', 'evaluate("2 inch to cm")', 'evaluate("sin(x * pi)", { "x": 1/2 })', 'evaluate(["width=2", "height=4","width*height"])'],
|
13
13
|
seealso: []
|
14
14
|
};
|
15
15
|
exports.evaluateDocs = evaluateDocs;
|
@@ -9,7 +9,7 @@ var diffDocs = {
|
|
9
9
|
category: 'Matrix',
|
10
10
|
syntax: ['diff(arr)', 'diff(arr, dim)'],
|
11
11
|
description: ['Create a new matrix or array with the difference of the passed matrix or array.', 'Dim parameter is optional and used to indicant the dimension of the array/matrix to apply the difference', 'If no dimension parameter is passed it is assumed as dimension 0', 'Dimension is zero-based in javascript and one-based in the parser', 'Arrays must be \'rectangular\' meaning arrays like [1, 2]', 'If something is passed as a matrix it will be returned as a matrix but other than that all matrices are converted to arrays'],
|
12
|
-
examples: ['
|
12
|
+
examples: ['A = [1, 2, 4, 7, 0]', 'diff(A)', 'diff(A, 1)', 'B = [[1, 2], [3, 4]]', 'diff(B)', 'diff(B, 1)', 'diff(B, 2)', 'diff(B, bignumber(2))', 'diff([[1, 2], matrix([3, 4])], 2)'],
|
13
13
|
seealso: ['subtract', 'partitionSelect']
|
14
14
|
};
|
15
15
|
exports.diffDocs = diffDocs;
|
@@ -9,7 +9,7 @@ var rangeDocs = {
|
|
9
9
|
category: 'Type',
|
10
10
|
syntax: ['start:end', 'start:step:end', 'range(start, end)', 'range(start, end, step)', 'range(string)'],
|
11
11
|
description: 'Create a range. Lower bound of the range is included, upper bound is excluded.',
|
12
|
-
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]'],
|
12
|
+
examples: ['1:5', '3:-1:-3', 'range(3, 7)', 'range(0, 12, 2)', 'range("4:10")', 'range(1m, 1m, 3m)', 'a = [1, 2, 3, 4; 5, 6, 7, 8]', 'a[1:2, 1:2]'],
|
13
13
|
seealso: ['concat', 'det', 'diag', 'identity', 'inv', 'ones', 'size', 'squeeze', 'subset', 'trace', 'transpose', 'zeros']
|
14
14
|
};
|
15
15
|
exports.rangeDocs = rangeDocs;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.solveODEDocs = void 0;
|
7
|
+
var solveODEDocs = {
|
8
|
+
name: 'solveODE',
|
9
|
+
category: 'Numeric',
|
10
|
+
syntax: ['solveODE(func, tspan, y0)', 'solveODE(func, tspan, y0, options)'],
|
11
|
+
description: 'Numerical Integration of Ordinary Differential Equations.',
|
12
|
+
examples: ['f(t,y) = y', 'tspan = [0, 4]', 'solveODE(f, tspan, 1)', 'solveODE(f, tspan, [1, 2])', 'solveODE(f, tspan, 1, { method:"RK23", maxStep:0.1 })'],
|
13
|
+
seealso: ['derivative', 'simplifyCore']
|
14
|
+
};
|
15
|
+
exports.solveODEDocs = solveODEDocs;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.freqzDocs = void 0;
|
7
|
+
var freqzDocs = {
|
8
|
+
name: 'freqz',
|
9
|
+
category: 'Signal',
|
10
|
+
syntax: ['freqz(b, a)', 'freqz(b, a, w)'],
|
11
|
+
description: 'Calculates the frequency response of a filter given its numerator and denominator coefficients.',
|
12
|
+
examples: ['freqz([1, 2], [1, 2, 3])', 'freqz([1, 2], [1, 2, 3], [0, 1])', 'freqz([1, 2], [1, 2, 3], 512)'],
|
13
|
+
seealso: []
|
14
|
+
};
|
15
|
+
exports.freqzDocs = freqzDocs;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.zpk2tfDocs = void 0;
|
7
|
+
var zpk2tfDocs = {
|
8
|
+
name: 'zpk2tf',
|
9
|
+
category: 'Signal',
|
10
|
+
syntax: ['zpk2tf(z, p, k)'],
|
11
|
+
description: 'Compute the transfer function of a zero-pole-gain model.',
|
12
|
+
examples: ['zpk2tf([1, 2], [-1, -2], 1)', 'zpk2tf([1, 2], [-1, -2])', 'zpk2tf([1 - 3i, 2 + 2i], [-1, -2])'],
|
13
|
+
seealso: []
|
14
|
+
};
|
15
|
+
exports.zpk2tfDocs = zpk2tfDocs;
|
@@ -9,7 +9,7 @@ var numericDocs = {
|
|
9
9
|
category: 'Utils',
|
10
10
|
syntax: ['numeric(x)'],
|
11
11
|
description: 'Convert a numeric input to a specific numeric type: number, BigNumber, or Fraction.',
|
12
|
-
examples: ['numeric("4")', 'numeric("4", "number")', 'numeric("4", "BigNumber")', 'numeric("4", "Fraction)', 'numeric(4, "Fraction")', 'numeric(fraction(2, 5), "number)'],
|
12
|
+
examples: ['numeric("4")', 'numeric("4", "number")', 'numeric("4", "BigNumber")', 'numeric("4", "Fraction")', 'numeric(4, "Fraction")', 'numeric(fraction(2, 5), "number")'],
|
13
13
|
seealso: ['number', 'fraction', 'bignumber', 'string', 'format']
|
14
14
|
};
|
15
15
|
exports.numericDocs = numericDocs;
|
@@ -237,7 +237,7 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
237
237
|
// the function symbol is an argName
|
238
238
|
var _rawArgs = this.args;
|
239
239
|
return function evalFunctionNode(scope, args, context) {
|
240
|
-
var fn = args
|
240
|
+
var fn = (0, _customs.getSafeProperty)(args, _name);
|
241
241
|
if (typeof fn !== 'function') {
|
242
242
|
throw new TypeError("Argument '".concat(_name, "' was not a function; received: ").concat(strin(fn)));
|
243
243
|
}
|
@@ -261,17 +261,16 @@ var createFunctionNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
261
261
|
var _rawArgs2 = this.args;
|
262
262
|
return function evalFunctionNode(scope, args, context) {
|
263
263
|
var object = evalObject(scope, args, context);
|
264
|
-
(0, _customs.
|
265
|
-
|
266
|
-
if (isRaw) {
|
264
|
+
var fn = (0, _customs.getSafeMethod)(object, prop);
|
265
|
+
if (fn !== null && fn !== void 0 && fn.rawArgs) {
|
267
266
|
// "Raw" evaluation
|
268
|
-
return
|
267
|
+
return fn(_rawArgs2, math, (0, _scope.createSubScope)(scope, args), scope);
|
269
268
|
} else {
|
270
269
|
// "regular" evaluation
|
271
270
|
var values = evalArgs.map(function (evalArg) {
|
272
271
|
return evalArg(scope, args, context);
|
273
272
|
});
|
274
|
-
return
|
273
|
+
return fn.apply(object, values);
|
275
274
|
}
|
276
275
|
};
|
277
276
|
} else {
|
@@ -12,11 +12,11 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
|
|
12
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
13
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15
|
-
var _is = require("../../utils/is.js");
|
16
|
-
var _string = require("../../utils/string.js");
|
17
15
|
var _customs = require("../../utils/customs.js");
|
18
|
-
var _object = require("../../utils/object.js");
|
19
16
|
var _factory = require("../../utils/factory.js");
|
17
|
+
var _is = require("../../utils/is.js");
|
18
|
+
var _object = require("../../utils/object.js");
|
19
|
+
var _string = require("../../utils/string.js");
|
20
20
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
21
21
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
22
22
|
var name = 'ObjectNode';
|
@@ -82,10 +82,8 @@ var createObjectNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
82
82
|
// so you cannot create a key like {"co\\u006Estructor": null}
|
83
83
|
var stringifiedKey = (0, _string.stringify)(key);
|
84
84
|
var parsedKey = JSON.parse(stringifiedKey);
|
85
|
-
|
86
|
-
|
87
|
-
}
|
88
|
-
evalEntries[parsedKey] = this.properties[key]._compile(math, argNames);
|
85
|
+
var prop = (0, _customs.getSafeProperty)(this.properties, key);
|
86
|
+
evalEntries[parsedKey] = prop._compile(math, argNames);
|
89
87
|
}
|
90
88
|
}
|
91
89
|
return function evalObjectNode(scope, args, context) {
|
@@ -84,7 +84,7 @@ var createSymbolNode = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
84
84
|
// (like an x when inside the expression of a function
|
85
85
|
// assignment `f(x) = ...`)
|
86
86
|
return function (scope, args, context) {
|
87
|
-
return args
|
87
|
+
return (0, _customs.getSafeProperty)(args, name);
|
88
88
|
};
|
89
89
|
} else if (name in math) {
|
90
90
|
return function (scope, args, context) {
|
@@ -7,7 +7,7 @@ exports.createRangeTransform = void 0;
|
|
7
7
|
var _factory = require("../../utils/factory.js");
|
8
8
|
var _range = require("../../function/matrix/range.js");
|
9
9
|
var name = 'range';
|
10
|
-
var dependencies = ['typed', 'config', '?matrix', '?bignumber', 'smaller', 'smallerEq', 'larger', 'largerEq'];
|
10
|
+
var dependencies = ['typed', 'config', '?matrix', '?bignumber', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isPositive'];
|
11
11
|
var createRangeTransform = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
12
12
|
var typed = _ref.typed,
|
13
13
|
config = _ref.config,
|
@@ -16,7 +16,9 @@ var createRangeTransform = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
16
16
|
smaller = _ref.smaller,
|
17
17
|
smallerEq = _ref.smallerEq,
|
18
18
|
larger = _ref.larger,
|
19
|
-
largerEq = _ref.largerEq
|
19
|
+
largerEq = _ref.largerEq,
|
20
|
+
add = _ref.add,
|
21
|
+
isPositive = _ref.isPositive;
|
20
22
|
var range = (0, _range.createRange)({
|
21
23
|
typed: typed,
|
22
24
|
config: config,
|
@@ -25,7 +27,9 @@ var createRangeTransform = /* #__PURE__ */(0, _factory.factory)(name, dependenci
|
|
25
27
|
smaller: smaller,
|
26
28
|
smallerEq: smallerEq,
|
27
29
|
larger: larger,
|
28
|
-
largerEq: largerEq
|
30
|
+
largerEq: largerEq,
|
31
|
+
add: add,
|
32
|
+
isPositive: isPositive
|
29
33
|
});
|
30
34
|
|
31
35
|
/**
|
package/lib/cjs/factoriesAny.js
CHANGED
@@ -741,6 +741,12 @@ Object.defineProperty(exports, "createFractionClass", {
|
|
741
741
|
return _Fraction.createFractionClass;
|
742
742
|
}
|
743
743
|
});
|
744
|
+
Object.defineProperty(exports, "createFreqz", {
|
745
|
+
enumerable: true,
|
746
|
+
get: function get() {
|
747
|
+
return _freqz.createFreqz;
|
748
|
+
}
|
749
|
+
});
|
744
750
|
Object.defineProperty(exports, "createFunctionAssignmentNode", {
|
745
751
|
enumerable: true,
|
746
752
|
get: function get() {
|
@@ -1791,6 +1797,12 @@ Object.defineProperty(exports, "createSmallerEq", {
|
|
1791
1797
|
return _smallerEq.createSmallerEq;
|
1792
1798
|
}
|
1793
1799
|
});
|
1800
|
+
Object.defineProperty(exports, "createSolveODE", {
|
1801
|
+
enumerable: true,
|
1802
|
+
get: function get() {
|
1803
|
+
return _solveODE.createSolveODE;
|
1804
|
+
}
|
1805
|
+
});
|
1794
1806
|
Object.defineProperty(exports, "createSort", {
|
1795
1807
|
enumerable: true,
|
1796
1808
|
get: function get() {
|
@@ -2097,6 +2109,12 @@ Object.defineProperty(exports, "createZeros", {
|
|
2097
2109
|
return _zeros.createZeros;
|
2098
2110
|
}
|
2099
2111
|
});
|
2112
|
+
Object.defineProperty(exports, "createZpk2tf", {
|
2113
|
+
enumerable: true,
|
2114
|
+
get: function get() {
|
2115
|
+
return _zpk2tf.createZpk2tf;
|
2116
|
+
}
|
2117
|
+
});
|
2100
2118
|
var _typed = require("./core/function/typed.js");
|
2101
2119
|
var _ResultSet = require("./type/resultset/ResultSet.js");
|
2102
2120
|
var _BigNumber = require("./type/bignumber/BigNumber.js");
|
@@ -2193,6 +2211,7 @@ var _ctranspose = require("./function/matrix/ctranspose.js");
|
|
2193
2211
|
var _zeros = require("./function/matrix/zeros.js");
|
2194
2212
|
var _fft = require("./function/matrix/fft.js");
|
2195
2213
|
var _ifft = require("./function/matrix/ifft.js");
|
2214
|
+
var _solveODE = require("./function/numeric/solveODE.js");
|
2196
2215
|
var _erf = require("./function/special/erf.js");
|
2197
2216
|
var _mode = require("./function/statistics/mode.js");
|
2198
2217
|
var _prod = require("./function/statistics/prod.js");
|
@@ -2357,6 +2376,8 @@ var _resolve = require("./function/algebra/resolve.js");
|
|
2357
2376
|
var _symbolicEqual = require("./function/algebra/symbolicEqual.js");
|
2358
2377
|
var _derivative = require("./function/algebra/derivative.js");
|
2359
2378
|
var _rationalize = require("./function/algebra/rationalize.js");
|
2379
|
+
var _zpk2tf = require("./function/signal/zpk2tf.js");
|
2380
|
+
var _freqz = require("./function/signal/freqz.js");
|
2360
2381
|
var _reviver = require("./json/reviver.js");
|
2361
2382
|
var _replacer = require("./json/replacer.js");
|
2362
2383
|
var _constants = require("./constants.js");
|
@@ -542,6 +542,9 @@ var createSimplify = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
|
|
542
542
|
},
|
543
543
|
// undo replace 'subtract'
|
544
544
|
{
|
545
|
+
l: 'n+-(n1)',
|
546
|
+
r: 'n-(n1)'
|
547
|
+
}, {
|
545
548
|
s: 'n*(n1^-1) -> n/n1',
|
546
549
|
// undo replace 'divide'; for * commutative
|
547
550
|
assuming: {
|
@@ -7,7 +7,7 @@ exports.createRange = void 0;
|
|
7
7
|
var _factory = require("../../utils/factory.js");
|
8
8
|
var _noop = require("../../utils/noop.js");
|
9
9
|
var name = 'range';
|
10
|
-
var dependencies = ['typed', 'config', '?matrix', '?bignumber', 'smaller', 'smallerEq', 'larger', 'largerEq'];
|
10
|
+
var dependencies = ['typed', 'config', '?matrix', '?bignumber', 'smaller', 'smallerEq', 'larger', 'largerEq', 'add', 'isPositive'];
|
11
11
|
var createRange = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
12
12
|
var typed = _ref.typed,
|
13
13
|
config = _ref.config,
|
@@ -16,7 +16,9 @@ var createRange = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
16
16
|
smaller = _ref.smaller,
|
17
17
|
smallerEq = _ref.smallerEq,
|
18
18
|
larger = _ref.larger,
|
19
|
-
largerEq = _ref.largerEq
|
19
|
+
largerEq = _ref.largerEq,
|
20
|
+
add = _ref.add,
|
21
|
+
isPositive = _ref.isPositive;
|
20
22
|
/**
|
21
23
|
* Create an array from a range.
|
22
24
|
* By default, the range end is excluded. This can be customized by providing
|
@@ -37,11 +39,11 @@ var createRange = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
37
39
|
*
|
38
40
|
* - `str: string`
|
39
41
|
* A string 'start:end' or 'start:step:end'
|
40
|
-
* - `start: {number | BigNumber}`
|
42
|
+
* - `start: {number | BigNumber | Unit}`
|
41
43
|
* Start of the range
|
42
|
-
* - `end: number | BigNumber`
|
44
|
+
* - `end: number | BigNumber | Unit`
|
43
45
|
* End of the range, excluded by default, included when parameter includeEnd=true
|
44
|
-
* - `step: number | BigNumber`
|
46
|
+
* - `step: number | BigNumber | Unit`
|
45
47
|
* Step size. Default value is 1.
|
46
48
|
* - `includeEnd: boolean`
|
47
49
|
* Option to specify whether to include the end or not. False by default.
|
@@ -52,6 +54,7 @@ var createRange = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
52
54
|
* math.range(2, -3, -1) // [2, 1, 0, -1, -2]
|
53
55
|
* math.range('2:1:6') // [2, 3, 4, 5]
|
54
56
|
* math.range(2, 6, true) // [2, 3, 4, 5, 6]
|
57
|
+
* math.range(math.unit(2, 'm'), math.unit(-3, 'm'), math.unit(-1, 'm')) // [2 m, 1 m, 0 m , -1 m, -2 m]
|
55
58
|
*
|
56
59
|
* See also:
|
57
60
|
*
|
@@ -67,30 +70,36 @@ var createRange = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
67
70
|
string: _strRange,
|
68
71
|
'string, boolean': _strRange,
|
69
72
|
'number, number': function numberNumber(start, end) {
|
70
|
-
return _out(
|
73
|
+
return _out(_range(start, end, 1, false));
|
71
74
|
},
|
72
75
|
'number, number, number': function numberNumberNumber(start, end, step) {
|
73
|
-
return _out(
|
76
|
+
return _out(_range(start, end, step, false));
|
74
77
|
},
|
75
78
|
'number, number, boolean': function numberNumberBoolean(start, end, includeEnd) {
|
76
|
-
return
|
79
|
+
return _out(_range(start, end, 1, includeEnd));
|
77
80
|
},
|
78
81
|
'number, number, number, boolean': function numberNumberNumberBoolean(start, end, step, includeEnd) {
|
79
|
-
return
|
82
|
+
return _out(_range(start, end, step, includeEnd));
|
80
83
|
},
|
81
84
|
'BigNumber, BigNumber': function BigNumberBigNumber(start, end) {
|
82
85
|
var BigNumber = start.constructor;
|
83
|
-
return _out(
|
86
|
+
return _out(_range(start, end, new BigNumber(1), false));
|
84
87
|
},
|
85
88
|
'BigNumber, BigNumber, BigNumber': function BigNumberBigNumberBigNumber(start, end, step) {
|
86
|
-
return _out(
|
89
|
+
return _out(_range(start, end, step, false));
|
87
90
|
},
|
88
91
|
'BigNumber, BigNumber, boolean': function BigNumberBigNumberBoolean(start, end, includeEnd) {
|
89
92
|
var BigNumber = start.constructor;
|
90
|
-
return
|
93
|
+
return _out(_range(start, end, new BigNumber(1), includeEnd));
|
91
94
|
},
|
92
95
|
'BigNumber, BigNumber, BigNumber, boolean': function BigNumberBigNumberBigNumberBoolean(start, end, step, includeEnd) {
|
93
|
-
return
|
96
|
+
return _out(_range(start, end, step, includeEnd));
|
97
|
+
},
|
98
|
+
'Unit, Unit, Unit': function UnitUnitUnit(start, end, step) {
|
99
|
+
return _out(_range(start, end, step, false));
|
100
|
+
},
|
101
|
+
'Unit, Unit, Unit, boolean': function UnitUnitUnitBoolean(start, end, step, includeEnd) {
|
102
|
+
return _out(_range(start, end, step, includeEnd));
|
94
103
|
}
|
95
104
|
});
|
96
105
|
function _out(arr) {
|
@@ -104,117 +113,32 @@ var createRange = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
|
|
104
113
|
if (!r) {
|
105
114
|
throw new SyntaxError('String "' + str + '" is no valid range');
|
106
115
|
}
|
107
|
-
var fn;
|
108
116
|
if (config.number === 'BigNumber') {
|
109
117
|
if (bignumber === undefined) {
|
110
118
|
(0, _noop.noBignumber)();
|
111
119
|
}
|
112
|
-
|
113
|
-
return _out(fn(bignumber(r.start), bignumber(r.end), bignumber(r.step)));
|
120
|
+
return _out(_range(bignumber(r.start), bignumber(r.end), bignumber(r.step)), includeEnd);
|
114
121
|
} else {
|
115
|
-
|
116
|
-
return _out(fn(r.start, r.end, r.step));
|
117
|
-
}
|
118
|
-
}
|
119
|
-
|
120
|
-
/**
|
121
|
-
* Create a range with numbers. End is excluded
|
122
|
-
* @param {number} start
|
123
|
-
* @param {number} end
|
124
|
-
* @param {number} step
|
125
|
-
* @returns {Array} range
|
126
|
-
* @private
|
127
|
-
*/
|
128
|
-
function _rangeEx(start, end, step) {
|
129
|
-
var array = [];
|
130
|
-
var x = start;
|
131
|
-
if (step > 0) {
|
132
|
-
while (smaller(x, end)) {
|
133
|
-
array.push(x);
|
134
|
-
x += step;
|
135
|
-
}
|
136
|
-
} else if (step < 0) {
|
137
|
-
while (larger(x, end)) {
|
138
|
-
array.push(x);
|
139
|
-
x += step;
|
140
|
-
}
|
141
|
-
}
|
142
|
-
return array;
|
143
|
-
}
|
144
|
-
|
145
|
-
/**
|
146
|
-
* Create a range with numbers. End is included
|
147
|
-
* @param {number} start
|
148
|
-
* @param {number} end
|
149
|
-
* @param {number} step
|
150
|
-
* @returns {Array} range
|
151
|
-
* @private
|
152
|
-
*/
|
153
|
-
function _rangeInc(start, end, step) {
|
154
|
-
var array = [];
|
155
|
-
var x = start;
|
156
|
-
if (step > 0) {
|
157
|
-
while (smallerEq(x, end)) {
|
158
|
-
array.push(x);
|
159
|
-
x += step;
|
160
|
-
}
|
161
|
-
} else if (step < 0) {
|
162
|
-
while (largerEq(x, end)) {
|
163
|
-
array.push(x);
|
164
|
-
x += step;
|
165
|
-
}
|
166
|
-
}
|
167
|
-
return array;
|
168
|
-
}
|
169
|
-
|
170
|
-
/**
|
171
|
-
* Create a range with big numbers. End is excluded
|
172
|
-
* @param {BigNumber} start
|
173
|
-
* @param {BigNumber} end
|
174
|
-
* @param {BigNumber} step
|
175
|
-
* @returns {Array} range
|
176
|
-
* @private
|
177
|
-
*/
|
178
|
-
function _bigRangeEx(start, end, step) {
|
179
|
-
var zero = bignumber(0);
|
180
|
-
var array = [];
|
181
|
-
var x = start;
|
182
|
-
if (step.gt(zero)) {
|
183
|
-
while (smaller(x, end)) {
|
184
|
-
array.push(x);
|
185
|
-
x = x.plus(step);
|
186
|
-
}
|
187
|
-
} else if (step.lt(zero)) {
|
188
|
-
while (larger(x, end)) {
|
189
|
-
array.push(x);
|
190
|
-
x = x.plus(step);
|
191
|
-
}
|
122
|
+
return _out(_range(r.start, r.end, r.step, includeEnd));
|
192
123
|
}
|
193
|
-
return array;
|
194
124
|
}
|
195
125
|
|
196
126
|
/**
|
197
|
-
* Create a range with
|
198
|
-
* @param {BigNumber} start
|
199
|
-
* @param {BigNumber} end
|
200
|
-
* @param {BigNumber} step
|
127
|
+
* Create a range with numbers or BigNumbers
|
128
|
+
* @param {number | BigNumber | Unit} start
|
129
|
+
* @param {number | BigNumber | Unit} end
|
130
|
+
* @param {number | BigNumber | Unit} step
|
131
|
+
* @param {boolean} includeEnd
|
201
132
|
* @returns {Array} range
|
202
133
|
* @private
|
203
134
|
*/
|
204
|
-
function
|
205
|
-
var zero = bignumber(0);
|
135
|
+
function _range(start, end, step, includeEnd) {
|
206
136
|
var array = [];
|
137
|
+
var ongoing = isPositive(step) ? includeEnd ? smallerEq : smaller : includeEnd ? largerEq : larger;
|
207
138
|
var x = start;
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
x = x.plus(step);
|
212
|
-
}
|
213
|
-
} else if (step.lt(zero)) {
|
214
|
-
while (largerEq(x, end)) {
|
215
|
-
array.push(x);
|
216
|
-
x = x.plus(step);
|
217
|
-
}
|
139
|
+
while (ongoing(x, end)) {
|
140
|
+
array.push(x);
|
141
|
+
x = add(x, step);
|
218
142
|
}
|
219
143
|
return array;
|
220
144
|
}
|