mathjs 13.0.3 → 13.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. package/HISTORY.md +30 -1
  2. package/bin/cli.js +24 -10
  3. package/lib/browser/math.js +1 -1
  4. package/lib/browser/math.js.LICENSE.txt +2 -2
  5. package/lib/browser/math.js.map +1 -1
  6. package/lib/cjs/core/create.js +12 -9
  7. package/lib/cjs/core/function/typed.js +3 -4
  8. package/lib/cjs/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
  9. package/lib/cjs/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
  10. package/lib/cjs/entry/impureFunctionsAny.generated.js +2 -2
  11. package/lib/cjs/entry/pureFunctionsAny.generated.js +6 -8
  12. package/lib/cjs/entry/typeChecks.js +18 -0
  13. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -2
  14. package/lib/cjs/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
  15. package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +1 -1
  16. package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +1 -1
  17. package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +1 -1
  18. package/lib/cjs/expression/embeddedDocs/function/matrix/kron.js +1 -1
  19. package/lib/cjs/expression/embeddedDocs/function/matrix/map.js +3 -3
  20. package/lib/cjs/expression/embeddedDocs/function/special/zeta.js +1 -1
  21. package/lib/cjs/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
  22. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
  23. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
  24. package/lib/cjs/expression/embeddedDocs/function/utils/clone.js +1 -1
  25. package/lib/cjs/expression/function/evaluate.js +5 -0
  26. package/lib/cjs/expression/node/FunctionNode.js +10 -2
  27. package/lib/cjs/expression/transform/filter.transform.js +2 -2
  28. package/lib/cjs/expression/transform/map.transform.js +104 -37
  29. package/lib/cjs/expression/transform/utils/dimToZeroBase.js +23 -0
  30. package/lib/cjs/expression/transform/utils/lastDimToZeroBase.js +3 -4
  31. package/lib/cjs/function/arithmetic/hypot.js +3 -3
  32. package/lib/cjs/function/matrix/apply.js +1 -1
  33. package/lib/cjs/function/matrix/fft.js +3 -3
  34. package/lib/cjs/function/matrix/filter.js +2 -2
  35. package/lib/cjs/function/matrix/flatten.js +5 -6
  36. package/lib/cjs/function/matrix/ifft.js +2 -2
  37. package/lib/cjs/function/matrix/kron.js +4 -4
  38. package/lib/cjs/function/matrix/map.js +109 -18
  39. package/lib/cjs/function/matrix/size.js +7 -7
  40. package/lib/cjs/function/matrix/squeeze.js +3 -4
  41. package/lib/cjs/function/probability/random.js +1 -1
  42. package/lib/cjs/function/probability/randomInt.js +1 -1
  43. package/lib/cjs/function/statistics/cumsum.js +2 -2
  44. package/lib/cjs/function/trigonometry/acoth.js +2 -2
  45. package/lib/cjs/function/trigonometry/acsch.js +2 -2
  46. package/lib/cjs/header.js +2 -2
  47. package/lib/cjs/type/matrix/DenseMatrix.js +3 -28
  48. package/lib/cjs/type/matrix/SparseMatrix.js +5 -8
  49. package/lib/cjs/utils/array.js +27 -0
  50. package/lib/cjs/utils/collection.js +1 -1
  51. package/lib/cjs/utils/customs.js +5 -12
  52. package/lib/cjs/utils/function.js +0 -14
  53. package/lib/cjs/utils/is.js +27 -0
  54. package/lib/cjs/utils/map.js +7 -23
  55. package/lib/cjs/version.js +1 -1
  56. package/lib/esm/core/create.js +9 -6
  57. package/lib/esm/core/function/typed.js +2 -3
  58. package/lib/esm/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
  59. package/lib/esm/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
  60. package/lib/esm/entry/impureFunctionsAny.generated.js +3 -3
  61. package/lib/esm/entry/pureFunctionsAny.generated.js +7 -9
  62. package/lib/esm/entry/typeChecks.js +1 -1
  63. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -2
  64. package/lib/esm/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
  65. package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
  66. package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +1 -1
  67. package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +1 -1
  68. package/lib/esm/expression/embeddedDocs/function/matrix/kron.js +1 -1
  69. package/lib/esm/expression/embeddedDocs/function/matrix/map.js +3 -3
  70. package/lib/esm/expression/embeddedDocs/function/special/zeta.js +1 -1
  71. package/lib/esm/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
  72. package/lib/esm/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
  73. package/lib/esm/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
  74. package/lib/esm/expression/embeddedDocs/function/utils/clone.js +1 -1
  75. package/lib/esm/expression/function/compile.js +1 -1
  76. package/lib/esm/expression/function/evaluate.js +8 -3
  77. package/lib/esm/expression/node/FunctionNode.js +10 -2
  78. package/lib/esm/expression/parse.js +2 -2
  79. package/lib/esm/expression/transform/filter.transform.js +4 -4
  80. package/lib/esm/expression/transform/forEach.transform.js +4 -4
  81. package/lib/esm/expression/transform/map.transform.js +104 -37
  82. package/lib/esm/expression/transform/print.transform.js +2 -2
  83. package/lib/esm/expression/transform/utils/dimToZeroBase.js +16 -0
  84. package/lib/esm/expression/transform/utils/lastDimToZeroBase.js +4 -6
  85. package/lib/esm/function/algebra/decomposition/slu.js +1 -1
  86. package/lib/esm/function/algebra/derivative.js +15 -15
  87. package/lib/esm/function/algebra/lyap.js +4 -4
  88. package/lib/esm/function/algebra/simplify/util.js +3 -3
  89. package/lib/esm/function/algebra/simplifyConstant.js +9 -9
  90. package/lib/esm/function/algebra/solver/lsolve.js +3 -3
  91. package/lib/esm/function/algebra/solver/lsolveAll.js +3 -3
  92. package/lib/esm/function/algebra/solver/lusolve.js +5 -5
  93. package/lib/esm/function/algebra/solver/usolve.js +3 -3
  94. package/lib/esm/function/algebra/solver/usolveAll.js +3 -3
  95. package/lib/esm/function/algebra/sylvester.js +7 -7
  96. package/lib/esm/function/arithmetic/addScalar.js +4 -4
  97. package/lib/esm/function/arithmetic/ceil.js +6 -6
  98. package/lib/esm/function/arithmetic/divide.js +5 -5
  99. package/lib/esm/function/arithmetic/divideScalar.js +5 -5
  100. package/lib/esm/function/arithmetic/fix.js +5 -5
  101. package/lib/esm/function/arithmetic/floor.js +6 -6
  102. package/lib/esm/function/arithmetic/hypot.js +3 -3
  103. package/lib/esm/function/arithmetic/mod.js +3 -3
  104. package/lib/esm/function/arithmetic/multiply.js +7 -7
  105. package/lib/esm/function/arithmetic/multiplyScalar.js +4 -4
  106. package/lib/esm/function/arithmetic/norm.js +2 -2
  107. package/lib/esm/function/arithmetic/pow.js +6 -6
  108. package/lib/esm/function/arithmetic/round.js +7 -7
  109. package/lib/esm/function/arithmetic/subtractScalar.js +4 -4
  110. package/lib/esm/function/arithmetic/xgcd.js +1 -1
  111. package/lib/esm/function/combinatorics/bellNumbers.js +1 -1
  112. package/lib/esm/function/combinatorics/catalan.js +1 -1
  113. package/lib/esm/function/combinatorics/composition.js +1 -1
  114. package/lib/esm/function/combinatorics/stirlingS2.js +1 -1
  115. package/lib/esm/function/geometry/distance.js +4 -4
  116. package/lib/esm/function/geometry/intersect.js +2 -2
  117. package/lib/esm/function/logical/and.js +2 -2
  118. package/lib/esm/function/logical/or.js +2 -2
  119. package/lib/esm/function/logical/xor.js +2 -2
  120. package/lib/esm/function/matrix/apply.js +2 -2
  121. package/lib/esm/function/matrix/column.js +1 -1
  122. package/lib/esm/function/matrix/concat.js +1 -1
  123. package/lib/esm/function/matrix/count.js +1 -1
  124. package/lib/esm/function/matrix/cross.js +3 -3
  125. package/lib/esm/function/matrix/diag.js +10 -10
  126. package/lib/esm/function/matrix/diff.js +2 -2
  127. package/lib/esm/function/matrix/eigs.js +3 -3
  128. package/lib/esm/function/matrix/fft.js +3 -3
  129. package/lib/esm/function/matrix/filter.js +4 -4
  130. package/lib/esm/function/matrix/flatten.js +5 -6
  131. package/lib/esm/function/matrix/forEach.js +4 -4
  132. package/lib/esm/function/matrix/identity.js +6 -6
  133. package/lib/esm/function/matrix/ifft.js +3 -3
  134. package/lib/esm/function/matrix/inv.js +1 -1
  135. package/lib/esm/function/matrix/kron.js +7 -7
  136. package/lib/esm/function/matrix/map.js +110 -19
  137. package/lib/esm/function/matrix/matrixFromFunction.js +6 -6
  138. package/lib/esm/function/matrix/ones.js +2 -2
  139. package/lib/esm/function/matrix/partitionSelect.js +2 -2
  140. package/lib/esm/function/matrix/pinv.js +1 -1
  141. package/lib/esm/function/matrix/range.js +10 -10
  142. package/lib/esm/function/matrix/reshape.js +2 -2
  143. package/lib/esm/function/matrix/rotate.js +4 -4
  144. package/lib/esm/function/matrix/rotationMatrix.js +6 -6
  145. package/lib/esm/function/matrix/row.js +1 -1
  146. package/lib/esm/function/matrix/size.js +8 -8
  147. package/lib/esm/function/matrix/sort.js +4 -4
  148. package/lib/esm/function/matrix/sqrtm.js +1 -1
  149. package/lib/esm/function/matrix/squeeze.js +3 -4
  150. package/lib/esm/function/matrix/subset.js +2 -2
  151. package/lib/esm/function/matrix/zeros.js +2 -2
  152. package/lib/esm/function/probability/combinations.js +1 -1
  153. package/lib/esm/function/probability/combinationsWithRep.js +2 -2
  154. package/lib/esm/function/probability/kldivergence.js +4 -4
  155. package/lib/esm/function/probability/multinomial.js +1 -1
  156. package/lib/esm/function/probability/permutations.js +2 -2
  157. package/lib/esm/function/probability/pickRandom.js +6 -6
  158. package/lib/esm/function/probability/random.js +1 -1
  159. package/lib/esm/function/probability/randomInt.js +1 -1
  160. package/lib/esm/function/relational/compare.js +6 -6
  161. package/lib/esm/function/relational/deepEqual.js +1 -1
  162. package/lib/esm/function/relational/equal.js +1 -1
  163. package/lib/esm/function/relational/equalScalar.js +7 -7
  164. package/lib/esm/function/relational/equalText.js +1 -1
  165. package/lib/esm/function/relational/larger.js +3 -3
  166. package/lib/esm/function/relational/largerEq.js +4 -4
  167. package/lib/esm/function/relational/smaller.js +3 -3
  168. package/lib/esm/function/relational/smallerEq.js +3 -3
  169. package/lib/esm/function/relational/unequal.js +1 -1
  170. package/lib/esm/function/set/setCartesian.js +1 -1
  171. package/lib/esm/function/set/setDifference.js +1 -1
  172. package/lib/esm/function/set/setDistinct.js +1 -1
  173. package/lib/esm/function/set/setIntersect.js +1 -1
  174. package/lib/esm/function/set/setIsSubset.js +1 -1
  175. package/lib/esm/function/set/setMultiplicity.js +1 -1
  176. package/lib/esm/function/set/setPowerset.js +1 -1
  177. package/lib/esm/function/set/setSize.js +2 -2
  178. package/lib/esm/function/set/setSymDifference.js +1 -1
  179. package/lib/esm/function/set/setUnion.js +1 -1
  180. package/lib/esm/function/signal/freqz.js +6 -6
  181. package/lib/esm/function/statistics/corr.js +2 -2
  182. package/lib/esm/function/statistics/cumsum.js +3 -3
  183. package/lib/esm/function/statistics/max.js +1 -1
  184. package/lib/esm/function/statistics/median.js +3 -3
  185. package/lib/esm/function/statistics/min.js +1 -1
  186. package/lib/esm/function/statistics/prod.js +1 -1
  187. package/lib/esm/function/statistics/variance.js +2 -2
  188. package/lib/esm/function/string/bin.js +2 -2
  189. package/lib/esm/function/string/hex.js +2 -2
  190. package/lib/esm/function/string/oct.js +2 -2
  191. package/lib/esm/function/trigonometry/acoth.js +2 -2
  192. package/lib/esm/function/trigonometry/acsch.js +2 -2
  193. package/lib/esm/type/bigint.js +1 -1
  194. package/lib/esm/type/complex/function/complex.js +2 -2
  195. package/lib/esm/type/fraction/function/fraction.js +1 -1
  196. package/lib/esm/type/matrix/DenseMatrix.js +13 -38
  197. package/lib/esm/type/matrix/SparseMatrix.js +5 -8
  198. package/lib/esm/type/matrix/function/index.js +1 -1
  199. package/lib/esm/type/matrix/function/matrix.js +1 -1
  200. package/lib/esm/type/matrix/function/sparse.js +2 -2
  201. package/lib/esm/type/number.js +1 -1
  202. package/lib/esm/type/unit/function/createUnit.js +3 -3
  203. package/lib/esm/type/unit/function/splitUnit.js +1 -1
  204. package/lib/esm/type/unit/function/unit.js +2 -2
  205. package/lib/esm/utils/array.js +26 -0
  206. package/lib/esm/utils/collection.js +1 -1
  207. package/lib/esm/utils/customs.js +5 -12
  208. package/lib/esm/utils/function.js +0 -13
  209. package/lib/esm/utils/is.js +24 -0
  210. package/lib/esm/utils/map.js +7 -22
  211. package/lib/esm/version.js +1 -1
  212. package/package.json +13 -13
  213. 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