mathjs 11.8.2 → 11.9.0

Sign up to get free protection for your applications and to get access to all the features.
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
  }