HPM SDK
HPMicro Software Development Kit
hpm_math.h File Reference
#include <stddef.h>
#include "riscv_dsp_statistics_math.h"
#include "riscv_dsp_basic_math.h"
#include <stdint.h>
#include "riscv_dsp_complex_math.h"
#include "riscv_dsp_controller_math.h"
#include "riscv_dsp_distance_math.h"
#include "riscv_dsp_filtering_math.h"
#include "riscv_dsp_matrix_math.h"
#include "riscv_dsp_svm_math.h"
#include "riscv_dsp_transform_math.h"
#include "riscv_dsp_utils_math.h"
#include "riscv_dsp_sort_math.h"
#include "riscv_math_types.h"
#include <string.h>
#include "riscv_simd_convert.h"
#include "riscv_nn_activation.h"
#include "riscv_nn_basic.h"
#include "riscv_nn_concatenation.h"
#include "riscv_nn_convolution.h"
#include "riscv_nn_fully_connected.h"
#include "riscv_nn_pooling.h"
#include "riscv_nn_softmax.h"
#include "riscv_nn_util.h"

Go to the source code of this file.

Macros

#define HPM_DSP_HW_NDS32   1 /* andes hardware dsp */
 
#define HPM_MATH_DSP_STATISTICS   1
 
#define HPM_MATH_DSP_BASIC   1
 
#define HPM_MATH_DSP_COMPLEX   1
 
#define HPM_MATH_DSP_CONTROLLER   1
 
#define HPM_MATH_DSP_DISTANCE   1
 
#define HPM_MATH_DSP_FILTERING   1
 
#define HPM_MATH_DSP_MATRIX   1
 
#define HPM_MATH_DSP_SVM   1
 
#define HPM_MATH_DSP_TRANSFORM   1
 
#define HPM_MATH_DSP_UTILS   1
 
#define HPM_MATH_DSP_SORT   1
 
#define HPM_MATH_NN_ACTIVATION   1
 
#define HPM_MATH_NN_TINYENGINE   1
 
#define HPM_MATH_NN_BASIC   1
 
#define HPM_MATH_NN_CONCATENATION   1
 
#define HPM_MATH_NN_CONVOLUTION   1
 
#define HPM_MATH_NN_CONNECTED   1
 
#define HPM_MATH_NN_POOLING   1
 
#define HPM_MATH_NN_SOFTMAX   1
 
#define HPM_MATH_NN_UTIL   1
 
#define HPM_DSP_CORE   HPM_DSP_HW_NDS32 /* DSP core selection */
 
#define HPM_MATH_PI   (3.14159265358979323846)
 
#define HPM_MATH_SW_FFT_CHECKLIST
 HPM_MATH_SW_FFT_CHECKLIST Enabled to use table lookup to speed up the software fft, but will increase the code space,and only support sampling points 2^( 2-10). More...
 
#define LEFT_SHIFT(_shift)   (_shift > 0 ? _shift : 0)
 
#define RIGHT_SHIFT(_shift)   (_shift > 0 ? 0 : -_shift)
 
#define Q31_MAX   ((q31_t)(0x7FFFFFFFL))
 
#define Q31_MIN   ((q31_t)(0x80000000L))
 

Functions

static float32_t hpm_dsp_max_f32 (const float32_t *src, uint32_t size, uint32_t *index)
 Maximum value of the floating-potint vector. More...
 
static float32_t hpm_dsp_max_val_f32 (const float32_t *src, uint32_t size)
 
static q15_t hpm_dsp_max_q15 (const q15_t *src, uint32_t size, uint32_t *index)
 Maximum value of the q15 vector. More...
 
static q31_t hpm_dsp_max_q31 (const q31_t *src, uint32_t size, uint32_t *index)
 Maximum value of the q31 vector. More...
 
static q7_t hpm_dsp_max_q7 (const q7_t *src, uint32_t size, uint32_t *index)
 Maximum value of the q7 vector. More...
 
static uint8_t hpm_dsp_max_u8 (const uint8_t *src, uint32_t size, uint32_t *index)
 Max value of the u8 vector. More...
 
static float32_t hpm_dsp_min_f32 (const float32_t *src, uint32_t size, uint32_t *index)
 Minimum value of the floating-potint vector. More...
 
static q15_t hpm_dsp_min_q15 (const q15_t *src, uint32_t size, uint32_t *index)
 Minimum value of the q15 vector. More...
 
static q31_t hpm_dsp_min_q31 (const q31_t *src, uint32_t size, uint32_t *index)
 Minimum value of the q31 vector. More...
 
static q7_t hpm_dsp_min_q7 (const q7_t *src, uint32_t size, uint32_t *index)
 Minimum value of the q7 vector. More...
 
static uint8_t hpm_dsp_min_u8 (const uint8_t *src, uint32_t size, uint32_t *index)
 Minimum value of the u8 vector. More...
 
static float32_t hpm_dsp_mean_f32 (const float32_t *src, uint32_t size)
 Mean value of the floating-potint vector. More...
 
static q15_t hpm_dsp_mean_q15 (const q15_t *src, uint32_t size)
 Mean value of the q15 vector. More...
 
static q31_t hpm_dsp_mean_q31 (const q31_t *src, uint32_t size)
 Mean value of the q31 vector. More...
 
static q7_t hpm_dsp_mean_q7 (const q7_t *src, uint32_t size)
 Mean value of the q7 vector. More...
 
static uint8_t hpm_dsp_mean_u8 (const uint8_t *src, uint32_t size)
 Mean value of the u8 vector. More...
 
static float32_t hpm_dsp_pwr_f32 (const float32_t *src, uint32_t size)
 Sum of the squares of the floating-potint vector. More...
 
static q63_t hpm_dsp_pwr_q15 (const q15_t *src, uint32_t size)
 Sum of the squares of the q15 vector. More...
 
static q63_t hpm_dsp_pwr_q31 (const q31_t *src, uint32_t size)
 Sum of the squares of the q31 vector. More...
 
static q31_t hpm_dsp_pwr_q7 (const q7_t *src, uint32_t size)
 Sum of the squares of the q7 vector. More...
 
static float32_t hpm_dsp_rms_f32 (const float32_t *src, uint32_t size)
 RMS of the floating-potint vector. More...
 
static q15_t hpm_dsp_rms_q15 (const q15_t *src, uint32_t size)
 RMS of the q15 vector. More...
 
static q31_t hpm_dsp_rms_q31 (const q31_t *src, uint32_t size)
 RMS of the q31 vector. More...
 
static float32_t hpm_dsp_std_f32 (const float32_t *src, uint32_t size)
 Standard deviation of the floating-potint vector. More...
 
static q15_t hpm_dsp_std_q15 (const q15_t *src, uint32_t size)
 Standard deviation of the q15 vector. More...
 
static q31_t hpm_dsp_std_q31 (const q31_t *src, uint32_t size)
 Standard deviation of the q31 vector. More...
 
static q15_t hpm_dsp_std_u8 (const uint8_t *src, uint32_t size)
 Standard deviation of the u8 vector. More...
 
static float32_t hpm_dsp_var_f32 (const float32_t *src, uint32_t size)
 Variance of the floating-potint vector. More...
 
static q31_t hpm_dsp_var_q15 (const q15_t *src, uint32_t size)
 Variance of the q15 vector. More...
 
static q63_t hpm_dsp_var_q31 (const q31_t *src, uint32_t size)
 Variance of the q31 vector. More...
 
static float32_t hpm_dsp_entropy_f32 (const float32_t *src, uint32_t size)
 Entropy of the floating-potint vector. More...
 
static float32_t hpm_dsp_relative_entropy_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Relative Entropy of the floating-potint vector. More...
 
static float32_t hpm_dsp_lse_f32 (const float32_t *src, uint32_t size)
 Log-Sum-Exp of the floating-potint vector. More...
 
static float32_t hpm_dsp_lse_dprod_f32 (const float32_t *src1, const float32_t *src2, uint32_t size, float32_t *buffer)
 Dot product with Log-Sum-Exp of the floating-potint vector. More...
 
static uint32_t hpm_dsp_gaussian_naive_bayes_est_f32 (const riscv_dsp_gaussian_naivebayes_f32_t *instance, const float32_t *src, float32_t *buf)
 Naive Gaussian Bayesian Estimator. More...
 
static float32_t hpm_dsp_absmax_f32 (const float32_t *src, uint32_t size, uint32_t *index)
 Maximum absolute value of the floating-potint vector. More...
 
static q15_t hpm_dsp_absmax_q15 (const q15_t *src, uint32_t size, uint32_t *index)
 Maximum absolute value of the q15 vector. More...
 
static q31_t hpm_dsp_absmax_q31 (const q31_t *src, uint32_t size, uint32_t *index)
 Maximum absolute value of the q31 vector. More...
 
static q7_t hpm_dsp_absmax_q7 (const q7_t *src, uint32_t size, uint32_t *index)
 Maximum absolute value of the q7 vector. More...
 
static float32_t hpm_dsp_absmin_f32 (const float32_t *src, uint32_t size, uint32_t *index)
 Minimum absolute value of the floating-potint vector. More...
 
static q31_t hpm_dsp_absmin_q31 (const q31_t *src, uint32_t size, uint32_t *index)
 Minimum absolute value of the q31 vector. More...
 
static q15_t hpm_dsp_absmin_q15 (const q15_t *src, uint32_t size, uint32_t *index)
 Minimum absolute value of the q15 vector. More...
 
static q7_t hpm_dsp_absmin_q7 (const q7_t *src, uint32_t size, uint32_t *index)
 Minimum absolute value of the q7 vector. More...
 
static void hpm_dsp_abs_f32 (float32_t *src, float32_t *dst, uint32_t size)
 Absolute value of floating-potint vectors. More...
 
static void hpm_dsp_abs_q31 (q31_t *src, q31_t *dst, uint32_t size)
 Absolute value of q31 vectors. More...
 
static void hpm_dsp_abs_q15 (q15_t *src, q15_t *dst, uint32_t size)
 Absolute value of q15 vectors. More...
 
static void hpm_dsp_abs_q7 (q7_t *src, q7_t *dst, uint32_t size)
 Absolute value of q7 vectors. More...
 
static void hpm_dsp_add_f32 (float32_t *src1, float32_t *src2, float32_t *dst, uint32_t size)
 Addition of floating-potint vectors. More...
 
