mathjs 11.5.1 → 11.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. package/HISTORY.md +21 -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/dependenciesAdd.generated.js +2 -0
  6. package/lib/cjs/entry/dependenciesAny/dependenciesAnd.generated.js +2 -0
  7. package/lib/cjs/entry/dependenciesAny/dependenciesAtan2.generated.js +2 -0
  8. package/lib/cjs/entry/dependenciesAny/dependenciesBitAnd.generated.js +2 -0
  9. package/lib/cjs/entry/dependenciesAny/dependenciesBitOr.generated.js +2 -0
  10. package/lib/cjs/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
  11. package/lib/cjs/entry/dependenciesAny/dependenciesCompare.generated.js +2 -0
  12. package/lib/cjs/entry/dependenciesAny/dependenciesCompareText.generated.js +2 -0
  13. package/lib/cjs/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
  14. package/lib/cjs/entry/dependenciesAny/dependenciesDotMultiply.generated.js +2 -0
  15. package/lib/cjs/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
  17. package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +10 -0
  18. package/lib/cjs/entry/dependenciesAny/dependenciesGcd.generated.js +2 -0
  19. package/lib/cjs/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
  20. package/lib/cjs/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
  21. package/lib/cjs/entry/dependenciesAny/dependenciesLcm.generated.js +2 -0
  22. package/lib/cjs/entry/dependenciesAny/dependenciesLeftShift.generated.js +2 -0
  23. package/lib/cjs/entry/dependenciesAny/dependenciesMod.generated.js +2 -0
  24. package/lib/cjs/entry/dependenciesAny/dependenciesNthRoot.generated.js +2 -0
  25. package/lib/cjs/entry/dependenciesAny/dependenciesOr.generated.js +2 -0
  26. package/lib/cjs/entry/dependenciesAny/dependenciesRightArithShift.generated.js +2 -0
  27. package/lib/cjs/entry/dependenciesAny/dependenciesRightLogShift.generated.js +2 -0
  28. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +0 -2
  29. package/lib/cjs/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
  30. package/lib/cjs/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
  31. package/lib/cjs/entry/dependenciesAny/dependenciesSubtract.generated.js +2 -0
  32. package/lib/cjs/entry/dependenciesAny/dependenciesTo.generated.js +2 -0
  33. package/lib/cjs/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
  34. package/lib/cjs/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
  35. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +0 -2
  36. package/lib/cjs/entry/impureFunctionsAny.generated.js +102 -103
  37. package/lib/cjs/entry/impureFunctionsNumber.generated.js +41 -42
  38. package/lib/cjs/entry/pureFunctionsAny.generated.js +405 -372
  39. package/lib/cjs/expression/embeddedDocs/function/matrix/sort.js +1 -1
  40. package/lib/cjs/function/algebra/simplifyConstant.js +1 -2
  41. package/lib/cjs/function/arithmetic/add.js +38 -37
  42. package/lib/cjs/function/arithmetic/dotDivide.js +5 -3
  43. package/lib/cjs/function/arithmetic/dotMultiply.js +5 -3
  44. package/lib/cjs/function/arithmetic/dotPow.js +5 -3
  45. package/lib/cjs/function/arithmetic/gcd.js +5 -3
  46. package/lib/cjs/function/arithmetic/lcm.js +5 -3
  47. package/lib/cjs/function/arithmetic/mod.js +5 -3
  48. package/lib/cjs/function/arithmetic/nthRoot.js +5 -3
  49. package/lib/cjs/function/arithmetic/subtract.js +5 -3
  50. package/lib/cjs/function/bitwise/bitAnd.js +5 -3
  51. package/lib/cjs/function/bitwise/bitOr.js +5 -3
  52. package/lib/cjs/function/bitwise/bitXor.js +5 -3
  53. package/lib/cjs/function/bitwise/leftShift.js +5 -3
  54. package/lib/cjs/function/bitwise/rightArithShift.js +5 -3
  55. package/lib/cjs/function/bitwise/rightLogShift.js +5 -3
  56. package/lib/cjs/function/geometry/distance.js +3 -3
  57. package/lib/cjs/function/logical/and.js +5 -3
  58. package/lib/cjs/function/logical/or.js +5 -3
  59. package/lib/cjs/function/logical/xor.js +5 -3
  60. package/lib/cjs/function/matrix/column.js +3 -1
  61. package/lib/cjs/function/matrix/fft.js +43 -4
  62. package/lib/cjs/function/matrix/getMatrixDataType.js +1 -1
  63. package/lib/cjs/function/matrix/row.js +3 -1
  64. package/lib/cjs/function/matrix/subset.js +1 -1
  65. package/lib/cjs/function/relational/compare.js +5 -3
  66. package/lib/cjs/function/relational/compareText.js +5 -3
  67. package/lib/cjs/function/relational/equal.js +5 -3
  68. package/lib/cjs/function/relational/larger.js +5 -3
  69. package/lib/cjs/function/relational/largerEq.js +5 -3
  70. package/lib/cjs/function/relational/smaller.js +5 -3
  71. package/lib/cjs/function/relational/smallerEq.js +5 -3
  72. package/lib/cjs/function/relational/unequal.js +5 -3
  73. package/lib/cjs/function/statistics/max.js +1 -1
  74. package/lib/cjs/function/statistics/quantileSeq.js +4 -3
  75. package/lib/cjs/function/trigonometry/atan2.js +5 -3
  76. package/lib/cjs/function/unit/to.js +8 -6
  77. package/lib/cjs/header.js +2 -2
  78. package/lib/cjs/type/matrix/utils/broadcast.js +84 -0
  79. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +27 -20
  80. package/lib/cjs/version.js +1 -1
  81. package/lib/esm/entry/dependenciesAny/dependenciesAdd.generated.js +2 -0
  82. package/lib/esm/entry/dependenciesAny/dependenciesAnd.generated.js +2 -0
  83. package/lib/esm/entry/dependenciesAny/dependenciesAtan2.generated.js +2 -0
  84. package/lib/esm/entry/dependenciesAny/dependenciesBitAnd.generated.js +2 -0
  85. package/lib/esm/entry/dependenciesAny/dependenciesBitOr.generated.js +2 -0
  86. package/lib/esm/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
  87. package/lib/esm/entry/dependenciesAny/dependenciesCompare.generated.js +2 -0
  88. package/lib/esm/entry/dependenciesAny/dependenciesCompareText.generated.js +2 -0
  89. package/lib/esm/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
  90. package/lib/esm/entry/dependenciesAny/dependenciesDotMultiply.generated.js +2 -0
  91. package/lib/esm/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
  92. package/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
  93. package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +10 -0
  94. package/lib/esm/entry/dependenciesAny/dependenciesGcd.generated.js +2 -0
  95. package/lib/esm/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
  96. package/lib/esm/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
  97. package/lib/esm/entry/dependenciesAny/dependenciesLcm.generated.js +2 -0
  98. package/lib/esm/entry/dependenciesAny/dependenciesLeftShift.generated.js +2 -0
  99. package/lib/esm/entry/dependenciesAny/dependenciesMod.generated.js +2 -0
  100. package/lib/esm/entry/dependenciesAny/dependenciesNthRoot.generated.js +2 -0
  101. package/lib/esm/entry/dependenciesAny/dependenciesOr.generated.js +2 -0
  102. package/lib/esm/entry/dependenciesAny/dependenciesRightArithShift.generated.js +2 -0
  103. package/lib/esm/entry/dependenciesAny/dependenciesRightLogShift.generated.js +2 -0
  104. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +0 -2
  105. package/lib/esm/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
  106. package/lib/esm/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
  107. package/lib/esm/entry/dependenciesAny/dependenciesSubtract.generated.js +2 -0
  108. package/lib/esm/entry/dependenciesAny/dependenciesTo.generated.js +2 -0
  109. package/lib/esm/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
  110. package/lib/esm/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
  111. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +0 -2
  112. package/lib/esm/entry/impureFunctionsAny.generated.js +100 -101
  113. package/lib/esm/entry/impureFunctionsNumber.generated.js +38 -39
  114. package/lib/esm/entry/pureFunctionsAny.generated.js +332 -299
  115. package/lib/esm/expression/embeddedDocs/function/matrix/sort.js +1 -1
  116. package/lib/esm/function/algebra/simplifyConstant.js +1 -2
  117. package/lib/esm/function/arithmetic/add.js +38 -37
  118. package/lib/esm/function/arithmetic/dotDivide.js +5 -3
  119. package/lib/esm/function/arithmetic/dotMultiply.js +5 -3
  120. package/lib/esm/function/arithmetic/dotPow.js +5 -3
  121. package/lib/esm/function/arithmetic/gcd.js +5 -3
  122. package/lib/esm/function/arithmetic/lcm.js +5 -3
  123. package/lib/esm/function/arithmetic/mod.js +5 -3
  124. package/lib/esm/function/arithmetic/nthRoot.js +5 -3
  125. package/lib/esm/function/arithmetic/subtract.js +5 -3
  126. package/lib/esm/function/bitwise/bitAnd.js +5 -3
  127. package/lib/esm/function/bitwise/bitOr.js +5 -3
  128. package/lib/esm/function/bitwise/bitXor.js +5 -3
  129. package/lib/esm/function/bitwise/leftShift.js +5 -3
  130. package/lib/esm/function/bitwise/rightArithShift.js +5 -3
  131. package/lib/esm/function/bitwise/rightLogShift.js +5 -3
  132. package/lib/esm/function/geometry/distance.js +3 -3
  133. package/lib/esm/function/logical/and.js +5 -3
  134. package/lib/esm/function/logical/or.js +5 -3
  135. package/lib/esm/function/logical/xor.js +5 -3
  136. package/lib/esm/function/matrix/column.js +3 -1
  137. package/lib/esm/function/matrix/fft.js +37 -4
  138. package/lib/esm/function/matrix/getMatrixDataType.js +1 -1
  139. package/lib/esm/function/matrix/row.js +3 -1
  140. package/lib/esm/function/matrix/subset.js +1 -1
  141. package/lib/esm/function/relational/compare.js +5 -3
  142. package/lib/esm/function/relational/compareText.js +5 -3
  143. package/lib/esm/function/relational/equal.js +5 -3
  144. package/lib/esm/function/relational/larger.js +5 -3
  145. package/lib/esm/function/relational/largerEq.js +5 -3
  146. package/lib/esm/function/relational/smaller.js +5 -3
  147. package/lib/esm/function/relational/smallerEq.js +5 -3
  148. package/lib/esm/function/relational/unequal.js +5 -3
  149. package/lib/esm/function/statistics/max.js +1 -1
  150. package/lib/esm/function/statistics/quantileSeq.js +4 -3
  151. package/lib/esm/function/trigonometry/atan2.js +5 -3
  152. package/lib/esm/function/unit/to.js +8 -6
  153. package/lib/esm/type/matrix/utils/broadcast.js +75 -0
  154. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +25 -20
  155. package/lib/esm/version.js +1 -1
  156. package/package.json +11 -11
  157. package/types/index.d.ts +4 -4
