bitAnd.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { bitAndBigNumber } from '../../utils/bignumber/bitwise.js';
  2. import { createMatAlgo02xDS0 } from '../../type/matrix/utils/matAlgo02xDS0.js';
  3. import { createMatAlgo11xS0s } from '../../type/matrix/utils/matAlgo11xS0s.js';
  4. import { createMatAlgo06xS0S0 } from '../../type/matrix/utils/matAlgo06xS0S0.js';
  5. import { factory } from '../../utils/factory.js';
  6. import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
  7. import { bitAndNumber } from '../../plain/number/index.js';
  8. var name = 'bitAnd';
  9. var dependencies = ['typed', 'matrix', 'equalScalar'];
  10. export var createBitAnd = /* #__PURE__ */factory(name, dependencies, _ref => {
  11. var {
  12. typed,
  13. matrix,
  14. equalScalar
  15. } = _ref;
  16. var matAlgo02xDS0 = createMatAlgo02xDS0({
  17. typed,
  18. equalScalar
  19. });
  20. var matAlgo06xS0S0 = createMatAlgo06xS0S0({
  21. typed,
  22. equalScalar
  23. });
  24. var matAlgo11xS0s = createMatAlgo11xS0s({
  25. typed,
  26. equalScalar
  27. });
  28. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  29. typed,
  30. matrix
  31. });
  32. /**
  33. * Bitwise AND two values, `x & y`.
  34. * For matrices, the function is evaluated element wise.
  35. *
  36. * Syntax:
  37. *
  38. * math.bitAnd(x, y)
  39. *
  40. * Examples:
  41. *
  42. * math.bitAnd(53, 131) // returns number 1
  43. *
  44. * math.bitAnd([1, 12, 31], 42) // returns Array [0, 8, 10]
  45. *
  46. * See also:
  47. *
  48. * bitNot, bitOr, bitXor, leftShift, rightArithShift, rightLogShift
  49. *
  50. * @param {number | BigNumber | Array | Matrix} x First value to and
  51. * @param {number | BigNumber | Array | Matrix} y Second value to and
  52. * @return {number | BigNumber | Array | Matrix} AND of `x` and `y`
  53. */
  54. return typed(name, {
  55. 'number, number': bitAndNumber,
  56. 'BigNumber, BigNumber': bitAndBigNumber
  57. }, matrixAlgorithmSuite({
  58. SS: matAlgo06xS0S0,
  59. DS: matAlgo02xDS0,
  60. Ss: matAlgo11xS0s
  61. }));
  62. });