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
    );