@@ -9,7 +9,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
9
9
  var _array = require("../../utils/array.js");
10
10
  var _factory = require("../../utils/factory.js");
11
11
  var name = 'fft';
12
- var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'divideScalar', 'exp', 'tau', 'i'];
12
+ var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'divideScalar', 'exp', 'tau', 'i', 'dotDivide', 'conj', 'pow', 'ceil', 'log2'];
13
13
  var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
14
14
  var typed = _ref.typed,
15
15
  matrix = _ref.matrix,
@@ -18,7 +18,12 @@ var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
18
18
  divideScalar = _ref.divideScalar,
19
19
  exp = _ref.exp,
20
20
  tau = _ref.tau,
21
- I = _ref.i;
21
+ I = _ref.i,
22
+ dotDivide = _ref.dotDivide,
23
+ conj = _ref.conj,
24
+ pow = _ref.pow,
25
+ ceil = _ref.ceil,
26
+ log2 = _ref.log2;
22
27
  /**
23
28
  * Calculate N-dimensional fourier transform
24
29
  *
@@ -84,7 +89,38 @@ var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
84
89
  }
85
90
  return _transpose(_1dFft(_transpose(arr), 1));
86
91
  }
87
-
92
+ /**
93
+ * Perform an 1-dimensional non-power-of-2 Fourier transform using Chirp-Z Transform
94
+ *
95
+ * @param {Array} arr The array
96
+ * @return {Array} resulting array
97
+ */
98
+ function _czt(arr) {
99
+ var n = arr.length;
100
+ var w = exp(divideScalar(multiplyScalar(-1, multiplyScalar(I, tau)), n));
101
+ var chirp = [];
102
+ for (var i = 1 - n; i < n; i++) {
103
+ chirp.push(pow(w, divideScalar(pow(i, 2), 2)));
104
+ }
105
+ var N2 = pow(2, ceil(log2(n + n - 1)));
106
+ var xp = [].concat((0, _toConsumableArray2["default"])(new Array(n).fill(0).map(function (_, i) {
107
+ return multiplyScalar(arr[i], chirp[n - 1 + i]);
108
+ })), (0, _toConsumableArray2["default"])(new Array(N2 - n).fill(0)));
109
+ var ichirp = [].concat((0, _toConsumableArray2["default"])(new Array(n + n - 1).fill(0).map(function (_, i) {
110
+ return divideScalar(1, chirp[i]);
111
+ })), (0, _toConsumableArray2["default"])(new Array(N2 - (n + n - 1)).fill(0)));
112
+ var fftXp = _fft(xp);
113
+ var fftIchirp = _fft(ichirp);
114
+ var fftProduct = new Array(N2).fill(0).map(function (_, i) {
115
+ return multiplyScalar(fftXp[i], fftIchirp[i]);
116
+ });
117
+ var ifftProduct = dotDivide(conj(_ndFft(conj(fftProduct))), N2);
118
+ var ret = [];
119
+ for (var _i = n - 1; _i < n + n - 1; _i++) {
120
+ ret.push(multiplyScalar(ifftProduct[_i], chirp[_i]));
121
+ }
122
+ return ret;
123
+ }
88
124
  /**
89
125
  * Perform an 1-dimensional Fourier transform
90
126
  *
@@ -107,8 +143,11 @@ var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
107
143
  ret[k + len / 2] = addScalar(p, multiplyScalar(-1, q));
108
144
  }
109
145
  return ret;
146
+ } else {
147
+ // use chirp-z transform for non-power-of-2 FFT
148
+ return _czt(arr);
110
149
  }
111
- throw new Error('Can only calculate FFT of power-of-two size');
150
+ // throw new Error('Can only calculate FFT of power-of-two size')
112
151
  }
113
152
  });
114
153
  exports.createFft = createFft;
@@ -25,7 +25,7 @@ var createGetMatrixDataType = /* #__PURE__ */(0, _factory.factory)(name, depende
25
25
  *
26
26
  * const x = [ [1, 2, 3], [4, 5, 6] ]
27
27
  * const mixedX = [ [1, true], [2, 3] ]
28
- * const fractionX = [ [math.fraction(1, 3)], [math.fraction(1, 3] ]
28
+ * const fractionX = [ [math.fraction(1, 3)], [math.fraction(1, 3)] ]
29
29
  * const unitX = [ [math.unit('5cm')], [math.unit('5cm')] ]
30
30
  * const bigNumberX = [ [math.bignumber(1)], [math.bignumber(0)] ]
31
31
  * const sparse = math.sparse(x)
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createRow = void 0;
7
7
  var _factory = require("../../utils/factory.js");
8
+ var _is = require("../../utils/is.js");
8
9
  var _object = require("../../utils/object.js");
9
10
  var _array = require("../../utils/array.js");
10
11
  var name = 'row';
@@ -56,7 +57,8 @@ var createRow = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
56
57
  (0, _array.validateIndex)(row, value.size()[0]);
57
58
  var columnRange = range(0, value.size()[1]);
58
59
  var index = new Index(row, columnRange);
59
- return value.subset(index);
60
+ var result = value.subset(index);
61
+ return (0, _is.isMatrix)(result) ? result : matrix([[result]]);
60
62
  }
61
63
  });
