code: def inv_sqrt(self):
      r"""
      Computes the inverse square root of the input using the Newton-Raphson method.
  
      Configuration params:
          sqrt_nr_iters (int):  determines the number of Newton-Raphson iterations to run.
          sqrt_nr_initial (tensor): sets the initial value for the Newton-Raphson iterations.
                      By default, this will be set to allow the method to converge over a
                      fairly large domain.
  
      .. _Newton-Raphson:
          https://en.wikipedia.org/wiki/Fast_inverse_square_root#Newton's_method
      """
      initial = cfg.functions.sqrt_nr_initial
      iters = cfg.functions.sqrt_nr_iters
  
      # Initialize using decent approximation
      if initial is None:
          y = exp(self.div(2).add(0.2).neg()).mul(2.2).add(0.2)
          y -= self.div(1024)
      else:
          y = initial
  
      # Newton Raphson iterations for inverse square root
      for _ in range(iters):
          y = y.mul_(3 - self * y.square()).div_(2)
      return y
  
file_path: CrypTen/crypten/common/functions/approximations.py
imports: import math
  import crypten
  import torch
  from crypten.config import cfg
label_desc: Use image node_id 4 for calling a global function with example usage: inv_sqrt() and returns: y