static void hpm_dsp_add_q31 (q31_t *src1, q31_t *src2, q31_t *dst, uint32_t size)
 Addition of q31 vectors. More...
 
static void hpm_dsp_add_q15 (q15_t *src1, q15_t *src2, q15_t *dst, uint32_t size)
 Addition of q15 vectors. More...
 
static void hpm_dsp_add_q7 (q7_t *src1, q7_t *src2, q7_t *dst, uint32_t size)
 Addition of q7 vectors. More...
 
static void hpm_dsp_add_u8_u16 (uint8_t *src1, uint8_t *src2, uint16_t *dst, uint32_t size)
 Addition of U8 vectors. More...
 
static void hpm_dsp_sub_f32 (float32_t *src1, float32_t *src2, float32_t *dst, uint32_t size)
 Subtraction of floating-point vectors. More...
 
static void hpm_dsp_sub_q31 (q31_t *src1, q31_t *src2, q31_t *dst, uint32_t size)
 Subtraction of q31 vectors. More...
 
static void hpm_dsp_sub_q15 (q15_t *src1, q15_t *src2, q15_t *dst, uint32_t size)
 Subtraction of q15 vectors. More...
 
static void hpm_dsp_sub_q7 (q7_t *src1, q7_t *src2, q7_t *dst, uint32_t size)
 Subtraction of q7 vectors. More...
 
static void hpm_dsp_sub_u8_q7 (uint8_t *src1, uint8_t *src2, q7_t *dst, uint32_t size)
 Subtraction of u8 vectors. More...
 
static void hpm_dsp_mul_f32 (float32_t *src1, float32_t *src2, float32_t *dst, uint32_t size)
 Multiplication of floating-point vectors. More...
 
static void hpm_dsp_mul_q31 (q31_t *src1, q31_t *src2, q31_t *dst, uint32_t size)
 Multiplication of q31 vectors. More...
 
static void hpm_dsp_mul_q15 (q15_t *src1, q15_t *src2, q15_t *dst, uint32_t size)
 Multiplication of q15 vectors. More...
 
static void hpm_dsp_mul_q7 (q7_t *src1, q7_t *src2, q7_t *dst, uint32_t size)
 Multiplication of q7 vectors. More...
 
static void hpm_dsp_mul_u8_u16 (uint8_t *src1, uint8_t *src2, uint16_t *dst, uint32_t size)
 Multiplication of u8 vectors. More...
 
static void hpm_dsp_div_f32 (float32_t *src1, float32_t *src2, float32_t *dst, uint32_t size)
 Division of floating-point vectors. More...
 
static q31_t hpm_dsp_div_q31 (q31_t src1, q31_t src2)
 Division of q31 inputs. More...
 
static q31_t hpm_dsp_div_s64_u32 (q63_t src1, uint32_t src2)
 Division of q63 inputs divided by a positive 32 bits. More...
 
static q31_t hpm_dsp_div_u64_u32 (uint64_t src1, uint32_t src2)
 Division of positive 64-bits inputs divided by a positive 32-bits. More...
 
static void hpm_dsp_neg_f32 (float32_t *src, float32_t *dst, uint32_t size)
 Negation of floating-potint vectors. More...
 
static void hpm_dsp_neg_q31 (q31_t *src, q31_t *dst, uint32_t size)
 Negation of q31 vectors. More...
 
static void hpm_dsp_neg_q15 (q15_t *src, q15_t *dst, uint32_t size)
 Negation of q15 vectors. More...
 
static void hpm_dsp_neg_q7 (q7_t *src, q7_t *dst, uint32_t size)
 Negation of q15 vectors. More...
 
static float32_t hpm_dsp_dprod_f32 (float32_t *src1, float32_t *src2, uint32_t size)
 Dot production of floating-point vectors. More...
 
static q63_t hpm_dsp_dprod_q31 (q31_t *src1, q31_t *src2, uint32_t size)
 Dot production of q31 vectors. More...
 
static q63_t hpm_dsp_dprod_q15 (q15_t *src1, q15_t *src2, uint32_t size)
 Dot production of q15 vectors. More...
 
static q31_t hpm_dsp_dprod_u8xq15 (uint8_t *src1, q15_t *src2, uint32_t size)
 Dot production of u8 * q15 vectors. More...
 
static q31_t hpm_dsp_dprod_q7 (q7_t *src1, q7_t *src2, uint32_t size)
 Dot production of q7 vectors. More...
 
static q31_t hpm_dsp_dprod_q7xq15 (q7_t *src1, q15_t *src2, uint32_t size)
 Dot production of q7 * q15 vectors. More...
 
static uint32_t hpm_dsp_dprod_u8 (uint8_t *src1, uint8_t *src2, uint32_t size)
 Dot production of U8 vectors. More...
 
static void hpm_dsp_offset_f32 (float32_t *src, float32_t offset, float32_t *dst, uint32_t size)
 The offset of floating-point vectors. More...
 
static void hpm_dsp_offset_q31 (q31_t *src, q31_t offset, q31_t *dst, uint32_t size)
 The offset of q31 vectors. More...
 
static void hpm_dsp_offset_q15 (q15_t *src, q15_t offset, q15_t *dst, uint32_t size)
 The offset of q15 vectors. More...
 
static void hpm_dsp_offset_q7 (q7_t *src, q7_t offset, q7_t *dst, uint32_t size)
 The offset of q7 vectors. More...
 
static void hpm_dsp_offset_u8 (uint8_t *src, q7_t offset, uint8_t *dst, uint32_t size)
 The offset of U8 vectors. More...
 
static void hpm_dsp_scale_f32 (float32_t *src, float32_t scale, float32_t *dst, uint32_t size)
 To multiply a floating-point vectors by a floating-point scale. More...
 
static void hpm_dsp_scale_q31 (q31_t *src, q31_t scalefract, int8_t shift, q31_t *dst, uint32_t size)
 To multiply a q31 vectors by a q31 scale. More...
 
static void hpm_dsp_scale_q15 (q15_t *src, q15_t scalefract, int8_t shift, q15_t *dst, uint32_t size)
 To multiply a q15 vectors by a q15 scale. More...
 
static void hpm_dsp_scale_q7 (q7_t *src, q7_t scalefract, int8_t shift, q7_t *dst, uint32_t size)
 To multiply a q7 vectors by a q7 scale. More...
 
static void hpm_dsp_scale_u8 (uint8_t *src, q7_t scalefract, int8_t shift, uint8_t *dst, uint32_t size)
 To multiply a u8 vectors by a q7 scale. More...
 
static void hpm_dsp_shift_q15 (q15_t *src, int8_t shift, q15_t *dst, uint32_t size)
 Shifts a q15 vector with a specified shift number. More...
 
static void hpm_dsp_shift_q31 (q31_t *src, int8_t shift, q31_t *dst, uint32_t size)
 Shifts a q31 vector with a specified shift number. More...
 
static void hpm_dsp_shift_q7 (q7_t *src, int8_t shift, q7_t *dst, uint32_t size)
 Shifts a q7 vector with a specified shift number. More...
 
static void hpm_dsp_shift_u8 (uint8_t *src, int8_t shift, uint8_t *dst, uint32_t size)
 Shifts a u8 vector for a specified shift number. More...
 
static void hpm_dsp_clip_f32 (float32_t *src, float32_t *dst, float32_t low, float32_t high, uint32_t size)
 Elementwise clipping of f32 function. More...
 
static void hpm_dsp_clip_q31 (q31_t *src, q31_t *dst, q31_t low, q31_t high, uint32_t size)
 Elementwise clipping of q31 function. More...
 
static void hpm_dsp_clip_q15 (q15_t *src, q15_t *dst, q15_t low, q15_t high, uint32_t size)
 Elementwise clipping of q15 function. More...
 
static void hpm_dsp_clip_q7 (q7_t *src, q7_t *dst, q7_t low, q7_t high, uint32_t size)
 Elementwise clipping of q7 function. More...
 
static void hpm_dsp_and_u32 (u32_t *src1, u32_t *src2, u32_t *dst, uint32_t size)
 Compute the logical bitwise AND of two u32 vectors. More...
 
static void hpm_dsp_and_u16 (u16_t *src1, u16_t *src2, u16_t *dst, uint32_t size)
 Compute the logical bitwise AND of two u16 vectors. More...
 
static void hpm_dsp_and_u8 (u8_t *src1, u8_t *src2, u8_t *dst, uint32_t size)
 Compute the logical bitwise AND of two u8 vectors. More...
 
static void hpm_dsp_or_u32 (u32_t *src1, u32_t *src2, u32_t *dst, uint32_t size)
 Compute the logical bitwise OR of two u32 vectors. More...
 
static void hpm_dsp_or_u16 (u16_t *src1, u16_t *src2, u16_t *dst, uint32_t size)
 Compute the logical bitwise OR of two u16 vectors. More...
 
static void hpm_dsp_or_u8 (u8_t *src1, u8_t *src2, u8_t *dst, uint32_t size)
 Compute the logical bitwise OR of two u8 vectors. More...
 
static void hpm_dsp_xor_u32 (u32_t *src1, u32_t *src2, u32_t *dst, uint32_t size)
 Compute the logical bitwise XOR of two u32 vectors. More...
 
static void hpm_dsp_xor_u16 (u16_t *src1, u16_t *src2, u16_t *dst, uint32_t size)
 Compute the logical bitwise XOR of two u16 vectors. More...
 
static void hpm_dsp_xor_u8 (u8_t *src1, u8_t *src2, u8_t *dst, uint32_t size)
 Compute the logical bitwise XOR of two u8 vectors. More...
 
static void hpm_dsp_not_u32 (u32_t *src, u32_t *dst, uint32_t size)
 Compute the logical bitwise NOT of u32 vector. More...
 
static void hpm_dsp_not_u16 (u16_t *src, u16_t *dst, uint32_t size)
 Compute the logical bitwise NOT of u16 vector. More...
 
static void hpm_dsp_not_u8 (u8_t *src, u8_t *dst, uint32_t size)
 Compute the logical bitwise NOT of u8 vector. More...
 
uint8_t hpm_math_sw_reverse_bit8_lsb_to_msb (uint8_t lsb)
 Reserve 8bit data lsb to msb. More...
 