62
64
  exports.createRow = createRow;
@@ -31,7 +31,7 @@ var createSubset = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
31
31
  *
32
32
  * // replace a subset
33
33
  * const e = []
34
- * const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]] and e = [[5, 0, 6]]
34
+ * const f = math.subset(e, math.index(0, [0, 2]), [5, 6]) // f = [[5, 6]]
35
35
  * const g = math.subset(f, math.index(1, 1), 7, 0) // g = [[5, 6], [0, 7]]
36
36
  *
37
37
  * // get submatrix using ranges
@@ -13,7 +13,7 @@ var _matAlgo05xSfSf = require("../../type/matrix/utils/matAlgo05xSfSf.js");
13
13
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
14
14
  var _compareUnits = require("./compareUnits.js");
15
15
  var name = 'compare';
16
- var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'BigNumber', 'Fraction', 'DenseMatrix'];
16
+ var dependencies = ['typed', 'config', 'matrix', 'equalScalar', 'BigNumber', 'Fraction', 'DenseMatrix', 'concat'];
17
17
  var createCompare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
18
18
  var typed = _ref.typed,
19
19
  config = _ref.config,
@@ -21,7 +21,8 @@ var createCompare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
21
21
  matrix = _ref.matrix,
22
22
  BigNumber = _ref.BigNumber,
