mathjs 13.0.3 → 13.1.0

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