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
@@ -0,0 +1,115 @@
1
+ import { factory } from '../../utils/factory.js';
2
+ var name = 'freqz';
3
+ var dependencies = ['typed', 'add', 'multiply', 'Complex', 'divide', 'matrix'];
4
+ export var createFreqz = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ var {
6
+ typed,
7
+ add,
8
+ multiply,
9
+ Complex,
10
+ divide,
11
+ matrix
12
+ } = _ref;
13
+ /**
14
+ * Calculates the frequency response of a filter given its numerator and denominator coefficients.
15
+ *
16
+ * Syntax:
17
+ * math.freqz(b, a)
18
+ * math.freqz(b, a, w)
19
+ *
20
+ * Examples:
21
+ * math.freqz([1, 2], [1, 2, 3], 4) // returns { h: [0.5 + 0i, 0.4768589245763655 + 0.2861153547458193i, 0.25000000000000006 + 0.75i, -0.770976571635189 + 0.4625859429811135i], w: [0, 0.7853981633974483, 1.5707963267948966, 2.356194490192345 ] }
22
+ * math.freqz([1, 2], [1, 2, 3], [0, 1]) // returns { h: [0.5 + 0i, 0.45436781 + 0.38598051i], w: [0, 1] }
23
+ *
24
+ * See also:
25
+ * zpk2tf
26
+ *
27
+ * @param {Array.<number>} b The numerator coefficients of the filter.
28
+ * @param {Array.<number>} a The denominator coefficients of the filter.
29
+ * @param {Array.<number>} [w] A vector of frequencies (in radians/sample) at which the frequency response is to be computed or the number of points to compute (if a number is not provided, the default is 512 points)
30
+ * @returns {Object} An object with two properties: h, a vector containing the complex frequency response, and w, a vector containing the normalized frequencies (in radians/sample) at which the response was computed.
31
+ *
32
+ *
33
+ */
34
+ return typed(name, {
35
+ 'Array, Array': function ArrayArray(b, a) {
36
+ var w = createBins(512);
37
+ return _freqz(b, a, w);
38
+ },
39
+ 'Array, Array, Array': function ArrayArrayArray(b, a, w) {
40
+ return _freqz(b, a, w);
41
+ },
42
+ 'Array, Array, number': function ArrayArrayNumber(b, a, w) {
43
+ if (w < 0) {
44
+ throw new Error('w must be a positive number');
45
+ }
46
+ var w2 = createBins(w);
47
+ return _freqz(b, a, w2);
48
+ },
49
+ 'Matrix, Matrix': function MatrixMatrix(b, a) {
50
+ // console.log('here')
51
+ var _w = createBins(512);
52
+ var {
53
+ w,
54
+ h
55
+ } = _freqz(b.valueOf(), a.valueOf(), _w);
56
+ return {
57
+ w: matrix(w),
58
+ h: matrix(h)
59
+ };
60
+ },
61
+ 'Matrix, Matrix, Matrix': function MatrixMatrixMatrix(b, a, w) {
62
+ var {
63
+ h
64
+ } = _freqz(b.valueOf(), a.valueOf(), w.valueOf());
65
+ return {
66
+ h: matrix(h),
67
+ w: matrix(w)
68
+ };
69
+ },
70
+ 'Matrix, Matrix, number': function MatrixMatrixNumber(b, a, w) {
71
+ if (w < 0) {
72
+ throw new Error('w must be a positive number');
73
+ }
74
+ var _w = createBins(w);
75
+ var {
76
+ h
77
+ } = _freqz(b.valueOf(), a.valueOf(), _w);
78
+ return {
79
+ h: matrix(h),
80
+ w: matrix(_w)
81
+ };
82
+ }
83
+ });
84
+ function _freqz(b, a, w) {
85
+ var num = [];
86
+ var den = [];
87
+ for (var i = 0; i < w.length; i++) {
88
+ var sumNum = Complex(0, 0);
89
+ var sumDen = Complex(0, 0);
90
+ for (var j = 0; j < b.length; j++) {
91
+ sumNum = add(sumNum, multiply(b[j], Complex(Math.cos(-j * w[i]), Math.sin(-j * w[i]))));
92
+ }
93
+ for (var _j = 0; _j < a.length; _j++) {
94
+ sumDen = add(sumDen, multiply(a[_j], Complex(Math.cos(-_j * w[i]), Math.sin(-_j * w[i]))));
95
+ }
96
+ num.push(sumNum);
97
+ den.push(sumDen);
98
+ }
99
+ var h = [];
100
+ for (var _i = 0; _i < num.length; _i++) {
101
+ h.push(divide(num[_i], den[_i]));
102
+ }
103
+ return {
104
+ h,
105
+ w
106
+ };
107
+ }
108
+ function createBins(n) {
109
+ var bins = [];
110
+ for (var i = 0; i < n; i++) {
111
+ bins.push(i / n * Math.PI);
112
+ }
113
+ return bins;
114
+ }
115
+ });
@@ -0,0 +1,82 @@
1
+ import { factory } from '../../utils/factory.js';
2
+ var name = 'zpk2tf';
3
+ var dependencies = ['typed', 'add', 'multiply', 'Complex', 'number'];
4
+ export var createZpk2tf = /* #__PURE__ */factory(name, dependencies, _ref => {
5
+ var {
6
+ typed,
7
+ add,
8
+ multiply,
9
+ Complex,
10
+ number
11
+ } = _ref;
12
+ /**
13
+ * Compute the transfer function of a zero-pole-gain model.
14
+ *
15
+ * Syntax:
16
+ * math.zpk2tf(z, p, k)
17
+ *
18
+ * Examples:
19
+ * math.zpk2tf([1, 2], [-1, -2], 1) // returns [[1, -3, 2], [1, 3, 2]]
20
+ *
21
+ * See also:
22
+ * freqz
23
+ *
24
+ * @param {Array} z Array of zeros values
25
+ * @param {Array} p Array of poles values
26
+ * @param {number} k Gain value
27
+ * @return {Array} Two dimensional array containing the numerator (first row) and denominator (second row) polynomials
28
+ *
29
+ */
30
+ return typed(name, {
31
+ 'Array,Array,number': function ArrayArrayNumber(z, p, k) {
32
+ return _zpk2tf(z, p, k);
33
+ },
34
+ 'Array,Array': function ArrayArray(z, p) {
35
+ return _zpk2tf(z, p, 1);
36
+ },
37
+ 'Matrix,Matrix,number': function MatrixMatrixNumber(z, p, k) {
38
+ return _zpk2tf(z.valueOf(), p.valueOf(), k);
39
+ },
40
+ 'Matrix,Matrix': function MatrixMatrix(z, p) {
41
+ return _zpk2tf(z.valueOf(), p.valueOf(), 1);
42
+ }
43
+ });
44
+ function _zpk2tf(z, p, k) {
45
+ // if z is bignumber, convert it to number
46
+ if (z.some(el => el.type === 'BigNumber')) {
47
+ z = z.map(el => number(el));
48
+ }
49
+ // if p is bignumber, convert it to number
50
+ if (p.some(el => el.type === 'BigNumber')) {
51
+ p = p.map(el => number(el));
52
+ }
53
+ var num = [Complex(1, 0)];
54
+ var den = [Complex(1, 0)];
55
+ for (var i = 0; i < z.length; i++) {
56
+ var zero = z[i];
57
+ if (typeof zero === 'number') zero = Complex(zero, 0);
58
+ num = _multiply(num, [Complex(1, 0), Complex(-zero.re, -zero.im)]);
59
+ }
60
+ for (var _i = 0; _i < p.length; _i++) {
61
+ var pole = p[_i];
62
+ if (typeof pole === 'number') pole = Complex(pole, 0);
63
+ den = _multiply(den, [Complex(1, 0), Complex(-pole.re, -pole.im)]);
64
+ }
65
+ for (var _i2 = 0; _i2 < num.length; _i2++) {
66
+ num[_i2] = multiply(num[_i2], k);
67
+ }
68
+ return [num, den];
69
+ }
70
+ function _multiply(a, b) {
71
+ var c = [];
72
+ for (var i = 0; i < a.length + b.length - 1; i++) {
73
+ c[i] = Complex(0, 0);
74
+ for (var j = 0; j < a.length; j++) {
75
+ if (i - j >= 0 && i - j < b.length) {
76
+ c[i] = add(c[i], multiply(a[j], b[i - j]));
77
+ }
78
+ }
79
+ }
80
+ return c;
81
+ }
82
+ });
@@ -25,12 +25,12 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
25
25
  equal,