23
23
  Fraction = _ref.Fraction,
24
- DenseMatrix = _ref.DenseMatrix;
24
+ DenseMatrix = _ref.DenseMatrix,
25
+ concat = _ref.concat;
25
26
  var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
26
27
  typed: typed
27
28
  });
@@ -35,7 +36,8 @@ var createCompare = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
35
36
  });
36
37
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
37
38
  typed: typed,
38
- matrix: matrix
39
+ matrix: matrix,
40
+ concat: concat
39
41
  });
40
42
  var compareUnits = (0, _compareUnits.createCompareUnits)({
41
43
  typed: typed
@@ -8,14 +8,16 @@ var _string = require("../../utils/string.js");
8
8
  var _factory = require("../../utils/factory.js");
9
9
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
10
10
  var name = 'compareText';
11
- var dependencies = ['typed', 'matrix'];
11
+ var dependencies = ['typed', 'matrix', 'concat'];
12
12
  _string.compareText.signature = 'any, any';
13
13
  var createCompareText = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
14
14
  var typed = _ref.typed,
15
- matrix = _ref.matrix;
15
+ matrix = _ref.matrix,
16
+ concat = _ref.concat;
16
17
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
17
18
  typed: typed,
18
- matrix: matrix
19
+ matrix: matrix,
20
+ concat: concat
19
21
  });
