bitAnd.js 1.9 KB

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