code: def LSTMCell(
      input,
      hidden,
      w_ih,
      w_hh,
      b_ih=None,
      b_hh=None,
      input_quantizer=None,
      weight_quantizer=None,
  ):
      """Quantized LSTM Cell
  
      The assumption is at inference time, only one fused gemm will be launched for one time step Weights of 4 gates
      are fused together, and activation from layer and recurrent paths are fused togather. ``input_quantizer`` will be
      applied on the fused activation tensor. And ``weight_quantizer`` will be applied on the fused weight tensor.
      """
  
      hx, cx = hidden
      if input_quantizer is not None:
          input, hx = input_quantizer(torch.cat([input, hx], 1)).split(
              [input.size()[1], hx.size()[1]], 1
          )
      if weight_quantizer is not None:
          w_ih, w_hh = weight_quantizer(
              torch.cat([w_ih, w_hh], 1)
          ).split([w_ih.size()[1], w_hh.size()[1]], 1)
      gates = F.linear(input, w_ih, b_ih) + F.linear(hx, w_hh, b_hh)
  
      ingate, forgetgate, cellgate, outgate = gates.chunk(4, 1)
  
      ingate = torch.sigmoid(ingate)
      forgetgate = torch.sigmoid(forgetgate)
      cellgate = torch.tanh(cellgate)
      outgate = torch.sigmoid(outgate)
  
      cy = (forgetgate * cx) + (ingate * cellgate)
      hy = outgate * torch.tanh(cy)
  
      return hy, cy
  
file_path: lightseq/lightseq/csrc/pytorch/pytorch_quantization/nn/_functions/quant_rnn.py
imports: import warnings
  from torch.autograd import NestedIOFunction
  from torch.nn import functional
  import torch
  import itertools
  from functools import partial
label_desc: Use image node_id 3 for calling a global function with example usage: LSTMCell(input, hidden, w_ih, w_hh, b_ih, b_hh, input_quantizer, weight_quantizer) and returns: hy,  cy