def fprop(self, inputs, inference=False):
        self.init_buffers(inputs)

        if self.reset_cells:
            self.h[-1][:] = 0
            self.c[-1][:] = 0

        params = (self.h, self.h_prev, self.xs, self.ifog, self.ifo,
                  self.i, self.f, self.o, self.g, self.c, self.c_prev, self.c_act)

        for (h, h_prev, xs, ifog, ifo, i, f, o, g, c, c_prev, c_act) in zip(*params):
            self.be.compound_dot(self.W_recur, h_prev, ifog)
            self.be.compound_dot(self.W_input, xs, ifog, beta=1.0)
            ifog[:] = ifog + self.b

            ifo[:] = self.gate_activation(ifo)
            g[:] = self.activation(g)

            c[:] = f * c_prev + i * g
            c_act[:] = self.activation(c)
            h[:] = o * c_act

        return self.outputs
Apply the forward pass transformation to the input data.  The input
dataset/ETHPy150Open NervanaSystems/neon/neon/layers/recurrent.py/LSTM.fprop