dotMultiply.js 1.9 KB

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