dotMultiply.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { factory } from '../../utils/factory.js';
  2. import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
  3. import { createMatAlgo09xS0Sf } from '../../type/matrix/utils/matAlgo09xS0Sf.js';
  4. import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
  5. import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
  6. var name = 'dotMultiply';
  7. var dependencies = ['typed', 'matrix', 'equalScalar', 'multiplyScalar'];
  8. export var createDotMultiply = /* #__PURE__ */factory(name, dependencies, _ref => {
  9. var {
  10. typed,
  11. matrix,
  12. equalScalar,
  13. multiplyScalar
  14. } = _ref;
  15. var matAlgo02xDS0 = createMatAlgo02xDS0({
  16. typed,
  17. equalScalar
  18. });
  19. var matAlgo09xS0Sf = createMatAlgo09xS0Sf({
  20. typed,
  21. equalScalar
  22. });
  23. var matAlgo11xS0s = createMatAlgo11xS0s({
  24. typed,
  25. equalScalar
  26. });
  27. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  28. typed,
  29. matrix
  30. });
  31. /**
  32. * Multiply two matrices element wise. The function accepts both matrices and
  33. * scalar values.
  34. *
  35. * Syntax:
  36. *
  37. * math.dotMultiply(x, y)
  38. *
  39. * Examples:
  40. *
  41. * math.dotMultiply(2, 4) // returns 8
  42. *
  43. * a = [[9, 5], [6, 1]]
  44. * b = [[3, 2], [5, 2]]
  45. *
  46. * math.dotMultiply(a, b) // returns [[27, 10], [30, 2]]
  47. * math.multiply(a, b) // returns [[52, 28], [23, 14]]
  48. *
  49. * See also:
  50. *
  51. * multiply, divide, dotDivide
  52. *
  53. * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} x Left hand value
  54. * @param {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} y Right hand value
  55. * @return {number | BigNumber | Fraction | Complex | Unit | Array | Matrix} Multiplication of `x` and `y`
  56. */
  57. return typed(name, matrixAlgorithmSuite({
  58. elop: multiplyScalar,
  59. SS: matAlgo09xS0Sf,
  60. DS: matAlgo02xDS0,
  61. Ss: matAlgo11xS0s
  62. }));
  63. });