mathjs 13.0.3 → 13.1.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 (210) hide show
  1. package/HISTORY.md +17 -1
  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/core/create.js +12 -9
  6. package/lib/cjs/core/function/typed.js +3 -4
  7. package/lib/cjs/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
  8. package/lib/cjs/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
  9. package/lib/cjs/entry/impureFunctionsAny.generated.js +2 -2
  10. package/lib/cjs/entry/pureFunctionsAny.generated.js +6 -8
  11. package/lib/cjs/entry/typeChecks.js +18 -0
  12. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -2
  13. package/lib/cjs/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
  14. package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +1 -1
  15. package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +1 -1
  16. package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +1 -1
  17. package/lib/cjs/expression/embeddedDocs/function/matrix/kron.js +1 -1
  18. package/lib/cjs/expression/embeddedDocs/function/matrix/map.js +3 -3
  19. package/lib/cjs/expression/embeddedDocs/function/special/zeta.js +1 -1
  20. package/lib/cjs/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
  21. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
  22. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
  23. package/lib/cjs/expression/embeddedDocs/function/utils/clone.js +1 -1
  24. package/lib/cjs/expression/function/evaluate.js +5 -0
  25. package/lib/cjs/expression/node/FunctionNode.js +1 -1
  26. package/lib/cjs/expression/transform/filter.transform.js +2 -2
  27. package/lib/cjs/expression/transform/map.transform.js +104 -37
  28. package/lib/cjs/expression/transform/utils/dimToZeroBase.js +23 -0
  29. package/lib/cjs/expression/transform/utils/lastDimToZeroBase.js +3 -4
  30. package/lib/cjs/function/arithmetic/hypot.js +3 -3
  31. package/lib/cjs/function/matrix/apply.js +1 -1
  32. package/lib/cjs/function/matrix/fft.js +3 -3
  33. package/lib/cjs/function/matrix/filter.js +2 -2
  34. package/lib/cjs/function/matrix/flatten.js +5 -6
  35. package/lib/cjs/function/matrix/ifft.js +2 -2
  36. package/lib/cjs/function/matrix/kron.js +4 -4
  37. package/lib/cjs/function/matrix/map.js +109 -18
  38. package/lib/cjs/function/matrix/size.js +7 -7
  39. package/lib/cjs/function/matrix/squeeze.js +3 -4
  40. package/lib/cjs/function/probability/random.js +1 -1
  41. package/lib/cjs/function/probability/randomInt.js +1 -1
  42. package/lib/cjs/function/statistics/cumsum.js +2 -2
  43. package/lib/cjs/function/trigonometry/acoth.js +2 -2
  44. package/lib/cjs/function/trigonometry/acsch.js +2 -2
  45. package/lib/cjs/header.js +2 -2
  46. package/lib/cjs/type/matrix/DenseMatrix.js +3 -28
  47. package/lib/cjs/type/matrix/SparseMatrix.js +5 -8
  48. package/lib/cjs/utils/array.js +27 -0
  49. package/lib/cjs/utils/collection.js +1 -1
  50. package/lib/cjs/utils/function.js +0 -14
  51. package/lib/cjs/utils/is.js +27 -0
  52. package/lib/cjs/utils/map.js +2 -20
  53. package/lib/cjs/version.js +1 -1
  54. package/lib/esm/core/create.js +9 -6
  55. package/lib/esm/core/function/typed.js +2 -3
  56. package/lib/esm/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
  57. package/lib/esm/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
  58. package/lib/esm/entry/impureFunctionsAny.generated.js +3 -3
  59. package/lib/esm/entry/pureFunctionsAny.generated.js +7 -9
  60. package/lib/esm/entry/typeChecks.js +1 -1
  61. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -2
  62. package/lib/esm/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
  63. package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
  64. package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +1 -1
  65. package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +1 -1
  66. package/lib/esm/expression/embeddedDocs/function/matrix/kron.js +1 -1
  67. package/lib/esm/expression/embeddedDocs/function/matrix/map.js +3 -3
  68. package/lib/esm/expression/embeddedDocs/function/special/zeta.js +1 -1
  69. package/lib/esm/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
  70. package/lib/esm/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
  71. package/lib/esm/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
  72. package/lib/esm/expression/embeddedDocs/function/utils/clone.js +1 -1
  73. package/lib/esm/expression/function/compile.js +1 -1
  74. package/lib/esm/expression/function/evaluate.js +8 -3
  75. package/lib/esm/expression/node/FunctionNode.js +1 -1
  76. package/lib/esm/expression/parse.js +2 -2
  77. package/lib/esm/expression/transform/filter.transform.js +4 -4
  78. package/lib/esm/expression/transform/forEach.transform.js +4 -4
  79. package/lib/esm/expression/transform/map.transform.js +104 -37
  80. package/lib/esm/expression/transform/print.transform.js +2 -2
  81. package/lib/esm/expression/transform/utils/dimToZeroBase.js +16 -0
  82. package/lib/esm/expression/transform/utils/lastDimToZeroBase.js +4 -6
  83. package/lib/esm/function/algebra/decomposition/slu.js +1 -1
  84. package/lib/esm/function/algebra/derivative.js +15 -15
  85. package/lib/esm/function/algebra/lyap.js +4 -4
  86. package/lib/esm/function/algebra/simplify/util.js +3 -3
  87. package/lib/esm/function/algebra/simplifyConstant.js +9 -9
  88. package/lib/esm/function/algebra/solver/lsolve.js +3 -3
  89. package/lib/esm/function/algebra/solver/lsolveAll.js +3 -3
  90. package/lib/esm/function/algebra/solver/lusolve.js +5 -5
  91. package/lib/esm/function/algebra/solver/usolve.js +3 -3
  92. package/lib/esm/function/algebra/solver/usolveAll.js +3 -3
  93. package/lib/esm/function/algebra/sylvester.js +7 -7
  94. package/lib/esm/function/arithmetic/addScalar.js +4 -4
  95. package/lib/esm/function/arithmetic/ceil.js +6 -6
  96. package/lib/esm/function/arithmetic/divide.js +5 -5
  97. package/lib/esm/function/arithmetic/divideScalar.js +5 -5
  98. package/lib/esm/function/arithmetic/fix.js +5 -5
  99. package/lib/esm/function/arithmetic/floor.js +6 -6
  100. package/lib/esm/function/arithmetic/hypot.js +3 -3
  101. package/lib/esm/function/arithmetic/mod.js +3 -3
  102. package/lib/esm/function/arithmetic/multiply.js +7 -7
  103. package/lib/esm/function/arithmetic/multiplyScalar.js +4 -4
  104. package/lib/esm/function/arithmetic/norm.js +2 -2
  105. package/lib/esm/function/arithmetic/pow.js +6 -6
  106. package/lib/esm/function/arithmetic/round.js +7 -7
  107. package/lib/esm/function/arithmetic/subtractScalar.js +4 -4
  108. package/lib/esm/function/arithmetic/xgcd.js +1 -1
  109. package/lib/esm/function/combinatorics/bellNumbers.js +1 -1
  110. package/lib/esm/function/combinatorics/catalan.js +1 -1
  111. package/lib/esm/function/combinatorics/composition.js +1 -1
  112. package/lib/esm/function/combinatorics/stirlingS2.js +1 -1
  113. package/lib/esm/function/geometry/distance.js +4 -4
  114. package/lib/esm/function/geometry/intersect.js +2 -2
  115. package/lib/esm/function/logical/and.js +2 -2
  116. package/lib/esm/function/logical/or.js +2 -2
  117. package/lib/esm/function/logical/xor.js +2 -2
  118. package/lib/esm/function/matrix/apply.js +2 -2
  119. package/lib/esm/function/matrix/column.js +1 -1
  120. package/lib/esm/function/matrix/concat.js +1 -1
  121. package/lib/esm/function/matrix/count.js +1 -1
  122. package/lib/esm/function/matrix/cross.js +3 -3
  123. package/lib/esm/function/matrix/diag.js +10 -10
  124. package/lib/esm/function/matrix/diff.js +2 -2
  125. package/lib/esm/function/matrix/eigs.js +3 -3
  126. package/lib/esm/function/matrix/fft.js +3 -3
  127. package/lib/esm/function/matrix/filter.js +4 -4
  128. package/lib/esm/function/matrix/flatten.js +5 -6
  129. package/lib/esm/function/matrix/forEach.js +4 -4
  130. package/lib/esm/function/matrix/identity.js +6 -6
  131. package/lib/esm/function/matrix/ifft.js +3 -3
  132. package/lib/esm/function/matrix/inv.js +1 -1
  133. package/lib/esm/function/matrix/kron.js +7 -7
  134. package/lib/esm/function/matrix/map.js +110 -19
  135. package/lib/esm/function/matrix/matrixFromFunction.js +6 -6
  136. package/lib/esm/function/matrix/ones.js +2 -2
  137. package/lib/esm/function/matrix/partitionSelect.js +2 -2
  138. package/lib/esm/function/matrix/pinv.js +1 -1
  139. package/lib/esm/function/matrix/range.js +10 -10
  140. package/lib/esm/function/matrix/reshape.js +2 -2
  141. package/lib/esm/function/matrix/rotate.js +4 -4
  142. package/lib/esm/function/matrix/rotationMatrix.js +6 -6
  143. package/lib/esm/function/matrix/row.js +1 -1
  144. package/lib/esm/function/matrix/size.js +8 -8
  145. package/lib/esm/function/matrix/sort.js +4 -4
  146. package/lib/esm/function/matrix/sqrtm.js +1 -1
  147. package/lib/esm/function/matrix/squeeze.js +3 -4
  148. package/lib/esm/function/matrix/subset.js +2 -2
  149. package/lib/esm/function/matrix/zeros.js +2 -2
  150. package/lib/esm/function/probability/combinations.js +1 -1
  151. package/lib/esm/function/probability/combinationsWithRep.js +2 -2
  152. package/lib/esm/function/probability/kldivergence.js +4 -4
  153. package/lib/esm/function/probability/multinomial.js +1 -1
  154. package/lib/esm/function/probability/permutations.js +2 -2
  155. package/lib/esm/function/probability/pickRandom.js +6 -6
  156. package/lib/esm/function/probability/random.js +1 -1
  157. package/lib/esm/function/probability/randomInt.js +1 -1
  158. package/lib/esm/function/relational/compare.js +6 -6
  159. package/lib/esm/function/relational/deepEqual.js +1 -1
  160. package/lib/esm/function/relational/equal.js +1 -1
  161. package/lib/esm/function/relational/equalScalar.js +7 -7
  162. package/lib/esm/function/relational/equalText.js +1 -1
  163. package/lib/esm/function/relational/larger.js +3 -3
  164. package/lib/esm/function/relational/largerEq.js +4 -4
  165. package/lib/esm/function/relational/smaller.js +3 -3
  166. package/lib/esm/function/relational/smallerEq.js +3 -3
  167. package/lib/esm/function/relational/unequal.js +1 -1
  168. package/lib/esm/function/set/setCartesian.js +1 -1
  169. package/lib/esm/function/set/setDifference.js +1 -1
  170. package/lib/esm/function/set/setDistinct.js +1 -1
  171. package/lib/esm/function/set/setIntersect.js +1 -1
  172. package/lib/esm/function/set/setIsSubset.js +1 -1
  173. package/lib/esm/function/set/setMultiplicity.js +1 -1
  174. package/lib/esm/function/set/setPowerset.js +1 -1
  175. package/lib/esm/function/set/setSize.js +2 -2
  176. package/lib/esm/function/set/setSymDifference.js +1 -1
  177. package/lib/esm/function/set/setUnion.js +1 -1
  178. package/lib/esm/function/signal/freqz.js +6 -6
  179. package/lib/esm/function/statistics/corr.js +2 -2
  180. package/lib/esm/function/statistics/cumsum.js +3 -3
  181. package/lib/esm/function/statistics/max.js +1 -1
  182. package/lib/esm/function/statistics/median.js +3 -3
  183. package/lib/esm/function/statistics/min.js +1 -1
  184. package/lib/esm/function/statistics/prod.js +1 -1
  185. package/lib/esm/function/statistics/variance.js +2 -2
  186. package/lib/esm/function/string/bin.js +2 -2
  187. package/lib/esm/function/string/hex.js +2 -2
  188. package/lib/esm/function/string/oct.js +2 -2
  189. package/lib/esm/function/trigonometry/acoth.js +2 -2
  190. package/lib/esm/function/trigonometry/acsch.js +2 -2
  191. package/lib/esm/type/bigint.js +1 -1
  192. package/lib/esm/type/complex/function/complex.js +2 -2
  193. package/lib/esm/type/fraction/function/fraction.js +1 -1
  194. package/lib/esm/type/matrix/DenseMatrix.js +13 -38
  195. package/lib/esm/type/matrix/SparseMatrix.js +5 -8
  196. package/lib/esm/type/matrix/function/index.js +1 -1
  197. package/lib/esm/type/matrix/function/matrix.js +1 -1
  198. package/lib/esm/type/matrix/function/sparse.js +2 -2
  199. package/lib/esm/type/number.js +1 -1
  200. package/lib/esm/type/unit/function/createUnit.js +3 -3
  201. package/lib/esm/type/unit/function/splitUnit.js +1 -1
  202. package/lib/esm/type/unit/function/unit.js +2 -2
  203. package/lib/esm/utils/array.js +26 -0
  204. package/lib/esm/utils/collection.js +1 -1
  205. package/lib/esm/utils/function.js +0 -13
  206. package/lib/esm/utils/is.js +24 -0
  207. package/lib/esm/utils/map.js +2 -19
  208. package/lib/esm/version.js +1 -1
  209. package/package.json +13 -13
  210. package/types/index.d.ts +57 -18
