mathjs 11.8.2 → 11.9.0

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.
Files changed (79) hide show
  1. package/HISTORY.md +17 -0
  2. package/lib/browser/math.js +1 -1
  3. package/lib/browser/math.js.LICENSE.txt +2 -2
  4. package/lib/browser/math.js.map +1 -1
  5. package/lib/cjs/entry/dependenciesAny/dependenciesFreqz.generated.js +28 -0
  6. package/lib/cjs/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
  7. package/lib/cjs/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
  8. package/lib/cjs/entry/dependenciesAny/dependenciesSolveODE.generated.js +46 -0
  9. package/lib/cjs/entry/dependenciesAny/dependenciesZpk2tf.generated.js +26 -0
  10. package/lib/cjs/entry/dependenciesAny.generated.js +21 -0
  11. package/lib/cjs/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
  12. package/lib/cjs/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
  13. package/lib/cjs/entry/impureFunctionsAny.generated.js +35 -30
  14. package/lib/cjs/entry/impureFunctionsNumber.generated.js +2 -0
  15. package/lib/cjs/entry/pureFunctionsAny.generated.js +82 -45
  16. package/lib/cjs/entry/pureFunctionsNumber.generated.js +2 -0
  17. package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
  18. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +11 -3
  19. package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/lyap.js +2 -2
  20. package/lib/cjs/expression/embeddedDocs/function/algebra/polynomialRoot.js +1 -1
  21. package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/schur.js +2 -2
  22. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +1 -1
  23. package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/sylvester.js +2 -2
  24. package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +1 -1
  25. package/lib/cjs/expression/embeddedDocs/function/expression/evaluate.js +2 -2
  26. package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +1 -1
  27. package/lib/cjs/expression/embeddedDocs/function/matrix/range.js +1 -1
  28. package/lib/cjs/expression/embeddedDocs/function/numeric/solveODE.js +15 -0
  29. package/lib/cjs/expression/embeddedDocs/function/signal/freqz.js +15 -0
  30. package/lib/cjs/expression/embeddedDocs/function/signal/zpk2tf.js +15 -0
  31. package/lib/cjs/expression/embeddedDocs/function/utils/numeric.js +1 -1
  32. package/lib/cjs/expression/transform/range.transform.js +7 -3
  33. package/lib/cjs/factoriesAny.js +21 -0
  34. package/lib/cjs/function/algebra/simplify.js +3 -0
  35. package/lib/cjs/function/matrix/range.js +34 -110
  36. package/lib/cjs/function/numeric/solveODE.js +315 -0
  37. package/lib/cjs/function/signal/freqz.js +117 -0
  38. package/lib/cjs/function/signal/zpk2tf.js +95 -0
  39. package/lib/cjs/header.js +2 -2
  40. package/lib/cjs/type/unit/Unit.js +15 -13
  41. package/lib/cjs/version.js +1 -1
  42. package/lib/esm/entry/dependenciesAny/dependenciesFreqz.generated.js +20 -0
  43. package/lib/esm/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
  44. package/lib/esm/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
  45. package/lib/esm/entry/dependenciesAny/dependenciesSolveODE.generated.js +38 -0
  46. package/lib/esm/entry/dependenciesAny/dependenciesZpk2tf.generated.js +18 -0
  47. package/lib/esm/entry/dependenciesAny.generated.js +3 -0
  48. package/lib/esm/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
  49. package/lib/esm/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
  50. package/lib/esm/entry/impureFunctionsAny.generated.js +34 -29
  51. package/lib/esm/entry/impureFunctionsNumber.generated.js +2 -0
  52. package/lib/esm/entry/pureFunctionsAny.generated.js +70 -36
  53. package/lib/esm/entry/pureFunctionsNumber.generated.js +2 -0
  54. package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
  55. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +11 -3
  56. package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/lyap.js +2 -2
  57. package/lib/esm/expression/embeddedDocs/function/algebra/polynomialRoot.js +1 -1
  58. package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/schur.js +2 -2
  59. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +1 -1
  60. package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/sylvester.js +2 -2
  61. package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +1 -1
  62. package/lib/esm/expression/embeddedDocs/function/expression/evaluate.js +2 -2
  63. package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
  64. package/lib/esm/expression/embeddedDocs/function/matrix/range.js +1 -1
  65. package/lib/esm/expression/embeddedDocs/function/numeric/solveODE.js +8 -0
  66. package/lib/esm/expression/embeddedDocs/function/signal/freqz.js +8 -0
  67. package/lib/esm/expression/embeddedDocs/function/signal/zpk2tf.js +8 -0
  68. package/lib/esm/expression/embeddedDocs/function/utils/numeric.js +1 -1
  69. package/lib/esm/expression/transform/range.transform.js +7 -3
  70. package/lib/esm/factoriesAny.js +3 -0
  71. package/lib/esm/function/algebra/simplify.js +3 -0
  72. package/lib/esm/function/matrix/range.js +34 -110
  73. package/lib/esm/function/numeric/solveODE.js +284 -0
  74. package/lib/esm/function/signal/freqz.js +115 -0
  75. package/lib/esm/function/signal/zpk2tf.js +82 -0
  76. package/lib/esm/type/unit/Unit.js +15 -13
  77. package/lib/esm/version.js +1 -1
  78. package/package.json +1 -1
  79. 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/matrix/sylvester.js");
