Matrix multiplication
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, …). |
// global 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 );