code: def _step(self, X, R, B, W, H_0):  # type: ignore
      h_list = []
      H_t = H_0
      for x in np.split(X, X.shape[0], axis=0):
          H = self.f1(
              np.dot(x, np.transpose(W))
              + np.dot(H_t, np.transpose(R))
              + np.add(*np.split(B, 2))
          )
          h_list.append(H)
          H_t = H
      concatenated = np.concatenate(h_list)
      if self.num_directions == 1:
          output = np.expand_dims(concatenated, 1)
      return output, h_list[-1]
  
file_path: onnx/onnx/reference/ops/op_rnn.py
imports: import numpy
  from onnx.reference.op_run import OpRun
label_desc: Use image node_id 4 for calling the CommonRNN obj's underlying member method code with example usage: obj._step(X, R, B, W, H_0) and returns: output,  h_list