Stateful singular value decomposition filter.
arm_cmsis_nn_status arm_svdf_f32( const cmsis_nn_context *ctx, const cmsis_nn_context *input_ctx, const cmsis_nn_context *output_ctx, const cmsis_nn_svdf_params_f32 *svdf_params, const cmsis_nn_dims *input_dims, const float32_t *input_data, const cmsis_nn_dims *state_dims, float32_t *state_data, const cmsis_nn_dims *weights_feature_dims, const float32_t *weights_feature_data, const cmsis_nn_dims *weights_time_dims, const float32_t *weights_time_data, const cmsis_nn_dims *bias_dims, const float32_t *bias_data, const cmsis_nn_dims *output_dims, float32_t *output_data)Stateful singular value decomposition filter.
Parameters
| Name | Type | Direction | Description |
|---|---|---|---|
ctx | const cmsis_nn_context * | in | Unused by this function. Reserved for future use; may be NULL. |
input_ctx | const cmsis_nn_context * | in, out | Mandatory, not optional: a NULL input_ctx, or a NULL input_ctx->buf, is diagnosed with ARM_CMSIS_NN_ARG_ERROR on every build. Staging buffer written by this function, holding one element per (input batch, feature batch). Written before it is read, so its contents on entry do not matter, but it is written on EVERY build, not only under MVE. Sized by arm_svdf_f32_input_ctx_get_buffer_size(input_dims, weights_feature_dims): input_dims->n * weights_feature_dims->n * sizeof(float32_t) bytes. Setting input_ctx->size lets this function reject an undersized buffer with ARM_CMSIS_NN_ARG_ERROR; leaving it at zero opts out of that check. The caller is expected to clear the buffer, if applicable, for security reasons. |
output_ctx | const cmsis_nn_context * | in, out | Mandatory, not optional: a NULL output_ctx, or a NULL output_ctx->buf, is diagnosed with ARM_CMSIS_NN_ARG_ERROR on every build. Staging buffer written by this function, holding one element per (input batch, output unit). Written before it is read, so its contents on entry do not matter, but it is written on EVERY build, not only under MVE. Sized by arm_svdf_f32_output_ctx_get_buffer_size(svdf_params, input_dims, weights_feature_dims): input_dims->n * (weights_feature_dims->n / svdf_params->rank) * sizeof(float32_t) bytes, truncating division. Setting output_ctx->size lets this function reject an undersized buffer with ARM_CMSIS_NN_ARG_ERROR; leaving it at zero opts out of that check. The caller is expected to clear the buffer, if applicable, for security reasons. |
svdf_params | const cmsis_nn_svdf_params_f32 * | in | SVDF operator parameters. |
input_dims | const cmsis_nn_dims * | in | Input tensor dimensions. |
input_data | const float32_t * | in | Pointer to the input tensor data. |
state_dims | const cmsis_nn_dims * | in | State tensor dimensions. |
state_data | float32_t * | in, out | Pointer to the mutable state tensor. |
weights_feature_dims | const cmsis_nn_dims * | in | Feature-weight tensor dimensions. |
weights_feature_data | const float32_t * | in | Pointer to the feature-weight tensor. |
weights_time_dims | const cmsis_nn_dims * | in | Time-weight tensor dimensions. |
weights_time_data | const float32_t * | in | Pointer to the time-weight tensor. |
bias_dims | const cmsis_nn_dims * | in | Bias tensor dimensions. |
bias_data | const float32_t * | in | Optional bias tensor data. |
output_dims | const cmsis_nn_dims * | in | Output tensor dimensions. |
output_data | float32_t * | out | Pointer to the output tensor data. |
Returns
| Description |
|---|
| `ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments. |