26
26
  isNumeric,
27
27
  format,
28
- number,
28
+ number: _number,
29
29
  Complex,
30
30
  BigNumber: _BigNumber,
31
31
  Fraction: _Fraction
32
32
  } = _ref;
33
- var toNumber = number;
33
+ var toNumber = _number;
34
34
  /**
35
35
  * A unit can be constructed in the following ways:
36
36
  *
@@ -780,13 +780,13 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
780
780
  /* Need to adjust value by difference in offset to convert */
781
781
  var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
782
782
 
783
- var thisUnitValue = convert(this.units[0].unit.value);
784
- var thisNominalOffset = convert(this.units[0].unit.offset);
783
+ var thisUnitValue = this.units[0].unit.value;
784
+ var thisNominalOffset = this.units[0].unit.offset;
785
785
  var thisUnitOffset = multiplyScalar(thisUnitValue, thisNominalOffset);
786
- var otherUnitValue = convert(other.units[0].unit.value);
787
- var otherNominalOffset = convert(other.units[0].unit.offset);
786
+ var otherUnitValue = other.units[0].unit.value;
787
+ var otherNominalOffset = other.units[0].unit.offset;
788
788
  var otherUnitOffset = multiplyScalar(otherUnitValue, otherNominalOffset);
789
- other.value = subtract(addScalar(value, thisUnitOffset), otherUnitOffset);
789
+ other.value = addScalar(value, convert(subtract(thisUnitOffset, otherUnitOffset)));
790
790
  }
