|
ESP-IDF Firmware
Firmware architecture and call graph
|
Go to the source code of this file.
Functions | |
| esp_err_t | dspm_mult_3x3x1_f32_ae32 (const float *A, const float *B, float *C) |
| Matrix multiplication A[3x3]xB[3x1]. | |
| esp_err_t | dspm_mult_3x3x3_f32_ae32 (const float *A, const float *B, float *C) |
| Matrix multiplication A[3x3]xB[3x3]. | |
| esp_err_t | dspm_mult_4x4x1_f32_ae32 (const float *A, const float *B, float *C) |
| Matrix multiplication A[4x4]xB[4x1]. | |
| esp_err_t | dspm_mult_4x4x4_f32_ae32 (const float *A, const float *B, float *C) |
| Matrix multiplication A[4x4]xB[4x4]. | |
| esp_err_t | dspm_mult_f32_ansi (const float *A, const float *B, float *C, int m, int n, int k) |
| Matrix multiplication. | |
| esp_err_t | dspm_mult_f32_ae32 (const float *A, const float *B, float *C, int m, int n, int k) |
| esp_err_t | dspm_mult_f32_aes3 (const float *A, const float *B, float *C, int m, int n, int k) |
| esp_err_t | dspm_mult_f32_arp4 (const float *A, const float *B, float *C, int m, int n, int k) |
| esp_err_t | dspm_mult_s16_ansi (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift) |
| Matrix multiplication 16 bit signeg int. | |
| esp_err_t | dspm_mult_s16_ae32 (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift) |
| esp_err_t | dspm_mult_s16_aes3 (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift) |
| esp_err_t | dspm_mult_s16_arp4 (const int16_t *A, const int16_t *B, int16_t *C, int m, int n, int k, int shift) |
| #define | dspm_mult_s16 dspm_mult_s16_ansi |
| #define | dspm_mult_f32 dspm_mult_f32_ansi |
| #define | dspm_mult_3x3x1_f32(A, B, C) |
| #define | dsps_sub_f32 dsps_sub_f32_ansi |
| #define | dsps_add_f32 dsps_add_f32_ansi |
| #define | dspm_mult_4x4x4_f32(A, B, C) |
| #define | dspm_mult_ex_f32 dspm_mult_ex_f32_ansi |
| #define | dspm_mult_3x3x3_f32(A, B, C) |
| #define | dspm_mult_4x4x1_f32(A, B, C) |
| esp_err_t | dspm_mult_ex_f32_ansi (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd) |
| Matrix subset multiplication. | |
| esp_err_t | dspm_mult_ex_f32_ae32 (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd) |
| esp_err_t | dspm_mult_ex_f32_aes3 (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd) |
| esp_err_t | dspm_mult_ex_f32_arp4 (const float *A, const float *B, float *C, int m, int n, int k, int A_padd, int B_padd, int C_padd) |
Definition at line 222 of file dspm_mult.h.
Definition at line 227 of file dspm_mult.h.
Definition at line 228 of file dspm_mult.h.
Definition at line 225 of file dspm_mult.h.
| #define dspm_mult_ex_f32 dspm_mult_ex_f32_ansi |
Definition at line 226 of file dspm_mult.h.
Referenced by dspm::operator*(), and dspm::Mat::operator*=().
| #define dspm_mult_f32 dspm_mult_f32_ansi |
Definition at line 221 of file dspm_mult.h.
Referenced by dspm::operator*(), and dspm::Mat::operator*=().
| #define dspm_mult_s16 dspm_mult_s16_ansi |
Definition at line 220 of file dspm_mult.h.
| #define dsps_add_f32 dsps_add_f32_ansi |
Definition at line 224 of file dspm_mult.h.
| #define dsps_sub_f32 dsps_sub_f32_ansi |
Definition at line 223 of file dspm_mult.h.
| esp_err_t dspm_mult_3x3x1_f32_ae32 | ( | const float * | A, |
| const float * | B, | ||
| float * | C ) |
Matrix multiplication A[3x3]xB[3x1].
Matrix multiplication for two floating point matrices 3x3 and 3x1: C[1][3] = A[3][3] * B[3][1] The implementation is optimized for ESP32 chip.
| esp_err_t dspm_mult_3x3x3_f32_ae32 | ( | const float * | A, |
| const float * | B, | ||
| float * | C ) |
Matrix multiplication A[3x3]xB[3x3].
Matrix multiplication for two square 3x3 floating point matrices: C[3][3] = A[3][3] * B[3][3] The implementation is optimized for ESP32 chip.
| esp_err_t dspm_mult_4x4x1_f32_ae32 | ( | const float * | A, |
| const float * | B, | ||
| float * | C ) |
Matrix multiplication A[4x4]xB[4x1].
Matrix multiplication for two floating point matrices 4x4 and 4x1: C[1][4] = A[4][4] * B[4][1] The implementation is optimized for ESP32 chip.
| esp_err_t dspm_mult_4x4x4_f32_ae32 | ( | const float * | A, |
| const float * | B, | ||
| float * | C ) |
Matrix multiplication A[4x4]xB[4x4].
Matrix multiplication for two square 3x3 floating point matrices: C[4][4] = A[4][4] * B[4][4] The implementation is optimized for ESP32 chip.
| esp_err_t dspm_mult_ex_f32_ae32 | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k, | ||
| int | A_padd, | ||
| int | B_padd, | ||
| int | C_padd ) |
| esp_err_t dspm_mult_ex_f32_aes3 | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k, | ||
| int | A_padd, | ||
| int | B_padd, | ||
| int | C_padd ) |
| esp_err_t dspm_mult_ex_f32_ansi | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k, | ||
| int | A_padd, | ||
| int | B_padd, | ||
| int | C_padd ) |
Matrix subset multiplication.
One or all of the matrices are matrix subsets, described with pointers and strides Matrix multiplication for two floating point matrices: C[m][k] = A[m][n] * B[n][k] The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
| [in] | A | input matrix A[m][n] |
| [in] | B | input matrix B[n][k] |
| [out] | C | result matrix C[m][k] |
| [in] | m | matrix dimension |
| [in] | n | matrix dimension |
| [in] | k | matrix dimension |
| [in] | A_padd | input matrix A padding |
| [in] | B_padd | input matrix B padding |
| [in] | C_padd | result matrix C padding |
Definition at line 12 of file dspm_mult_ex_f32_ansi.c.
References A, B, C, ESP_ERR_DSP_PARAM_OUTOFRANGE, and ESP_OK.
| esp_err_t dspm_mult_ex_f32_arp4 | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k, | ||
| int | A_padd, | ||
| int | B_padd, | ||
| int | C_padd ) |
| esp_err_t dspm_mult_f32_ae32 | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k ) |
| esp_err_t dspm_mult_f32_aes3 | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k ) |
| esp_err_t dspm_mult_f32_ansi | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k ) |
Matrix multiplication.
Matrix multiplication for two floating point matrices: C[m][k] = A[m][n] * B[n][k] The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
| [in] | A | input matrix A[m][n] |
| [in] | B | input matrix B[n][k] |
| C | result matrix C[m][k] | |
| [in] | m | matrix dimension |
| [in] | n | matrix dimension |
| [in] | k | matrix dimension |
Definition at line 22 of file dspm_mult_f32_ansi.c.
| esp_err_t dspm_mult_f32_arp4 | ( | const float * | A, |
| const float * | B, | ||
| float * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k ) |
| esp_err_t dspm_mult_s16_ae32 | ( | const int16_t * | A, |
| const int16_t * | B, | ||
| int16_t * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k, | ||
| int | shift ) |
| esp_err_t dspm_mult_s16_aes3 | ( | const int16_t * | A, |
| const int16_t * | B, | ||
| int16_t * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k, | ||
| int | shift ) |
| esp_err_t dspm_mult_s16_ansi | ( | const int16_t * | A, |
| const int16_t * | B, | ||
| int16_t * | C, | ||
| int | m, | ||
| int | n, | ||
| int | k, | ||
| int | shift ) |
Matrix multiplication 16 bit signeg int.
Matrix multiplication for two signed 16 bit fixed point matrices: C[m][k] = (A[m][n] * B[n][k]) >> (15- shift) The extension (_ansi) use ANSI C and could be compiled and run on any platform. The extension (_ae32) is optimized for ESP32 chip.
| [in] | A | input matrix A[m][n] |
| [in] | B | input matrix B[n][k] |
| C | result matrix C[m][k] | |
| [in] | m | matrix dimension |
| [in] | n | matrix dimension |
| [in] | k | matrix dimension |
| [in] | shift | every result will be shifted and stored as 16 bit signed value. |
Definition at line 21 of file dspm_mult_s16_ansi.c.