


    return out
  >>>
  >>>     @staticmethod
  >>>     @once_differentiable
  >>>     def backward(ctx, grad_out):
  >>>         x, y, w, out = ctx.saved_tensors
  >>>         z = ctx.z
  >>>         gx = grad_out * (y + y * z)
  >>>         gy = grad_out * (x + z + w)
  >>>         gz = None
  >>>         return gx, gy, gz
  >>>
  >>> a = torch.tensor(1., requires_grad=True, dtype=torch.double)
  >>> b = torch.tensor(2., requires_grad=True, dtype=torch.double)
  >>> c = 4
  >>> d = Func.apply(a, b, c)



