dotPow.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { factory } from '../../utils/factory.js';
  2. import { createMatAlgo03xDSf } from '../../type/matrix/utils/matAlgo03xDSf.js';
  3. import { createMatAlgo07xSSf } from '../../type/matrix/utils/matAlgo07xSSf.js';
  4. import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
  5. import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
  6. import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
  7. var name = 'dotPow';
  8. var dependencies = ['typed', 'equalScalar', 'matrix', 'pow', 'DenseMatrix'];
  9. export var createDotPow = /* #__PURE__ */factory(name, dependencies, _ref => {
  10. var {
  11. typed,
  12. equalScalar,
  13. matrix,
  14. pow,
  15. DenseMatrix
  16. } = _ref;
  17. var matAlgo03xDSf = createMatAlgo03xDSf({
  18. typed
  19. });
  20. var matAlgo07xSSf = createMatAlgo07xSSf({
  21. typed,
  22. DenseMatrix
  23. });
  24. var matAlgo11xS0s = createMatAlgo11xS0s({
  25. typed,
  26. equalScalar
  27. });
  28. var matAlgo12xSfs = createMatAlgo12xSfs({
  29. typed,
  30. DenseMatrix
  31. });
  32. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  33. typed,
  34. matrix
  35. });
  36. var powScalarSignatures = {};
  37. for (var signature in pow.signatures) {
  38. if (Object.prototype.hasOwnProperty.call(pow.signatures, signature)) {
  39. if (!signature.includes('Matrix') && !signature.includes('Array')) {
  40. powScalarSignatures[signature] = pow.signatures[signature];
  41. }
  42. }
  43. }
  44. var powScalar = typed(powScalarSignatures);
  45. /**
  46. * Calculates the power of x to y element wise.
  47. *
  48. * Syntax:
  49. *
  50. * math.dotPow(x, y)
  51. *
  52. * Examples:
  53. *
  54. * math.dotPow(2, 3) // returns number 8
  55. *
  56. * const a = [[1, 2], [4, 3]]
  57. * math.dotPow(a, 2) // returns Array [[1, 4], [16, 9]]
  58. * math.pow(a, 2) // returns Array [[9, 8], [16, 17]]
  59. *
  60. * See also:
  61. *
  62. * pow, sqrt, multiply
  63. *
  64. * @param {number | BigNumber | Complex | Unit | Array | Matrix} x The base
  65. * @param {number | BigNumber | Complex | Unit | Array | Matrix} y The exponent
  66. * @return {number | BigNumber | Complex | Unit | Array | Matrix} The value of `x` to the power `y`
  67. */
  68. return typed(name, matrixAlgorithmSuite({
  69. elop: powScalar,
  70. SS: matAlgo07xSSf,
  71. DS: matAlgo03xDSf,
  72. Ss: matAlgo11xS0s,
  73. sS: matAlgo12xSfs
  74. }));
  75. });