791
791
  other.fixPrefix = true;
792
792
  other.skipAutomaticSimplification = true;
@@ -2734,8 +2734,8 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
2734
2734
  },
2735
2735
  // Temperature
2736
2736
  // K(C) = °C + 273.15
2737
- // K(F) = (°F + 459.67) / 1.8
2738
- // K(R) = °R / 1.8
2737
+ // K(F) = (°F + 459.67) * (5 / 9)
2738
+ // K(R) = °R * (5 / 9)
2739
2739
  K: {
2740
2740
  name: 'K',
2741
2741
  base: BASE_UNITS.TEMPERATURE,
@@ -2754,14 +2754,14 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
2754
2754
  name: 'degF',
2755
2755
  base: BASE_UNITS.TEMPERATURE,
2756
2756
  prefixes: PREFIXES.SHORT,
2757
- value: 1 / 1.8,
2757
+ value: new _Fraction(5, 9),
2758
2758
  offset: 459.67
2759
2759
  },
2760
2760
  degR: {
2761
2761
  name: 'degR',
2762
2762
  base: BASE_UNITS.TEMPERATURE,
2763
2763
  prefixes: PREFIXES.SHORT,
2764
- value: 1 / 1.8,
2764
+ value: new _Fraction(5, 9),
2765
2765
  offset: 0
2766
2766
  },
2767
2767
  kelvin: {
@@ -2782,14 +2782,14 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
2782
2782
  name: 'fahrenheit',
2783
2783
  base: BASE_UNITS.TEMPERATURE,
2784
2784
  prefixes: PREFIXES.LONG,
2785
- value: 1 / 1.8,
2785
+ value: new _Fraction(5, 9),
2786
2786
  offset: 459.67
2787
2787
  },
2788
2788
  rankine: {
2789
2789
  name: 'rankine',
2790
2790
  base: BASE_UNITS.TEMPERATURE,
2791
2791
  prefixes: PREFIXES.LONG,
2792
- value: 1 / 1.8,
2792
+ value: new _Fraction(5, 9),
2793
2793
  offset: 0
2794
2794
  },
2795
2795
  // amount of substance
@@ -3510,6 +3510,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
3510
3510
  */
3511
3511
  Unit.typeConverters = {
3512
3512
  BigNumber: function BigNumber(x) {
3513
+ if (x !== null && x !== void 0 && x.isFraction) return new _BigNumber(x.n).div(x.d).times(x.s);
3513
3514
  return new _BigNumber(x + ''); // stringify to prevent constructor error
3514
3515
  },
3515
3516
 
@@ -3520,6 +3521,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
3520
3521
  return x;
3521
3522
  },
3522
3523
  number: function number(x) {
3524
+ if (x !== null && x !== void 0 && x.isFraction) return _number(x);
3523
3525
  return x;
3524
3526
  }
3525
3527
  };
@@ -1,3 +1,3 @@
1
- export var version = '11.8.2';
1
+ export var version = '11.9.0';
2
2
  // Note: This file is automatically generated when building math.js.