uint8_t hpm_math_sw_reverse_bit8_msb_to_lsb (uint8_t msb)
 Reserve 8bit data msb to lsb. More...
 
uint32_t hpm_math_sw_reverse_bit32_lsb_to_msb (uint32_t lsb)
 Reserve 32bit data lsb to msb. More...
 
uint32_t hpm_math_sw_reverse_bit32_msb_to_lsb (uint32_t msb)
 Reserve 32bit data msb to lsb. More...
 
static void hpm_dsp_cconj_f32 (const float32_t *src, float32_t *dst, uint32_t size)
 Conjugate the floating-potint complex vector. More...
 
static void hpm_dsp_cconj_q15 (const q15_t *src, q15_t *dst, uint32_t size)
 Conjugate the q15 complex vector. More...
 
static void hpm_dsp_cconj_q31 (const q31_t *src, q31_t *dst, uint32_t size)
 Conjugate the q31 complex vector. More...
 
static void hpm_dsp_cdprod_f32 (const float32_t *src1, const float32_t *src2, uint32_t size, float32_t *dst)
 Compute the dot product of the floating-potint complex vector. More...
 
static void hpm_dsp_cdprod_typ2_f32 (const float32_t *src1, const float32_t *src2, uint32_t size, float32_t *rout, float32_t *iout)
 Compute the dot product type2 of the floating-potint complex vector. More...
 
static void hpm_dsp_cdprod_q15 (const q15_t *src1, const q15_t *src2, uint32_t size, q15_t *dst)
 Compute the dot product of the q15 complex vector. More...
 
static void hpm_dsp_cdprod_typ2_q15 (const q15_t *src1, const q15_t *src2, uint32_t size, q31_t *rout, q31_t *iout)
 Compute the dot product type2 of the q15 complex vector. More...
 
static void hpm_dsp_cdprod_q31 (const q31_t *src1, const q31_t *src2, uint32_t size, q31_t *dst)
 Compute the dot product of the q31 complex vector. More...
 
static void hpm_dsp_cdprod_typ2_q31 (const q31_t *src1, const q31_t *src2, uint32_t size, q63_t *rout, q63_t *iout)
 Compute the dot product type2 of the q31 complex vector. More...
 
static void hpm_dsp_cmag_f32 (const float32_t *src, float32_t *dst, uint32_t size)
 Compute the magnitude of the floating-potint complex vector. More...
 
static void hpm_dsp_cmag_q15 (const q15_t *src, q15_t *dst, uint32_t size)
 Compute the magnitude of the q15 complex vector. More...
 
static void hpm_dsp_cmag_q31 (const q31_t *src, q31_t *dst, uint32_t size)
 Compute the magnitude of the q31 complex vector. More...
 
static void hpm_dsp_cmag_sqr_f32 (const float32_t *src, float32_t *dst, uint32_t size)
 Compute the magnitude squared of the floating-potint complex vector. More...
 
static void hpm_dsp_cmag_sqr_q15 (const q15_t *src, q15_t *dst, uint32_t size)
 Compute the magnitude squared of the q15 complex vector. More...
 
static void hpm_dsp_cmag_sqr_q31 (const q31_t *src, q31_t *dst, uint32_t size)
 Compute the magnitude squared of the q31 complex vector. More...
 
static void hpm_dsp_cmul_f32 (const float32_t *src1, const float32_t *src2, float32_t *dst, uint32_t size)
 Multiply two folating-point complex vector. More...
 
static void hpm_dsp_cmul_q15 (const q15_t *src1, const q15_t *src2, q15_t *dst, uint32_t size)
 Multiply two q15 complex vector. More...
 
static void hpm_dsp_cmul_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t size)
 Multiply two q31 complex vector. More...
 
static void hpm_dsp_cmul_real_f32 (const float32_t *src, const float32_t *real, float32_t *dst, uint32_t size)
 Multiply the folating-point complex vector by a real vector. More...
 
static void hpm_dsp_cmul_real_q15 (const q15_t *src, const q15_t *real, q15_t *dst, uint32_t size)
 Multiply the q15 complex vector by a real vector. More...
 
static void hpm_dsp_cmul_real_q31 (const q31_t *src, const q31_t *real, q31_t *dst, uint32_t size)
 Multiply the q31 complex vector by a real vector. More...
 
static void hpm_dsp_clarke_f32 (float32_t a, float32_t b, float32_t *alpha, float32_t *beta)
 Clarke transform of floating-point input. More...
 
static void hpm_dsp_clarke_q31 (q31_t a, q31_t b, q31_t *alpha, q31_t *beta)
 Clarke transform of q31 input. More...
 
static void hpm_dsp_inv_clarke_f32 (float32_t alpha, float32_t beta, float32_t *a, float32_t *b)
 Inverse Clarke transform of floating-point input. More...
 
static void hpm_dsp_inv_clarke_q31 (q31_t alpha, q31_t beta, q31_t *a, q31_t *b)
 Inverse Clarke transform of q31 input. More...
 
static void hpm_dsp_park_f32 (float32_t alpha, float32_t beta, float32_t *a, float32_t *b, float32_t sin, float32_t cos)
 Park transform of floating-point input. More...
 
static void hpm_dsp_park_q31 (q31_t alpha, q31_t beta, q31_t *a, q31_t *b, q31_t sin, q31_t cos)
 Park transform of q31 input. More...
 
static void hpm_dsp_inv_park_f32 (float32_t a, float32_t b, float32_t *alpha, float32_t *beta, float32_t sin, float32_t cos)
 Inverse Park transform of floating-point input. More...
 
static void hpm_dsp_inv_park_q31 (q31_t a, q31_t b, q31_t *alpha, q31_t *beta, q31_t sin, q31_t cos)
 Inverse Park transform of q31 input. More...
 
static float32_t hpm_dsp_pid_f32 (riscv_dsp_pid_f32_t *instance, float32_t src)
 PID control of floating-point input. More...
 
static void hpm_dsp_init_pid_f32 (riscv_dsp_pid_f32_t *instance, int32_t set)
 PID initializatopn control function of floating-point formats. More...
 
static q31_t hpm_dsp_pid_q31 (riscv_dsp_pid_q31_t *instance, q31_t src)
 PID control of Q31 input. More...
 
static void hpm_dsp_init_pid_q31 (riscv_dsp_pid_q31_t *instance, int32_t set)
 PID initializatopn control function of Q31 formats. More...
 
static q15_t hpm_dsp_pid_q15 (riscv_dsp_pid_q15_t *instance, q15_t src)
 
static void hpm_dsp_init_pid_q15 (riscv_dsp_pid_q15_t *instance, int32_t set)
 PID initializatopn control function of Q15 formats. More...
 
static float32_t hpm_dsp_dist_bray_curtis_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Bray-Curtis distance between two vectors. More...
 
static float32_t hpm_dsp_dist_canberra_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Canberra distance between two vectors. More...
 
static float32_t hpm_dsp_dist_chebyshev_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Chebyshev distance between two vectors. More...
 
static float32_t hpm_dsp_dist_city_block_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Cityblock (Manhattan) distance between two vectors. More...
 
static float32_t hpm_dsp_dist_corr_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Correlation distance between two vectors. More...
 
static float32_t hpm_dsp_dist_cos_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Cosine distance between two vectors. More...
 
static float32_t hpm_dsp_dist_euclidean_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Euclidean distance between two vectors. More...
 
static float32_t hpm_dsp_dist_jensen_shannon_f32 (const float32_t *src1, const float32_t *src2, uint32_t size)
 Jensen-Shannon distance between two vectors. More...
 
static float32_t hpm_dsp_dist_minkowski_f32 (const float32_t *src1, const float32_t *src2, int32_t order, uint32_t size)
 Minkowski distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_dice_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Dice distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_hamming_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Hamming distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_jaccard_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Jaccard distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_kulsinski_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Kulsinski distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_sokal_michener_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Sokal-Michener distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_sokal_sneath_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Sokal-Sneath distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_rogers_tanimoto_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Roger Stanimoto distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_yule_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Yule distance between two vectors. More...
 
static float32_t hpm_dsp_bdist_russell_rao_u32_f32 (const uint32_t *src1, const uint32_t *src2, uint32_t numofbool)
 Russell-Rao distance between two vectors. More...
 
