class_docstr: Quantized version of `torch.nn.GELU`. Adds quantization-specific arguments on top of `torch.nn.GELU`.
  
  Args:
      quant_mode (`bool`, *optional*, defaults to `False`):
          Whether or not the layer is quantized.
      force_dequant (`str`, *optional*, defaults to `"none"`):
          Force dequantize the layer if either "gelu" or "nonlinear" is given.
class_docstr_tok: ["Quantized","version","of","`","torch.nn.GELU","`",".","Adds","quantization-specific","arguments","on","top","of","`","torch.nn.GELU","`",".","Args",":","quant_mode","(","`","bool","`",",","*","optional","*",",","defaults","to","`","False","`",")",":","Whether","or","not","the","layer","is","quantized",".","force_dequant","(","`","str","`",",","*","optional","*",",","defaults","to","`","``","none","''","`",")",":","Force","dequantize","the","layer","if","either","``","gelu","''","or","``","nonlinear","''","is","given","."]
code: def int_erf(self, x_int, scaling_factor):
      b_int = torch.floor(self.coeff[1] / scaling_factor)
      c_int = torch.floor(self.coeff[2] / scaling_factor**2)
      sign = torch.sign(x_int)
  
      abs_int = torch.min(torch.abs(x_int), -b_int)
      y_int = sign * ((abs_int + b_int) ** 2 + c_int)
      scaling_factor = scaling_factor**2 * self.coeff[0]
  
      # avoid overflow
      y_int = floor_ste.apply(y_int / 2**self.const)
      scaling_factor = scaling_factor * 2**self.const
  
      return y_int, scaling_factor
  
imports: import decimal
  import numpy
  import torch
  from torch import nn
  from torch.autograd import Function
  from ...utils import logging
label_desc: Use image node_id 2 for calling the IntGELU obj's underlying member method code with example usage: obj.int_erf(x_int, scaling_factor) and returns: y_int,  scaling_factor