mathjs 10.6.2 → 11.0.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 (436) hide show
  1. package/HISTORY.md +74 -1
  2. package/README.md +1 -1
  3. package/lib/browser/math.js +2 -41
  4. package/lib/browser/math.js.LICENSE.txt +43 -0
  5. package/lib/browser/math.js.map +1 -1
  6. package/lib/cjs/core/create.js +6 -5
  7. package/lib/cjs/core/function/import.js +4 -14
  8. package/lib/cjs/core/function/typed.js +54 -12
  9. package/lib/cjs/defaultInstance.js +3 -3
  10. package/lib/cjs/entry/allFactoriesAny.js +1 -1
  11. package/lib/cjs/entry/allFactoriesNumber.js +1 -1
  12. package/lib/cjs/entry/configReadonly.js +1 -1
  13. package/lib/cjs/entry/dependenciesAny/dependenciesChainClass.generated.js +3 -0
  14. package/lib/cjs/entry/dependenciesAny/dependenciesKldivergence.generated.js +3 -0
  15. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +3 -0
  16. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +3 -0
  17. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +3 -0
  18. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +56 -0
  19. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +6 -0
  20. package/lib/cjs/entry/dependenciesAny/dependenciesSqrtm.generated.js +3 -0
  21. package/lib/cjs/entry/dependenciesAny/dependenciesStd.generated.js +3 -0
  22. package/lib/cjs/entry/dependenciesAny/dependenciesStdTransform.generated.js +3 -0
  23. package/lib/cjs/entry/dependenciesAny.generated.js +8 -0
  24. package/lib/cjs/entry/dependenciesNumber/dependenciesChainClass.generated.js +3 -0
  25. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +3 -0
  26. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +3 -0
  27. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +3 -0
  28. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +50 -0
  29. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +6 -0
  30. package/lib/cjs/entry/dependenciesNumber/dependenciesStd.generated.js +3 -0
  31. package/lib/cjs/entry/dependenciesNumber/dependenciesStdTransform.generated.js +3 -0
  32. package/lib/cjs/entry/dependenciesNumber.generated.js +8 -0
  33. package/lib/cjs/entry/impureFunctionsAny.generated.js +87 -61
  34. package/lib/cjs/entry/impureFunctionsNumber.generated.js +93 -69
  35. package/lib/cjs/entry/pureFunctionsAny.generated.js +50 -45
  36. package/lib/cjs/entry/pureFunctionsNumber.generated.js +22 -19
  37. package/lib/cjs/expression/Parser.js +1 -1
  38. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -5
  39. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +15 -0
  40. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  41. package/lib/cjs/expression/node/AccessorNode.js +216 -173
  42. package/lib/cjs/expression/node/ArrayNode.js +206 -160
  43. package/lib/cjs/expression/node/AssignmentNode.js +321 -270
  44. package/lib/cjs/expression/node/BlockNode.js +223 -172
  45. package/lib/cjs/expression/node/ConditionalNode.js +253 -193
  46. package/lib/cjs/expression/node/ConstantNode.js +216 -171
  47. package/lib/cjs/expression/node/FunctionAssignmentNode.js +258 -196
  48. package/lib/cjs/expression/node/FunctionNode.js +456 -416
  49. package/lib/cjs/expression/node/IndexNode.js +256 -210
  50. package/lib/cjs/expression/node/Node.js +411 -378
  51. package/lib/cjs/expression/node/ObjectNode.js +223 -178
  52. package/lib/cjs/expression/node/OperatorNode.js +474 -397
  53. package/lib/cjs/expression/node/ParenthesisNode.js +189 -143
  54. package/lib/cjs/expression/node/RangeNode.js +272 -224
  55. package/lib/cjs/expression/node/RelationalNode.js +246 -195
  56. package/lib/cjs/expression/node/SymbolNode.js +219 -172
  57. package/lib/cjs/expression/node/utils/access.js +1 -1
  58. package/lib/cjs/expression/node/utils/assign.js +1 -1
  59. package/lib/cjs/expression/operators.js +117 -23
  60. package/lib/cjs/expression/parse.js +37 -19
  61. package/lib/cjs/expression/transform/std.transform.js +3 -1
  62. package/lib/cjs/factoriesAny.js +8 -0
  63. package/lib/cjs/factoriesNumber.js +10 -1
  64. package/lib/cjs/function/algebra/decomposition/qr.js +1 -1
  65. package/lib/cjs/function/algebra/derivative.js +22 -30
  66. package/lib/cjs/function/algebra/leafCount.js +0 -3
  67. package/lib/cjs/function/algebra/rationalize.js +78 -108
  68. package/lib/cjs/function/algebra/resolve.js +53 -16
  69. package/lib/cjs/function/algebra/simplify/util.js +1 -1
  70. package/lib/cjs/function/algebra/simplify.js +87 -114
  71. package/lib/cjs/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +44 -10
  72. package/lib/cjs/function/algebra/simplifyCore.js +196 -93
  73. package/lib/cjs/function/algebra/solver/lsolveAll.js +2 -2
  74. package/lib/cjs/function/algebra/solver/usolveAll.js +2 -2
  75. package/lib/cjs/function/algebra/symbolicEqual.js +9 -26
  76. package/lib/cjs/function/arithmetic/abs.js +7 -14
  77. package/lib/cjs/function/arithmetic/add.js +26 -70
  78. package/lib/cjs/function/arithmetic/addScalar.js +17 -9
  79. package/lib/cjs/function/arithmetic/cbrt.js +7 -11
  80. package/lib/cjs/function/arithmetic/ceil.js +56 -46
  81. package/lib/cjs/function/arithmetic/cube.js +5 -10
  82. package/lib/cjs/function/arithmetic/divide.js +7 -7
  83. package/lib/cjs/function/arithmetic/divideScalar.js +4 -18
  84. package/lib/cjs/function/arithmetic/dotDivide.js +22 -65
  85. package/lib/cjs/function/arithmetic/dotMultiply.js +16 -61
  86. package/lib/cjs/function/arithmetic/dotPow.js +30 -63
  87. package/lib/cjs/function/arithmetic/exp.js +8 -12
  88. package/lib/cjs/function/arithmetic/expm1.js +10 -10
  89. package/lib/cjs/function/arithmetic/fix.js +33 -27
  90. package/lib/cjs/function/arithmetic/floor.js +56 -46
  91. package/lib/cjs/function/arithmetic/gcd.js +27 -68
  92. package/lib/cjs/function/arithmetic/hypot.js +9 -5
  93. package/lib/cjs/function/arithmetic/invmod.js +1 -1
  94. package/lib/cjs/function/arithmetic/lcm.js +27 -68
  95. package/lib/cjs/function/arithmetic/log.js +10 -12
  96. package/lib/cjs/function/arithmetic/log10.js +5 -3
  97. package/lib/cjs/function/arithmetic/log1p.js +11 -7
  98. package/lib/cjs/function/arithmetic/log2.js +5 -3
  99. package/lib/cjs/function/arithmetic/mod.js +22 -64
  100. package/lib/cjs/function/arithmetic/multiply.js +40 -35
  101. package/lib/cjs/function/arithmetic/multiplyScalar.js +2 -9
  102. package/lib/cjs/function/arithmetic/norm.js +1 -5
  103. package/lib/cjs/function/arithmetic/nthRoot.js +80 -92
  104. package/lib/cjs/function/arithmetic/round.js +56 -42
  105. package/lib/cjs/function/arithmetic/sign.js +14 -10
  106. package/lib/cjs/function/arithmetic/sqrt.js +5 -9
  107. package/lib/cjs/function/arithmetic/square.js +6 -10
  108. package/lib/cjs/function/arithmetic/subtract.js +44 -100
  109. package/lib/cjs/function/arithmetic/unaryMinus.js +14 -16
  110. package/lib/cjs/function/arithmetic/unaryPlus.js +6 -4
  111. package/lib/cjs/function/bitwise/bitAnd.js +17 -61
  112. package/lib/cjs/function/bitwise/bitNot.js +5 -3
  113. package/lib/cjs/function/bitwise/bitOr.js +16 -60
  114. package/lib/cjs/function/bitwise/bitXor.js +17 -61
  115. package/lib/cjs/function/bitwise/leftShift.js +68 -81
  116. package/lib/cjs/function/bitwise/rightArithShift.js +68 -81
  117. package/lib/cjs/function/bitwise/rightLogShift.js +68 -81
  118. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +36 -0
  119. package/lib/cjs/function/complex/arg.js +5 -3
  120. package/lib/cjs/function/complex/conj.js +6 -7
  121. package/lib/cjs/function/complex/im.js +7 -8
  122. package/lib/cjs/function/complex/re.js +6 -10
  123. package/lib/cjs/function/logical/and.js +74 -80
  124. package/lib/cjs/function/logical/not.js +13 -6
  125. package/lib/cjs/function/logical/or.js +21 -63
  126. package/lib/cjs/function/logical/xor.js +21 -63
  127. package/lib/cjs/function/matrix/diff.js +10 -7
  128. package/lib/cjs/function/matrix/eigs/complexEigs.js +5 -5
  129. package/lib/cjs/function/matrix/fft.js +2 -2
  130. package/lib/cjs/function/matrix/matrixFromColumns.js +1 -1
  131. package/lib/cjs/function/matrix/matrixFromRows.js +1 -1
  132. package/lib/cjs/function/matrix/ones.js +2 -1
  133. package/lib/cjs/function/matrix/sqrtm.js +3 -2
  134. package/lib/cjs/function/matrix/transpose.js +47 -48
  135. package/lib/cjs/function/matrix/zeros.js +2 -1
  136. package/lib/cjs/function/probability/factorial.js +5 -3
  137. package/lib/cjs/function/probability/gamma.js +38 -40
  138. package/lib/cjs/function/probability/kldivergence.js +5 -2
  139. package/lib/cjs/function/probability/lgamma.js +30 -30
  140. package/lib/cjs/function/probability/util/seededRNG.js +2 -2
  141. package/lib/cjs/function/relational/compare.js +21 -67
  142. package/lib/cjs/function/relational/compareNatural.js +59 -54
  143. package/lib/cjs/function/relational/compareText.js +10 -43
  144. package/lib/cjs/function/relational/compareUnits.js +24 -0
  145. package/lib/cjs/function/relational/equal.js +19 -80
  146. package/lib/cjs/function/relational/equalScalar.js +7 -9
  147. package/lib/cjs/function/relational/larger.js +21 -67
  148. package/lib/cjs/function/relational/largerEq.js +21 -67
  149. package/lib/cjs/function/relational/smaller.js +21 -67
  150. package/lib/cjs/function/relational/smallerEq.js +21 -67
  151. package/lib/cjs/function/relational/unequal.js +19 -80
  152. package/lib/cjs/function/special/erf.js +5 -3
  153. package/lib/cjs/function/statistics/std.js +11 -2
  154. package/lib/cjs/function/trigonometry/acos.js +4 -8
  155. package/lib/cjs/function/trigonometry/acosh.js +2 -7
  156. package/lib/cjs/function/trigonometry/acot.js +4 -8
  157. package/lib/cjs/function/trigonometry/acoth.js +4 -8
  158. package/lib/cjs/function/trigonometry/acsc.js +4 -8
  159. package/lib/cjs/function/trigonometry/acsch.js +4 -8
  160. package/lib/cjs/function/trigonometry/asec.js +4 -8
  161. package/lib/cjs/function/trigonometry/asech.js +4 -8
  162. package/lib/cjs/function/trigonometry/asin.js +4 -9
  163. package/lib/cjs/function/trigonometry/asinh.js +4 -9
  164. package/lib/cjs/function/trigonometry/atan.js +4 -9
  165. package/lib/cjs/function/trigonometry/atan2.js +24 -62
  166. package/lib/cjs/function/trigonometry/atanh.js +4 -9
  167. package/lib/cjs/function/trigonometry/cos.js +11 -20
  168. package/lib/cjs/function/trigonometry/cosh.js +5 -19
  169. package/lib/cjs/function/trigonometry/cot.js +9 -15
  170. package/lib/cjs/function/trigonometry/coth.js +4 -15
  171. package/lib/cjs/function/trigonometry/csc.js +11 -17
  172. package/lib/cjs/function/trigonometry/csch.js +4 -15
  173. package/lib/cjs/function/trigonometry/sec.js +11 -17
  174. package/lib/cjs/function/trigonometry/sech.js +4 -15
  175. package/lib/cjs/function/trigonometry/sin.js +11 -21
  176. package/lib/cjs/function/trigonometry/sinh.js +5 -20
  177. package/lib/cjs/function/trigonometry/tan.js +11 -21
  178. package/lib/cjs/function/trigonometry/tanh.js +5 -20
  179. package/lib/cjs/function/trigonometry/trigUnit.js +24 -0
  180. package/lib/cjs/function/unit/to.js +7 -41
  181. package/lib/cjs/function/utils/hasNumericValue.js +4 -0
  182. package/lib/cjs/function/utils/isInteger.js +5 -3
  183. package/lib/cjs/function/utils/isNegative.js +10 -6
  184. package/lib/cjs/function/utils/isNumeric.js +5 -3
  185. package/lib/cjs/function/utils/isPositive.js +10 -6
  186. package/lib/cjs/function/utils/isPrime.js +5 -3
  187. package/lib/cjs/function/utils/isZero.js +10 -6
  188. package/lib/cjs/function/utils/numeric.js +11 -4
  189. package/lib/cjs/function/utils/typeOf.js +38 -44
  190. package/lib/cjs/header.js +2 -2
  191. package/lib/cjs/plain/bignumber/index.js +1 -1
  192. package/lib/cjs/type/bignumber/BigNumber.js +2 -2
  193. package/lib/cjs/type/bignumber/function/bignumber.js +6 -4
  194. package/lib/cjs/type/boolean.js +7 -5
  195. package/lib/cjs/type/chain/Chain.js +23 -3
  196. package/lib/cjs/type/complex/Complex.js +18 -14
  197. package/lib/cjs/type/complex/function/complex.js +6 -4
  198. package/lib/cjs/type/fraction/Fraction.js +10 -6
  199. package/lib/cjs/type/fraction/function/fraction.js +6 -4
  200. package/lib/cjs/type/matrix/DenseMatrix.js +21 -6
  201. package/lib/cjs/type/matrix/SparseMatrix.js +12 -2
  202. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +4 -4
  203. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +5 -5
  204. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +5 -5
  205. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +7 -7
  206. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +5 -5
  207. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +5 -5
  208. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +5 -5
  209. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +6 -6
  210. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +5 -5
  211. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +5 -5
  212. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +5 -5
  213. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +5 -5
  214. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +5 -5
  215. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +5 -5
  216. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +238 -0
  217. package/lib/cjs/type/number.js +6 -4
  218. package/lib/cjs/type/string.js +7 -5
  219. package/lib/cjs/type/unit/Unit.js +69 -21
  220. package/lib/cjs/type/unit/function/createUnit.js +2 -1
  221. package/lib/cjs/type/unit/function/unit.js +9 -3
  222. package/lib/cjs/utils/customs.js +2 -2
  223. package/lib/cjs/utils/emitter.js +1 -1
  224. package/lib/cjs/utils/function.js +2 -2
  225. package/lib/cjs/utils/is.js +27 -25
  226. package/lib/cjs/utils/latex.js +3 -3
  227. package/lib/cjs/utils/lruQueue.js +1 -1
  228. package/lib/cjs/utils/map.js +3 -3
  229. package/lib/cjs/utils/object.js +2 -2
  230. package/lib/cjs/utils/snapshot.js +30 -57
  231. package/lib/cjs/utils/string.js +3 -3
  232. package/lib/cjs/version.js +1 -1
  233. package/lib/esm/core/create.js +2 -1
  234. package/lib/esm/core/function/import.js +2 -12
  235. package/lib/esm/core/function/typed.js +47 -11
  236. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  237. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  238. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +2 -0
  239. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +2 -0
  240. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +2 -0
  241. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +34 -0
  242. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +4 -0
  243. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  244. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  245. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  246. package/lib/esm/entry/dependenciesAny.generated.js +1 -0
  247. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  248. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +2 -0
  249. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +2 -0
  250. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +2 -0
  251. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +30 -0
  252. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +4 -0
  253. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  254. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  255. package/lib/esm/entry/dependenciesNumber.generated.js +1 -0
  256. package/lib/esm/entry/impureFunctionsAny.generated.js +73 -48
  257. package/lib/esm/entry/impureFunctionsNumber.generated.js +81 -58
  258. package/lib/esm/entry/pureFunctionsAny.generated.js +39 -36
  259. package/lib/esm/entry/pureFunctionsNumber.generated.js +14 -13
  260. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
  261. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  262. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +1 -1
  263. package/lib/esm/expression/node/AccessorNode.js +158 -153
  264. package/lib/esm/expression/node/ArrayNode.js +162 -154
  265. package/lib/esm/expression/node/AssignmentNode.js +257 -245
  266. package/lib/esm/expression/node/BlockNode.js +177 -163
  267. package/lib/esm/expression/node/ConditionalNode.js +197 -174
  268. package/lib/esm/expression/node/ConstantNode.js +171 -163
  269. package/lib/esm/expression/node/FunctionAssignmentNode.js +205 -180
  270. package/lib/esm/expression/node/FunctionNode.js +407 -407
  271. package/lib/esm/expression/node/IndexNode.js +206 -198
  272. package/lib/esm/expression/node/Node.js +325 -325
  273. package/lib/esm/expression/node/ObjectNode.js +166 -157
  274. package/lib/esm/expression/node/OperatorNode.js +414 -377
  275. package/lib/esm/expression/node/ParenthesisNode.js +146 -138
  276. package/lib/esm/expression/node/RangeNode.js +221 -212
  277. package/lib/esm/expression/node/RelationalNode.js +190 -176
  278. package/lib/esm/expression/node/SymbolNode.js +161 -152
  279. package/lib/esm/expression/operators.js +96 -4
  280. package/lib/esm/expression/parse.js +25 -7
  281. package/lib/esm/expression/transform/std.transform.js +3 -1
  282. package/lib/esm/factoriesAny.js +1 -0
  283. package/lib/esm/factoriesNumber.js +1 -0
  284. package/lib/esm/function/algebra/derivative.js +22 -30
  285. package/lib/esm/function/algebra/leafCount.js +0 -3
  286. package/lib/esm/function/algebra/rationalize.js +83 -114
  287. package/lib/esm/function/algebra/resolve.js +25 -16
  288. package/lib/esm/function/algebra/simplify.js +82 -112
  289. package/lib/esm/function/algebra/{simplify/simplifyConstant.js → simplifyConstant.js} +39 -9
  290. package/lib/esm/function/algebra/simplifyCore.js +192 -91
  291. package/lib/esm/function/algebra/symbolicEqual.js +9 -26
  292. package/lib/esm/function/arithmetic/abs.js +3 -16
  293. package/lib/esm/function/arithmetic/add.js +21 -65
  294. package/lib/esm/function/arithmetic/addScalar.js +11 -5
  295. package/lib/esm/function/arithmetic/cbrt.js +7 -10
  296. package/lib/esm/function/arithmetic/ceil.js +25 -25
  297. package/lib/esm/function/arithmetic/cube.js +5 -9
  298. package/lib/esm/function/arithmetic/divide.js +7 -7
  299. package/lib/esm/function/arithmetic/divideScalar.js +2 -19
  300. package/lib/esm/function/arithmetic/dotDivide.js +22 -64
  301. package/lib/esm/function/arithmetic/dotMultiply.js +16 -60
  302. package/lib/esm/function/arithmetic/dotPow.js +30 -62
  303. package/lib/esm/function/arithmetic/exp.js +8 -11
  304. package/lib/esm/function/arithmetic/expm1.js +10 -9
  305. package/lib/esm/function/arithmetic/fix.js +17 -17
  306. package/lib/esm/function/arithmetic/floor.js +25 -25
  307. package/lib/esm/function/arithmetic/gcd.js +26 -70
  308. package/lib/esm/function/arithmetic/hypot.js +7 -6
  309. package/lib/esm/function/arithmetic/lcm.js +26 -70
  310. package/lib/esm/function/arithmetic/log.js +7 -10
  311. package/lib/esm/function/arithmetic/log10.js +1 -3
  312. package/lib/esm/function/arithmetic/log1p.js +4 -6
  313. package/lib/esm/function/arithmetic/log2.js +1 -3
  314. package/lib/esm/function/arithmetic/mod.js +21 -62
  315. package/lib/esm/function/arithmetic/multiply.js +23 -27
  316. package/lib/esm/function/arithmetic/multiplyScalar.js +2 -13
  317. package/lib/esm/function/arithmetic/norm.js +0 -4
  318. package/lib/esm/function/arithmetic/nthRoot.js +38 -73
  319. package/lib/esm/function/arithmetic/round.js +26 -28
  320. package/lib/esm/function/arithmetic/sign.js +5 -7
  321. package/lib/esm/function/arithmetic/sqrt.js +5 -8
  322. package/lib/esm/function/arithmetic/square.js +6 -9
  323. package/lib/esm/function/arithmetic/subtract.js +31 -95
  324. package/lib/esm/function/arithmetic/unaryMinus.js +6 -16
  325. package/lib/esm/function/arithmetic/unaryPlus.js +2 -4
  326. package/lib/esm/function/bitwise/bitAnd.js +16 -59
  327. package/lib/esm/function/bitwise/bitNot.js +1 -3
  328. package/lib/esm/function/bitwise/bitOr.js +16 -59
  329. package/lib/esm/function/bitwise/bitXor.js +16 -59
  330. package/lib/esm/function/bitwise/leftShift.js +38 -60
  331. package/lib/esm/function/bitwise/rightArithShift.js +38 -60
  332. package/lib/esm/function/bitwise/rightLogShift.js +38 -60
  333. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  334. package/lib/esm/function/complex/arg.js +1 -3
  335. package/lib/esm/function/complex/conj.js +3 -12
  336. package/lib/esm/function/complex/im.js +4 -15
  337. package/lib/esm/function/complex/re.js +3 -15
  338. package/lib/esm/function/logical/and.js +35 -57
  339. package/lib/esm/function/logical/not.js +3 -6
  340. package/lib/esm/function/logical/or.js +16 -61
  341. package/lib/esm/function/logical/xor.js +16 -61
  342. package/lib/esm/function/matrix/diff.js +2 -7
  343. package/lib/esm/function/matrix/ones.js +2 -1
  344. package/lib/esm/function/matrix/sqrtm.js +3 -2
  345. package/lib/esm/function/matrix/transpose.js +47 -50
  346. package/lib/esm/function/matrix/zeros.js +2 -1
  347. package/lib/esm/function/probability/factorial.js +1 -3
  348. package/lib/esm/function/probability/gamma.js +38 -39
  349. package/lib/esm/function/probability/kldivergence.js +3 -2
  350. package/lib/esm/function/probability/lgamma.js +29 -29
  351. package/lib/esm/function/relational/compare.js +21 -67
  352. package/lib/esm/function/relational/compareNatural.js +54 -49
  353. package/lib/esm/function/relational/compareText.js +10 -42
  354. package/lib/esm/function/relational/compareUnits.js +15 -0
  355. package/lib/esm/function/relational/equal.js +19 -79
  356. package/lib/esm/function/relational/equalScalar.js +6 -9
  357. package/lib/esm/function/relational/larger.js +23 -73
  358. package/lib/esm/function/relational/largerEq.js +23 -73
  359. package/lib/esm/function/relational/smaller.js +23 -73
  360. package/lib/esm/function/relational/smallerEq.js +23 -73
  361. package/lib/esm/function/relational/unequal.js +19 -79
  362. package/lib/esm/function/special/erf.js +1 -3
  363. package/lib/esm/function/statistics/std.js +10 -2
  364. package/lib/esm/function/trigonometry/acos.js +4 -7
  365. package/lib/esm/function/trigonometry/acosh.js +2 -6
  366. package/lib/esm/function/trigonometry/acot.js +4 -7
  367. package/lib/esm/function/trigonometry/acoth.js +4 -7
  368. package/lib/esm/function/trigonometry/acsc.js +4 -7
  369. package/lib/esm/function/trigonometry/acsch.js +4 -7
  370. package/lib/esm/function/trigonometry/asec.js +4 -7
  371. package/lib/esm/function/trigonometry/asech.js +4 -7
  372. package/lib/esm/function/trigonometry/asin.js +4 -8
  373. package/lib/esm/function/trigonometry/asinh.js +4 -8
  374. package/lib/esm/function/trigonometry/atan.js +4 -8
  375. package/lib/esm/function/trigonometry/atan2.js +25 -64
  376. package/lib/esm/function/trigonometry/atanh.js +4 -8
  377. package/lib/esm/function/trigonometry/cos.js +11 -22
  378. package/lib/esm/function/trigonometry/cosh.js +5 -20
  379. package/lib/esm/function/trigonometry/cot.js +10 -20
  380. package/lib/esm/function/trigonometry/coth.js +6 -20
  381. package/lib/esm/function/trigonometry/csc.js +12 -22
  382. package/lib/esm/function/trigonometry/csch.js +6 -20
  383. package/lib/esm/function/trigonometry/sec.js +12 -22
  384. package/lib/esm/function/trigonometry/sech.js +6 -20
  385. package/lib/esm/function/trigonometry/sin.js +11 -23
  386. package/lib/esm/function/trigonometry/sinh.js +5 -21
  387. package/lib/esm/function/trigonometry/tan.js +11 -23
  388. package/lib/esm/function/trigonometry/tanh.js +5 -21
  389. package/lib/esm/function/trigonometry/trigUnit.js +15 -0
  390. package/lib/esm/function/unit/to.js +8 -43
  391. package/lib/esm/function/utils/hasNumericValue.js +2 -0
  392. package/lib/esm/function/utils/isInteger.js +1 -3
  393. package/lib/esm/function/utils/isNegative.js +2 -6
  394. package/lib/esm/function/utils/isNumeric.js +3 -9
  395. package/lib/esm/function/utils/isPositive.js +2 -6
  396. package/lib/esm/function/utils/isPrime.js +1 -3
  397. package/lib/esm/function/utils/isZero.js +2 -6
  398. package/lib/esm/function/utils/numeric.js +11 -4
  399. package/lib/esm/function/utils/typeOf.js +38 -44
  400. package/lib/esm/type/bignumber/function/bignumber.js +1 -3
  401. package/lib/esm/type/boolean.js +1 -3
  402. package/lib/esm/type/chain/Chain.js +23 -3
  403. package/lib/esm/type/complex/Complex.js +4 -0
  404. package/lib/esm/type/complex/function/complex.js +1 -3
  405. package/lib/esm/type/fraction/Fraction.js +4 -0
  406. package/lib/esm/type/fraction/function/fraction.js +1 -3
  407. package/lib/esm/type/matrix/DenseMatrix.js +15 -1
  408. package/lib/esm/type/matrix/SparseMatrix.js +9 -0
  409. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +2 -2
  410. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +3 -3
  411. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +3 -3
  412. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +5 -5
  413. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +3 -3
  414. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +3 -3
  415. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +3 -3
  416. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +4 -4
  417. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +3 -3
  418. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +3 -3
  419. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +3 -3
  420. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +3 -3
  421. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +3 -3
  422. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +3 -3
  423. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +168 -0
  424. package/lib/esm/type/number.js +1 -3
  425. package/lib/esm/type/string.js +1 -3
  426. package/lib/esm/type/unit/Unit.js +61 -13
  427. package/lib/esm/type/unit/function/createUnit.js +2 -1
  428. package/lib/esm/type/unit/function/unit.js +5 -3
  429. package/lib/esm/utils/is.js +18 -18
  430. package/lib/esm/utils/snapshot.js +22 -48
  431. package/lib/esm/version.js +1 -1
  432. package/package.json +21 -24
  433. package/types/index.d.ts +202 -181
  434. package/types/index.ts +264 -57
  435. package/lib/cjs/utils/polyfills.js +0 -14
  436. package/lib/esm/utils/polyfills.js +0 -12