3
3
  // Changes made in this file will be overwritten.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mathjs",
3
- "version": "11.8.2",
3
+ "version": "11.9.0",
4
4
  "description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
5
5
  "author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
6
6
  "homepage": "https://mathjs.org",
package/types/index.d.ts CHANGED
@@ -1989,9 +1989,9 @@ declare namespace math {
1989
1989
  includeEnd?: boolean
1990
1990
  ): Matrix
1991
1991
  range(
1992
- start: number | BigNumber,
1993
- end: number | BigNumber,
1994
- step: number | BigNumber,
1992
+ start: number | BigNumber | Unit,
1993
+ end: number | BigNumber | Unit,
1994
+ step: number | BigNumber | Unit,
1995
1995
  includeEnd?: boolean
1996
1996
  ): Matrix
1997
1997
 
@@ -2566,6 +2566,28 @@ declare namespace math {
2566
2566
  */
2567
2567
  setUnion<T extends MathCollection>(a1: T, a2: MathCollection): T
2568
2568
 
2569
+ /*************************************************************************
2570
+ * Signal functions
2571
+ ************************************************************************/
2572
+ /**
2573
+ * Compute the transfer function of a zero-pole-gain model.
2574
+ * @param z Zeroes of the model
2575
+ * @param p Poles of the model
2576
+ * @param k Gain of the model
2577
+ * @returns The transfer function as array of numerator and denominator
2578
+ */
2579
+ zpk2tf<T extends MathCollection>(z: T, p: T, k?: number): T
2580
+
2581
+ /**
2582
+ * Calculates the frequency response of a filter given its numerator and denominator coefficients.
2583
+ * @param b The numerator polynomial of the filter
2584
+ * @param a The denominator polynomial of the filter
2585
+ * @param w The range of frequencies in which the response is to be calculated
2586
+ * @returns The frequency response
2587
+ *
2588
+ */
2589
+ freqz<T extends MathCollection>(b: T, a: T, w?: number | T): { w: T; h: T }
2590
+
2569
2591
  /*************************************************************************
2570
2592
  * Special functions
2571
2593
  ************************************************************************/
@@ -3611,6 +3633,8 @@ declare namespace math {
3611
3633
  setSizeDependencies: FactoryFunctionMap
3612
3634
  setSymDifferenceDependencies: FactoryFunctionMap
3613
3635
  setUnionDependencies: FactoryFunctionMap
3636
+ zpk2tfDependencies: FactoryFunctionMap
3637
+ freqzDependencies: FactoryFunctionMap
3614
3638
  addDependencies: FactoryFunctionMap
3615
3639
  hypotDependencies: FactoryFunctionMap
3616
3640
  normDependencies: FactoryFunctionMap
@@ -5453,9 +5477,9 @@ declare namespace math {
5453
5477
  includeEnd?: boolean
5454
5478
  ): MathJsChain<Matrix>
5455
5479
  range(
5456
- this: MathJsChain<number | BigNumber>,
5457
- end: number | BigNumber,
5458
- step: number | BigNumber,
5480
+ this: MathJsChain<number | BigNumber | Unit>,
5481
+ end: number | BigNumber | Unit,
5482
+ step: number | BigNumber | Unit,
5459
5483
  includeEnd?: boolean
5460
5484
  ): MathJsChain<Matrix>
5461
5485
 
@@ -5920,6 +5944,27 @@ declare namespace math {
5920
5944
  a2: MathCollection
5921
5945
  ): MathJsChain<T>
5922
5946
 
5947
+ /*************************************************************************
5948
+ * Signal functions
5949
+ ************************************************************************/
5950
+ /**
5951
+ * Compute the transfer function of a zero-pole-gain model.
5952
+ */
5953
+ zpk2tf<T extends MathCollection>(
5954
+ this: MathJsChain<T>, // chained variable will be used as z
5955
+ p: T,
5956
+ k?: number
5957
+ ): MathJsChain<T>
5958
+
5959
+ /**
5960
+ * Calculates the frequency response of a filter given its numerator and denominator coefficients.
5961
+ */
5962
+ freqz<T extends number | MathArray | MathArray[]>(
5963
+ this: MathJsChain<T>,
5964
+ a: T,
5965
+ w?: T | number
5966
+ ): MathJsChain<{ w: T; h: T }>
5967
+
5923
5968
  /*************************************************************************
5924
5969
  * Special functions
5925
5970
  ************************************************************************/