| OpenCV 3.4.8 Open Source Computer Vision

Functions
Matrix multiplication
Core functionality » Hardware Acceleration Layer » Interface

## 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, ...).

## Function Documentation

## § 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>`