@@ -7,17 +7,13 @@ exports.createAdd = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _object = require("../../utils/object.js");
10
+ var _matAlgo01xDSid = require("../../type/matrix/utils/matAlgo01xDSid.js");
11
11
 
12
- var _algorithm = require("../../type/matrix/utils/algorithm01.js");
12
+ var _matAlgo04xSidSid = require("../../type/matrix/utils/matAlgo04xSidSid.js");
13
13
 
14
- var _algorithm2 = require("../../type/matrix/utils/algorithm04.js");
14
+ var _matAlgo10xSids = require("../../type/matrix/utils/matAlgo10xSids.js");
15
15
 
16
- var _algorithm3 = require("../../type/matrix/utils/algorithm10.js");
17
-
18
- var _algorithm4 = require("../../type/matrix/utils/algorithm13.js");
19
-
20
- var _algorithm5 = require("../../type/matrix/utils/algorithm14.js");
16
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
21
17
 
22
18
  var name = 'add';
23
19
  var dependencies = ['typed', 'matrix', 'addScalar', 'equalScalar', 'DenseMatrix', 'SparseMatrix'];
@@ -28,22 +24,20 @@ var createAdd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
28
24
  equalScalar = _ref.equalScalar,
29
25
  DenseMatrix = _ref.DenseMatrix,
