OpenCV  3.4.16 Open Source Computer Vision
Matrix multiplication

## Functions

int hal_ni_gemm32f (const float *src1, size_t src1_step, const float *src2, size_t src2_step, float alpha, const float *src3, size_t src3_step, float beta, float *dst, size_t dst_step, int m, int n, int k, int flags)

int hal_ni_gemm32fc (const float *src1, size_t src1_step, const float *src2, size_t src2_step, float alpha, const float *src3, size_t src3_step, float beta, float *dst, size_t dst_step, int m, int n, int k, int flags)

int hal_ni_gemm64f (const double *src1, size_t src1_step, const double *src2, size_t src2_step, double alpha, const double *src3, size_t src3_step, double beta, double *dst, size_t dst_step, int m, int n, int k, int flags)

int hal_ni_gemm64fc (const double *src1, size_t src1_step, const double *src2, size_t src2_step, double alpha, const double *src3, size_t src3_step, double beta, double *dst, size_t dst_step, int m, int n, int k, int flags)

## Detailed Description

The function performs generalized matrix multiplication similar to the gemm functions in BLAS level 3: $$D = \alpha*AB+\beta*C$$

Parameters
 src1 pointer to input $$M\times N$$ matrix $$A$$ or $$A^T$$ stored in row major order. src1_step number of bytes between two consequent rows of matrix $$A$$ or $$A^T$$. src2 pointer to input $$N\times K$$ matrix $$B$$ or $$B^T$$ stored in row major order. src2_step number of bytes between two consequent rows of matrix $$B$$ or $$B^T$$. alpha $$\alpha$$ multiplier before $$AB$$ src3 pointer to input $$M\times K$$ matrix $$C$$ or $$C^T$$ stored in row major order. src3_step number of bytes between two consequent rows of matrix $$C$$ or $$C^T$$. beta $$\beta$$ multiplier before $$C$$ dst pointer to input $$M\times K$$ matrix $$D$$ stored in row major order. dst_step number of bytes between two consequent rows of matrix $$D$$. m number of rows in matrix $$A$$ or $$A^T$$, equals to number of rows in matrix $$D$$ n number of columns in matrix $$A$$ or $$A^T$$ k number of columns in matrix $$B$$ or $$B^T$$, equals to number of columns in matrix $$D$$ flags algorithm options (combination of CV_HAL_GEMM_1_T, ...).

## ◆ hal_ni_gemm32f()

 int hal_ni_gemm32f ( const float * src1, size_t src1_step, const float * src2, size_t src2_step, float alpha, const float * src3, size_t src3_step, float beta, float * dst, size_t dst_step, int m, int n, int k, int flags )
inline

#include <core/src/hal_replacement.hpp>

## ◆ hal_ni_gemm32fc()

 int hal_ni_gemm32fc ( const float * src1, size_t src1_step, const float * src2, size_t src2_step, float alpha, const float * src3, size_t src3_step, float beta, float * dst, size_t dst_step, int m, int n, int k, int flags )
inline

#include <core/src/hal_replacement.hpp>

## ◆ hal_ni_gemm64f()

 int hal_ni_gemm64f ( const double * src1, size_t src1_step, const double * src2, size_t src2_step, double alpha, const double * src3, size_t src3_step, double beta, double * dst, size_t dst_step, int m, int n, int k, int flags )
inline

#include <core/src/hal_replacement.hpp>

## ◆ hal_ni_gemm64fc()

 int hal_ni_gemm64fc ( const double * src1, size_t src1_step, const double * src2, size_t src2_step, double alpha, const double * src3, size_t src3_step, double beta, double * dst, size_t dst_step, int m, int n, int k, int flags )
inline

#include <core/src/hal_replacement.hpp>