AIfES 2  2.0.0
aimath_f32_cmsis.h File Reference

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...
 

Detailed Description

Version
2.2.0

Function Documentation

◆ aimath_f32_cmsis_linear()

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) \]

Parameters
*af32 tensor a
*bf32 tensor b
*cTensor c, 1 row and as many columns as the result
*resultResult f32 tensor

◆ aimath_f32_cmsis_mat_mul()

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 \]

Parameters
*af32 tensor a
*bf32 tensor b
*resultResult f32 tensor of the multiplication