30
26
  SparseMatrix = _ref.SparseMatrix;
31
- var algorithm01 = (0, _algorithm.createAlgorithm01)({
27
+ var matAlgo01xDSid = (0, _matAlgo01xDSid.createMatAlgo01xDSid)({
32
28
  typed: typed
33
29
  });
34
- var algorithm04 = (0, _algorithm2.createAlgorithm04)({
30
+ var matAlgo04xSidSid = (0, _matAlgo04xSidSid.createMatAlgo04xSidSid)({
35
31
  typed: typed,
36
32
  equalScalar: equalScalar
37
33
  });
38
- var algorithm10 = (0, _algorithm3.createAlgorithm10)({
34
+ var matAlgo10xSids = (0, _matAlgo10xSids.createMatAlgo10xSids)({
39
35
  typed: typed,
40
36
  DenseMatrix: DenseMatrix
41
37
  });
42
- var algorithm13 = (0, _algorithm4.createAlgorithm13)({
43
- typed: typed
44
- });
45
- var algorithm14 = (0, _algorithm5.createAlgorithm14)({
46
- typed: typed
38
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
39
+ typed: typed,
40
+ matrix: matrix
47
41
  });
48
42
  /**
49
43
  * Add two or more values, `x + y`.
@@ -80,62 +74,24 @@ var createAdd = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functio
80
74
  * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Sum of `x` and `y`
81
75
  */
82
76
 
83
- return typed(name, (0, _object.extend)({
84
- // we extend the signatures of addScalar with signatures dealing with matrices
85
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
86
- return algorithm13(x, y, addScalar);
87
- },
88
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
89
- return algorithm01(x, y, addScalar, false);
90
- },
91
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
92
- return algorithm01(y, x, addScalar, true);
93
- },
94
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
95
- return algorithm04(x, y, addScalar);
96
- },
97
- 'Array, Array': function ArrayArray(x, y) {
98
- // use matrix implementation
99
- return this(matrix(x), matrix(y)).valueOf();
100
- },
101
- 'Array, Matrix': function ArrayMatrix(x, y) {
102
- // use matrix implementation
103
- return this(matrix(x), y);
104
- },
105
- 'Matrix, Array': function MatrixArray(x, y) {
106
- // use matrix implementation
107
- return this(x, matrix(y));
108
- },
109
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
110
- return algorithm14(x, y, addScalar, false);
111
- },
112
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
113
- return algorithm10(x, y, addScalar, false);
114
- },
115
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
116
- return algorithm14(y, x, addScalar, true);
117
- },
118
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
119
- return algorithm10(y, x, addScalar, true);
120
- },
121
- 'Array, any': function ArrayAny(x, y) {
122
- // use matrix implementation
123
- return algorithm14(matrix(x), y, addScalar, false).valueOf();
124
- },
125
- 'any, Array': function anyArray(x, y) {
126
- // use matrix implementation
127
- return algorithm14(matrix(y), x, addScalar, true).valueOf();
128
- },
77
+ return typed(name, {
129
78
  'any, any': addScalar,
130
- 'any, any, ...any': function anyAnyAny(x, y, rest) {
131
- var result = this(x, y);
79
+ 'any, any, ...any': typed.referToSelf(function (self) {
80
+ return function (x, y, rest) {
81
+ var result = self(x, y);
132
82
 
133
- for (var i = 0; i < rest.length; i++) {
134
- result = this(result, rest[i]);
135
- }
83
+ for (var i = 0; i < rest.length; i++) {
84
+ result = self(result, rest[i]);
85
+ }
136
86
 
137
- return result;
138
- }
139
- }, addScalar.signatures));
87
+ return result;
88
+ };
89
+ })
90
+ }, matrixAlgorithmSuite({
91
+ elop: addScalar,
92
+ DS: matAlgo01xDSid,
93
+ SS: matAlgo04xSidSid,
94
+ Ss: matAlgo10xSids
95
+ }));
140
96
  });