20
22
 
21
23
  /**
@@ -10,12 +10,13 @@ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
10
10
  var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
11
11
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
12
12
  var name = 'equal';
13
- var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix'];
13
+ var dependencies = ['typed', 'matrix', 'equalScalar', 'DenseMatrix', 'concat'];
14
14
  var createEqual = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
15
15
  var typed = _ref.typed,
16
16
  matrix = _ref.matrix,
17
17
  equalScalar = _ref.equalScalar,
18
- DenseMatrix = _ref.DenseMatrix;
18
+ DenseMatrix = _ref.DenseMatrix,
19
+ concat = _ref.concat;
19
20
  var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
20
21
  typed: typed
21
22
  });
@@ -29,7 +30,8 @@ var createEqual = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
29
30
  });
30
31
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
31
32
  typed: typed,
32
- matrix: matrix
33
+ matrix: matrix,
34
+ concat: concat
33
35
  });
34
36
 
35
37
  /**
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
13
13
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
14
14
  var _compareUnits = require("./compareUnits.js");
15
15
  var name = 'larger';
16
- var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
16
+ var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
17
17
  var createLarger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
18
18
  var typed = _ref.typed,
19
19
  config = _ref.config,
20
20
  matrix = _ref.matrix,
21
- DenseMatrix = _ref.DenseMatrix;
21
+ DenseMatrix = _ref.DenseMatrix,
22
+ concat = _ref.concat;
22
23
  var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
23
24
  typed: typed
24
25
  });
@@ -32,7 +33,8 @@ var createLarger = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
32
33
  });
33
34
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
34
35
  typed: typed,
35
- matrix: matrix
36
+ matrix: matrix,
37
+ concat: concat
36
38
  });
37
39
  var compareUnits = (0, _compareUnits.createCompareUnits)({
38
40
  typed: typed
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
13
13
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
14
14
  var _compareUnits = require("./compareUnits.js");
15
15
  var name = 'largerEq';
16
- var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
16
+ var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
17
17
  var createLargerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
18
18
  var typed = _ref.typed,
19
19
  config = _ref.config,
20
20
  matrix = _ref.matrix,
21
- DenseMatrix = _ref.DenseMatrix;
21
+ DenseMatrix = _ref.DenseMatrix,
22
+ concat = _ref.concat;
22
23
  var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
23
24
  typed: typed
24
25
  });
@@ -32,7 +33,8 @@ var createLargerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fu
32
33
  });
33
34
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
34
35
  typed: typed,
35
- matrix: matrix
36
+ matrix: matrix,
37
+ concat: concat
36
38
  });
37
39
  var compareUnits = (0, _compareUnits.createCompareUnits)({
38
40
  typed: typed
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
13
13
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
14
14
  var _compareUnits = require("./compareUnits.js");
15
15
  var name = 'smaller';
16
- var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
16
+ var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
17
17
  var createSmaller = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
18
18
  var typed = _ref.typed,
19
19
  config = _ref.config,
20
20
  matrix = _ref.matrix,
21
- DenseMatrix = _ref.DenseMatrix;
21
+ DenseMatrix = _ref.DenseMatrix,
22
+ concat = _ref.concat;
22
23
  var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
23
24
  typed: typed
24
25
  });
@@ -32,7 +33,8 @@ var createSmaller = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
32
33
  });
33
34
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
34
35
  typed: typed,
35
- matrix: matrix
36
+ matrix: matrix,
37
+ concat: concat
36
38
  });
37
39
  var compareUnits = (0, _compareUnits.createCompareUnits)({
38
40
  typed: typed
@@ -13,12 +13,13 @@ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
13
13
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
14
14
  var _compareUnits = require("./compareUnits.js");
15
15
  var name = 'smallerEq';
16
- var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix'];
16
+ var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat'];
17
17
  var createSmallerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
18
18
  var typed = _ref.typed,
19
19
  config = _ref.config,
20
20
  matrix = _ref.matrix,
21
- DenseMatrix = _ref.DenseMatrix;
21
+ DenseMatrix = _ref.DenseMatrix,
22
+ concat = _ref.concat;
22
23
  var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
23
24
  typed: typed
24
25
  });
@@ -32,7 +33,8 @@ var createSmallerEq = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
32
33
  });
33
34
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
34
35
  typed: typed,
35
- matrix: matrix
36
+ matrix: matrix,
37
+ concat: concat
36
38
  });
37
39
  var compareUnits = (0, _compareUnits.createCompareUnits)({
38
40
  typed: typed
@@ -10,13 +10,14 @@ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
10
10
  var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
11
11
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
12
12
  var name = 'unequal';
13
- var dependencies = ['typed', 'config', 'equalScalar', 'matrix', 'DenseMatrix'];
13
+ var dependencies = ['typed', 'config', 'equalScalar', 'matrix', 'DenseMatrix', 'concat'];
14
14
  var createUnequal = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
15
15
  var typed = _ref.typed,
16
16
  config = _ref.config,
17
17
  equalScalar = _ref.equalScalar,
18
18
  matrix = _ref.matrix,
19
- DenseMatrix = _ref.DenseMatrix;
19
+ DenseMatrix = _ref.DenseMatrix,
20
+ concat = _ref.concat;
20
21
  var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
21
22
  typed: typed
22
23
  });
@@ -30,7 +31,8 @@ var createUnequal = /* #__PURE__ */(0, _factory.factory)(name, dependencies, fun
30
31
  });
