class_docstr: Abstract implementation of encrypted tensor type. Every subclass of `CrypTensor`
  must implement the methods defined here. The actual tensor data should live in
  an instance attribute called `_tensor`. When implemented, the `CrypTensor`
  provides a full autograd implementation to the user.
class_docstr_tok: ["Abstract","implementation","of","encrypted","tensor","type",".","Every","subclass","of","`","CrypTensor","`","must","implement","the","methods","defined","here",".","The","actual","tensor","data","should","live","in","an","instance","attribute","called","`","_tensor","`",".","When","implemented",",","the","`","CrypTensor","`","provides","a","full","autograd","implementation","to","the","user","."]
docstr: Element-wise multiply with a :attr:`tensor`.
  
  .. math::
      \text{out}_i = \text{tensor}_i \times \text{self}_i
  
  Args:
      tensor (Tensor or float): the tensor or value to multiply.
  
  The shapes of :attr:`self` and :attr:`tensor` must be
  `broadcastable`_.
  
  .. _broadcastable:
      https://pytorch.org/docs/stable/notes/broadcasting.html#broadcasting-semantics
docstr_tok: ["Element-wise","multiply","with","a",":","attr",":","`","tensor","`",".","..","math",":",":","\\text","{","out","}","_i","=","\\text","{","tensor","}","_i","\\times","\\text","{","self","}","_i","Args",":","tensor","(","Tensor","or","float",")",":","the","tensor","or","value","to","multiply",".","The","shapes","of",":","attr",":","`","self","`","and",":","attr",":","`","tensor","`","must","be","`","broadcastable","`","_",".","..","_broadcastable",":","https",":","\/\/pytorch.org\/docs\/stable\/notes\/broadcasting.html","#","broadcasting-semantics"]
code: def mul(self, tensor):
      r"""Element-wise multiply with a :attr:`tensor`.
  
      .. math::
          \text{out}_i = \text{tensor}_i \times \text{self}_i
  
      Args:
          tensor (Tensor or float): the tensor or value to multiply.
  
      The shapes of :attr:`self` and :attr:`tensor` must be
      `broadcastable`_.
  
      .. _broadcastable:
          https://pytorch.org/docs/stable/notes/broadcasting.html#broadcasting-semantics
      """
      raise NotImplementedError("mul is not implemented")
  
imports: from contextlib import contextmanager
  import torch
  from .debug import register_validation
  from .gradients import AutogradContext, BaseAutogradContext, get_grad_fn
  from .common import functions
label_desc: Use image node_id 46 for calling the CrypTensor obj's underlying member method code with example usage: obj.mul(tensor) without return types