static void hpm_dsp_fir_f32 (const riscv_dsp_fir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 Function for the floating-point FIR filter. More...
 
static void hpm_dsp_fir_q31 (const riscv_dsp_fir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 Function for the q31 FIR filter. More...
 
static void hpm_dsp_fir_fast_q31 (const riscv_dsp_fir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 Function for the q31 FIR filter. More...
 
static void hpm_dsp_fir_q15 (const riscv_dsp_fir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 Function for the q15 FIR filter. More...
 
static void hpm_dsp_fir_fast_q15 (const riscv_dsp_fir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 Function for the q15 FIR filter. More...
 
static void hpm_dsp_fir_q7 (const riscv_dsp_fir_q7_t *instance, q7_t *src, q7_t *dst, uint32_t size)
 Function for the q7 FIR filter. More...
 
static void hpm_dsp_lfir_f32 (const riscv_dsp_lfir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 Function for the floating-point lattice FIR filter. More...
 
static void hpm_dsp_lfir_q15 (const riscv_dsp_lfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 Function for the q15 lattice FIR filter. More...
 
static void hpm_dsp_lfir_q31 (const riscv_dsp_lfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 Function for the q31 lattice FIR filter. More...
 
static void hpm_dsp_dcmfir_f32 (const riscv_dsp_dcmfir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 
static void hpm_dsp_dcmfir_q15 (const riscv_dsp_dcmfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 
static void hpm_dsp_dcmfir_q31 (const riscv_dsp_dcmfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_dcmfir_fast_q31 (const riscv_dsp_dcmfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_dcmfir_fast_q15 (const riscv_dsp_dcmfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 
static void hpm_dsp_upsplfir_f32 (const riscv_dsp_upsplfir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 
static void hpm_dsp_upsplfir_q15 (const riscv_dsp_upsplfir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 
static void hpm_dsp_upsplfir_q31 (const riscv_dsp_upsplfir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_spafir_f32 (riscv_dsp_spafir_f32_t *instance, float32_t *src, float32_t *dst, float32_t *buf, uint32_t size)
 
static void hpm_dsp_spafir_q15 (riscv_dsp_spafir_q15_t *instance, q15_t *src, q15_t *dst, q15_t *buf1, q31_t *buf2, uint32_t size)
 
static void hpm_dsp_spafir_q31 (riscv_dsp_spafir_q31_t *instance, q31_t *src, q31_t *dst, q31_t *buf, uint32_t size)
 
static void hpm_dsp_spafir_q7 (riscv_dsp_spafir_q7_t *instance, q7_t *src, q7_t *dst, q7_t *buf1, q31_t *buf2, uint32_t size)
 
static void hpm_dsp_lms_f32 (const riscv_dsp_lms_f32_t *instance, float32_t *src, float32_t *ref, float32_t *dst, float32_t *err, uint32_t size)
 Structure for the floatint-point standard LMS Filters. More...
 
static void hpm_dsp_lms_q31 (const riscv_dsp_lms_q31_t *instance, q31_t *src, q31_t *ref, q31_t *dst, q31_t *err, uint32_t size)
 Function for the q31 LMS filter. More...
 
static void hpm_dsp_lms_q15 (const riscv_dsp_lms_q15_t *instance, q15_t *src, q15_t *ref, q15_t *dst, q15_t *err, uint32_t size)
 Function for the q15 LMS filter. More...
 
static void hpm_dsp_nlms_f32 (riscv_dsp_nlms_f32_t *instance, float32_t *src, float32_t *ref, float32_t *dst, float32_t *err, uint32_t size)
 Structure for the f32 normalized LMS filter. More...
 
static void hpm_dsp_nlms_q31 (riscv_dsp_nlms_q31_t *instance, q31_t *src, q31_t *ref, q31_t *dst, q31_t *err, uint32_t size)
 Structure for the q31 normalized LMS filter. More...
 
static void hpm_dsp_nlms_q15 (riscv_dsp_nlms_q15_t *instance, q15_t *src, q15_t *ref, q15_t *dst, q15_t *err, uint32_t size)
 
static void hpm_dsp_conv_f32 (float32_t *src1, uint32_t len1, float32_t *src2, uint32_t len2, float32_t *dst)
 Convolution of the floating-point vectors. More...
 
static void hpm_dsp_conv_q15 (q15_t *src1, uint32_t len1, q15_t *src2, uint32_t len2, q15_t *dst)
 Convolution of the q15 vectors. More...
 
static void hpm_dsp_conv_q31 (q31_t *src1, uint32_t len1, q31_t *src2, uint32_t len2, q31_t *dst)
 Convolution of the q31 vectors. More...
 
static void hpm_dsp_conv_q7 (q7_t *src1, uint32_t len1, q7_t *src2, uint32_t len2, q7_t *dst)
 Convolution of the q7 vectors. More...
 
static int32_t hpm_dsp_conv_partial_f32 (float32_t *src1, uint32_t len1, float32_t *src2, uint32_t len2, float32_t *dst, uint32_t startindex, uint32_t size)
 Convolution Partial of the floating-point vectors. More...
 
static int32_t hpm_dsp_conv_partial_q15 (q15_t *src1, uint32_t len1, q15_t *src2, uint32_t len2, q15_t *dst, uint32_t startindex, uint32_t size)
 Convolution Partial of the q15 vectors. More...
 
static int32_t hpm_dsp_conv_partial_q31 (q31_t *src1, uint32_t len1, q31_t *src2, uint32_t len2, q31_t *dst, uint32_t startindex, uint32_t size)
 Convolution Partial of the q31 vectors. More...
 
static int32_t hpm_dsp_conv_partial_q7 (q7_t *src1, uint32_t len1, q7_t *src2, uint32_t len2, q7_t *dst, uint32_t startindex, uint32_t size)
 Convolution Partial of the q7 vectors. More...
 
static void hpm_dsp_corr_f32 (float32_t *src1, uint32_t len1, float32_t *src2, uint32_t len2, float32_t *dst)
 Correlation of the floating-point vectors. More...
 
static void hpm_dsp_corr_q15 (q15_t *src1, uint32_t len1, q15_t *src2, uint32_t len2, q15_t *dst)
 Correlation of the q15 vectors. More...
 
static void hpm_dsp_corr_q31 (q31_t *src1, uint32_t len1, q31_t *src2, uint32_t len2, q31_t *dst)
 Convolution of the q31 vectors. More...
 
static void hpm_dsp_corr_q7 (q7_t *src1, uint32_t len1, q7_t *src2, uint32_t len2, q7_t *dst)
 Correlation of the q7 vectors. More...
 
static void hpm_dsp_bq_df1_f32 (const riscv_dsp_bq_df1_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 
static void hpm_dsp_bq_df1_q15 (const riscv_dsp_bq_df1_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 
static void hpm_dsp_bq_df1_fast_q15 (const riscv_dsp_bq_df1_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 
static void hpm_dsp_bq_df1_q31 (const riscv_dsp_bq_df1_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_bq_df1_fast_q31 (const riscv_dsp_bq_df1_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_bq_df1_32x64_q31 (const riscv_dsp_bq_df1_32x64_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_bq_df2T_f32 (const riscv_dsp_bq_df2T_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 
static void hpm_dsp_bq_df2T_f64 (const riscv_dsp_bq_df2T_f64_t *instance, float64_t *src, float64_t *dst, uint32_t size)
 
static void hpm_dsp_bq_stereo_df2T_f32 (const riscv_dsp_bq_stereo_df2T_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 
static void hpm_dsp_liir_f32 (const riscv_dsp_liir_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 
static void hpm_dsp_liir_q31 (const riscv_dsp_liir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_liir_fast_q31 (const riscv_dsp_liir_q31_t *instance, q31_t *src, q31_t *dst, uint32_t size)
 
static void hpm_dsp_liir_q15 (const riscv_dsp_liir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 
static void hpm_dsp_liir_fast_q15 (const riscv_dsp_liir_q15_t *instance, q15_t *src, q15_t *dst, uint32_t size)
 
static void hpm_dsp_mat_add_f32 (const float32_t *src1, const float32_t *src2, float32_t *dst, uint32_t row, uint32_t col)
 Addition of two floating-potint matrices. More...
 
static void hpm_dsp_mat_add_f64 (const float64_t *src1, const float64_t *src2, float64_t *dst, uint32_t row, uint32_t col)
 Addition of two floating-potint matrices. More...
 
static void hpm_dsp_mat_add_q15 (const q15_t *src1, const q15_t *src2, q15_t *dst, uint32_t row, uint32_t col)
 Addition of two q15 matrices. More...
 
static void hpm_dsp_mat_add_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t row, uint32_t col)
 Addition of two q31 matrices. More...
 
static int32_t hpm_dsp_mat_inv_f32 (float32_t *src, float32_t *dst, uint32_t size)
 Compute the inverse matrix of the floating-potint matrix. More...
 
static int32_t hpm_dsp_mat_inv_f64 (float64_t *src, float64_t *dst, uint32_t size)
 
static void hpm_dsp_mat_mul_f32 (const float32_t *src1, const float32_t *src2, float32_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 Multiplication of two floating-point matrices. More...
 
static void hpm_dsp_mat_mul_f64 (const float64_t *src1, const float64_t *src2, float64_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 
static void hpm_dsp_cmat_mul_f32 (const float32_t *src1, const float32_t *src2, float32_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 Multiplication of two floating-point complex matrices. More...
 
static void hpm_dsp_mat_mul_q15 (const q15_t *src1, const q15_t *src2, q15_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 Multiplication of two q15 matrices. More...
 
static void hpm_dsp_mat_mul_fast_q15 (const q15_t *src1, const q15_t *src2, q15_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 
static void hpm_dsp_cmat_mul_q15 (const q15_t *src1, const q15_t *src2, q15_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 Multiplication of two q15 complex matrices. More...
 
static void hpm_dsp_mat_mul_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 Multiplication of two q31 matrices. More...
 
static void hpm_dsp_mat_mul_fast_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 
static void hpm_dsp_cmat_mul_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 Multiplication of two q31 complex matrices. More...
 
static void hpm_dsp_mat_mul_q7 (const q7_t *src1, const q7_t *src2, q7_t *dst, uint32_t row, uint32_t col, uint32_t col2)
 Multiplication of two q7 matrices. More...
 
static void hpm_dsp_mat_mul_vxm_q7 (const q7_t *src1, const q7_t *src2, q7_t *dst, uint32_t col, uint32_t col2)
 Multiplication of q7 vetor by matrix. More...
 
static int32_t hpm_dsp_mat_pwr2_cache_f64 (const float64_t *src, float64_t *dst, uint32_t size)
 
static void hpm_dsp_mat_scale_f32 (const float32_t *src, float32_t scale, float32_t *dst, uint32_t row, uint32_t col)
 Multiplt a scale value of floating-potint matrix. More...
 
static void hpm_dsp_mat_scale_q15 (const q15_t *src, q15_t scale_fract, int32_t shift, q15_t *dst, uint32_t row, uint32_t col)
 Multiplt a scale value of q15 matrix. More...
 
static void hpm_dsp_mat_scale_q31 (const q31_t *src, q31_t scale_fract, int32_t shift, q31_t *dst, uint32_t row, uint32_t col)
 Multiplt a scale value of q31 matrix. More...
 
static void hpm_dsp_mat_sub_f64 (const float64_t *src1, const float64_t *src2, float64_t *dst, uint32_t row, uint32_t col)
 Substraction of two double-precision floating-potint matrices. More...
 
static void hpm_dsp_mat_sub_f32 (const float32_t *src1, const float32_t *src2, float32_t *dst, uint32_t row, uint32_t col)
 Substraction of two floating-potint matrices. More...
 
static void hpm_dsp_mat_sub_q15 (const q15_t *src1, const q15_t *src2, q15_t *dst, uint32_t row, uint32_t col)
 Substraction of two q15 matrices. More...
 
static void hpm_dsp_mat_sub_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t row, uint32_t col)
 Substraction of two q31 matrices. More...
 
static void hpm_dsp_mat_trans_f64 (const float64_t *src, float64_t *dst, uint32_t row, uint32_t col)
 Transpose the double-precision floating-potint matrices. More...
 
static void hpm_dsp_mat_trans_f32 (const float32_t *src, float32_t *dst, uint32_t row, uint32_t col)
 Transpose the floating-potint matricex. More...
 
static void hpm_dsp_mat_trans_q15 (const q15_t *src, q15_t *dst, uint32_t row, uint32_t col)
 Transpose the q15 matricex. More...
 
static void hpm_dsp_mat_trans_q31 (const q31_t *src, q31_t *dst, uint32_t row, uint32_t col)
 Transpose the q31 matricex. More...
 
static void hpm_dsp_mat_trans_u8 (const uint8_t *src, uint8_t *dst, uint32_t row, uint32_t col)
 Transpose the u8 matricex. More...
 
static void hpm_dsp_mat_trans_q7 (const q7_t *src, q7_t *dst, uint32_t row, uint32_t col)
 Transpose the q7 matrices. More...
 
static void hpm_dsp_mat_oprod_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t size1, uint32_t size2)
 Outer production of two q31 matrices. More...
 
static void hpm_dsp_mat_mul_mxv_f32 (const float32_t *src1, const float32_t *src2, float32_t *dst, uint32_t row, uint32_t col)
 Matrix multiply vector for f32 formats. More...
 
static void hpm_dsp_mat_mul_mxv_q15 (const q15_t *src1, const q15_t *src2, q15_t *dst, uint32_t row, uint32_t col)
 Matrix multiply vector for q15 formats. More...
 
static void hpm_dsp_mat_mul_mxv_q31 (const q31_t *src1, const q31_t *src2, q31_t *dst, uint32_t row, uint32_t col)
 Matrix multiply vector for q31 formats. More...
 
static void hpm_dsp_mat_mul_mxv_q7 (const q7_t *src1, const q7_t *src2, q7_t *dst, uint32_t row, uint32_t col)
 Matrix multiply vector for q7 formats. More...
 
static void hpm_dsp_svm_linear_est_f32 (const riscv_dsp_svm_linear_f32_t *instance, const float32_t *src, int32_t *result)
 SVM linear prediction. More...
 
static void hpm_dsp_svm_sigmoid_est_f32 (const riscv_dsp_svm_sigmoid_f32_t *instance, const float32_t *src, int32_t *result)
 SVM Sigmoid prediction. More...
 
static void hpm_dsp_svm_rbf_est_f32 (const riscv_dsp_svm_rbf_f32_t *instance, const float32_t *src, int32_t *result)
 SVM rbf prediction. More...
 
static void hpm_dsp_svm_poly_est_f32 (const riscv_dsp_svm_poly_f32_t *instance, const float32_t *src, int32_t *result)
 SVM polynomial prediction. More...
 
static int32_t hpm_dsp_cfft_rd2_f32 (float32_t *src, uint32_t m)
 cfft_rd2 of f32 vectors. More...
 
static int32_t hpm_dsp_cifft_rd2_f32 (float32_t *src, uint32_t m)
 cifft_rd2 of f32 vectors. More...
 
static int32_t hpm_dsp_cfft_rd2_q15 (q15_t *src, uint32_t m)
 cfft_rd2 of q15 vectors. More...
 
static int32_t hpm_dsp_cifft_rd2_q15 (q15_t *src, uint32_t m)
 cifft_rd2 of q15 vectors. More...
 
static int32_t hpm_dsp_cfft_rd2_q31 (q31_t *src, uint32_t m)
 cfft_rd2 of q31 vectors. More...
 
static int32_t hpm_dsp_cifft_rd2_q31 (q31_t *src, uint32_t m)
 cfft_rd2 of q31 vectors. More...
 
static int32_t hpm_dsp_cfft_rd4_f32 (float32_t *src, uint32_t m)
 cfft_rd4 of f32 vectors. More...
 
static int32_t hpm_dsp_cifft_rd4_f32 (float32_t *src, uint32_t m)
 cifft_rd4 of f32 vectors. More...
 
static int32_t hpm_dsp_cfft_rd4_q15 (q15_t *src, uint32_t m)
 cfft_rd4 of q15 vectors. More...
 
static int32_t hpm_dsp_cifft_rd4_q15 (q15_t *src, uint32_t m)
 cifft_rd4 of q15 vectors. More...
 
static int32_t hpm_dsp_cfft_rd4_q31 (q31_t *src, uint32_t m)
 cfft_rd4 of q31 vectors. More...
 
static int32_t hpm_dsp_cifft_rd4_q31 (q31_t *src, uint32_t m)
 cifft_rd4 of q31 vectors. More...
 
static void hpm_dsp_cfft_f32 (float32_t *src, uint32_t m)
 cfft of f32 vectors. More...
 
static void hpm_dsp_cfft_f64 (float64_t *src, uint32_t m)
 cfft of f64 vectors. More...
 
static void hpm_dsp_cifft_f32 (float32_t *src, uint32_t m)
 cifft of f32 vectors. More...
 
static void hpm_dsp_cifft_f64 (float64_t *src, uint32_t m)
 cifft of f64 vectors. More...
 
static void hpm_dsp_cfft_q15 (q15_t *src, uint32_t m)
 cfft of q15 vectors. More...
 
static void hpm_dsp_cifft_q15 (q15_t *src, uint32_t m)
 cifft of q15 vectors. More...
 
static void hpm_dsp_cfft_q31 (q31_t *src, uint32_t m)
 cfft of q31 vectors. More...
 
static void hpm_dsp_cifft_q31 (q31_t *src, uint32_t m)
 cifft of q31 vectors. More...
 
static int32_t hpm_dsp_rfft_f32 (float32_t *src, uint32_t m)
 rfft of f32 vectors. More...
 
static int32_t hpm_dsp_rfft_f64 (float64_t *src, uint32_t m)
 rfft of f64 vectors. More...
 
static int32_t hpm_dsp_rifft_f32 (float32_t *src, uint32_t m)
 rifft of f32 vectors. More...
 
static int32_t hpm_dsp_rifft_f64 (float64_t *src, uint32_t m)
 rifft of f64 vectors. More...
 
static int32_t hpm_dsp_rfft_q15 (q15_t *src, uint32_t m)
 rfft of q15 vectors. More...
 
static int32_t hpm_dsp_rifft_q15 (q15_t *src, uint32_t m)
 rifft of q15 vectors. More...
 
static int32_t hpm_dsp_rfft_q31 (q31_t *src, uint32_t m)
 rfft of q31 vectors. More...
 
static int32_t hpm_dsp_rifft_q31 (q31_t *src, uint32_t m)
 rifft of q31 vectors. More...
 
static void hpm_dsp_dct_f32 (float32_t *src, uint32_t m)
 
static void hpm_dsp_idct_f32 (float32_t *src, uint32_t m)
 
static void hpm_dsp_dct_q15 (q15_t *src, uint32_t m)
 
static void hpm_dsp_idct_q15 (q15_t *src, uint32_t m)
 
static void hpm_dsp_dct_q31 (q31_t *src, uint32_t m)
 
static void hpm_dsp_idct_q31 (q31_t *src, uint32_t m)
 
static void hpm_dsp_dct4_f32 (float32_t *src, uint32_t m)
 
static void hpm_dsp_idct4_f32 (float32_t *src, uint32_t m)
 
static void hpm_dsp_dct4_q15 (q15_t *src, uint32_t m)
 
static void hpm_dsp_idct4_q15 (q15_t *src, uint32_t m)
 
static void hpm_dsp_dct4_q31 (q31_t *src, uint32_t m)
 
static void hpm_dsp_idct4_q31 (q31_t *src, uint32_t m)
 
void hpm_software_cfft_float (float *src, uint32_t m)
 Software implementation does not depend on any hardware. More...
 
static float32_t hpm_dsp_cos_f32 (float32_t src)
 
static q31_t hpm_dsp_cos_q31 (q31_t src)
 
static q15_t hpm_dsp_cos_q15 (q15_t src)
 
static float32_t hpm_dsp_sin_f32 (float32_t src)
 
static q31_t hpm_dsp_sin_q31 (q31_t src)
 
static q15_t hpm_dsp_sin_q15 (q15_t src)
 
static float32_t hpm_dsp_atan_f32 (float32_t src)
 
static q31_t hpm_dsp_atan_q31 (q31_t src)
 
static q15_t hpm_dsp_atan_q15 (q15_t src)
 
static float32_t hpm_dsp_atan2_f32 (float32_t srcy, float32_t src2)
 
static q15_t hpm_dsp_atan2_q15 (q15_t srcy, q15_t src2)
 
static q31_t hpm_dsp_atan2_q31 (q31_t srcy, q31_t src2)
 
static float32_t hpm_dsp_sqrt_f32 (float32_t src)
 Square root of the floating-potint input. More...
 
static q31_t hpm_dsp_sqrt_q31 (q31_t src)
 Square root of the q31 input. More...
 
static q15_t hpm_dsp_sqrt_q15 (q15_t src)
 Square root of the q15 input. More...
 
static void hpm_dsp_convert_f32_q15 (float32_t *src, q15_t *dst, uint32_t size)
 Convert a floating-point vector to Q15. More...
 
static void hpm_dsp_convert_f32_q31 (float32_t *src, q31_t *dst, uint32_t size)
 Convert a floating-point vector to Q31. More...
 
static void hpm_dsp_convert_f32_q7 (float32_t *src, q7_t *dst, uint32_t size)
 Convert a floating-point vector to Q7. More...
 
static void hpm_dsp_convert_q15_f32 (q15_t *src, float32_t *dst, uint32_t size)
 Convert a Q15 vector to floating. More...
 
static void hpm_dsp_convert_q15_q31 (q15_t *src, q31_t *dst, uint32_t size)
 Convert a Q15 vector to Q31. More...
 
static void hpm_dsp_convert_q15_q7 (q15_t *src, q7_t *dst, uint32_t size)
 Convert a Q15 vector to Q7. More...
 
static void hpm_dsp_convert_q31_f32 (q31_t *src, float32_t *dst, uint32_t size)
 Convert a Q31 vector to floating. More...
 
static void hpm_dsp_convert_q31_q15 (q31_t *src, q15_t *dst, uint32_t size)
 Convert a Q31 vector to Q15. More...
 
static void hpm_dsp_convert_q31_q7 (q31_t *src, q7_t *dst, uint32_t size)
 Convert a Q31 vector to Q7. More...
 
static void hpm_dsp_convert_q7_f32 (q7_t *src, float32_t *dst, uint32_t size)
 Convert a Q7 vector to floating. More...
 
static void hpm_dsp_convert_q7_q15 (q7_t *src, q15_t *dst, uint32_t size)
 Convert a Q7 vector to Q15. More...
 
static void hpm_dsp_convert_q7_q31 (q7_t *src, q31_t *dst, uint32_t size)
 Convert a Q7 vector to Q31. More...
 
static void hpm_dsp_dup_f32 (float32_t *src, float32_t *dst, uint32_t size)
 Duplicate the floating vector. More...
 
static void hpm_dsp_dup_q15 (q15_t *src, q15_t *dst, uint32_t size)
 Duplicate the Q15 vector. More...
 
static void hpm_dsp_dup_q31 (q31_t *src, q31_t *dst, uint32_t size)
 Duplicate the Q31 vector. More...
 
static void hpm_dsp_dup_q7 (q7_t *src, q7_t *dst, uint32_t size)
 Duplicate the Q7 vector. More...
 
static void hpm_dsp_set_f32 (float32_t val, float32_t *dst, uint32_t size)
 Set the floating-point vector. More...
 
static void hpm_dsp_set_q15 (q15_t val, q15_t *dst, uint32_t size)
 Set the Q15 vector. More...
 
static void hpm_dsp_set_q31 (q31_t val, q31_t *dst, uint32_t size)
 Set the Q31 vector. More...
 
static void hpm_dsp_set_q7 (q7_t val, q7_t *dst, uint32_t size)
 Set the Q7 vector. More...
 
static float32_t hpm_dsp_weighted_sum_f32 (const float32_t *src, const float32_t *weight, uint32_t size)
 Weighted Sum of the floating-potint vector. More...
 
static void hpm_dsp_barycenter_f32 (const float32_t *src, const float32_t *weights, float32_t *out, uint32_t numofvec, uint32_t dimofvec)
 Barycenter of the floating-potint type. More...
 
static float32_t hpm_dsp_exp_f32 (float32_t src)
 Calculate exponential value of f32 vector. More...
 
static float32_t hpm_dsp_sigmoid_f32 (float32_t src)
 Calculate sigmoid value of f32 vector. More...
 
static float32_t hpm_dsp_log_f32 (float32_t src)
 Calculate the natural logarithm value of f32 vector. More...
 
static void hpm_dsp_sort_init_f32 (riscv_dsp_sort_f32_t *instance, riscv_dsp_sort_alg alg, riscv_dsp_sort_order order)
 
static void hpm_dsp_sort_f32 (const riscv_dsp_sort_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 Generic sorting function. More...
 
static void hpm_dsp_sort_merge_init_f32 (riscv_dsp_sort_merge_f32_t *instance, riscv_dsp_sort_order order, float32_t *buf)
 
static void hpm_dsp_sort_merge_f32 (const riscv_dsp_sort_merge_f32_t *instance, float32_t *src, float32_t *dst, uint32_t size)
 Merge sort. More...
 
static void write_q15x2_ia (q15_t **pQ15, q31_t value)
 
__STATIC_FORCEINLINE q31_t hpm_nn_read_q15x2_ia (const q15_t **in_q15)
 Read 2 q15 elements and post increment pointer. More...
 
__STATIC_FORCEINLINE q31_t hpm_nn_sat_doubling_high_mult (const q31_t m1, const q31_t m2)
 Saturating doubling high multiply. Result matches NEON instruction VQRDMULH. More...
 
__STATIC_FORCEINLINE q31_t hpm_nn_divide_by_power_of_two (const q31_t dividend, const q31_t exponent)
 Rounding divide by power of two. More...
 
__STATIC_FORCEINLINE q31_t hpm_nn_requantize (const q31_t val, const q31_t multiplier, const q31_t shift)
 
__STATIC_FORCEINLINE q31_t hpm_nn_read_q7x4_ia (const q7_t **in_q7)
 Read 4 q7 from q7 pointer and post increment pointer. More...
 
__STATIC_FORCEINLINE const q7_t * read_and_pad_reordered (const q7_t *source, q31_t *out1, q31_t *out2)
 read and expand one q7 word into two q15 words with reordering More...
 
__STATIC_FORCEINLINE const q7_t * read_and_pad (const q7_t *source, q31_t *out1, q31_t *out2)
 read and expand one q7 word into two q15 words More...
 
__STATIC_FORCEINLINE int32_t hpm_nn_read_s8x4_ia (const int8_t **in_s8)
 Read 4 s8 from s8 pointer and post increment pointer. More...
 
__STATIC_FORCEINLINE void hpm_nn_q7_to_q15_with_offset (const int8_t *src, int16_t *dst, int32_t block_size, int16_t offset)
 
static void hpm_nn_activate_s8 (q7_t *in_out, uint32_t size, uint16_t int_bits, riscv_nn_activation_fun act_fun)
 This function uses the sigmoid or tanh function to perform activation for signed 8-bit integer input vectors. More...
 
static void hpm_nn_activate_s16 (q15_t *in_out, uint32_t size, uint16_t int_bits, riscv_nn_activation_fun act_fun)
 This function uses sigmoid or tanh function to perform activation for signed 16-bit integer input vectors. More...
 
static void hpm_nn_leaky_relu_s8 (q7_t *in_out, uint32_t size, q15_t slope) riscv_nn_leaky_relu_s8(in_out
 This function uses the leaky ReLU function to perform activation for signed 8-bit integer input vectors. More...
 
static void hpm_nn_relu_any_s8 (q7_t *data, uint16_t size, q7_t max_val)
 This function uses the ReLU function to perform activation for signed 8-bit integer input vectors. More...
 
static void hpm_nn_relu_s8 (q7_t *in_out, uint32_t size)
 This function uses the ReLU function to perform activation for signed 8-bit integer input vectors. More...
 
static void hpm_nn_relu_s16 (q15_t *in_out, uint32_t size)
 This function uses the ReLU function to perform activation for signed 16-bit integer input vectors. More...
 
static void hpm_nn_add_s8_sym (const q7_t *in_tensor1, const q7_t *in_tensor2, const int16_t *scale1, const int16_t *scale2, const uint32_t size, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out)
 This function performs element-wise addition for signed 8-bit integer input vectors with two-stage shift. More...
 
static void hpm_nn_add_s8_sym_round (const q7_t *in_tensor1, const q7_t *in_tensor2, const uint32_t scale1, const uint32_t scale2, const uint32_t size, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out)
 This function performs element-wise addition for signed 8-bit integer input vectors with two-stage shift with rounding. More...
 
static int hpm_nn_ew_add_s8_asym (const int8_t *in_tensor1, const int8_t *in_tensor2, const int32_t in_offset1, const int32_t in_scale1, const int32_t in_rshift1, const int32_t in_offset2, const int32_t in_scale2, const int32_t in_rshift2, const int32_t lshift, int8_t *out, const int32_t out_offset, const int32_t out_scale, const int32_t out_rshift, const int32_t act_min, const int32_t act_max, const uint32_t size)
 This function performs element-wise addition for signed 8-bit integer input vectors. More...
 
static int hpm_nn_ew_mul_s8_asym (const int8_t *in_tensor1, const int8_t *in_tensor2, const int32_t in_offset1, const int32_t in_offset2, int8_t *out, const int32_t out_offset, const int32_t out_scale, const int32_t out_shift, const int32_t act_min, const int32_t act_max, const uint32_t size)
 This function performs element-wise multiplication for signed 8-bit integer input vectors. More...
 
static void hpm_nn_concate_s8_w (const int8_t *in_tensor, const uint16_t in_tensor_x, const uint16_t in_tensor_y, const uint16_t in_tensor_z, const uint16_t in_tensor_w, int8_t *out_tensor, const uint32_t out_offset_w)
 This function concatenates the int8_t/uint8_t input tensor along the w-axis with the output tensor. More...
 
static void hpm_nn_concate_s8_x (const int8_t *in_tensor, const uint16_t in_tensor_x, const uint16_t in_tensor_y, const uint16_t in_tensor_z, const uint16_t in_tensor_w, int8_t *out_tensor, const uint16_t out_tensor_x, const uint32_t out_offset_x)
 This function concatenates the int8_t/uint8_t input tensor along the x-axis with the output tensor. More...
 
static void hpm_nn_concate_s8_y (const int8_t *in_tensor, const uint16_t in_tensor_x, const uint16_t in_tensor_y, const uint16_t in_tensor_z, const uint16_t in_tensor_w, int8_t *out_tensor, const uint16_t out_tensor_y, const uint32_t out_offset_y)
 This function concatenates the int8_t/uint8_t input tensor along the y-axis with the output tensor. More...
 
static void hpm_nn_concate_s8_z (const int8_t *in_tensor, const uint16_t in_tensor_x, const uint16_t in_tensor_y, const uint16_t in_tensor_z, const uint16_t in_tensor_w, int8_t *out_tensor, const uint16_t out_tensor_z, const uint32_t out_offset_z)
 This function concatenates the int8_t/uint8_t input tensor along the z-axis with the output tensor. More...
 
static int32_t hpm_nn_conv_1x1_HWC_s8_s8_s8_sft_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs 1x1 kernels convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_RGB_sft_bias (const q7_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs signed 8-bit integer convolution for RGB images with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_RGB_sft_bias_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast signed 8-bit integer convolution for RGB images with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_sft_bias (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs signed 8-bit integer convolution with shift-based quantization on the outputs. More...
 
static void hpm_nn_conv_HWC_s8_s8_s8_sft_bias_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs signed 8-bit integer convolution in any x and y dimensions with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_sft_bias_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs fast signed 8-bit integer convolution with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_sft_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs fast signed 8-bit integer convolution in any x and y dimensions with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s16_s16_s16_sft_bias (const q15_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q15_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q15_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs signed 16-bit integer convolution with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s16_s16_s16_sft_bias_fast (const q15_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q15_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q15_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs fast signed 16-bit integer convolution with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s16_s16_s16_sft_bias_fast_any (const q15_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q15_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q15_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs fast signed 16-bit integer convolution in any x and y dimensions with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_sft_bias (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs signed 8-bit integer depthwise convolution with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_sft_bias_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q7_t *bias, const uint16_t bias_lshift, const uint16_t out_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf, q7_t *tmp_buf)
 This function performs signed 8-bit integer depthwise convolution in any x and y dimensions with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_s8_s8_s8_sym_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs.. More...
 
static int32_t hpm_nn_conv_1x1_HWC_s8_s16_s8_sym_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for signed 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_u8_u8_s8_sym_bias_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for unsigned 8-bit integer inputs/outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_u8_s8_s8_sym_bias_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_u8_s16_s8_sym_bias_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_s8_s8_s8_sym_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_s8_s16_s8_sym_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for signed 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_u8_u8_s8_sym_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for unsigned 8-bit integer inputs/outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_u8_s8_s8_sym_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_u8_s16_s8_sym_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs 1x1 kernels convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_RGB_sym_bias_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for signed 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s16_s8_RGB_sym_bias_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for signed 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_u8_s8_RGB_sym_bias_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for unsigned 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s8_s8_RGB_sym_bias_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for signed 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s16_s8_RGB_sym_bias_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for unsigned 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_RGB_sym_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for signed 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s16_s8_RGB_sym_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for signed 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_u8_s8_RGB_sym_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for unsigned 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s8_s8_RGB_sym_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for unsigned 8-bit integer inputs and signed 8-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s16_s8_RGB_sym_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf, q15_t *wt_tmp_buf)
 This function performs fast convolution on RGB images for unsigned 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_sym_bias_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s16_s8_sym_bias_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_u8_s8_sym_bias_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s8_s8_sym_bias_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s16_s8_sym_bias_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_sym_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s16_s8_sym_fast (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_u8_s8_sym_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s8_s8_sym_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s16_s8_sym_fast (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_sym_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s16_s8_sym_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_u8_s8_sym_bias_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs/outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s8_s8_sym_bias_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s16_s8_sym_bias_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_sym_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s16_s8_sym_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for signed 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_u8_s8_sym_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs/outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s8_s8_sym_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_u8_s16_s8_sym_fast_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs fast convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_sym_bias (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s16_s8_sym_bias (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_u8_s8_sym_bias (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s8_s8_sym_bias (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s16_s8_sym_bias (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_sym (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s16_s8_sym (const q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_u8_s8_sym (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s8_s8_sym (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs, and with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s16_s8_sym (const u8_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_sym_bias_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s16_s8_sym_bias_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_u8_s8_sym_bias_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs/outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s8_s8_sym_bias_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s16_s8_sym_bias_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const q31_t *bias, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_sym_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s16_s8_sym_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for signed 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_u8_s8_sym_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs/outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s8_s8_sym_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 8-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_s16_s8_sym_any (const u8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs depthwise convolution for unsigned 8-bit integer inputs and signed 16-bit integer outputs in any x and y dimensions with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_s8_s8_s8_asym_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const uint16_t in_tensor_group, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const int32_t *bias, q7_t *out_tensor, const int32_t *out_shift, const int32_t *out_scale, const int32_t out_offset, const int32_t in_offset, const int32_t act_min, const int32_t act_max, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *tmp_buf)
 This function performs 1x1 kernels convolution for signed 8-bit interger inputs/outputs in any x and y dimensions with asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1x1_HWC_s8_s8_s8_asym_bias_fast_any_get_buffer_size (const uint16_t in_tensor_ch)
 This function is used to get the needed size, in bytes, by the input temporary buffer of riscv_nn_conv_1x1_HWC_s8_s8_s8_asym_bias_fast_any. More...
 
static int hpm_nn_conv_1xn_HWC_s8_s8_s8_asym_bias_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_ch, const uint16_t in_tensor_group, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t pad_x, const uint16_t stride_x, const int32_t *bias, q7_t *out_tensor, const int32_t *out_shift, const int32_t *out_scale, const int32_t out_offset, const int32_t in_offset, const int32_t act_min, const int32_t act_max, const uint16_t out_tensor_dim_x, q15_t *in_tmp_buf)
 This function performs 1xn kernels convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_1xn_HWC_s8_s8_s8_asym_bias_any_get_buffer_size (const uint16_t in_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y)
 This function is used to get the needed size, in bytes, by the input temporary buffer of riscv_nn_conv_1xn_HWC_s8_s8_s8_asym_bias_any. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_asym_bias_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const uint16_t in_tensor_group, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const int32_t *bias, q7_t *out_tensor, const int32_t *out_shift, const int32_t *out_scale, const int32_t out_offset, const int32_t in_offset, const int32_t act_min, const int32_t act_max, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q15_t *in_tmp_buf)
 This function performs convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_HWC_s8_s8_s8_asym_bias_any_get_buffer_size (const uint16_t in_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y)
 This function is used to get the needed size, in bytes, by the input temporary buffer of riscv_nn_conv_HWC_s8_s8_s8_asym_bias_any. More...
 
static int32_t hpm_nn_conv_dw_HWC_3x3_s8_s8_s8_asym_bias_any (const int8_t *in_tensor, const int32_t in_tensor_dim_x, const int32_t in_tensor_dim_y, const int32_t in_tensor_ch, const int8_t *ker_weight, const int32_t out_tensor_ch, const int32_t pad_x, const int32_t pad_y, const int32_t stride_x, const int32_t stride_y, const int32_t *bias, int8_t *out_tensor, const int32_t *out_shift, const int32_t *out_scale, const int32_t out_tensor_dim_x, const int32_t out_tensor_dim_y, const int32_t out_offset, const int32_t in_offset, const int32_t act_min, const int32_t act_max, const int32_t dilation_x, const int32_t dilation_y, int16_t *tmp_buf)
 This function performs depthwise 3x3 kernels convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_asym_bias_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ch_mult, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const int32_t *bias, q7_t *out_tensor, const int32_t *out_shift, const int32_t *out_scale, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, const int32_t out_offset, const int32_t in_offset, const int32_t act_min, const int32_t act_max, const uint16_t dilation_x, const uint16_t dilation_y, q15_t *tmp_buf)
 This function performs depthwise convolution for signed 8-bit interger inputs/outputs in any x and y dimensions with asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_asym_bias_fast_any (const q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const q7_t *ker_weight, const uint16_t out_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const int32_t *bias, q7_t *out_tensor, const int32_t *out_shift, const int32_t *out_scale, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, const int32_t out_offset, const int32_t in_offset, const int32_t act_min, const int32_t act_max, const uint16_t dilation_x, const uint16_t dilation_y, q15_t *in_tmp_buf)
 This function performs fast depthwise convolution for signed 8-bit integer inputs/outputs in any x and y dimensions with asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_conv_dw_HWC_s8_s8_s8_asym_bias_fast_any_get_buffer_size (const uint16_t in_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y)
 This function is used to get the needed size, in bytes, by the input temporary buffer of riscv_nn_conv_dw_HWC_s8_s8_s8_asym_bias_fast_any. More...
 
static int32_t hpm_nn_conv_dw_HWC_u8_u8_u8_asym_bias_any (const uint8_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const uint8_t *ker_weight, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const int16_t ch_mult, const int16_t pad_x, const int16_t pad_y, const int16_t stride_x, const int16_t stride_y, const int16_t dilation_x, const int16_t dilation_y, const int32_t *bias, const int32_t in_offset, const int32_t ker_offset, const int32_t out_offset, uint8_t *out_tensor, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, const int32_t act_min, const int32_t act_max, const int32_t out_shift, const int32_t out_scale)
 This function performs depthwise convolution for unsigned 8-bit integer inputs/outputs in any x and y dimensions with asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_sft_bias (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t bias_lshift, const uint16_t out_rshift, const q7_t *bias, q7_t *out_vec, q15_t *in_tmp_buf) return riscv_nn_fc_s8_s8_s8_sft_bias(in_vec
 This is a fully connected layer function for signed 8-bit integer inputs with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_sft_bias_fast (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t bias_lshift, const uint16_t out_rshift, const q7_t *bias, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs with interleaved multiplication and shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s16_s16_s16_sft_bias (const q15_t *in_vec, const q15_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t bias_lshift, const uint16_t out_rshift, const q15_t *bias, q15_t *out_vec, q15_t *tmp_buf)
 This is a fully connected layer function for signed 16-bit integer inputs with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s16_s16_s16_sft_bias_fast (const q15_t *in_vec, const q15_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t bias_lshift, const uint16_t out_rshift, const q15_t *bias, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 16-bit integer inputs with interleaved multiplication and shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_fc_mat_vec_s16_s16_s8_sft_bias (const q15_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t bias_lshift, const uint16_t out_rshift, const q7_t *bias, q15_t *out_vec, q15_t *tmp_buf)
 This function multiplies a signed 16-bit integer input vector by a signed 8-bit integer weight matrix with shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_fc_mat_vec_s16_s16_s8_sft_bias_fast (const q15_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t bias_lshift, const uint16_t out_rshift, const q7_t *bias, q15_t *out_vec, q15_t *tmp_buf)
 This function multiplies a signed 16-bit integer input vector by a signed 8-bit integer weight matrix with interleaved multiplication and shift-based quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_sym_bias (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s16_s8_sym_bias (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_u8_s8_sym_bias (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, u8_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs/outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s8_s8_sym_bias (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 8-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s16_s8_sym_bias (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 16-bit integer outputs with bias inputs and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_sym (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s16_s8_sym (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_u8_s8_sym (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs/outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s8_s8_sym (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 8-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s16_s8_sym (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 16-bit integer outputs with symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_sym_bias_fast (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs/outputs with bias inputs, interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s16_s8_sym_bias_fast (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs and signed 16-bit integer outputs with bias inputs, interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_u8_s8_sym_bias_fast (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, u8_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs/outputs with bias inputs, interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s8_s8_sym_bias_fast (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 8-bit integer outputs with bias inputs, interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s16_s8_sym_bias_fast (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, const q31_t *bias, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 16-bit integer outputs with bias inputs, interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_sym_fast (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs/outputs with interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s16_s8_sym_fast (const q7_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs and signed 16-bit integer outputs with interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_u8_s8_sym_fast (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, u8_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs/outputs with interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s8_s8_sym_fast (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q7_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 8-bit integer outputs with interleaved multiplication and symmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_u8_s16_s8_sym_fast (const u8_t *in_vec, const q7_t *wt_mat, const uint16_t size, const uint16_t wt_row_num, const uint16_t pre_rshift, const uint16_t out_scale, const uint16_t post_rshift, q15_t *out_vec, q15_t *in_tmp_buf)
 This is a fully connected layer function for unsigned 8-bit integer inputs and signed 16-bit integer outputs with interleaved multiplication and symmetric quantization on the outputs. More...
 
static void hpm_nn_fc_s8_wt_converter (const q7_t *wt_mat, const uint32_t size, const uint32_t wt_row_num, q7_t *wt_mat_out)
 This is a weight converter for those fully-connected functions with signed 8-bit weight data and named with "fast". More...
 
static void hpm_nn_fc_s16_wt_converter (const q15_t *wt_mat, const uint32_t size, const uint32_t wt_row_num, q15_t *wt_mat_out)
 This is a weight converter for those fully-connected functions with signed 16-bit weight data and named with "fast". More...
 
static void hpm_nn_fc_mat_vec_s8_wt_converter (const q7_t *wt_mat, const uint32_t size, const uint32_t wt_row_num, q7_t *wt_mat_out)
 This is a weight converter for riscv_nn_fc_mat_vec_s16_s16_s8_sft_bias_fast. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_asym_bias (const int8_t *in_vec, const int8_t *wt_mat, const uint16_t in_vec_col, const uint16_t wt_mat_row, const uint16_t in_vec_group, const int32_t in_offset, const int32_t wt_offset, const int32_t out_scale, const int32_t out_shift, const int32_t out_offset, const int32_t *bias, int8_t *out_vec, const int32_t act_min, const int32_t act_max, q15_t *tmp_buf)
 This is a fully connected layer function for signed 8-bit integer inputs with bias inputs and asymmetric quantization on the outputs. More...
 
static int32_t hpm_nn_fc_s8_s8_s8_asym_bias_get_buffer_size (const uint16_t in_vec_col)
 This function is used to get the needed size, in bytes, by the temporary buffer of riscv_nn_fc_s8_s8_s8_asym_bias. More...
 
static void hpm_nn_avepool_HWC_s8 (q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t out_tensor_dim, q7_t *in_tmp_buf, q7_t *out_tensor)
 This is an average pooling function for signed 8-bit integer inputs. More...
 
static void hpm_nn_avepool_HWC_s8_any (q7_t *in_tensor, const uint16_t in_tensor_dim_x, const uint16_t in_tensor_dim_y, const uint16_t in_tensor_ch, const uint16_t ker_dim_x, const uint16_t ker_dim_y, const uint16_t pad_x, const uint16_t pad_y, const uint16_t stride_x, const uint16_t stride_y, const uint16_t out_tensor_dim_x, const uint16_t out_tensor_dim_y, q7_t *in_tmp_buf, q7_t *out_tensor, const uint16_t out_lshift)
 This is an average pooling function for signed 8-bit integer inputs in any x and y dimensions. More...
 
static int32_t hpm_nn_avepool_HWC_s8_any_act (const int in_tensor_dim_y, const int in_tensor_dim_x, const int out_tensor_dim_y, const int out_tensor_dim_x, const int stride_y, const int stride_x, const int ker_dim_y, const int ker_dim_x, const int pad_y, const int pad_x, const int act_min, const int act_max, const int in_tensor_ch, int8_t *in_tensor, int16_t *in_tmp_buf, int8_t *out_tensor)
 This is an average pooling function for S8 inputs with any x and y dimension with the actvating parameters to limit the outputs. More...
 
static int32_t hpm_nn_avepool_HWC_s8_any_act_get_buffer_size (const int out_tensor_dim_x, const int in_tensor_ch)
 This function is used to obtain the required size, in bytes, for the input temporary buffer of riscv_nn_avepool_HWC_s8_any_act. More...
 
static void hpm_nn_maxpool_HWC_s8 (q7_t *in_tensor, const uint16_t in_tensor_dim, const uint16_t in_tensor_ch, const uint16_t ker_dim, const uint16_t pad, const uint16_t stride, const uint16_t out_tensor_dim, q7_t *in_tmp_buf, q7_t *out_tensor)
 This is a max pooling function for signed 8-bit integer inputs. More...
 
static int32_t hpm_nn_maxpool_HWC_s8_any_act (const uint16_t in_tensor_dim_y, const uint16_t in_tensor_dim_x, const uint16_t out_tensor_dim_y, const uint16_t out_tensor_dim_x, const uint16_t stride_y, const uint16_t stride_x, const uint16_t ker_dim_y, const uint16_t ker_dim_x, const uint16_t pad_y, const uint16_t pad_x, const int8_t act_min, const int8_t act_max, const uint16_t in_tensor_ch, int8_t *in_tensor, int16_t *tmp_buffer, int8_t *out_tensor)
 This is a max pooling function for signed 8-bit integer inputs in any x and y dimensions with the actvating parameters to limit the outputs. More...
 
static void hpm_nn_softmax_s8_fast (const q7_t *in_vec, const uint16_t size, q7_t *out_vec)
 This is a softmax function for signed 8-bit integer input vectors. More...
 
static void hpm_nn_softmax_s16_fast (const q15_t *in_vec, const uint16_t size, q15_t *out_vec)
 This is a softmax function for signed 16-bit integer input vectors. More...
 
static void hpm_nn_softmax_s8_hp (const int8_t *in_tensor, const int32_t in_tensor_row, const int32_t in_tensor_col, const int32_t scale, const int32_t lshift, const int32_t diff_min, int8_t *out_tensor)
 This is a softmax function for signed 8-bit integer input tensor with high precision algorithm. More...
 
static void hpm_nn_softmax_u8_hp (const uint8_t *in_tensor, const int32_t in_tensor_row, const int32_t in_tensor_col, const int32_t scale, const int32_t lshift, const int32_t diff_min, uint8_t *out_tensor)
 This is a softmax function for unsigned 8-bit integer input tensor with high precision algorithm. More...
 
static void hpm_nn_reshape_s8 (const int8_t *in_tensor, int8_t *out_tensor, const uint32_t size)
 This function turns the input tensor into another tensor with the same data but in a different shape. More...
 
static int32_t hpm_nn_top_k_s8 (q7_t *in_vec, uint32_t size, uint32_t k, q7_t *val, uint32_t *idx)
 This function finds the k largest values and their indices from the signed 8-bit integer input vector. More...
 

Variables

static void size
 
static void slope
 
static int32_t wt_mat
 
static int32_t wt_row_num
 
static int32_t bias_lshift
 
static int32_t out_rshift
 
static int32_t bias
 
static int32_t out_vec
 
static int32_t in_tmp_buf
 

Macro Definition Documentation

◆ HPM_DSP_CORE

#define HPM_DSP_CORE   HPM_DSP_HW_NDS32 /* DSP core selection */

◆ HPM_DSP_HW_NDS32

#define HPM_DSP_HW_NDS32   1 /* andes hardware dsp */

◆ HPM_MATH_DSP_BASIC

#define HPM_MATH_DSP_BASIC   1

◆ HPM_MATH_DSP_COMPLEX

#define HPM_MATH_DSP_COMPLEX   1

◆ HPM_MATH_DSP_CONTROLLER

#define HPM_MATH_DSP_CONTROLLER   1

◆ HPM_MATH_DSP_DISTANCE

#define HPM_MATH_DSP_DISTANCE   1

◆ HPM_MATH_DSP_FILTERING

#define HPM_MATH_DSP_FILTERING   1

◆ HPM_MATH_DSP_MATRIX

#define HPM_MATH_DSP_MATRIX   1

◆ HPM_MATH_DSP_SORT

#define HPM_MATH_DSP_SORT   1

◆ HPM_MATH_DSP_STATISTICS

#define HPM_MATH_DSP_STATISTICS   1

◆ HPM_MATH_DSP_SVM

#define HPM_MATH_DSP_SVM   1

◆ HPM_MATH_DSP_TRANSFORM

#define HPM_MATH_DSP_TRANSFORM   1

◆ HPM_MATH_DSP_UTILS

#define HPM_MATH_DSP_UTILS   1

◆ HPM_MATH_NN_ACTIVATION

#define HPM_MATH_NN_ACTIVATION   1

◆ HPM_MATH_NN_BASIC

#define HPM_MATH_NN_BASIC   1

◆ HPM_MATH_NN_CONCATENATION

#define HPM_MATH_NN_CONCATENATION   1

◆ HPM_MATH_NN_CONNECTED

#define HPM_MATH_NN_CONNECTED   1

◆ HPM_MATH_NN_CONVOLUTION

#define HPM_MATH_NN_CONVOLUTION   1

◆ HPM_MATH_NN_POOLING

#define HPM_MATH_NN_POOLING   1

◆ HPM_MATH_NN_SOFTMAX

#define HPM_MATH_NN_SOFTMAX   1

◆ HPM_MATH_NN_TINYENGINE

#define HPM_MATH_NN_TINYENGINE   1

◆ HPM_MATH_NN_UTIL

#define HPM_MATH_NN_UTIL   1

◆ HPM_MATH_PI

#define HPM_MATH_PI   (3.14159265358979323846)

◆ HPM_MATH_SW_FFT_CHECKLIST

#define HPM_MATH_SW_FFT_CHECKLIST

HPM_MATH_SW_FFT_CHECKLIST Enabled to use table lookup to speed up the software fft, but will increase the code space,and only support sampling points 2^( 2-10).

With this option turned off, the software fft can support as many sample points as necessary with sufficient space

Function Documentation

◆ hpm_math_sw_reverse_bit32_lsb_to_msb()

uint32_t hpm_math_sw_reverse_bit32_lsb_to_msb ( uint32_t  lsb)

Reserve 32bit data lsb to msb.

Parameters
[in]lsblsb data
Returns
uint32_t msb

◆ hpm_math_sw_reverse_bit32_msb_to_lsb()

uint32_t hpm_math_sw_reverse_bit32_msb_to_lsb ( uint32_t  msb)

Reserve 32bit data msb to lsb.

Parameters
[in]msbmsb data
Returns
uint32_t lsb

◆ hpm_math_sw_reverse_bit8_lsb_to_msb()

uint8_t hpm_math_sw_reverse_bit8_lsb_to_msb ( uint8_t  lsb)

Reserve 8bit data lsb to msb.

Parameters
[in]lsblsb data
Returns
uint8_t msb

◆ hpm_math_sw_reverse_bit8_msb_to_lsb()

uint8_t hpm_math_sw_reverse_bit8_msb_to_lsb ( uint8_t  msb)

Reserve 8bit data msb to lsb.

Parameters
[in]msbmsb data
Returns
uint8_t lsb