@@ -57,28 +57,28 @@ export var createRotationMatrix = /* #__PURE__ */factory(name, dependencies, _re
57
57
  string: function string(format) {
58
58
  return matrix(format);
59
59
  },
60
- 'number | BigNumber | Complex | Unit': function numberBigNumberComplexUnit(theta) {
60
+ 'number | BigNumber | Complex | Unit': function number__BigNumber__Complex__Unit(theta) {
61
61
  return _rotationMatrix2x2(theta, config.matrix === 'Matrix' ? 'dense' : undefined);
62
62
  },
63
- 'number | BigNumber | Complex | Unit, string': function numberBigNumberComplexUnitString(theta, format) {
63
+ 'number | BigNumber | Complex | Unit, string': function number__BigNumber__Complex__Unit_string(theta, format) {
64
64
  return _rotationMatrix2x2(theta, format);
65
65
  },
66
- 'number | BigNumber | Complex | Unit, Array': function numberBigNumberComplexUnitArray(theta, v) {
66
+ 'number | BigNumber | Complex | Unit, Array': function number__BigNumber__Complex__Unit_Array(theta, v) {
67
67
  var matrixV = matrix(v);
68
68
  _validateVector(matrixV);
69
69
  return _rotationMatrix3x3(theta, matrixV, undefined);
70
70
  },
71
- 'number | BigNumber | Complex | Unit, Matrix': function numberBigNumberComplexUnitMatrix(theta, v) {
71
+ 'number | BigNumber | Complex | Unit, Matrix': function number__BigNumber__Complex__Unit_Matrix(theta, v) {
72
72
  _validateVector(v);
73
73
  var storageType = v.storage() || (config.matrix === 'Matrix' ? 'dense' : undefined);
74
74
  return _rotationMatrix3x3(theta, v, storageType);
75
75
  },
76
- 'number | BigNumber | Complex | Unit, Array, string': function numberBigNumberComplexUnitArrayString(theta, v, format) {
76
+ 'number | BigNumber | Complex | Unit, Array, string': function number__BigNumber__Complex__Unit_Array_string(theta, v, format) {
77
77
  var matrixV = matrix(v);
78
78
  _validateVector(matrixV);
79
79
  return _rotationMatrix3x3(theta, matrixV, format);
80
80
  },
81
- 'number | BigNumber | Complex | Unit, Matrix, string': function numberBigNumberComplexUnitMatrixString(theta, v, format) {
81
+ 'number | BigNumber | Complex | Unit, Matrix, string': function number__BigNumber__Complex__Unit_Matrix_string(theta, v, format) {
82
82
  _validateVector(v);
83
83
  return _rotationMatrix3x3(theta, v, format);
84
84
  }
@@ -34,7 +34,7 @@ export var createRow = /* #__PURE__ */factory(name, dependencies, _ref => {
34
34
  */
35
35
  return typed(name, {
36
36
  'Matrix, number': _row,
37
- 'Array, number': function ArrayNumber(value, row) {
37
+ 'Array, number': function Array_number(value, row) {
38
38
  return _row(matrix(clone(value)), row).valueOf();
39
39
  }
40
40
  });
@@ -18,12 +18,12 @@ export var createSize = /* #__PURE__ */factory(name, dependencies, _ref => {
18
18
  *
19
19
  * Examples:
20
20
  *
21
- * math.size(2.3) // returns []
22
- * math.size('hello world') // returns [11]
21
+ * math.size(2.3) // returns []
22
+ * math.size('hello world') // returns [11]
23
23
  *
24
24
  * const A = [[1, 2, 3], [4, 5, 6]]
25
- * math.size(A) // returns [2, 3]
26
- * math.size(math.range(1,6)) // returns [5]
25
+ * math.size(A) // returns [2, 3]
26
+ * math.size(math.range(1,6).toArray()) // returns [5]
27
27
  *
28
28
  * See also:
29
29
  *
@@ -34,15 +34,15 @@ export var createSize = /* #__PURE__ */factory(name, dependencies, _ref => {
34
34
  */
35
35
  return typed(name, {
36
36
  Matrix: function Matrix(x) {
37
- return x.create(x.size());
37
+ return x.create(x.size(), 'number');
38
38
  },
39
39
  Array: arraySize,
40
40
  string: function string(x) {
41
- return config.matrix === 'Array' ? [x.length] : matrix([x.length]);
41
+ return config.matrix === 'Array' ? [x.length] : matrix([x.length], 'dense', 'number');
42
42
  },
43
- 'number | Complex | BigNumber | Unit | boolean | null': function numberComplexBigNumberUnitBooleanNull(x) {
43
+ 'number | Complex | BigNumber | Unit | boolean | null': function number__Complex__BigNumber__Unit__boolean__null(x) {
44
44
  // scalar
45
- return config.matrix === 'Array' ? [] : matrix ? matrix([]) : noMatrix();
45
+ return config.matrix === 'Array' ? [] : matrix ? matrix([], 'dense', 'number') : noMatrix();
46
46
  }
47
47
  });
48
48
  });
@@ -52,19 +52,19 @@ export var createSort = /* #__PURE__ */factory(name, dependencies, _ref => {
52
52
  _matrixIsVector(x);
53
53
  return matrix(x.toArray().sort(compareAsc), x.storage());
54
54
  },
55
- 'Array, function': function ArrayFunction(x, _comparator) {
55
+ 'Array, function': function Array_function(x, _comparator) {
56
56
  _arrayIsVector(x);
57
57
  return x.sort(_comparator);
58
58
  },
59
- 'Matrix, function': function MatrixFunction(x, _comparator) {
59
+ 'Matrix, function': function Matrix_function(x, _comparator) {
60
60
  _matrixIsVector(x);
61
61
  return matrix(x.toArray().sort(_comparator), x.storage());
62
62
  },
63
- 'Array, string': function ArrayString(x, order) {
63
+ 'Array, string': function Array_string(x, order) {
64
64
  _arrayIsVector(x);
65
65
  return x.sort(_comparator(order));
66
66
  },
67
- 'Matrix, string': function MatrixString(x, order) {
67
+ 'Matrix, string': function Matrix_string(x, order) {
68
68
  _matrixIsVector(x);
69
69
  return matrix(x.toArray().sort(_comparator(order)), x.storage());
70
70
  }
@@ -69,7 +69,7 @@ export var createSqrtm = /* #__PURE__ */factory(name, dependencies, _ref => {
69
69
  * @return {Array | Matrix} The principal square root of matrix `A`
70
70
  */
71
71
  return typed(name, {
72
- 'Array | Matrix': function ArrayMatrix(A) {
72
+ 'Array | Matrix': function Array__Matrix(A) {
73
73
  var size = isMatrix(A) ? A.size() : arraySize(A);
74
74
  switch (size.length) {
75
75
  case 1:
@@ -2,11 +2,10 @@ import { clone } from '../../utils/object.js';
2
2
  import { squeeze as arraySqueeze } from '../../utils/array.js';
3
3
  import { factory } from '../../utils/factory.js';
4
4
  var name = 'squeeze';
5
- var dependencies = ['typed', 'matrix'];
5
+ var dependencies = ['typed'];
6
6
  export var createSqueeze = /* #__PURE__ */factory(name, dependencies, _ref => {
7
7
  var {
8
- typed,
9
- matrix
8
+ typed
10
9
  } = _ref;
11
10
  /**
12
11
  * Squeeze a matrix, remove inner and outer singleton dimensions from a matrix.
@@ -44,7 +43,7 @@ export var createSqueeze = /* #__PURE__ */factory(name, dependencies, _ref => {
44
43
  Matrix: function Matrix(x) {
45
44
  var res = arraySqueeze(x.toArray());
46
45
  // FIXME: return the same type of matrix as the input
47
- return Array.isArray(res) ? matrix(res) : res;
46
+ return Array.isArray(res) ? x.create(res, x.datatype()) : res;
48
47
  },
49
48
  any: function any(x) {
50
49
  // scalar
@@ -62,7 +62,7 @@ export var createSubset = /* #__PURE__ */factory(name, dependencies, _ref => {
62
62
 
63
63
  return typed(name, {
64
64
  // get subset
65
- 'Matrix, Index': function MatrixIndex(value, index) {
65
+ 'Matrix, Index': function Matrix_Index(value, index) {
66
66
  if (isEmptyIndex(index)) {
67
67
  return matrix();
68
68
  }
@@ -78,7 +78,7 @@ export var createSubset = /* #__PURE__ */factory(name, dependencies, _ref => {
78
78
  'Object, Index': _getObjectProperty,
79
79
  'string, Index': _getSubstring,
80
80
  // set subset
81
- 'Matrix, Index, any, any': function MatrixIndexAnyAny(value, index, replacement, defaultValue) {
81
+ 'Matrix, Index, any, any': function Matrix_Index_any_any(value, index, replacement, defaultValue) {
82
82
  if (isEmptyIndex(index)) {
83
83
  return value;
84
84
  }
@@ -49,7 +49,7 @@ export var createZeros = /* #__PURE__ */factory(name, dependencies, _ref => {
49
49
  },
50
50
  // math.zeros(m, n, p, ..., format)
51
51
  // TODO: more accurate signature '...number | BigNumber, string' as soon as typed-function supports this
52
- '...number | BigNumber | string': function numberBigNumberString(size) {
52
+ '...number | BigNumber | string': function number__BigNumber__string(size) {
53
53
  var last = size[size.length - 1];
54
54
  if (typeof last === 'string') {
55
55
  var format = size.pop();
@@ -65,7 +65,7 @@ export var createZeros = /* #__PURE__ */factory(name, dependencies, _ref => {
65
65
  var format = size.storage();
66
66
  return _zeros(size.valueOf(), format);
67
67
  },
68
- 'Array | Matrix, string': function ArrayMatrixString(size, format) {
68
+ 'Array | Matrix, string': function Array__Matrix_string(size, format) {
69
69
  return _zeros(size.valueOf(), format);
70
70
  }
71
71
  });
@@ -31,7 +31,7 @@ export var createCombinations = /* #__PURE__ */factory(name, dependencies, _ref
31
31
  */
32
32
  return typed(name, {
33
33
  'number, number': combinationsNumber,
34
- 'BigNumber, BigNumber': function BigNumberBigNumber(n, k) {
34
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(n, k) {
35
35
  var BigNumber = n.constructor;
36
36
  var result, i;
37
37
  var nMinusk = n.minus(k);
@@ -31,7 +31,7 @@ export var createCombinationsWithRep = /* #__PURE__ */factory(name, dependencies
31
31
  * @return {number | BigNumber} Number of possible combinations with replacement.
32
32
  */
33
33
  return typed(name, {
34
- 'number, number': function numberNumber(n, k) {
34
+ 'number, number': function number_number(n, k) {
35
35
  if (!isInteger(n) || n < 0) {
36
36
  throw new TypeError('Positive integer value expected in function combinationsWithRep');
37
37
  }
@@ -48,7 +48,7 @@ export var createCombinationsWithRep = /* #__PURE__ */factory(name, dependencies
48
48
  var prodrange = product(k + 1, n + k - 1);
49
49
  return prodrange / product(1, n - 1);
50
50
  },
51
- 'BigNumber, BigNumber': function BigNumberBigNumber(n, k) {
51
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(n, k) {
52
52
  var BigNumber = n.constructor;
53
53
  var result, i;
54
54
  var one = new BigNumber(1);
@@ -30,16 +30,16 @@ export var createKldivergence = /* #__PURE__ */factory(name, dependencies, _ref
30
30
  * @return {number} Returns distance between q and p
31
31
  */
32
32
  return typed(name, {
33
- 'Array, Array': function ArrayArray(q, p) {
33
+ 'Array, Array': function Array_Array(q, p) {
34
34
  return _kldiv(matrix(q), matrix(p));
35
35
  },
36
- 'Matrix, Array': function MatrixArray(q, p) {
36
+ 'Matrix, Array': function Matrix_Array(q, p) {
37
37
  return _kldiv(q, matrix(p));
38
38
  },
39
- 'Array, Matrix': function ArrayMatrix(q, p) {
39
+ 'Array, Matrix': function Array_Matrix(q, p) {
40
40
  return _kldiv(matrix(q), p);
41
41
  },
42
- 'Matrix, Matrix': function MatrixMatrix(q, p) {
42
+ 'Matrix, Matrix': function Matrix_Matrix(q, p) {
43
43
  return _kldiv(q, p);
44
44
  }
45
45
  });
@@ -34,7 +34,7 @@ export var createMultinomial = /* #__PURE__ */factory(name, dependencies, _ref =
34
34
  * @return {Number | BigNumber} Multinomial coefficient.
35
35
  */
36
36
  return typed(name, {
37
- 'Array | Matrix': function ArrayMatrix(a) {
37
+ 'Array | Matrix': function Array__Matrix(a) {
38
38
  var sum = 0;
39
39
  var denom = 1;
40
40
  deepForEach(a, function (ai) {
@@ -35,7 +35,7 @@ export var createPermutations = /* #__PURE__ */factory(name, dependencies, _ref
35
35
  */
36
36
  return typed(name, {
37
37
  'number | BigNumber': factorial,
38
- 'number, number': function numberNumber(n, k) {
38
+ 'number, number': function number_number(n, k) {
39
39
  if (!isInteger(n) || n < 0) {
40
40
  throw new TypeError('Positive integer value expected in function permutations');
41
41
  }
@@ -48,7 +48,7 @@ export var createPermutations = /* #__PURE__ */factory(name, dependencies, _ref
48
48
  // Permute n objects, k at a time
49
49
  return product(n - k + 1, n);
50
50
  },
51
- 'BigNumber, BigNumber': function BigNumberBigNumber(n, k) {
51
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(n, k) {
52
52
  var result, i;
53
53
  if (!isPositiveInteger(n) || !isPositiveInteger(k)) {
54
54
  throw new TypeError('Positive integer value expected in function permutations');
@@ -56,29 +56,29 @@ export var createPickRandom = /* #__PURE__ */factory(name, dependencies, _ref =>
56
56
  * Returns an array with the configured number of elements when number is defined.
57
57
  */
58
58
  return typed(name, {
59
- 'Array | Matrix': function ArrayMatrix(possibles) {
59
+ 'Array | Matrix': function Array__Matrix(possibles) {
60
60
  return _pickRandom(possibles, {});
61
61
  },
62
- 'Array | Matrix, Object': function ArrayMatrixObject(possibles, options) {
62
+ 'Array | Matrix, Object': function Array__Matrix_Object(possibles, options) {
63
63
  return _pickRandom(possibles, options);
64
64
  },
65
- 'Array | Matrix, number': function ArrayMatrixNumber(possibles, number) {
65
+ 'Array | Matrix, number': function Array__Matrix_number(possibles, number) {
66
66
  return _pickRandom(possibles, {
67
67
  number
68
68
  });
69
69
  },
70
- 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(possibles, weights) {
70
+ 'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(possibles, weights) {
71
71
  return _pickRandom(possibles, {
72
72
  weights
73
73
  });
74
74
  },
75
- 'Array | Matrix, Array | Matrix, number': function ArrayMatrixArrayMatrixNumber(possibles, weights, number) {
75
+ 'Array | Matrix, Array | Matrix, number': function Array__Matrix_Array__Matrix_number(possibles, weights, number) {
76
76
  return _pickRandom(possibles, {
77
77
  number,
78
78
  weights
79
79
  });
80
80
  },
81
- 'Array | Matrix, number, Array | Matrix': function ArrayMatrixNumberArrayMatrix(possibles, number, weights) {
81
+ 'Array | Matrix, number, Array | Matrix': function Array__Matrix_number_Array__Matrix(possibles, number, weights) {
82
82
  return _pickRandom(possibles, {
83
83
  number,
84
84
  weights
@@ -60,7 +60,7 @@ export var createRandom = /* #__PURE__ */factory(name, dependencies, _ref => {
60
60
  });
61
61
  function _randomMatrix(size, min, max) {
62
62
  var res = randomMatrix(size.valueOf(), () => _random(min, max));
63
- return isMatrix(size) ? size.create(res) : res;
63
+ return isMatrix(size) ? size.create(res, 'number') : res;
64
64
  }
65
65
  function _random(min, max) {
66
66
  return min + rng() * (max - min);
@@ -59,7 +59,7 @@ export var createRandomInt = /* #__PURE__ */factory(name, dependencies, _ref =>
59
59
  });
60
60
  function _randomIntMatrix(size, min, max) {
61
61
  var res = randomMatrix(size.valueOf(), () => _randomInt(min, max));
62
- return isMatrix(size) ? size.create(res) : res;
62
+ return isMatrix(size) ? size.create(res, 'number') : res;
63
63
  }
64
64
  function _randomInt(min, max) {
65
65
  return Math.floor(min + rng() * (max - min));
@@ -80,19 +80,19 @@ export var createCompare = /* #__PURE__ */factory(name, dependencies, _ref => {
80
80
  typed,
81
81
  config
82
82
  }), {
83
- 'boolean, boolean': function booleanBoolean(x, y) {
83
+ 'boolean, boolean': function boolean_boolean(x, y) {
84
84
  return x === y ? 0 : x > y ? 1 : -1;
85
85
  },
86
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
86
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
87
87
  return bigNearlyEqual(x, y, config.relTol, config.absTol) ? new BigNumber(0) : new BigNumber(x.cmp(y));
88
88
  },
89
- 'bigint, bigint': function bigintBigint(x, y) {
89
+ 'bigint, bigint': function bigint_bigint(x, y) {
90
90
  return x === y ? 0n : x > y ? 1n : -1n;
91
91
  },
92
- 'Fraction, Fraction': function FractionFraction(x, y) {
92
+ 'Fraction, Fraction': function Fraction_Fraction(x, y) {
93
93
  return new Fraction(x.compare(y));
94
94
  },
95
- 'Complex, Complex': function ComplexComplex() {
95
+ 'Complex, Complex': function Complex_Complex() {
96
96
  throw new TypeError('No ordering relation is defined for complex numbers');
97
97
  }
98
98
  }, compareUnits, matrixAlgorithmSuite({
@@ -107,7 +107,7 @@ export var createCompareNumber = /* #__PURE__ */factory(name, ['typed', 'config'
107
107
  config
108
108
  } = _ref2;
109
109
  return typed(name, {
110
- 'number, number': function numberNumber(x, y) {
110
+ 'number, number': function number_number(x, y) {
111
111
  return nearlyEqual(x, y, config.relTol, config.absTol) ? 0 : x > y ? 1 : -1;
112
112
  }
113
113
  });
@@ -36,7 +36,7 @@ export var createDeepEqual = /* #__PURE__ */factory(name, dependencies, _ref =>
36
36
  * Returns true when the input matrices have the same size and each of their elements is equal.
37
37
  */
38
38
  return typed(name, {
39
- 'any, any': function anyAny(x, y) {
39
+ 'any, any': function any_any(x, y) {
40
40
  return _deepEqual(x.valueOf(), y.valueOf());
41
41
  }
42
42
  });
@@ -90,7 +90,7 @@ export var createEqualNumber = factory(name, ['typed', 'equalScalar'], _ref2 =>
90
90
  equalScalar
91
91
  } = _ref2;
92
92
  return typed(name, {
93
- 'any, any': function anyAny(x, y) {
93
+ 'any, any': function any_any(x, y) {
94
94
  // strict equality for null and undefined?
95
95
  if (x === null) {
96
96
  return y === null;
@@ -23,22 +23,22 @@ export var createEqualScalar = /* #__PURE__ */factory(name, dependencies, _ref =
23
23
  * @private
24
24
  */
25
25
  return typed(name, {
26
- 'boolean, boolean': function booleanBoolean(x, y) {
26
+ 'boolean, boolean': function boolean_boolean(x, y) {
27
27
  return x === y;
28
28
  },
29
- 'number, number': function numberNumber(x, y) {
29
+ 'number, number': function number_number(x, y) {
30
30
  return nearlyEqual(x, y, config.relTol, config.absTol);
31
31
  },
32
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
32
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
33
33
  return x.eq(y) || bigNearlyEqual(x, y, config.relTol, config.absTol);
34
34
  },
35
- 'bigint, bigint': function bigintBigint(x, y) {
35
+ 'bigint, bigint': function bigint_bigint(x, y) {
36
36
  return x === y;
37
37
  },
38
- 'Fraction, Fraction': function FractionFraction(x, y) {
38
+ 'Fraction, Fraction': function Fraction_Fraction(x, y) {
39
39
  return x.equals(y);
40
40
  },
41
- 'Complex, Complex': function ComplexComplex(x, y) {
41
+ 'Complex, Complex': function Complex_Complex(x, y) {
42
42
  return complexEquals(x, y, config.relTol, config.absTol);
43
43
  }
44
44
  }, compareUnits);
@@ -49,7 +49,7 @@ export var createEqualScalarNumber = factory(name, ['typed', 'config'], _ref2 =>
49
49
  config
50
50
  } = _ref2;
51
51
  return typed(name, {
52
- 'number, number': function numberNumber(x, y) {
52
+ 'number, number': function number_number(x, y) {
53
53
  return nearlyEqual(x, y, config.relTol, config.absTol);
54
54
  }
55
55
  });
@@ -34,7 +34,7 @@ export var createEqualText = /* #__PURE__ */factory(name, dependencies, _ref =>
34
34
  * @return {number | Array | DenseMatrix} Returns true if the values are equal, and false if not.
35
35
  */
36
36
  return typed(name, {
37
- 'any, any': function anyAny(x, y) {
37
+ 'any, any': function any_any(x, y) {
38
38
  return isZero(compareText(x, y));
39
39
  }
40
40
  });
@@ -72,12 +72,12 @@ export var createLarger = /* #__PURE__ */factory(name, dependencies, _ref => {
72
72
  config
73
73
  }), {
74
74
  'boolean, boolean': (x, y) => x > y,
75
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
75
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
76
76
  return x.gt(y) && !bigNearlyEqual(x, y, config.relTol, config.absTol);
77
77
  },
78
78
  'bigint, bigint': (x, y) => x > y,
79
79
  'Fraction, Fraction': (x, y) => x.compare(y) === 1,
80
- 'Complex, Complex': function ComplexComplex() {
80
+ 'Complex, Complex': function Complex_Complex() {
81
81
  throw new TypeError('No ordering relation is defined for complex numbers');
82
82
  }
83
83
  }, compareUnits, matrixAlgorithmSuite({
@@ -92,7 +92,7 @@ export var createLargerNumber = /* #__PURE__ */factory(name, ['typed', 'config']
92
92
  config
93
93
  } = _ref2;
94
94
  return typed(name, {
95
- 'number, number': function numberNumber(x, y) {
95
+ 'number, number': function number_number(x, y) {
96
96
  return x > y && !nearlyEqual(x, y, config.relTol, config.absTol);
97
97
  }
98
98
  });
@@ -68,14 +68,14 @@ export var createLargerEq = /* #__PURE__ */factory(name, dependencies, _ref => {
68
68
  config
69
69
  }), {
70
70
  'boolean, boolean': (x, y) => x >= y,
71
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
71
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
72
72
  return x.gte(y) || bigNearlyEqual(x, y, config.relTol, config.absTol);
73
73
  },
74
- 'bigint, bigint': function bigintBigint(x, y) {
74
+ 'bigint, bigint': function bigint_bigint(x, y) {
75
75
  return x >= y;
76
76
  },
77
77
  'Fraction, Fraction': (x, y) => x.compare(y) !== -1,
78
- 'Complex, Complex': function ComplexComplex() {
78
+ 'Complex, Complex': function Complex_Complex() {
79
79
  throw new TypeError('No ordering relation is defined for complex numbers');
80
80
  }
81
81
  }, compareUnits, matrixAlgorithmSuite({
@@ -90,7 +90,7 @@ export var createLargerEqNumber = /* #__PURE__ */factory(name, ['typed', 'config
90
90
  config
91
91
  } = _ref2;
92
92
  return typed(name, {
93
- 'number, number': function numberNumber(x, y) {
93
+ 'number, number': function number_number(x, y) {
94
94
  return x >= y || nearlyEqual(x, y, config.relTol, config.absTol);
95
95
  }
96
96
  });
@@ -72,12 +72,12 @@ export var createSmaller = /* #__PURE__ */factory(name, dependencies, _ref => {
72
72
  config
73
73
  }), {
74
74
  'boolean, boolean': (x, y) => x < y,
75
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
75
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
76
76
  return x.lt(y) && !bigNearlyEqual(x, y, config.relTol, config.absTol);
77
77
  },
78
78
  'bigint, bigint': (x, y) => x < y,
79
79
  'Fraction, Fraction': (x, y) => x.compare(y) === -1,
80
- 'Complex, Complex': function ComplexComplex(x, y) {
80
+ 'Complex, Complex': function Complex_Complex(x, y) {
81
81
  throw new TypeError('No ordering relation is defined for complex numbers');
82
82
  }
83
83
  }, compareUnits, matrixAlgorithmSuite({
@@ -92,7 +92,7 @@ export var createSmallerNumber = /* #__PURE__ */factory(name, ['typed', 'config'
92
92
  config
93
93
  } = _ref2;
94
94
  return typed(name, {
95
- 'number, number': function numberNumber(x, y) {
95
+ 'number, number': function number_number(x, y) {
96
96
  return x < y && !nearlyEqual(x, y, config.relTol, config.absTol);
97
97
  }
98
98
  });
@@ -68,12 +68,12 @@ export var createSmallerEq = /* #__PURE__ */factory(name, dependencies, _ref =>
68
68
  config
69
69
  }), {
70
70
  'boolean, boolean': (x, y) => x <= y,
71
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
71
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
72
72
  return x.lte(y) || bigNearlyEqual(x, y, config.relTol, config.absTol);
73
73
  },
74
74
  'bigint, bigint': (x, y) => x <= y,
75
75
  'Fraction, Fraction': (x, y) => x.compare(y) !== 1,
76
- 'Complex, Complex': function ComplexComplex() {
76
+ 'Complex, Complex': function Complex_Complex() {
77
77
  throw new TypeError('No ordering relation is defined for complex numbers');
78
78
  }
79
79
  }, compareUnits, matrixAlgorithmSuite({
@@ -88,7 +88,7 @@ export var createSmallerEqNumber = /* #__PURE__ */factory(name, ['typed', 'confi
88
88
  config
89
89
  } = _ref2;
90
90
  return typed(name, {
91
- 'number, number': function numberNumber(x, y) {
91
+ 'number, number': function number_number(x, y) {
92
92
  return x <= y || nearlyEqual(x, y, config.relTol, config.absTol);
93
93
  }
94
94
  });
@@ -93,7 +93,7 @@ export var createUnequalNumber = factory(name, ['typed', 'equalScalar'], _ref2 =
93
93
  equalScalar
94
94
  } = _ref2;
95
95
  return typed(name, {
96
- 'any, any': function anyAny(x, y) {
96
+ 'any, any': function any_any(x, y) {
97
97
  // strict equality for null and undefined?
98
98
  if (x === null) {
99
99
  return y !== null;
@@ -34,7 +34,7 @@ export var createSetCartesian = /* #__PURE__ */factory(name, dependencies, _ref
34
34
  * @return {Array | Matrix} The cartesian product of two (multi)sets
35
35
  */
36
36
  return typed(name, {
37
- 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {
37
+ 'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(a1, a2) {
38
38
  var result = [];
39
39
  if (subset(size(a1), new Index(0)) !== 0 && subset(size(a2), new Index(0)) !== 0) {
40
40
  // if any of them is empty, return empty
@@ -33,7 +33,7 @@ export var createSetDifference = /* #__PURE__ */factory(name, dependencies, _ref
33
33
  * @return {Array | Matrix} The difference of two (multi)sets
34
34
  */
35
35
  return typed(name, {
36
- 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {
36
+ 'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(a1, a2) {
37
37
  var result;
38
38
  if (subset(size(a1), new Index(0)) === 0) {
39
39
  // empty-anything=empty
@@ -31,7 +31,7 @@ export var createSetDistinct = /* #__PURE__ */factory(name, dependencies, _ref =
31
31
  * @return {Array | Matrix} A set containing the distinc elements of the multiset
32
32
  */
33
33
  return typed(name, {
34
- 'Array | Matrix': function ArrayMatrix(a) {
34
+ 'Array | Matrix': function Array__Matrix(a) {
35
35
  var result;
36
36
  if (subset(size(a), new Index(0)) === 0) {
37
37
  // if empty, return empty
@@ -33,7 +33,7 @@ export var createSetIntersect = /* #__PURE__ */factory(name, dependencies, _ref
33
33
  * @return {Array | Matrix} The intersection of two (multi)sets
34
34
  */
35
35
  return typed(name, {
36
- 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {
36
+ 'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(a1, a2) {
37
37
  var result;
38
38
  if (subset(size(a1), new Index(0)) === 0 || subset(size(a2), new Index(0)) === 0) {
39
39
  // of any of them is empty, return empty
@@ -32,7 +32,7 @@ export var createSetIsSubset = /* #__PURE__ */factory(name, dependencies, _ref =
32
32
  * @return {boolean} Returns true when a1 is a subset of a2, returns false otherwise
33
33
  */
34
34
  return typed(name, {
35
- 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {
35
+ 'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(a1, a2) {
36
36
  if (subset(size(a1), new Index(0)) === 0) {
37
37
  // empty is a subset of anything
38
38
  return true;
@@ -32,7 +32,7 @@ export var createSetMultiplicity = /* #__PURE__ */factory(name, dependencies, _r
32
32
  * @return {number} The number of how many times the multiset contains the element
33
33
  */
34
34
  return typed(name, {
35
- 'number | BigNumber | Fraction | Complex, Array | Matrix': function numberBigNumberFractionComplexArrayMatrix(e, a) {
35
+ 'number | BigNumber | Fraction | Complex, Array | Matrix': function number__BigNumber__Fraction__Complex_Array__Matrix(e, a) {
36
36
  if (subset(size(a), new Index(0)) === 0) {
37
37
  // if empty, return 0
38
38
  return 0;
@@ -30,7 +30,7 @@ export var createSetPowerset = /* #__PURE__ */factory(name, dependencies, _ref =
30
30
  * @return {Array} The powerset of the (multi)set
31
31
  */
32
32
  return typed(name, {
33
- 'Array | Matrix': function ArrayMatrix(a) {
33
+ 'Array | Matrix': function Array__Matrix(a) {
34
34
  if (subset(size(a), new Index(0)) === 0) {
35
35
  // if empty, return empty
36
36
  return [];
@@ -30,10 +30,10 @@ export var createSetSize = /* #__PURE__ */factory(name, dependencies, _ref => {
30
30
  * @return {number} The number of elements of the (multi)set
31
31
  */
32
32
  return typed(name, {
33
- 'Array | Matrix': function ArrayMatrix(a) {
33
+ 'Array | Matrix': function Array__Matrix(a) {
34
34
  return Array.isArray(a) ? flatten(a).length : flatten(a.toArray()).length;
35
35
  },
36
- 'Array | Matrix, boolean': function ArrayMatrixBoolean(a, unique) {
36
+ 'Array | Matrix, boolean': function Array__Matrix_boolean(a, unique) {
37
37
  if (unique === false || a.length === 0) {
38
38
  return Array.isArray(a) ? flatten(a).length : flatten(a.toArray()).length;
39
39
  } else {
@@ -33,7 +33,7 @@ export var createSetSymDifference = /* #__PURE__ */factory(name, dependencies, _
33
33
  * @return {Array | Matrix} The symmetric difference of two (multi)sets
34
34
  */
35
35
  return typed(name, {
36
- 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(a1, a2) {
36
+ 'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(a1, a2) {
37
37
  if (subset(size(a1), new Index(0)) === 0) {
38
38
  // if any of them is empty, return the other one
39
39
  return flatten(a2);