141
97
  exports.createAdd = createAdd;
@@ -37,15 +37,23 @@ var createAddScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
37
37
  'Fraction, Fraction': function FractionFraction(x, y) {
38
38
  return x.add(y);
39
39
  },
40
- 'Unit, Unit': function UnitUnit(x, y) {
41
- if (x.value === null || x.value === undefined) throw new Error('Parameter x contains a unit with undefined value');
42
- if (y.value === null || y.value === undefined) throw new Error('Parameter y contains a unit with undefined value');
43
- if (!x.equalBase(y)) throw new Error('Units do not match');
44
- var res = x.clone();
45
- res.value = this(res.value, y.value);
46
- res.fixPrefix = false;
47
- return res;
48
- }
40
+ 'Unit, Unit': typed.referToSelf(function (self) {
41
+ return function (x, y) {
42
+ if (x.value === null || x.value === undefined) {
43
+ throw new Error('Parameter x contains a unit with undefined value');
44
+ }
45
+
46
+ if (y.value === null || y.value === undefined) {
47
+ throw new Error('Parameter y contains a unit with undefined value');
48
+ }
49
+
50
+ if (!x.equalBase(y)) throw new Error('Units do not match');
51
+ var res = x.clone();
52
+ res.value = typed.find(self, [res.valueType(), y.valueType()])(res.value, y.value);
53
+ res.fixPrefix = false;
54
+ return res;
55
+ };
56
+ })
49
57
  });