89
- var _schur = require("./function/matrix/schur.js");
90
- var _lyap = require("./function/matrix/lyap.js");
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: 'Matrix',
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: 'Matrix',
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: ['simplifyConatant("(3-3)*x")', 'simplifyConstant(parse("z-cos(tau/8)"))'],
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: 'Matrix',
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)=NaN', 'invmod(7, 13)=2', 'invmod(15151, 15122)=10429'],
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(" + 4 + ")")'],
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: ['diff([1, 2, 4, 7, 0])', 'diff([1, 2, 4, 7, 0], 0)', 'diff(matrix([1, 2, 4, 7, 0]))', 'diff([[1, 2], [3, 4]])', 'diff([[1, 2], [3, 4]], 0)', 'diff([[1, 2], [3, 4]], 1)', 'diff([[1, 2], [3, 4]], bignumber(1))', 'diff(matrix([[1, 2], [3, 4]]), 1)', 'diff([[1, 2], matrix([3, 4])], 1)'],
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;
@@ -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
  /**
@@ -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(_rangeEx(start, end, 1));
73
+ return _out(_range(start, end, 1, false));
71
74
  },
72
75
  'number, number, number': function numberNumberNumber(start, end, step) {
73
- return _out(_rangeEx(start, end, step));
76
+ return _out(_range(start, end, step, false));
74
77
  },
75
78
  'number, number, boolean': function numberNumberBoolean(start, end, includeEnd) {
76
- return includeEnd ? _out(_rangeInc(start, end, 1)) : _out(_rangeEx(start, end, 1));
79
+ return _out(_range(start, end, 1, includeEnd));
77
80
  },
78
81
  'number, number, number, boolean': function numberNumberNumberBoolean(start, end, step, includeEnd) {
79
- return includeEnd ? _out(_rangeInc(start, end, step)) : _out(_rangeEx(start, end, step));
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(_bigRangeEx(start, end, new BigNumber(1)));
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(_bigRangeEx(start, end, step));
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 includeEnd ? _out(_bigRangeInc(start, end, new BigNumber(1))) : _out(_bigRangeEx(start, end, new BigNumber(1)));
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 includeEnd ? _out(_bigRangeInc(start, end, step)) : _out(_bigRangeEx(start, end, step));
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
- fn = includeEnd ? _bigRangeInc : _bigRangeEx;
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
- fn = includeEnd ? _rangeInc : _rangeEx;
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 big numbers. End is included
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 _bigRangeInc(start, end, step) {
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
- if (step.gt(zero)) {
209
- while (smallerEq(x, end)) {
210
- array.push(x);
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
  }