31
32
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
32
33
  typed: typed,
33
- matrix: matrix
34
+ matrix: matrix,
35
+ concat: concat
34
36
  });
35
37
 
36
38
  /**
@@ -33,7 +33,7 @@ var createMax = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
33
33
  *
34
34
  * // maximum over a specified dimension (zero-based)
35
35
  * math.max([[2, 5], [4, 3], [1, 7]], 0) // returns [4, 7]
36
- * math.max([[2, 5], [4, 3]], [1, 7], 1) // returns [5, 4, 7]
36
+ * math.max([[2, 5], [4, 3], [1, 7]], 1) // returns [5, 4, 7]
37
37
  *
38
38
  * math.max(2.7, 7.1, -4.5, 2.0, 4.1) // returns 7.1
39
39
  * math.min(2.7, 7.1, -4.5, 2.0, 4.1) // returns -4.5
@@ -110,11 +110,12 @@ var createQuantileSeq = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
110
110
  return probArr;
111
111
  }
112
112
  }
113
- if (Array.isArray(probOrN)) {
113
+ if ((0, _is.isCollection)(probOrN)) {
114
114
  // quantileSeq([a, b, c, d, ...], [prob1, prob2, ...][,sorted])
115
- probArr = new Array(probOrN.length);
115
+ var probOrNArr = probOrN.valueOf();
116
+ probArr = new Array(probOrNArr.length);
116
117
  for (var _i2 = 0; _i2 < probArr.length; ++_i2) {
117
- var currProb = probOrN[_i2];
118
+ var currProb = probOrNArr[_i2];
118
119
  if ((0, _is.isNumber)(currProb)) {
119
120
  if (currProb < 0 || currProb > 1) {
120
121
  throw new Error('Probability must be between 0 and 1, inclusive');
@@ -12,13 +12,14 @@ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
12
12
  var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
13
13
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
14
14
  var name = 'atan2';
15
- var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber', 'DenseMatrix'];
15
+ var dependencies = ['typed', 'matrix', 'equalScalar', 'BigNumber', 'DenseMatrix', 'concat'];
16
16
  var createAtan2 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
17
17
  var typed = _ref.typed,
18
18
  matrix = _ref.matrix,
19
19
  equalScalar = _ref.equalScalar,
20
20
  BigNumber = _ref.BigNumber,
21
- DenseMatrix = _ref.DenseMatrix;
21
+ DenseMatrix = _ref.DenseMatrix,
22
+ concat = _ref.concat;
22
23
  var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
23
24
  typed: typed,
24
25
  equalScalar: equalScalar
@@ -40,7 +41,8 @@ var createAtan2 = /* #__PURE__ */(0, _factory.factory)(name, dependencies, funct
40
41
  });