50
58
  });
51
59
  exports.createAddScalar = createAddScalar;
@@ -9,8 +9,6 @@ var _factory = require("../../utils/factory.js");
9
9
 
10
10
  var _is = require("../../utils/is.js");
11
11
 
12
- var _collection = require("../../utils/collection.js");
13
-
14
12
  var _index = require("../../plain/number/index.js");
15
13
 
16
14
  var name = 'cbrt';
@@ -28,7 +26,9 @@ var createCbrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
28
26
  /**
29
27
  * Calculate the cubic root of a value.
30
28
  *
31
- * For matrices, the function is evaluated element wise.
29
+ * To avoid confusion with the matrix cube root, this function does not
30
+ * apply to matrices. For a matrix, to take the cube root elementwise,
31
+ * see the examples.
32
32
  *
33
33
  * Syntax:
34
34
  *
@@ -41,7 +41,7 @@ var createCbrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
41
41
  * math.cube(3) // returns 27
42
42
  * math.cbrt(-64) // returns -4
43
43
  * math.cbrt(math.unit('27 m^3')) // returns Unit 3 m
44
- * math.cbrt([27, 64, 125]) // returns [3, 4, 5]
44
+ * math.map([27, 64, 125], x => math.cbrt(x)) // returns [3, 4, 5]
45
45
  *
46
46
  * const x = math.complex('8i')
47
47
  * math.cbrt(x) // returns Complex 1.7320508075689 + i
@@ -55,13 +55,13 @@ var createCbrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
55
55
  *
56
56
  * square, sqrt, cube
57
57
  *
58
- * @param {number | BigNumber | Complex | Unit | Array | Matrix} x
58
+ * @param {number | BigNumber | Complex | Unit} x
59
59
  * Value for which to calculate the cubic root.
60
60
  * @param {boolean} [allRoots] Optional, false by default. Only applicable
61
61
  * when `x` is a number or complex number. If true, all complex
62
62
  * roots are returned, if false (default) the principal root is
63
63
  * returned.
64
- * @return {number | BigNumber | Complex | Unit | Array | Matrix}
64
+ * @return {number | BigNumber | Complex | Unit}
65
65
  * Returns the cubic root of `x`
66
66
  */
