parameters: (self, input, hiddenState=None, cell_state=None)
docstring: input: [timesteps, batch, features]; hiddenState: [batch, state_size]
              hiddenState is set to zeros if not provided.
docstring_summary: input: [timesteps, batch, features]; hiddenState: [batch, state_size]
              hiddenState is set to zeros if not provided.
docstring_tokens: input : [ timesteps batch features ] ; hiddenState : [ batch state_size ] hiddenState is set to zeros if not provided .
function: def forward(self, input, hiddenState=None, cell_state=None):
          '''
              input: [timesteps, batch, features]; hiddenState: [batch, state_size]
              hiddenState is set to zeros if not provided. 
          '''
          if self.batch_first is True:
              input = input.transpose(0, 1).contiguous()
          if not input.is_cuda:
              input = input.to(self.device)
          if hiddenState is None:
              hiddenState = torch.zeros(
                  [input.shape[1], self._hidden_size]).to(self.device)
          if not hiddenState.is_cuda:
              hiddenState = hiddenState.to(self.device)
          result = FastGRNNUnrollFunction.apply(input, self.bias_gate, self.bias_update, self.zeta, self.nu, hiddenState,
              self.W, self.U, self.W1, self.W2, self.U1, self.U2, self._gate_non_linearity)
          if self.batch_first is True:
              return result.transpose(0, 1)
          else:
              return result
function_tokens: def forward ( self , input , hiddenState = None , cell_state = None ) : if self . batch_first is True : input = input . transpose ( 0 , 1 ) . contiguous ( ) if not input . is_cuda : input = input . to ( self . device ) if hiddenState is None : hiddenState = torch . zeros ( [ input . shape [ 1 ] , self . _hidden_size ] ) . to ( self . device ) if not hiddenState . is_cuda : hiddenState = hiddenState . to ( self . device ) result = FastGRNNUnrollFunction . apply ( input , self . bias_gate , self . bias_update , self . zeta , self . nu , hiddenState , self . W , self . U , self . W1 , self . W2 , self . U1 , self . U2 , self . _gate_non_linearity ) if self . batch_first is True : return result . transpose ( 0 , 1 ) else : return result