class_docstr: Encrypted tensor object that uses binary sharing to perform computations.
  
  Binary shares are computed by splitting each value of the input tensor
  into n separate random values that xor together to the input tensor value,
  where n is the number of parties present in the protocol (world_size).
docstr: Bitwise AND operator (element-wise) in place
docstr_tok: ["Bitwise","AND","operator","(","element-wise",")","in","place"]
code: def __iand__(self, y):
      """Bitwise AND operator (element-wise) in place"""
      if is_tensor(y) or isinstance(y, int):
          self.share &= y
      elif isinstance(y, BinarySharedTensor):
          self.share.set_(beaver.AND(self, y).share.data)
      else:
          raise TypeError(
              "Cannot AND %s with %s." % (type(y), type(self))
          )
      return self
  
imports: import torch
  import fate.arch.protocol.mpc.communicator
  from fate.arch.protocol.mpc.common.rng import generate_kbit_random_tensor
  from fate.arch.protocol.mpc.common.tensor_types import is_tensor
  from fate.arch.protocol.mpc.common.util import torch_cat, torch_stack
  from fate.arch.protocol.mpc.cuda import CUDALongTensor
  from fate.arch.protocol.mpc.encoder import FixedPointEncoder
  from fate.arch.protocol.mpc.functions import regular
  from .None import beaver, circuit
label_desc: Use image node_id 22 for calling the BinarySharedTensor obj's underlying member method code with example usage: obj.__iand__(y) and returns: self