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: Allows torch static functions to work on CrypTensors.
docstr_tok: ["Allows","torch","static","functions","to","work","on","CrypTensors","."]
code: def __torch_function__(self, func, types, args=(), kwargs=None):
      """Allows torch static functions to work on CrypTensors."""
      if kwargs is None:
          kwargs = {}
      if func in STATIC_FUNCTION_MAPPING:
          import crypten
  
          # dispatch torch.{cat,stack} call on CrypTensor to CrypTen:
          return getattr(crypten, STATIC_FUNCTION_MAPPING[func])(
              *args, **kwargs
          )
      else:
          raise NotImplementedError(
              f"CrypTen does not support torch function {func}."
          )
  
imports: from contextlib import contextmanager
  import torch
  from .debug import register_validation
  from .gradients import AutogradContext, BaseAutogradContext, get_grad_fn
  from .None import functions
label_desc: Use image node_id 12 for calling the CrypTensor obj's underlying member method code with example usage: obj.__torch_function__(func, types, args, kwargs) and returns: getattr