AIfES 2
2.0.0
|
Go to the source code of this file.
Functions | |
void | aimath_f32_cmsis_linear (const aitensor_t *a, const aitensor_t *b, const aitensor_t *c, aitensor_t *result) |
Performs a matrix multiplication of f32 tensors a and b and adds a 1D tensor c to each row, using the ARM CMSIS DSP. More... | |
void | aimath_f32_cmsis_mat_mul (const aitensor_t *a, const aitensor_t *b, aitensor_t *result) |
Performs a matrix multiplication of f32 tensors a and b, using the ARM CMSIS DSP. More... | |
void aimath_f32_cmsis_linear | ( | const aitensor_t * | a, |
const aitensor_t * | b, | ||
const aitensor_t * | c, | ||
aitensor_t * | result | ||
) |
Performs a matrix multiplication of f32 tensors a and b and adds a 1D tensor c to each row, using the ARM CMSIS DSP.
The addition of the horizontal vector c is performed via broadcast, i.e. elementwise in each column Mathematically this broadcast is equal to multiplying c with an vertical vector of ones (with the same number of elements as c)
and adding the result to a * b
\[ result = a \cdot b + \left( \begin{array}{r} 1 \\ 1 \\ \vdots \\ 1 \\ \end{array}\right) \cdot c \]
Example:
\[ a = \left( \begin{array}{rrr} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right) \]
\[ b = \left( \begin{array}{rr} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{array}\right) \]
\[ c = \left( \begin{array}{rr} 2 & 5 \end{array}\right) \]
\[ result = a \cdot b + \left( \begin{array}{r} 1 \\ 1 \\ 1 \\ \end{array}\right) \cdot c \]
\[ = \left( \begin{array}{rr} 1 & 2 \\ 4 & 5 \\ 7 & 8 \end{array}\right) + \left( \begin{array}{rr} 2 & 5 \\ 2 & 5 \\ 2 & 5 \end{array}\right) \]
\[ = \left( \begin{array}{rr} 3 & 7 \\ 6 & 10 \\ 9 & 13 \end{array}\right) \]
*a | f32 tensor a |
*b | f32 tensor b |
*c | Tensor c, 1 row and as many columns as the result |
*result | Result f32 tensor |
void aimath_f32_cmsis_mat_mul | ( | const aitensor_t * | a, |
const aitensor_t * | b, | ||
aitensor_t * | result | ||
) |
Performs a matrix multiplication of f32 tensors a and b, using the ARM CMSIS DSP.
\[ result = a \cdot b \]
*a | f32 tensor a |
*b | f32 tensor b |
*result | Result f32 tensor of the multiplication |