41
42
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
42
43
  typed: typed,
43
- matrix: matrix
44
+ matrix: matrix,
45
+ concat: concat
44
46
  });
45
47
 
46
48
  /**
@@ -7,13 +7,15 @@ exports.createTo = void 0;
7
7
  var _factory = require("../../utils/factory.js");
8
8
  var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
9
9
  var name = 'to';
10
- var dependencies = ['typed', 'matrix'];
10
+ var dependencies = ['typed', 'matrix', 'concat'];
11
11
  var createTo = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
12
12
  var typed = _ref.typed,
13
- matrix = _ref.matrix;
13
+ matrix = _ref.matrix,
14
+ concat = _ref.concat;
14
15
  var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
15
16
  typed: typed,
16
- matrix: matrix
17
+ matrix: matrix,
18
+ concat: concat
17
19
  });
18
20
 
19
21
  /**
@@ -27,9 +29,9 @@ var createTo = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function
27
29
  *
28
30
  * Examples:
29
31
  *
30
- * math.to(math.unit('2 inch'), 'cm') // returns Unit 5.08 cm
31
- * math.to(math.unit('2 inch'), math.unit(null, 'cm')) // returns Unit 5.08 cm
32
- * math.to(math.unit(16, 'bytes'), 'bits') // returns Unit 128 bits
32
+ * math.to(math.unit('2 inch'), 'cm') // returns Unit 5.08 cm
33
+ * math.to(math.unit('2 inch'), math.unit('cm')) // returns Unit 5.08 cm
34
+ * math.to(math.unit(16, 'bytes'), 'bits') // returns Unit 128 bits
33
35
  *
34
36
  * See also:
35
37
  *
package/lib/cjs/header.js CHANGED
@@ -6,8 +6,8 @@
6
6
  * It features real and complex numbers, units, matrices, a large set of
7
7
  * mathematical functions, and a flexible expression parser.
8
8
  *
9
- * @version 11.5.1
10
- * @date 2023-01-31
9
+ * @version 11.6.0
10
+ * @date 2023-02-24
11
11
  *
12
12
  * @license
13
13
  * Copyright (C) 2013-2023 Jos de Jong <wjosdejong@gmail.com>
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createBroadcast = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _factory = require("../../../utils/factory.js");
10
+ var name = 'broadcast';
11
+ var dependancies = ['concat'];
12
+ var createBroadcast = /* #__PURE__ */(0, _factory.factory)(name, dependancies, function (_ref) {
13
+ var concat = _ref.concat;
14
+ /**
15
+ * Broadcasts two matrices, and return both in an array
16
+ * It checks if it's possible with broadcasting rules
17
+ *
18
+ * @param {Matrix} A First Matrix
19
+ * @param {Matrix} B Second Matrix
20
+ *
21
+ * @return {Matrix[]} [ broadcastedA, broadcastedB ]
22
+ */
23
+ return function (A, B) {
24
+ var N = Math.max(A._size.length, B._size.length); // max number of dims
25
+ if (A._size.length === B._size.length) {
26
+ if (A._size.every(function (dim, i) {
27
+ return dim === B._size[i];
28
+ })) {
29
+ // If matrices have the same size return them
30
+ return [A, B];
31
+ }
32
+ }
33
+ var sizeA = _padLeft(A._size, N, 0); // pad to the left to align dimensions to the right
34
+ var sizeB = _padLeft(B._size, N, 0); // pad to the left to align dimensions to the right
35
+
36
+ // calculate the max dimensions
37
+ var sizeMax = [];
38
+ for (var dim = 0; dim < N; dim++) {
39
+ sizeMax[dim] = Math.max(sizeA[dim], sizeB[dim]);
40
+ }
41
+
42
+ // check if the broadcasting rules applyes for both matrices
43
+ for (var _dim = 0; _dim < N; _dim++) {
44
+ _checkRules(sizeA, sizeMax, _dim);
45
+ _checkRules(sizeB, sizeMax, _dim);
46
+ }
47
+
48
+ // reshape A or B if needed to make them ready for concat
49
+ var AA = A.clone();
50
+ var BB = B.clone();
51
+ if (AA._size.length < N) {
52
+ AA.reshape(_padLeft(AA._size, N, 1));
53
+ } else if (BB._size.length < N) {
54
+ BB.reshape(_padLeft(BB._size, N, 1));
55
+ }
56
+
57
+ // stretches the matrices on each dimension to make them the same size
58
+ for (var _dim2 = 0; _dim2 < N; _dim2++) {
59
+ if (AA._size[_dim2] < sizeMax[_dim2]) {
60
+ AA = _stretch(AA, sizeMax[_dim2], _dim2);
61
+ }
62
+ if (BB._size[_dim2] < sizeMax[_dim2]) {
63
+ BB = _stretch(BB, sizeMax[_dim2], _dim2);
64
+ }
65
+ }
66
+
67
+ // return the array with the two broadcasted matrices
68
+ return [AA, BB];
69
+ };
70
+ function _padLeft(shape, N, filler) {
71
+ // pads an array of dimensions with numbers to the left, unitl the number of dimensions is N
72
+ return [].concat((0, _toConsumableArray2["default"])(Array(N - shape.length).fill(filler)), (0, _toConsumableArray2["default"])(shape));
73
+ }
74
+ function _stretch(arrayToStretch, sizeToStretch, dimToStretch) {
75
+ // stretches a matrix up to a certain size in a certain dimension
76
+ return concat.apply(void 0, (0, _toConsumableArray2["default"])(Array(sizeToStretch).fill(arrayToStretch)).concat([dimToStretch]));
77
+ }
78
+ function _checkRules(shape, sizeMax, dim) {
79
+ if (shape[dim] < sizeMax[dim] & shape[dim] > 1) {
80
+ throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(shape, ") not possible to broadcast dimension ").concat(dim, " with size ").concat(shape[dim], " to size ").concat(sizeMax[dim]));
81
+ }
82
+ }
83
+ });
84
+ exports.createBroadcast = createBroadcast;