67
67
  return typed(name, {
@@ -73,11 +73,7 @@ var createCbrt = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
73
73
  BigNumber: function BigNumber(x) {
74
74
  return x.cbrt();
75
75
  },
76
- Unit: _cbrtUnit,
77
- 'Array | Matrix': function ArrayMatrix(x) {
78
- // deep map collection, skip zeros since cbrt(0) = 0
79
- return (0, _collection.deepMap)(x, this, true);
80
- }
76
+ Unit: _cbrtUnit
81
77
  });
82
78
  /**
83
79
  * Calculate the cubic root for a complex number
@@ -19,11 +19,11 @@ var _number = require("../../utils/number.js");
19
19
 
20
20
  var _nearlyEqual = require("../../utils/bignumber/nearlyEqual.js");
21
21
 
22
- var _algorithm = require("../../type/matrix/utils/algorithm11.js");
22
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
23
23
 
24
- var _algorithm2 = require("../../type/matrix/utils/algorithm12.js");
24
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
25
25
 
26
- var _algorithm3 = require("../../type/matrix/utils/algorithm14.js");
26
+ var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
27
27
 
28
28
  var name = 'ceil';
29
29
  var dependencies = ['typed', 'config', 'round', 'matrix', 'equalScalar', 'zeros', 'DenseMatrix'];
@@ -43,19 +43,19 @@ var createCeilNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed', 'con
43
43
  if ((0, _number.nearlyEqual)(x, round(x, n), config.epsilon)) {
44
44
  return round(x, n);
45
45
  } else {
46
- var _$split = "".concat(x, "e").split('e'),
47
- _$split2 = (0, _slicedToArray2.default)(_$split, 2),
48
- number = _$split2[0],
49
- exponent = _$split2[1];
46
+ var _split = "".concat(x, "e").split('e'),
47
+ _split2 = (0, _slicedToArray2["default"])(_split, 2),
48
+ number = _split2[0],
49
+ exponent = _split2[1];
50
50
 
51
51
  var result = Math.ceil(Number("".concat(number, "e").concat(Number(exponent) + n)));
52
52
 
53
- var _$split3 = "".concat(result, "e").split('e');
53
+ var _split3 = "".concat(result, "e").split('e');
54
54
 
55
- var _$split4 = (0, _slicedToArray2.default)(_$split3, 2);
55
+ var _split4 = (0, _slicedToArray2["default"])(_split3, 2);
56
56
 
57
- number = _$split4[0];
58
- exponent = _$split4[1];
57
+ number = _split4[0];
58
+ exponent = _split4[1];
59
59
  return Number("".concat(number, "e").concat(Number(exponent) - n));
60
60
  }
61
61
  }
@@ -70,15 +70,15 @@ var createCeil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
70
70
  equalScalar = _ref2.equalScalar,
71
71
  zeros = _ref2.zeros,
72
72
  DenseMatrix = _ref2.DenseMatrix;
73
- var algorithm11 = (0, _algorithm.createAlgorithm11)({
73
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
74
74
  typed: typed,
75
75
  equalScalar: equalScalar
76
76
  });
77
- var algorithm12 = (0, _algorithm2.createAlgorithm12)({
77
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
78
78
  typed: typed,
79
79
  DenseMatrix: DenseMatrix
80
80
  });
81
- var algorithm14 = (0, _algorithm3.createAlgorithm14)({
81
+ var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
82
82
  typed: typed
83
83
  });
84
84
  var ceilNumber = createCeilNumber({
@@ -147,7 +147,7 @@ var createCeil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
147
147
  if ((0, _nearlyEqual.nearlyEqual)(x, round(x, n), config.epsilon)) {
148
148
  return round(x, n);
149
149
  } else {
150
- return x.toDecimalPlaces(n.toNumber(), _decimal.default.ROUND_CEIL);
150
+ return x.toDecimalPlaces(n.toNumber(), _decimal["default"].ROUND_CEIL);
151
151
  }
152
152
  },
153
153
  Fraction: function Fraction(x) {
@@ -159,37 +159,47 @@ var createCeil = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
159
159
  'Fraction, BigNumber': function FractionBigNumber(x, n) {
160
160
  return x.ceil(n.toNumber());
161
161
  },
162
- 'Array | Matrix': function ArrayMatrix(x) {
163
- // deep map collection, skip zeros since ceil(0) = 0
164
- return (0, _collection.deepMap)(x, this, true);
165
- },
166
- 'Array, number | BigNumber': function ArrayNumberBigNumber(x, n) {
167
- var _this = this;
168
-
169
- // deep map collection, skip zeros since ceil(0) = 0
170
- return (0, _collection.deepMap)(x, function (i) {
171
- return _this(i, n);
172
- }, true);
173
- },
174
- 'SparseMatrix, number | BigNumber': function SparseMatrixNumberBigNumber(x, y) {
175
- return algorithm11(x, y, this, false);
176
- },
177
- 'DenseMatrix, number | BigNumber': function DenseMatrixNumberBigNumber(x, y) {
178
- return algorithm14(x, y, this, false);
179
- },
180
- 'number | Complex | Fraction | BigNumber, Array': function numberComplexFractionBigNumberArray(x, y) {
181
- // use matrix implementation
182
- return algorithm14(matrix(y), x, this, true).valueOf();
183
- },
184
- 'number | Complex | Fraction | BigNumber, Matrix': function numberComplexFractionBigNumberMatrix(x, y) {
185
- if (equalScalar(x, 0)) return zeros(y.size(), y.storage());
186
-
187
- if (y.storage() === 'dense') {
188
- return algorithm14(y, x, this, true);
189
- }
190
-
191
- return algorithm12(y, x, this, true);
192
- }
162
+ 'Array | Matrix': typed.referToSelf(function (self) {
163
+ return function (x) {
164
+ // deep map collection, skip zeros since ceil(0) = 0
165
+ return (0, _collection.deepMap)(x, self, true);
166
+ };
167
+ }),
168
+ 'Array, number | BigNumber': typed.referToSelf(function (self) {
169
+ return function (x, n) {
170
+ // deep map collection, skip zeros since ceil(0) = 0
171
+ return (0, _collection.deepMap)(x, function (i) {
172
+ return self(i, n);
173
+ }, true);
174
+ };
175
+ }),
176
+ 'SparseMatrix, number | BigNumber': typed.referToSelf(function (self) {
177
+ return function (x, y) {
178
+ return matAlgo11xS0s(x, y, self, false);
179
+ };
180
+ }),
181
+ 'DenseMatrix, number | BigNumber': typed.referToSelf(function (self) {
182
+ return function (x, y) {
183
+ return matAlgo14xDs(x, y, self, false);
184
+ };
185
+ }),
186
+ 'number | Complex | Fraction | BigNumber, Array': typed.referToSelf(function (self) {
187
+ return function (x, y) {
188
+ // use matrix implementation
189
+ return matAlgo14xDs(matrix(y), x, self, true).valueOf();
190
+ };
191
+ }),
192
+ 'number | Complex | Fraction | BigNumber, Matrix': typed.referToSelf(function (self) {
193
+ return function (x, y) {
194
+ if (equalScalar(x, 0)) return zeros(y.size(), y.storage());
195
+
196
+ if (y.storage() === 'dense') {
197
+ return matAlgo14xDs(y, x, self, true);
198
+ }
199
+
200
+ return matAlgo12xSfs(y, x, self, true);
201
+ };
202
+ })
193
203
  });
194
204
  });
195
205
  exports.createCeil = createCeil;
@@ -7,8 +7,6 @@ exports.createCube = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _collection = require("../../utils/collection.js");
11
-
12
10
  var _index = require("../../plain/number/index.js");
13
11
 
14
12
  var name = 'cube';
@@ -18,7 +16,8 @@ var createCube = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
18
16
 
19
17
  /**
20
18
  * Compute the cube of a value, `x * x * x`.
21
- * For matrices, the function is evaluated element wise.
19
+ * To avoid confusion with `pow(M,3)`, this function does not apply to matrices.
20
+ * If you wish to cube every entry of a matrix, see the examples.
22
21
  *
23
22
  * Syntax:
24
23
  *
@@ -31,14 +30,14 @@ var createCube = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
31
30
  * math.cube(4) // returns number 64
32
31
  * 4 * 4 * 4 // returns number 64
33
32
  *
34
- * math.cube([1, 2, 3, 4]) // returns Array [1, 8, 27, 64]
33
+ * math.map([1, 2, 3, 4], math.cube) // returns Array [1, 8, 27, 64]
35
34
  *
36
35
  * See also:
37
36
  *
38
37
  * multiply, square, pow, cbrt
39
38
  *
40
- * @param {number | BigNumber | Fraction | Complex | Array | Matrix | Unit} x Number for which to calculate the cube
41
- * @return {number | BigNumber | Fraction | Complex | Array | Matrix | Unit} Cube of x
39
+ * @param {number | BigNumber | Fraction | Complex | Unit} x Number for which to calculate the cube
40
+ * @return {number | BigNumber | Fraction | Complex | Unit} Cube of x
42
41
  */
