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
@@ -55,24 +55,24 @@ export var createDivide = /* #__PURE__ */factory(name, dependencies, _ref => {
55
55
  return typed('divide', extend({
56
56
  // we extend the signatures of divideScalar with signatures dealing with matrices
57
57
 
58
- 'Array | Matrix, Array | Matrix': function ArrayMatrixArrayMatrix(x, y) {
58
+ 'Array | Matrix, Array | Matrix': function Array__Matrix_Array__Matrix(x, y) {
59
59
  // TODO: implement matrix right division using pseudo inverse
60
60
  // https://www.mathworks.nl/help/matlab/ref/mrdivide.html
61
61
  // https://www.gnu.org/software/octave/doc/interpreter/Arithmetic-Ops.html
62
62
  // https://stackoverflow.com/questions/12263932/how-does-gnu-octave-matrix-division-work-getting-unexpected-behaviour
63
63
  return multiply(x, inv(y));
64
64
  },
65
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
65
+ 'DenseMatrix, any': function DenseMatrix_any(x, y) {
66
66
  return matAlgo14xDs(x, y, divideScalar, false);
67
67
  },
68
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
68
+ 'SparseMatrix, any': function SparseMatrix_any(x, y) {
69
69
  return matAlgo11xS0s(x, y, divideScalar, false);
70
70
  },
71
- 'Array, any': function ArrayAny(x, y) {
71
+ 'Array, any': function Array_any(x, y) {
72
72
  // use matrix implementation
73
73
  return matAlgo14xDs(matrix(x), y, divideScalar, false).valueOf();
74
74
  },
75
- 'any, Array | Matrix': function anyArrayMatrix(x, y) {
75
+ 'any, Array | Matrix': function any_Array__Matrix(x, y) {
76
76
  return multiply(x, inv(y));
77
77
  }
78
78
  }, divideScalar.signatures));
@@ -19,19 +19,19 @@ export var createDivideScalar = /* #__PURE__ */factory(name, dependencies, _ref
19
19
  * @private
20
20
  */
21
21
  return typed(name, {
22
- 'number, number': function numberNumber(x, y) {
22
+ 'number, number': function number_number(x, y) {
23
23
  return x / y;
24
24
  },
25
- 'Complex, Complex': function ComplexComplex(x, y) {
25
+ 'Complex, Complex': function Complex_Complex(x, y) {
26
26
  return x.div(y);
27
27
  },
28
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
28
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
29
29
  return x.div(y);
30
30
  },
31
- 'bigint, bigint': function bigintBigint(x, y) {
31
+ 'bigint, bigint': function bigint_bigint(x, y) {
32
32
  return x / y;
33
33
  },
34
- 'Fraction, Fraction': function FractionFraction(x, y) {
34
+ 'Fraction, Fraction': function Fraction_Fraction(x, y) {
35
35
  return x.div(y);
36
36
  },
37
37
  'Unit, number | Complex | Fraction | BigNumber | Unit': (x, y) => x.divide(y),
@@ -14,7 +14,7 @@ export var createFixNumber = /* #__PURE__ */factory(name, ['typed', 'ceil', 'flo
14
14
  number: function number(x) {
15
15
  return x > 0 ? floor(x) : ceil(x);
16
16
  },
17
- 'number, number': function numberNumber(x, n) {
17
+ 'number, number': function number_number(x, n) {
18
18
  return x > 0 ? floor(x, n) : ceil(x, n);
19
19
  }
20
20
  });
@@ -84,23 +84,23 @@ export var createFix = /* #__PURE__ */factory(name, dependencies, _ref2 => {
84
84
  Complex: function Complex(x) {
85
85
  return new _Complex(x.re > 0 ? Math.floor(x.re) : Math.ceil(x.re), x.im > 0 ? Math.floor(x.im) : Math.ceil(x.im));
86
86
  },
87
- 'Complex, number': function ComplexNumber(x, n) {
87
+ 'Complex, number': function Complex_number(x, n) {
88
88
  return new _Complex(x.re > 0 ? floor(x.re, n) : ceil(x.re, n), x.im > 0 ? floor(x.im, n) : ceil(x.im, n));
89
89
  },
90
- 'Complex, BigNumber': function ComplexBigNumber(x, bn) {
90
+ 'Complex, BigNumber': function Complex_BigNumber(x, bn) {
91
91
  var n = bn.toNumber();
92
92
  return new _Complex(x.re > 0 ? floor(x.re, n) : ceil(x.re, n), x.im > 0 ? floor(x.im, n) : ceil(x.im, n));
93
93
  },
94
94
  BigNumber: function BigNumber(x) {
95
95
  return x.isNegative() ? ceil(x) : floor(x);
96
96
  },
97
- 'BigNumber, number | BigNumber': function BigNumberNumberBigNumber(x, n) {
97
+ 'BigNumber, number | BigNumber': function BigNumber_number__BigNumber(x, n) {
98
98
  return x.isNegative() ? ceil(x, n) : floor(x, n);
99
99
  },
100
100
  Fraction: function Fraction(x) {
101
101
  return x.s < 0 ? x.ceil() : x.floor();
102
102
  },
103
- 'Fraction, number | BigNumber': function FractionNumberBigNumber(x, n) {
103
+ 'Fraction, number | BigNumber': function Fraction_number__BigNumber(x, n) {
104
104
  return x.s < 0 ? ceil(x, n) : floor(x, n);
105
105
  },
106
106
  'Array | Matrix': typed.referToSelf(self => x => {
@@ -22,7 +22,7 @@ export var createFloorNumber = /* #__PURE__ */factory(name, ['typed', 'config',
22
22
  return Math.floor(x);
23
23
  }
24
24
  },
25
- 'number, number': function numberNumber(x, n) {
25
+ 'number, number': function number_number(x, n) {
26
26
  if (nearlyEqual(x, round(x, n), config.relTol, config.absTol)) {
27
27
  return round(x, n);
28
28
  } else {
@@ -106,10 +106,10 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {
106
106
  Complex: function Complex(x) {
107
107
  return x.floor();
108
108
  },
109
- 'Complex, number': function ComplexNumber(x, n) {
109
+ 'Complex, number': function Complex_number(x, n) {
110
110
  return x.floor(n);
111
111
  },
112
- 'Complex, BigNumber': function ComplexBigNumber(x, n) {
112
+ 'Complex, BigNumber': function Complex_BigNumber(x, n) {
113
113
  return x.floor(n.toNumber());
114
114
  },
115
115
  BigNumber: function BigNumber(x) {
@@ -119,7 +119,7 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {
119
119
  return x.floor();
120
120
  }
121
121
  },
122
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, n) {
122
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, n) {
123
123
  if (bigNearlyEqual(x, round(x, n), config.relTol, config.absTol)) {
124
124
  return round(x, n);
125
125
  } else {
@@ -129,10 +129,10 @@ export var createFloor = /* #__PURE__ */factory(name, dependencies, _ref2 => {
129
129
  Fraction: function Fraction(x) {
130
130
  return x.floor();
131
131
  },
132
- 'Fraction, number': function FractionNumber(x, n) {
132
+ 'Fraction, number': function Fraction_number(x, n) {
133
133
  return x.floor(n);
134
134
  },
135
- 'Fraction, BigNumber': function FractionBigNumber(x, n) {
135
+ 'Fraction, BigNumber': function Fraction_BigNumber(x, n) {
136
136
  return x.floor(n.toNumber());
137
137
  },
138
138
  'Array | Matrix': typed.referToSelf(self => x => {
@@ -15,11 +15,11 @@ export var createHypot = /* #__PURE__ */factory(name, dependencies, _ref => {
15
15
  isPositive
16
16
  } = _ref;
17
17
  /**
18
- * Calculate the hypotenusa of a list with values. The hypotenusa is defined as:
18
+ * Calculate the hypotenuse of a list with values. The hypotenuse is defined as:
19
19
  *
20
20
  * hypot(a, b, c, ...) = sqrt(a^2 + b^2 + c^2 + ...)
21
21
  *
22
- * For matrix input, the hypotenusa is calculated for all values in the matrix.
22
+ * For matrix input, the hypotenuse is calculated for all values in the matrix.
23
23
  *
24
24
  * Syntax:
25
25
  *
@@ -49,7 +49,7 @@ export var createHypot = /* #__PURE__ */factory(name, dependencies, _ref => {
49
49
  });
50
50
 
51
51
  /**
52
- * Calculate the hypotenusa for an Array with values
52
+ * Calculate the hypotenuse for an Array with values
53
53
  * @param {Array.<number | BigNumber>} args
54
54
  * @return {number | BigNumber} Returns the result
55
55
  * @private
@@ -90,10 +90,10 @@ export var createMod = /* #__PURE__ */factory(name, dependencies, _ref => {
90
90
  */
91
91
  return typed(name, {
92
92
  'number, number': _modNumber,
93
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
93
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
94
94
  return y.isZero() ? x : x.sub(y.mul(floor(x.div(y))));
95
95
  },
96
- 'bigint, bigint': function bigintBigint(x, y) {
96
+ 'bigint, bigint': function bigint_bigint(x, y) {
97
97
  if (y === 0n) {
98
98
  return x;
99
99
  }
@@ -103,7 +103,7 @@ export var createMod = /* #__PURE__ */factory(name, dependencies, _ref => {
103
103
  }
104
104
  return x % y;
105
105
  },
106
- 'Fraction, Fraction': function FractionFraction(x, y) {
106
+ 'Fraction, Fraction': function Fraction_Fraction(x, y) {
107
107
  return y.equals(0) ? x : x.sub(y.mul(floor(x.div(y))));
108
108
  }
109
109
  }, matrixAlgorithmSuite({
@@ -817,7 +817,7 @@ export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
817
817
  // return array or scalar
818
818
  return isMatrix(m) ? m.valueOf() : m;
819
819
  }),
820
- 'Matrix, Matrix': function MatrixMatrix(x, y) {
820
+ 'Matrix, Matrix': function Matrix_Matrix(x, y) {
821
821
  // dimensions
822
822
  var xsize = x.size();
823
823
  var ysize = y.size();
@@ -848,23 +848,23 @@ export var createMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
848
848
  // use Matrix * Matrix implementation
849
849
  return self(matrix(x, y.storage()), y);
850
850
  }),
851
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
851
+ 'SparseMatrix, any': function SparseMatrix_any(x, y) {
852
852
  return matAlgo11xS0s(x, y, multiplyScalar, false);
853
853
  },
854
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
854
+ 'DenseMatrix, any': function DenseMatrix_any(x, y) {
855
855
  return matAlgo14xDs(x, y, multiplyScalar, false);
856
856
  },
857
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
857
+ 'any, SparseMatrix': function any_SparseMatrix(x, y) {
858
858
  return matAlgo11xS0s(y, x, multiplyScalar, true);
859
859
  },
860
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
860
+ 'any, DenseMatrix': function any_DenseMatrix(x, y) {
861
861
  return matAlgo14xDs(y, x, multiplyScalar, true);
862
862
  },
863
- 'Array, any': function ArrayAny(x, y) {
863
+ 'Array, any': function Array_any(x, y) {
864
864
  // use matrix implementation
865
865
  return matAlgo14xDs(matrix(x), y, multiplyScalar, false).valueOf();
866
866
  },
867
- 'any, Array': function anyArray(x, y) {
867
+ 'any, Array': function any_Array(x, y) {
868
868
  // use matrix implementation
869
869
  return matAlgo14xDs(matrix(y), x, multiplyScalar, true).valueOf();
870
870
  },
@@ -20,16 +20,16 @@ export var createMultiplyScalar = /* #__PURE__ */factory(name, dependencies, _re
20
20
  */
21
21
  return typed('multiplyScalar', {
22
22
  'number, number': multiplyNumber,
23
- 'Complex, Complex': function ComplexComplex(x, y) {
23
+ 'Complex, Complex': function Complex_Complex(x, y) {
24
24
  return x.mul(y);
25
25
  },
26
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
26
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
27
27
  return x.times(y);
28
28
  },
29
- 'bigint, bigint': function bigintBigint(x, y) {
29
+ 'bigint, bigint': function bigint_bigint(x, y) {
30
30
  return x * y;
31
31
  },
32
- 'Fraction, Fraction': function FractionFraction(x, y) {
32
+ 'Fraction, Fraction': function Fraction_Fraction(x, y) {
33
33
  return x.mul(y);
34
34
  },
35
35
  'number | Fraction | BigNumber | Complex, Unit': (x, y) => y.multiply(x),
@@ -74,10 +74,10 @@ export var createNorm = /* #__PURE__ */factory(name, dependencies, _ref => {
74
74
  Matrix: function Matrix(x) {
75
75
  return _norm(x, 2);
76
76
  },
77
- 'Array, number | BigNumber | string': function ArrayNumberBigNumberString(x, p) {
77
+ 'Array, number | BigNumber | string': function Array_number__BigNumber__string(x, p) {
78
78
  return _norm(matrix(x), p);
79
79
  },
80
- 'Matrix, number | BigNumber | string': function MatrixNumberBigNumberString(x, p) {
80
+ 'Matrix, number | BigNumber | string': function Matrix_number__BigNumber__string(x, p) {
81
81
  return _norm(x, p);
82
82
  }
83
83
  });
@@ -56,10 +56,10 @@ export var createPow = /* #__PURE__ */factory(name, dependencies, _ref => {
56
56
  */
57
57
  return typed(name, {
58
58
  'number, number': _pow,
59
- 'Complex, Complex': function ComplexComplex(x, y) {
59
+ 'Complex, Complex': function Complex_Complex(x, y) {
60
60
  return x.pow(y);
61
61
  },
62
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
62
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
63
63
  if (y.isInteger() || x >= 0 || config.predictable) {
64
64
  return x.pow(y);
65
65
  } else {
@@ -67,7 +67,7 @@ export var createPow = /* #__PURE__ */factory(name, dependencies, _ref => {
67
67
  }
68
68
  },
69
69
  'bigint, bigint': (x, y) => x ** y,
70
- 'Fraction, Fraction': function FractionFraction(x, y) {
70
+ 'Fraction, Fraction': function Fraction_Fraction(x, y) {
71
71
  var result = x.pow(y);
72
72
  if (result != null) {
73
73
  return result;
@@ -79,14 +79,14 @@ export var createPow = /* #__PURE__ */factory(name, dependencies, _ref => {
79
79
  }
80
80
  },
81
81
  'Array, number': _powArray,
82
- 'Array, BigNumber': function ArrayBigNumber(x, y) {
82
+ 'Array, BigNumber': function Array_BigNumber(x, y) {
83
83
  return _powArray(x, y.toNumber());
84
84
  },
85
85
  'Matrix, number': _powMatrix,
86
- 'Matrix, BigNumber': function MatrixBigNumber(x, y) {
86
+ 'Matrix, BigNumber': function Matrix_BigNumber(x, y) {
87
87
  return _powMatrix(x, y.toNumber());
88
88
  },
89
- 'Unit, number | BigNumber': function UnitNumberBigNumber(x, y) {
89
+ 'Unit, number | BigNumber': function Unit_number__BigNumber(x, y) {
90
90
  return x.pow(y);
91
91
  }
92
92
  });
@@ -85,7 +85,7 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
85
85
  var xSelected = nearlyEqual(x, xEpsilon, config.relTol, config.absTol) ? xEpsilon : x;
86
86
  return roundNumber(xSelected);
87
87
  },
88
- 'number, number': function numberNumber(x, n) {
88
+ 'number, number': function number_number(x, n) {
89
89
  // Same as number: unless user specifies more decimals than relTol
90
90
  var epsilonExponent = toExponent(config.relTol);
91
91
  if (n >= epsilonExponent) {
@@ -95,7 +95,7 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
95
95
  var xSelected = nearlyEqual(x, xEpsilon, config.relTol, config.absTol) ? xEpsilon : x;
96
96
  return roundNumber(xSelected, n);
97
97
  },
98
- 'number, BigNumber': function numberBigNumber(x, n) {
98
+ 'number, BigNumber': function number_BigNumber(x, n) {
99
99
  if (!n.isInteger()) {
100
100
  throw new TypeError(NO_INT);
101
101
  }
@@ -104,13 +104,13 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
104
104
  Complex: function Complex(x) {
105
105
  return x.round();
106
106
  },
107
- 'Complex, number': function ComplexNumber(x, n) {
107
+ 'Complex, number': function Complex_number(x, n) {
108
108
  if (n % 1) {
109
109
  throw new TypeError(NO_INT);
110
110
  }
111
111
  return x.round(n);
112
112
  },
113
- 'Complex, BigNumber': function ComplexBigNumber(x, n) {
113
+ 'Complex, BigNumber': function Complex_BigNumber(x, n) {
114
114
  if (!n.isInteger()) {
115
115
  throw new TypeError(NO_INT);
116
116
  }
@@ -123,7 +123,7 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
123
123
  var xSelected = bigNearlyEqual(x, xEpsilon, config.relTol, config.absTol) ? xEpsilon : x;
124
124
  return xSelected.toDecimalPlaces(0);
125
125
  },
126
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, n) {
126
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, n) {
127
127
  if (!n.isInteger()) {
128
128
  throw new TypeError(NO_INT);
129
129
  }
@@ -140,13 +140,13 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
140
140
  Fraction: function Fraction(x) {
141
141
  return x.round();
142
142
  },
143
- 'Fraction, number': function FractionNumber(x, n) {
143
+ 'Fraction, number': function Fraction_number(x, n) {
144
144
  if (n % 1) {
145
145
  throw new TypeError(NO_INT);
146
146
  }
147
147
  return x.round(n);
148
148
  },
149
- 'Fraction, BigNumber': function FractionBigNumber(x, n) {
149
+ 'Fraction, BigNumber': function Fraction_BigNumber(x, n) {
150
150
  if (!n.isInteger()) {
151
151
  throw new TypeError(NO_INT);
152
152
  }
@@ -20,16 +20,16 @@ export var createSubtractScalar = /* #__PURE__ */factory(name, dependencies, _re
20
20
  */
21
21
  return typed(name, {
22
22
  'number, number': subtractNumber,
23
- 'Complex, Complex': function ComplexComplex(x, y) {
23
+ 'Complex, Complex': function Complex_Complex(x, y) {
24
24
  return x.sub(y);
25
25
  },
26
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
26
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
27
27
  return x.minus(y);
28
28
  },
29
- 'bigint, bigint': function bigintBigint(x, y) {
29
+ 'bigint, bigint': function bigint_bigint(x, y) {
30
30
  return x - y;
31
31
  },
32
- 'Fraction, Fraction': function FractionFraction(x, y) {
32
+ 'Fraction, Fraction': function Fraction_Fraction(x, y) {
33
33
  return x.sub(y);
34
34
  },
35
35
  'Unit, Unit': typed.referToSelf(self => (x, y) => {
@@ -33,7 +33,7 @@ export var createXgcd = /* #__PURE__ */factory(name, dependencies, _ref => {
33
33
  * where `div = gcd(a, b)` and `a*m + b*n = div`
34
34
  */
35
35
  return typed(name, {
36
- 'number, number': function numberNumber(a, b) {
36
+ 'number, number': function number_number(a, b) {
37
37
  var res = xgcdNumber(a, b);
38
38
  return config.matrix === 'Array' ? res : matrix(res);
39
39
  },
@@ -31,7 +31,7 @@ export var createBellNumbers = /* #__PURE__ */factory(name, dependencies, _ref =
31
31
  * @return {Number | BigNumber} B(n)
32
32
  */
33
33
  return typed(name, {
34
- 'number | BigNumber': function numberBigNumber(n) {
34
+ 'number | BigNumber': function number__BigNumber(n) {
35
35
  if (!isInteger(n) || isNegative(n)) {
36
36
  throw new TypeError('Non-negative integer value expected in function bellNumbers');
37
37
  }
@@ -33,7 +33,7 @@ export var createCatalan = /* #__PURE__ */factory(name, dependencies, _ref => {
33
33
  * @return {Number | BigNumber} Cn(n)
34
34
  */
35
35
  return typed(name, {
36
- 'number | BigNumber': function numberBigNumber(n) {
36
+ 'number | BigNumber': function number__BigNumber(n) {
37
37
  if (!isInteger(n) || isNegative(n)) {
38
38
  throw new TypeError('Non-negative integer value expected in function catalan');
39
39
  }
@@ -34,7 +34,7 @@ export var createComposition = /* #__PURE__ */factory(name, dependencies, _ref =
34
34
  * @return {Number | BigNumber} Returns the composition counts of n into k parts.
35
35
  */
36
36
  return typed(name, {
37
- 'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(n, k) {
37
+ 'number | BigNumber, number | BigNumber': function number__BigNumber_number__BigNumber(n, k) {
38
38
  if (!isInteger(n) || !isPositive(n) || !isInteger(k) || !isPositive(k)) {
39
39
  throw new TypeError('Positive integer value expected in function composition');
40
40
  } else if (larger(k, n)) {
@@ -49,7 +49,7 @@ export var createStirlingS2 = /* #__PURE__ */factory(name, dependencies, _ref =>
49
49
  * @return {Number | BigNumber} S(n,k)
50
50
  */
51
51
  return typed(name, {
52
- 'number | BigNumber, number | BigNumber': function numberBigNumberNumberBigNumber(n, k) {
52
+ 'number | BigNumber, number | BigNumber': function number__BigNumber_number__BigNumber(n, k) {
53
53
  if (!isInteger(n) || isNegative(n) || !isInteger(k) || isNegative(k)) {
54
54
  throw new TypeError('Non-negative integer value expected in function stirlingS2');
55
55
  } else if (larger(k, n)) {
@@ -65,7 +65,7 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
65
65
  * @return {Number | BigNumber} Returns the distance from two/three points
66
66
  */
67
67
  return typed(name, {
68
- 'Array, Array, Array': function ArrayArrayArray(x, y, z) {
68
+ 'Array, Array, Array': function Array_Array_Array(x, y, z) {
69
69
  // Point to Line 2D (x=Point, y=LinePoint1, z=LinePoint2)
70
70
  if (x.length === 2 && y.length === 2 && z.length === 2) {
71
71
  if (!_2d(x)) {
@@ -88,7 +88,7 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
88
88
  throw new TypeError('Invalid Arguments: Try again');
89
89
  }
90
90
  },
91
- 'Object, Object, Object': function ObjectObjectObject(x, y, z) {
91
+ 'Object, Object, Object': function Object_Object_Object(x, y, z) {
92
92
  if (Object.keys(x).length === 2 && Object.keys(y).length === 2 && Object.keys(z).length === 2) {
93
93
  if (!_2d(x)) {
94
94
  throw new TypeError('Values of pointX and pointY should be numbers or BigNumbers');
@@ -114,7 +114,7 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
114
114
  throw new TypeError('Invalid Arguments: Try again');
115
115
  }
116
116
  },
117
- 'Array, Array': function ArrayArray(x, y) {
117
+ 'Array, Array': function Array_Array(x, y) {
118
118
  // Point to Line 2D (x=[pointX, pointY], y=[x-coeff, y-coeff, const])
119
119
  if (x.length === 2 && y.length === 3) {
120
120
  if (!_2d(x)) {
@@ -146,7 +146,7 @@ export var createDistance = /* #__PURE__ */factory(name, dependencies, _ref => {
146
146
  throw new TypeError('Invalid Arguments: Try again');
147
147
  }
148
148
  },
149
- 'Object, Object': function ObjectObject(x, y) {
149
+ 'Object, Object': function Object_Object(x, y) {
150
150
  if (Object.keys(x).length === 2 && Object.keys(y).length === 3) {
151
151
  if (!_2d(x)) {
152
152
  throw new TypeError('Values of pointX and pointY should be numbers or BigNumbers');
@@ -49,11 +49,11 @@ export var createIntersect = /* #__PURE__ */factory(name, dependencies, _ref =>
49
49
  return typed('intersect', {
50
50
  'Array, Array, Array': _AAA,
51
51
  'Array, Array, Array, Array': _AAAA,
52
- 'Matrix, Matrix, Matrix': function MatrixMatrixMatrix(x, y, plane) {
52
+ 'Matrix, Matrix, Matrix': function Matrix_Matrix_Matrix(x, y, plane) {
53
53
  var arr = _AAA(x.valueOf(), y.valueOf(), plane.valueOf());
54
54
  return arr === null ? null : matrix(arr);
55
55
  },
56
- 'Matrix, Matrix, Matrix, Matrix': function MatrixMatrixMatrixMatrix(w, x, y, z) {
56
+ 'Matrix, Matrix, Matrix, Matrix': function Matrix_Matrix_Matrix_Matrix(w, x, y, z) {
57
57
  // TODO: output matrix type should match input matrix type
58
58
  var arr = _AAAA(w.valueOf(), x.valueOf(), y.valueOf(), z.valueOf());
59
59
  return arr === null ? null : matrix(arr);
@@ -67,10 +67,10 @@ export var createAnd = /* #__PURE__ */factory(name, dependencies, _ref => {
67
67
  */
68
68
  return typed(name, {
69
69
  'number, number': andNumber,
70
- 'Complex, Complex': function ComplexComplex(x, y) {
70
+ 'Complex, Complex': function Complex_Complex(x, y) {
71
71
  return (x.re !== 0 || x.im !== 0) && (y.re !== 0 || y.im !== 0);
72
72
  },
73
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
73
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
74
74
  return !x.isZero() && !y.isZero() && !x.isNaN() && !y.isNaN();
75
75
  },
76
76
  'bigint, bigint': andNumber,
@@ -61,10 +61,10 @@ export var createOr = /* #__PURE__ */factory(name, dependencies, _ref => {
61
61
  */
62
62
  return typed(name, {
63
63
  'number, number': orNumber,
64
- 'Complex, Complex': function ComplexComplex(x, y) {
64
+ 'Complex, Complex': function Complex_Complex(x, y) {
65
65
  return x.re !== 0 || x.im !== 0 || y.re !== 0 || y.im !== 0;
66
66
  },
67
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
67
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
68
68
  return !x.isZero() && !x.isNaN() || !y.isZero() && !y.isNaN();
69
69
  },
70
70
  'bigint, bigint': orNumber,
@@ -60,11 +60,11 @@ export var createXor = /* #__PURE__ */factory(name, dependencies, _ref => {
60
60
  */
61
61
  return typed(name, {
62
62
  'number, number': xorNumber,
63
- 'Complex, Complex': function ComplexComplex(x, y) {
63
+ 'Complex, Complex': function Complex_Complex(x, y) {
64
64
  return (x.re !== 0 || x.im !== 0) !== (y.re !== 0 || y.im !== 0);
65
65
  },
66
66
  'bigint, bigint': xorNumber,
67
- 'BigNumber, BigNumber': function BigNumberBigNumber(x, y) {
67
+ 'BigNumber, BigNumber': function BigNumber_BigNumber(x, y) {
68
68
  return (!x.isZero() && !x.isNaN()) !== (!y.isZero() && !y.isNaN());
69
69
  },
70
70
  'Unit, Unit': typed.referToSelf(self => (x, y) => self(x.value || 0, y.value || 0))
@@ -42,7 +42,7 @@ export var createApply = /* #__PURE__ */factory(name, dependencies, _ref => {
42
42
  * @return {Array | Matrix} res The residual matrix with the function applied over some dimension.
43
43
  */
44
44
  return typed(name, {
45
- 'Array | Matrix, number | BigNumber, function': function ArrayMatrixNumberBigNumberFunction(mat, dim, callback) {
45
+ 'Array | Matrix, number | BigNumber, function': function Array__Matrix_number__BigNumber_function(mat, dim, callback) {
46
46
  if (!isInteger(dim)) {
47
47
  throw new TypeError('Integer number expected for dimension');
48
48
  }
@@ -51,7 +51,7 @@ export var createApply = /* #__PURE__ */factory(name, dependencies, _ref => {
51
51
  throw new IndexError(dim, size.length);
52
52
  }
53
53
  if (isMatrix(mat)) {
54
- return mat.create(_apply(mat.valueOf(), dim, callback));
54
+ return mat.create(_apply(mat.valueOf(), dim, callback), mat.datatype());
55
55
  } else {
56
56
  return _apply(mat, dim, callback);
57
57
  }
@@ -34,7 +34,7 @@ export var createColumn = /* #__PURE__ */factory(name, dependencies, _ref => {
34
34
  */
35
35
  return typed(name, {
36
36
  'Matrix, number': _column,
37
- 'Array, number': function ArrayNumber(value, column) {
37
+ 'Array, number': function Array_number(value, column) {
38
38
  return _column(matrix(clone(value)), column).valueOf();
39
39
  }
40
40
  });
@@ -43,7 +43,7 @@ export var createConcat = /* #__PURE__ */factory(name, dependencies, _ref => {
43
43
  */
44
44
  return typed(name, {
45
45
  // TODO: change signature to '...Array | Matrix, dim?' when supported
46
- '...Array | Matrix | number | BigNumber': function ArrayMatrixNumberBigNumber(args) {
46
+ '...Array | Matrix | number | BigNumber': function Array__Matrix__number__BigNumber(args) {
47
47
  var i;
48
48
  var len = args.length;
49
49
  var dim = -1; // zero-based dimension
@@ -32,7 +32,7 @@ export var createCount = /* #__PURE__ */factory(name, dependencies, _ref => {
32
32
  string: function string(x) {
33
33
  return x.length;
34
34
  },
35
- 'Matrix | Array': function MatrixArray(x) {
35
+ 'Matrix | Array': function Matrix__Array(x) {
36
36
  return prod(size(x));
37
37
  }
38
38
  });
@@ -43,13 +43,13 @@ export var createCross = /* #__PURE__ */factory(name, dependencies, _ref => {
43
43
  * @return {Array | Matrix} Returns the cross product of `x` and `y`
44
44
  */
45
45
  return typed(name, {
46
- 'Matrix, Matrix': function MatrixMatrix(x, y) {
46
+ 'Matrix, Matrix': function Matrix_Matrix(x, y) {
47
47
  return matrix(_cross(x.toArray(), y.toArray()));
48
48
  },
49
- 'Matrix, Array': function MatrixArray(x, y) {
49
+ 'Matrix, Array': function Matrix_Array(x, y) {
50
50
  return matrix(_cross(x.toArray(), y));
51
51
  },
52
- 'Array, Matrix': function ArrayMatrix(x, y) {
52
+ 'Array, Matrix': function Array_Matrix(x, y) {
53
53
  return matrix(_cross(x, y.toArray()));
54
54
  },
55
55
  'Array, Array': _cross