NMSISNN
Version 1.2.0
NMSIS NN Software Library

Functions  
riscv_nmsis_nn_status  riscv_lstm_unidirectional_s16_s8 (nmsis_nn_lstm_context *scratch_buffers, const int8_t *input_data, const nmsis_nn_lstm_dims *lstm_dims, const int8_t *in_to_in_weights, const int8_t *in_to_forget_weights, const int8_t *in_to_cell_weights, const int8_t *in_to_out_weights, const int8_t *recurrent_to_in_weights, const int8_t *recurrent_to_forget_weights, const int8_t *recurrent_to_cell_weights, const int8_t *recurrent_to_out_weights, const int16_t *cell_to_in_weights, const int16_t *cell_to_forget_weights, const int16_t *cell_to_out_weights, const int8_t *projection_weights, const nmsis_nn_lstm_params *lstm, int8_t *output_state, int16_t *cell_state, int8_t *output_data) 
LSTM unidirectional function with 8 bit input and output and 16 bit gate output Peephole connections, projection, clipping, combined input/forget gate and layer normalization are not supported. More...  
riscv_nmsis_nn_status riscv_lstm_unidirectional_s16_s8  (  nmsis_nn_lstm_context *  scratch_buffers, 
const int8_t *  input_data,  
const nmsis_nn_lstm_dims *  lstm_dims,  
const int8_t *  input_to_input_weights,  
const int8_t *  input_to_forget_weights,  
const int8_t *  input_to_cell_weights,  
const int8_t *  input_to_output_weights,  
const int8_t *  recurrent_to_input_weights,  
const int8_t *  recurrent_to_forget_weights,  
const int8_t *  recurrent_to_cell_weights,  
const int8_t *  recurrent_to_output_weights,  
const int16_t *  cell_to_input_weights,  
const int16_t *  cell_to_forget_weights,  
const int16_t *  cell_to_output_weights,  
const int8_t *  projection_weights,  
const nmsis_nn_lstm_params *  lstm,  
int8_t *  output_state,  
int16_t *  cell_state,  
int8_t *  output_data  
) 
LSTM unidirectional function with 8 bit input and output and 16 bit gate output Peephole connections, projection, clipping, combined input/forget gate and layer normalization are not supported.
[in]  scratch_buffers  Struct containing scratch buffers Expected size for each scratch buffer is lstm_dims>num_batches * lstm_dims>num_outputs. 
[in]  input_data  Pointer to input data 
[in]  lstm_dims  LSTM input parameters related to dimensions 
[in]  input_to_input_weights  Input to input weights 
[in]  input_to_forget_weights  Input to forget weights 
[in]  input_to_cell_weights  Input to cell weights 
[in]  input_to_output_weights  Input to output weights 
[in]  recurrent_to_input_weights  Recurrent to input weights 
[in]  recurrent_to_forget_weights  Recurrent to forget weights 
[in]  recurrent_to_cell_weights  Recurrent to cell weights 
[in]  recurrent_to_output_weights  Recurrent to output weights 
[in]  cell_to_input_weights  Cell to input weights. Not used. 
[in]  cell_to_forget_weights  Cell to forget weights. Not used. 
[in]  cell_to_output_weights  Cell to output weights. Not used. 
[in]  projection_weights  Projection weights. Not used. 
[in]  lstm  LSTM parameters. See struct declaration 
[in]  output_state  Pointer to (recurrent) output state 
[in]  cell_state  Pointer to cell state 
[in]  output_data  Pointer to output state 
1 Input to input weight can not be nullptr. Otherwise nullptr for combined input/forgat gate. 2 Cell weights are not used and should be nullptr. Otherwise needed for peephole connections. 3 Projection weight is not used and should be nullpr. Otherwise needed for projection.
RISCV_NMSIS_NN_SUCCESS