dotPow.js 2.3 KB

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