43
42
  return typed(name, {
44
43
  number: _index.cubeNumber,
@@ -51,10 +50,6 @@ var createCube = /* #__PURE__ */(0, _factory.factory)(name, dependencies, functi
51
50
  Fraction: function Fraction(x) {
52
51
  return x.pow(3); // Is faster than mul()mul()mul()
53
52
  },
54
- 'Array | Matrix': function ArrayMatrix(x) {
55
- // deep map collection, skip zeros since cube(0) = 0
56
- return (0, _collection.deepMap)(x, this, true);
57
- },
58
53
  Unit: function Unit(x) {
59
54
  return x.pow(3);
60
55
  }
@@ -9,9 +9,9 @@ var _factory = require("../../utils/factory.js");
9
9
 
10
10
  var _object = require("../../utils/object.js");
11
11
 
12
- var _algorithm = require("../../type/matrix/utils/algorithm11.js");
12
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
13
13
 
14
- var _algorithm2 = require("../../type/matrix/utils/algorithm14.js");
14
+ var _matAlgo14xDs = require("../../type/matrix/utils/matAlgo14xDs.js");
15
15
 
16
16
  var name = 'divide';
17
17
  var dependencies = ['typed', 'matrix', 'multiply', 'equalScalar', 'divideScalar', 'inv'];
@@ -22,11 +22,11 @@ var createDivide = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
22
22
  equalScalar = _ref.equalScalar,
23
23
  divideScalar = _ref.divideScalar,
24
24
  inv = _ref.inv;
25
- var algorithm11 = (0, _algorithm.createAlgorithm11)({
25
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
26
26
  typed: typed,
27
27
  equalScalar: equalScalar
28
28
  });
29
- var algorithm14 = (0, _algorithm2.createAlgorithm14)({
29
+ var matAlgo14xDs = (0, _matAlgo14xDs.createMatAlgo14xDs)({
30
30
  typed: typed
31
31
  });
32
32
  /**
@@ -71,14 +71,14 @@ var createDivide = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
71
71
  return multiply(x, inv(y));
72
72
  },
73
73
  'DenseMatrix, any': function DenseMatrixAny(x, y) {
74
- return algorithm14(x, y, divideScalar, false);
74
+ return matAlgo14xDs(x, y, divideScalar, false);
75
75
  },
76
76
  'SparseMatrix, any': function SparseMatrixAny(x, y) {
77
- return algorithm11(x, y, divideScalar, false);
77
+ return matAlgo11xS0s(x, y, divideScalar, false);
78
78
  },
79
79
  'Array, any': function ArrayAny(x, y) {
80
80
  // use matrix implementation
81
- return algorithm14(matrix(x), y, divideScalar, false).valueOf();
81
+ return matAlgo14xDs(matrix(x), y, divideScalar, false).valueOf();
82
82
  },
83
83
  'any, Array | Matrix': function anyArrayMatrix(x, y) {
84
84
  return multiply(x, inv(y));
@@ -7,8 +7,6 @@ exports.createDivideScalar = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _is = require("../../utils/is.js");
11
-
12
10
  var name = 'divideScalar';
13
11
  var dependencies = ['typed', 'numeric'];
14
12
  var createDivideScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
@@ -40,23 +38,11 @@ var createDivideScalar = /* #__PURE__ */(0, _factory.factory)(name, dependencies
40
38
  'Fraction, Fraction': function FractionFraction(x, y) {
41
39
  return x.div(y);
42
40
  },
43
- 'Unit, number | Fraction | BigNumber': function UnitNumberFractionBigNumber(x, y) {
44
- var res = x.clone(); // TODO: move the divide function to Unit.js, it uses internals of Unit
45
-
46
- var one = numeric(1, (0, _is.typeOf)(y));
47
- res.value = this(res.value === null ? res._normalize(one) : res.value, y);
48
- return res;
49
- },
50
- 'number | Fraction | BigNumber, Unit': function numberFractionBigNumberUnit(x, y) {
51
- var res = y.clone();
52
- res = res.pow(-1); // TODO: move the divide function to Unit.js, it uses internals of Unit
53
-
54
- var one = numeric(1, (0, _is.typeOf)(x));
55
- res.value = this(x, y.value === null ? y._normalize(one) : y.value);
56
- return res;
57
- },
58
- 'Unit, Unit': function UnitUnit(x, y) {
41
+ 'Unit, number | Complex | Fraction | BigNumber | Unit': function UnitNumberComplexFractionBigNumberUnit(x, y) {
59
42
  return x.divide(y);
43
+ },
44
+ 'number | Fraction | Complex | BigNumber, Unit': function numberFractionComplexBigNumberUnit(x, y) {
45
+ return y.divideInto(x);
60
46
  }
61
47
  });
62
48
  });
@@ -7,19 +7,17 @@ exports.createDotDivide = void 0;
7
7
 
8
8
  var _factory = require("../../utils/factory.js");
9
9
 
10
- var _algorithm = require("../../type/matrix/utils/algorithm02.js");
10
+ var _matAlgo02xDS = require("../../type/matrix/utils/matAlgo02xDS0.js");
11
11
 
12
- var _algorithm2 = require("../../type/matrix/utils/algorithm03.js");
12
+ var _matAlgo03xDSf = require("../../type/matrix/utils/matAlgo03xDSf.js");
13
13
 
14
- var _algorithm3 = require("../../type/matrix/utils/algorithm07.js");
14
+ var _matAlgo07xSSf = require("../../type/matrix/utils/matAlgo07xSSf.js");
15
15
 
16
- var _algorithm4 = require("../../type/matrix/utils/algorithm11.js");
16
+ var _matAlgo11xS0s = require("../../type/matrix/utils/matAlgo11xS0s.js");
17
17
 
18
- var _algorithm5 = require("../../type/matrix/utils/algorithm12.js");
18
+ var _matAlgo12xSfs = require("../../type/matrix/utils/matAlgo12xSfs.js");
19
19
 
20
- var _algorithm6 = require("../../type/matrix/utils/algorithm13.js");
21
-
22
- var _algorithm7 = require("../../type/matrix/utils/algorithm14.js");
20
+ var _matrixAlgorithmSuite = require("../../type/matrix/utils/matrixAlgorithmSuite.js");
23
21
 
24
22
  var name = 'dotDivide';
25
23
  var dependencies = ['typed', 'matrix', 'equalScalar', 'divideScalar', 'DenseMatrix'];
@@ -29,30 +27,28 @@ var createDotDivide = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
29
27
  equalScalar = _ref.equalScalar,
30
28
  divideScalar = _ref.divideScalar,
31
29
  DenseMatrix = _ref.DenseMatrix;
32
- var algorithm02 = (0, _algorithm.createAlgorithm02)({
30
+ var matAlgo02xDS0 = (0, _matAlgo02xDS.createMatAlgo02xDS0)({
33
31
  typed: typed,
34
32
  equalScalar: equalScalar
35
33
  });
36
- var algorithm03 = (0, _algorithm2.createAlgorithm03)({
34
+ var matAlgo03xDSf = (0, _matAlgo03xDSf.createMatAlgo03xDSf)({
37
35
  typed: typed
38
36
  });
39
- var algorithm07 = (0, _algorithm3.createAlgorithm07)({
37
+ var matAlgo07xSSf = (0, _matAlgo07xSSf.createMatAlgo07xSSf)({
40
38
  typed: typed,
41
39
  DenseMatrix: DenseMatrix
42
40
  });
43
- var algorithm11 = (0, _algorithm4.createAlgorithm11)({
41
+ var matAlgo11xS0s = (0, _matAlgo11xS0s.createMatAlgo11xS0s)({
44
42
  typed: typed,
45
43
  equalScalar: equalScalar
46
44
  });
47
- var algorithm12 = (0, _algorithm5.createAlgorithm12)({
45
+ var matAlgo12xSfs = (0, _matAlgo12xSfs.createMatAlgo12xSfs)({
48
46
  typed: typed,
49
47
  DenseMatrix: DenseMatrix
50
48
  });
51
- var algorithm13 = (0, _algorithm6.createAlgorithm13)({
52
- typed: typed
53
- });
54
- var algorithm14 = (0, _algorithm7.createAlgorithm14)({
55
- typed: typed
49
+ var matrixAlgorithmSuite = (0, _matrixAlgorithmSuite.createMatrixAlgorithmSuite)({
50
+ typed: typed,
51
+ matrix: matrix
56
52
  });
57
53
  /**
58
54
  * Divide two matrices element wise. The function accepts both matrices and
@@ -81,52 +77,13 @@ var createDotDivide = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
81
77
  * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Quotient, `x ./ y`
82
78
  */
83
79
 
84
- return typed(name, {
85
- 'any, any': divideScalar,
86
- 'SparseMatrix, SparseMatrix': function SparseMatrixSparseMatrix(x, y) {
87
- return algorithm07(x, y, divideScalar, false);
88
- },
89
- 'SparseMatrix, DenseMatrix': function SparseMatrixDenseMatrix(x, y) {
90
- return algorithm02(y, x, divideScalar, true);
91
- },
92
- 'DenseMatrix, SparseMatrix': function DenseMatrixSparseMatrix(x, y) {
93
- return algorithm03(x, y, divideScalar, false);
94
- },
95
- 'DenseMatrix, DenseMatrix': function DenseMatrixDenseMatrix(x, y) {
96
- return algorithm13(x, y, divideScalar);
97
- },
98
- 'Array, Array': function ArrayArray(x, y) {
99
- // use matrix implementation
100
- return this(matrix(x), matrix(y)).valueOf();
101
- },
102
- 'Array, Matrix': function ArrayMatrix(x, y) {
103
- // use matrix implementation
104
- return this(matrix(x), y);
105
- },
106
- 'Matrix, Array': function MatrixArray(x, y) {
107
- // use matrix implementation
108
- return this(x, matrix(y));
109
- },
110
- 'SparseMatrix, any': function SparseMatrixAny(x, y) {
111
- return algorithm11(x, y, divideScalar, false);
112
- },
113
- 'DenseMatrix, any': function DenseMatrixAny(x, y) {
114
- return algorithm14(x, y, divideScalar, false);
115
- },
116
- 'any, SparseMatrix': function anySparseMatrix(x, y) {
117
- return algorithm12(y, x, divideScalar, true);
118
- },
119
- 'any, DenseMatrix': function anyDenseMatrix(x, y) {
120
- return algorithm14(y, x, divideScalar, true);
121
- },
122
- 'Array, any': function ArrayAny(x, y) {
123
- // use matrix implementation
124
- return algorithm14(matrix(x), y, divideScalar, false).valueOf();
125
- },
126
- 'any, Array': function anyArray(x, y) {
127
- // use matrix implementation
128
- return algorithm14(matrix(y), x, divideScalar, true).valueOf();
129
- }
130
- });
80
+ return typed(name, matrixAlgorithmSuite({
81
+ elop: divideScalar,
82
+ SS: matAlgo07xSSf,
83
+ DS: matAlgo03xDSf,
84
+ SD: matAlgo02xDS0,
85
+ Ss: matAlgo11xS0s,
86
+ sS: matAlgo12xSfs
87
+ }));
131
88
  });
132
89
  exports.createDotDivide = createDotDivide;