def step(self, *vars):
        # Parse sequence
        sequence_map = dict(zip(self._sequence_map.keys(), vars[:len(self._sequence_map)]))
        h_tm1, c_tm1 = vars[-2:]
        # Reset state
        if self.reset_state_for_input != None:
            h_tm1, c_tm1 = self._auto_reset_memories(sequence_map["x"], h_tm1, c_tm1)

        if self._input_type == "sequence":
            xi_t, xf_t, xo_t, xc_t = map(sequence_map.get, ["xi", "xf", "xo", "xc"])
        else:
            xi_t, xf_t, xo_t, xc_t = 0, 0, 0, 0

        # Add second input
        if "xi2" in sequence_map:
            xi2, xf2, xo2, xc2 = map(sequence_map.get, ["xi2", "xf2", "xo2", "xc2"])
            xi_t += xi2
            xf_t += xf2
            xo_t += xo2
            xc_t += xc2
        # LSTM core step
        i_t = self._inner_act(xi_t + T.dot(h_tm1, self.U_i) + self.b_i)
        f_t = self._inner_act(xf_t + T.dot(h_tm1, self.U_f) + self.b_f)
        c_t = f_t * c_tm1 + i_t * self._outer_act(xc_t + T.dot(h_tm1, self.U_c) + self.b_c)
        o_t = self._inner_act(xo_t + T.dot(h_tm1, self.U_o) + self.b_o)
        h_t = o_t * self._outer_act(c_t)
        # Apply mask
        if "mask" in sequence_map:
            mask = sequence_map["mask"].dimshuffle(0, 'x')
            h_t = h_t * mask + h_tm1 * (1 - mask)
            c_t = c_t * mask + c_tm1 * (1 - mask)
        return h_t, c_t
dataset/ETHPy150Open zomux/deepy/deepy/layers/lstm.py/LSTM.step/original