code: def _lstm(x, h, c, w, b, with_bias):
      """LSTM cell.
      Args:
          x (:obj:`~nnabla.Variable`): Input data.
          h (:obj:`~nnabla.Variable`): Short-term state.
          c (:obj:`~nnabla.Variable`): Long-term state.
          w (:obj:`~nnabla.Variable`): Weight.
          b (:obj:`~nnabla.Variable`): Bias.
          with_bias (bool): Include the bias or not.
      """
      hidden_size = h.shape[1]
      xh = F.concatenate(*(x, h), axis=1)
      w0, w1, w2, w3 = F.split(w, axis=0)
      b0 = b1 = b2 = b3 = None
      if with_bias:
          b0, b1, b2, b3 = F.split(b, axis=0)
      i_t = F.affine(xh, F.transpose(w0, (1, 0)), b0)
      f_t = F.affine(xh, F.transpose(w1, (1, 0)), b1)
      g_t = F.affine(xh, F.transpose(w2, (1, 0)), b2)
      o_t = F.affine(xh, F.transpose(w3, (1, 0)), b3)
      c_t = F.sigmoid(f_t) * c + F.sigmoid(i_t) * F.tanh(g_t)
      h_t = F.sigmoid(o_t) * F.tanh(c_t)
  
      return h_t, c_t
  
file_path: nnabla/python/src/nnabla/utils/rnn.py
imports: import nnabla
  import nnabla.functions
  import numpy
label_desc: Use image node_id 9 for calling a global function with example usage: _lstm(x, h, c, w, b, with_bias) and returns: h_t,  c_t