Mul

Multiplies matrix by a constant, a vector or another matrix.

Syntax

Case 1: Matrix - constant operation

IppStatus ippmMul_mc_32f(const Ipp32f* pSrc, int srcStride1, int srcStride2, Ipp32f val, Ipp32f* pDst, int dstStride1, int dstStride2, int width, int height);

IppStatus ippmMul_mc_64f(const Ipp64f* pSrc, int srcStride1, int srcStride2, Ipp64f val, Ipp64f* pDst, int dstStride1, int dstStride2, int width, int height);

IppStatus ippmMul_mc_32f_P(const Ipp32f** ppSrc, int srcRoiShift, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int width, int height);

IppStatus ippmMul_mc_64f_P(const Ipp64f** ppSrc, int srcRoiShift, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int width, int height);

Case 2: Transposed matrix - constant operation

IppStatus ippmMul_tc_32f(const Ipp32f* pSrc, int srcStride1, int srcStride2, Ipp32f val, Ipp32f* pDst, int dstStride1, int dstStride2, int width, int height);

IppStatus ippmMul_tc_64f(const Ipp64f* pSrc, int srcStride1, int srcStride2, Ipp64f val, Ipp64f* pDst, int dstStride1, int dstStride2, int width, int height);

IppStatus ippmMul_tc_32f_P(const Ipp32f** ppSrc, int srcRoiShift, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int width, int height);

IppStatus ippmMul_tc_64f_P(const Ipp64f** ppSrc, int srcRoiShift, Ipp64f val, Ipp64f** pDst, int dstRoiShift, int width, int height);

Case 3: Matrix array - constant operation

IppStatus ippmMul_mac_32f(const Ipp32f* pSrc, int srcStride0, int srcStride1, int srcStride2, Ipp32f val, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);

IppStatus ippmMul_mac_64f(const Ipp64f* pSrc, int srcStride0, int srcStride1, int srcStride2, Ipp64f val, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);

IppStatus ippmMul_mac_32f_P(const Ipp32f** ppSrc, int srcRoiShift, int srcStride0, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);

IppStatus ippmMul_mac_64f_P(const Ipp64f** ppSrc, int srcRoiShift, int srcStride0, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);

IppStatus ippmMul_mac_32f_L(const Ipp32f** ppSrc, int srcRoiShift, int srcStride1, int srcStride2, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);

IppStatus ippmMul_mac_64f_L(const Ipp64f** ppSrc, int srcRoiShift, int srcStride1, int srcStride2, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);

Case 4: Transposed matrix array - constant operation

IppStatus ippmMul_tac_32f(const Ipp32f* pSrc, int srcStride0, int srcStride1, int srcStride2, Ipp32f val, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);

IppStatus ippmMul_tac_64f(const Ipp64f* pSrc, int srcStride0, int srcStride1, int srcStride2, Ipp64f val, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);

IppStatus ippmMul_tac_32f_P(const Ipp32f** ppSrc, int srcRoiShift, int srcStride0, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);

IppStatus ippmMul_tac_64f_P(const Ipp64f** ppSrc, int srcRoiShift, int srcStride0, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);

IppStatus ippmMul_tac_32f_L(const Ipp32f** ppSrc, int srcRoiShift, int srcStride1, int srcStride2, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);

IppStatus ippmMul_tac_64f_L(const Ipp64f** ppSrc, int srcRoiShift, int srcStride1, int srcStride2, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);

Case 5: Matrix - vector operation

IppStatus ippmMul_mv_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride2);

IppStatus ippmMul_mv_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride2);

IppStatus ippmMul_mv_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Len, Ipp32f** ppDst, int dstRoiShift);

IppStatus ippmMul_mv_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Len, Ipp64f** ppDst, int dstRoiShift);

Case 6: Transposed matrix - vector operation

IppStatus ippmMul_tv_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride2);

IppStatus ippmMul_tv_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride2);

IppStatus ippmMul_tv_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Len, Ipp32f** ppDst, int dstRoiShift);

IppStatus ippmMul_tv_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** pSrc2, int src2RoiShift, int src2Len, Ipp64f** ppDst, int dstRoiShift);

Case 7: Matrix - vector array operation

IppStatus ippmMul_mva_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_mva_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_mva_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mva_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mva_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmMul_mva_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 8: Transposed matrix - vector array operation

IppStatus ippmMul_tva_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_tva_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_tva_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tva_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tva_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmMul_tva_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 9: Matrix array - vector operation

IIppStatus ippmMul_mav_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_mav_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_mav_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mav_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mav_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride2, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmMul_mav_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride2, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 10: Transposed matrix array - vector operation

IppStatus ippmMul_tav_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_tav_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_tav_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tav_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tav_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride2, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmMul_tav_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride2, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 11: Matrix array - vector array operation

IppStatus ippmMul_mava_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_mava_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_mava_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mava_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mava_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmMul_mava_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 12: Transposed matrix array - vector array operation

IppStatus ippmMul_tava_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_tava_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride2, int src2Len, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmMul_tava_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tava_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tava_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmMul_tava_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride2, int src2Len, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 13: Matrix - matrix operation

IppStatus ippmMul_mm_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_mm_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_mm_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift);

IppStatus ippmMul_mm_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift);

IppStatus ippmMul_mm4x4_32f(const Ipp32f** pSrc1, const Ipp32f** pSrc2, Ipp32f** pDst);

Case 14: Transposed matrix - matrix operation

IppStatus ippmMul_tm_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_tm_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_tm_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift);

IppStatus ippmMul_tm_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift);

Case 15: Matrix - transposed matrix operation

IppStatus ippmMul_mt_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_mt_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_mt_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift);

IppStatus ippmMul_mt_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift);

Case 16: Transposed matrix - transposed matrix operation

IppStatus ippmMul_tt_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_tt_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride1, int dstStride2);

IppStatus ippmMul_tt_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift);

IppStatus ippmMul_tt_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift);

Case 17: Matrix - matrix array operation

IppStatus ippmMul_mma_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mma_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mma_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mma_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mma_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mma_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 18: Transposed matrix - matrix array operation

IppStatus ippmMul_tma_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tma_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tma_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tma_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tma_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tma_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 19: Matrix - transposed matrix array operation

IppStatus ippmMul_mta_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mta_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mta_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mta_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mta_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mta_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 20: Transposed matrix - transposed matrix array operation

IppStatus ippmMul_tta_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tta_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tta_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tta_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tta_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tta_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 21: Matrix array - matrix operation

IppStatus ippmMul_mam_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mam_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mam_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mam_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mam_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mam_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 22: Transposed matrix array - matrix operation

IppStatus ippmMul_tam_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tam_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tam_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tam_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tam_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tam_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 23: Matrix array - transposed matrix operation

IppStatus ippmMul_mat_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mat_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mat_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mat_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mat_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mat_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 24: Transposed matrix array - transposed matrix operation

IppStatus ippmMul_tat_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tat_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tat_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tat_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tat_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tat_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 25: Matrix array - matrix array operation

IppStatus ippmMul_mama_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mama_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mama_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mama_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mama_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mama_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 26: Transposed matrix array - matrix array operation

IppStatus ippmMul_tama_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tama_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tama_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tama_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tama_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tama_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 27: Matrix array - transposed matrix array operation

IppStatus ippmMul_mata_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mata_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mata_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mata_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_mata_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_mata_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Case 28: Transposed matrix array - transposed matrix array operation

IppStatus ippmMul_tata_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tata_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tata_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tata_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmMul_tata_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

IppStatus ippmMul_tata_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, int src1Width, int src1Height, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, int src2Width, int src2Height, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int count);

Parameters

pSrc, ppSrc

Pointer to the source matrix or array of matrices.

srcStride0

Stride between the matrices in the source array.

srcStride1

Stride between the rows in the source matrix(ces).

srcStride2

Stride between the elements in the source matrix(ces).

srcRoiShift

ROI shift in the source matrix(ces).

pSrc1, ppSrc1

Pointer to the first source matrix or array of matrices.

src1Stride0

Stride between the matrices in the first source array.

src1Stride1

Stride between the rows in the first source matrix(ces).

src1Stride2

Stride between the elements in the first source matrix(ces).

src1RoiShift

ROI shift in the first source matrix(ces).

src1Width

Width of the first source matrix(ces).

src1Height

Height of the first source matrix(ces).

pSrc2, ppSrc2

Pointer to the second source matrix or array of matrices.

src2Stride0

Stride between the matrices in the second source array.

src2Stride1

Stride between the rows in the second source matrix(ces).

src2Stride2

Stride between the elements in the second source matrix(ces).

src2RoiShift

ROI shift in the second source matrix(ces).

src2Width

Width of the second source matrix(ces).

src2Height

Height of the second source matrix(ces).

pDst, ppDst

Pointer to the destination matrix or array of matrices.

dstStride0

Stride between the matrices in the destination array.

dstStride1

Stride between the rows in the destination matrix.

dstStride2

Stride between the elements in the destination matrix.

dstRoiShift

ROI shift in the destination matrix.

val

Multiplier used in matrix scaling.

src2Len

Vector length.

width

Matrix width.

height

Matrix height.

count

Number of matrices in the array.

Description

The function ippmMul is declared in the ippm.h header file. Like all other Intel IPP matrix operating functions, this function is parameter sensitive. All input parameters that follow the function name immediately after the underscore determine the way in which the function performs and the arguments it takes, whether it is a constant, a vector, or another matrix. This implies that with every complete function name only some of the listed arguments appear in the input list, while others are omitted.

When performed on a constant and a matrix (cases 1, 3), the function scales the source matrix by multiplying each element of the source by val, and stores the result in pDst:

The following example demonstrates how to use the function ippmMul_mac_32f. For more information, see also examples in Getting Started.

ippmMul_mac_32f  

IppStatus mul_mac_32f(void){
    /* Source data: 2 matrices with width=3 and height=3 */
    Ipp32f pSrc[8*3] = { 3.0f, 1.1f, 1.2f,
                         1.3f, 1.4f, 1.5f,
                         2.0f, 2.1f, 2.2f,
                         0.0f, 0.0f, 0.0f,
                         3.3f, 2.4f, 2.5f,
                         3.0f, 3.1f, 3.2f,
                         4.3f, 4.4f, 4.5f,
                         0.0f, 0.0f, 0.0f };
    /* Standard description for 2 source matrices */
    int srcStride2 = sizeof(Ipp32f);
    int srcStride1 = 3*sizeof(Ipp32f);
    int srcStride0 = 4*3*sizeof(Ipp32f);

    Ipp32f val=2.0;

    /* Standard description for 2 destination matrices */
    Ipp32f pDst[2*3*3];
    int dstStride2 = sizeof(Ipp32f);
    int dstStride1 = 3*sizeof(Ipp32f);
    int dstStride0 = 9*sizeof(Ipp32f);

    int width  = 3;
    int height = 3;
    int count  = 2;

    IppStatus status = ippmMul_mac_32f((const Ipp32f*)pSrc, srcStride0,
        srcStride1, srcStride2, val, pDst, dstStride0, dstStride1,
        dstStride2, width, height, count);

    /*
    // It is recommended to check return status
    // to detect wrong input parameters, if any
    */
    if (status == ippStsNoErr) {
        printf_ma_Ipp32f("Destination matrices:", pDst, 3, 3, 2, status);
    } else {
        printf("Function returns status: %s \n", ippGetStatusString(status));
    }
    return status;
}
 

The program above produces the following output:

Destination matrices:

6.000000 2.200000 2.400000     6.600000 4.800000 5.000000

2.600000 2.800000 3.000000     6.000000 6.200000 6.400000

4.000000 4.200000 4.400000     8.600000 8.800000 9.000000

When performed on a constant and a transposed matrix (cases 2, 4), the function scales the transposed source matrix by multiplying each element of the source matrix by val and stores the result in pDst:

Note that if the operation is performed on a transposed matrix (object type t) or a transposed matrix array (object type ta), the source matrices must have the number of columns equal to height and the number of rows equal to width.

When performed on a vector and a matrix (cases 5, 7, 9, 11), the function multiplies all elements in a row of the source matrix by the respective elements in the source vector. Done in loop through all rows in the source matrix, this operation gives the destination vector, which is stored in pDst. The following formula applies to all matrix rows i and a vector:

Note that the number of elements in the source vector src2Len must be equal to src1Width.

The following example demonstrates how to use the function ippmMul_mva_32f_L. For more information, see also examples in Getting Started.

ippmMul_mva_32f_L  

IppStatus mul_mva_32f_L(void) {
    /* Src1 matrix with width=3, height=4, Stride2=2*sizeof(Ipp32f) */
    Ipp32f pSrc1[4*6] = { 1, 0, 2, 0, 3, 0,
                          4, 0, 5, 0, 6, 0,
                          7, 0, 8, 0, 9, 0,
                          2, 0, 4, 0, 6, 0 };
    /* Standard description for Src1 */
    int src1Width   = 3;
    int src1Height  = 4;
    int src1Stride2 = 2*sizeof(Ipp32f);
    int src1Stride1 = 6*sizeof(Ipp32f);
    /* Src2 data: 2 vectors with length=3, Stride2=sizeof(Ipp32f) */
    Ipp32f src2_a[3] = { 1, 6, 3 };
    Ipp32f src2_b[3] = { 4, 5, 2 };

    /* Layout description for Src2 */
    Ipp32f* ppSrc2[2] = { src2_a, src2_b };
    int src2RoiShift = 0;
    int src2Stride2  = sizeof(Ipp32f);
    int src2Length = 3;
    /*
    // Destination vector has length=src1Height=4 
    // Layout description for Dst:
    */
    Ipp32f dst[2*4];
    Ipp32f* ppDst[4] = { dst, dst+4 };
    int dstRoiShift  = 0;
    int dstStride2  = sizeof(Ipp32f);

    int count = 2;
    IppStatus status = ippmMul_mva_32f_L((const Ipp32f*)pSrc1, src1Stride1,
        src1Stride2, src1Width, src1Height, (const Ipp32f**)ppSrc2,
        src2RoiShift, src2Stride2, src2Length,
        ppDst, dstRoiShift, dstStride2, count);
    /*
    // It is recommended to check return status
    // to detect wrong input parameters, if any
    */
    if (status == ippStsNoErr) {
        printf_va_Ipp32f("2 destination vectors:", dst, 4, 2, status);
    } else {
        printf("Function returns status: %s \n", ippGetStatusString(status));
    }
    return status;
}
 

The program above produces the following output:

2 destination vectors:

22.000000  52.000000  82.000000  44.000000

20.000000  53.000000 86.000000  40.000000

When performed on a vector and a transposed matrix (cases 6, 8, 10, 12), the function multiplies all elements in a column of the source matrix by the respective elements in the source vector. Done in a loop through all columns in the source matrix, this operation gives the destination vector, which is stored in pDst. The following formula applies to all matrix columns j and a vector:

Note that the number of elements in the source vector src2Len must be equal to src1Height.

The following example demonstrates how to use the function ippmMul_tva_32f. For more information, see also examples in Getting Started.

ippmMul_tva_32f  

IppStatus mul_tva_32f(void) {
    /* Src1 matrix with width=3, height=4, Stride2=2*sizeof(Ipp32f) */
    Ipp32f pSrc1[4*6] = { 1, 0, 2, 0, 3, 0,
                          4, 0, 5, 0, 6, 0,
                          7, 0, 8, 0, 9, 0,
                          2, 0, 4, 0, 6, 0 };
    /* Standard description for Src1 */
    int src1Width   = 3;
    int src1Height  = 4;
    int src1Stride2 = 2*sizeof(Ipp32f);
    int src1Stride1 = 6*sizeof(Ipp32f);

    /* Src2 data: 2 vectors with length=4, Stride2=sizeof(Ipp32f) */
    Ipp32f pSrc2[2*4] = { 1, 6, 3, 2,
                          4, 5, 2, 1 };
    int src2Length  = 4;
    int src2Stride2 = sizeof(Ipp32f);
    int src2Stride0 = 4*sizeof(Ipp32f);
    /*
    // As the first operand is transposed matrix 
    // destination vector has length=src1Width=3 
    */
    Ipp32f pDst[2*3];
    int dstStride2 = sizeof(Ipp32f);
    int dstStride0 = 3*sizeof(Ipp32f);

    int count  = 2;

    IppStatus status = ippmMul_tva_32f((const Ipp32f*)pSrc1,
        src1Stride1, src1Stride2, src1Width, src1Height,
        (const Ipp32f*)pSrc2, src2Stride0, src2Stride2, src2Length,
        pDst, dstStride0, dstStride2, count);
    /*
    // It is recommended to check return status
    // to detect wrong input parameters, if any
    */
    if (status == ippStsNoErr) {
        printf_va_Ipp32f("2 destination vectors:", pDst, 3, 2, status);
    } else {
        printf("Function returns status: %s \n", ippGetStatusString(status));
    }
    return status;
}
 

The program above produces the following output:

2 destination vectors:

50.000000  64.000000  78.000000

40.000000  53.000000  66.000000

When performed on two matrices (cases 13, 17, 21, 25), the function multiplies the elements in a row of the first source matrix by the respective elements in a column of the second source matrix, and sums the products to obtain a new element in the destination matrix. Done in loop through all rows in the first source matrix and all columns in the second source matrix, this operation gives the whole destination matrix, which is stored in pDst. For an element in the destination matrix:

Note that the number of columns in the first source matrix src1Width must be equal to the number of rows in the second source matrix src2Height. The destination matrix has the number of columns equal to src2Width and the number of rows equal to src1Height.

ippmMul_mm4x4_32f is a special case for 4x4 matrices with srcStride1=4*sizeof(float) and srcStride2=sizeof(float).

The following example demonstrates how to use the function ippmMul_mm_32f. For more information, see also examples in Getting Started.

ippmMul_mm_32f  

IppStatus mul_mm_32f(void) {
    /* Src1 matrix with width=4 and height=3 */
    Ipp32f pSrc1[3*4] = { 1, 2, 3, 4,
                          5, 6, 7, 8,
                          4, 3, 2, 1 };
    int src1Width  = 4;
    int src1Height = 3;
    int src1Stride2 = sizeof(Ipp32f);
    int src1Stride1 = 4*sizeof(Ipp32f);
    /* Src2 matrix with width=3 and height=4 */
    Ipp32f pSrc2[4*3] = { 1, 5, 4,
                          2, 6, 3,
                          3, 7, 2,
                          4, 8, 1 };
    int src2Width  = 3;
    int src2Height = 4;
    int src2Stride2 = sizeof(Ipp32f);
    int src2Stride1 = 3*sizeof(Ipp32f);

    /*
    // Destination matrix has width=src2Width=3 and height=src1Height=3 
    */
    Ipp32f pDst[3*3];
    int dstStride2 = sizeof(Ipp32f);
    int dstStride1 = 3*sizeof(Ipp32f);

    IppStatus status = ippmMul_mm_32f((const Ipp32f*)pSrc1, src1Stride1,
        src1Stride2, src1Width, src1Height, (const Ipp32f*)pSrc2,
        src2Stride1, src2Stride2, src2Width, src2Height,
        pDst, dstStride1, dstStride2);
    /*
    // It is recommended to check return status
    // to detect wrong input parameters, if any
    */
    if (status == ippStsNoErr) {
        printf_m_Ipp32f("Destination matrix:", pDst, 3, 3, status);
    } else {
        printf("Function returns status: %s \n", ippGetStatusString(status));
    }
    return status;
}
 

The program above produces the following output:

Destination matrix:

30.000000  70.000000  20.000000

70.000000  174.000000  0.000000

20.000000  60.000000  30.000000

When performed on a transposed matrix and a matrix (cases 14, 18, 22, 26), the function multiplies the elements in a column of the first source matrix by the respective elements in the column of the second source matrix, and sums the products to obtain a new element in the destination matrix. Done in loop through all columns in the first and the second source matrices, this operation gives the whole destination matrix, which is stored in pDst. For an element in the destination matrix:

Note that the number of rows in the first source matrix src1Height must be equal to the number of rows in the second source matrix src2Height. The destination matrix has the number of rows equal to src1Width and the number of columns equal to src2Width.

The following example demonstrates how to use the function ippmMul_tm_32f. To clarify pointer descriptor for transposed matrices, see examples for ippmSub. For more information, see also examples in Getting Started.

ippmMul_tm_32f  

IppStatus mul_tm_32f(void) {
    /* Src1 matrix with width=2 and height=4 */
    Ipp32f pSrc1[4*2] = { 1, 2,
                          3, 4,
                          5, 6,
                          7, 8 };
    int src1Width  = 2;
    int src1Height = 4;
    int src1Stride2 = sizeof(Ipp32f);
    int src1Stride1 = 2*sizeof(Ipp32f);

    /* Src2 matrices have width=3 and height=4 */
    Ipp32f pSrc2[4*3] = { 1, 5, 4,
                          2, 6, 3,
                          3, 7, 2,
                          4, 8, 1 };
    int src2Width  = 3;
    int src2Height = 4;
    int src2Stride2 = sizeof(Ipp32f);
    int src2Stride1 = 3*sizeof(Ipp32f);
    /*
    // As the first operand is transposed matrix 
    // destination matrix has width=src2Width=3 and height=src1Width=2 
    */
    Ipp32f pDst[2*3];
    int dstStride2 = sizeof(Ipp32f);
    int dstStride1 = 3*sizeof(Ipp32f);

    IppStatus status = ippmMul_tm_32f((const Ipp32f*)pSrc1, src1Stride1,
        src1Stride2, src1Width, src1Height, (const Ipp32f*)pSrc2,
        src2Stride1, src2Stride2, src2Width, src2Height,
        pDst, dstStride1, dstStride2);
    /*
    // It is recommended to check return status 
    // to detect wrong input parameters, if any  
    */
    if (status == ippStsNoErr) {
        printf_m_Ipp32f("Destination matrix:", pDst, 3, 2, status);
    } else {
        printf("Function returns status: %s \n", ippGetStatusString(status));
    } 
    return status;
}
 

The program above produces the following output:

Destination matrix:

50.000000  114.000000  30.000000

60.000000  140.000000  40.000000

When performed on a matrix and a transposed matrix (cases 15, 19, 23, 27), the function multiplies the elements in a row of the first source matrix by the respective elements in the a row of the second source matrix, and sums the products to obtain a new element in the destination matrix. Done in loop through all rows in the first source matrix and all rows in the second source matrix, this operation gives the whole destination matrix, which is stored in pDst. For an element in the destination matrix:

Note that the number of columns in the first source matrix src1Width must be equal to the number of columns in the second source matrix src2Width. The destination matrix has the number of rows equal to src1Height and the number of columns equal to src2Height.

When performed on two transposed matrices (cases 16, 20, 24, 28), the function multiplies the elements in a column of the first source matrix by the respective elements in a row of the second source matrix, and sums the products to obtain a new element in the destination matrix. Done in loop through all columns in the first source matrix and all rows in the second source matrix, this operation gives the whole destination matrix, which is stored in pDst. For an element in the destination matrix:

Note that the number of rows in the first source matrix src1Height must be equal to the number of columns in the second source matrix src2Width. The destination matrix has the number of rows equal to src1Width and the number of columns equal to src2Height.

The following example demonstrates how to use the function ippmMul_tt_32f_P.

ippmMul_tt_32f_P  

IppStatus mul_tt_32f_P(void) {
    /* Src1 source data */
    Ipp32f src1[2*6] = { 9, 0, 0, 8, 0, 7,
                         0, 6, 5, 0, 0, 4 };
    /*
    // Nonzero elements of interest are referred by mask using 
    // pointer descriptor: Src1 width=3, height=2 
    */
    Ipp32f* ppSrc1[2*3] = { src1,   src1+3, src1+5,
                            src1+7, src1+8, src1+11 };
    int src1RoiShift = 0;
    int src1Width  = 3;
    int src1Height = 2;

    /* Src2 source data */
    Ipp32f src2[4*5] = { 0, 7, 0, 2, 0,
                         1, 0, 0, 3, 0,
                         4, 0, 5, 0, 0,
                         6, 0, 0, 0, 8 };
    /*
    // Nonzero elements of interest are referred by mask using 
    // pointer descriptor: Src2 width=2, height=4 
    */
    Ipp32f* ppSrc2[4*2] = { src2+1,  src2+3,
                            src2+5,  src2+8,
                            src2+10, src2+12,
                            src2+15, src2+19 };
    int src2RoiShift = 0;
    int src2Width  = 2;
    int src2Height = 4;
    /*
    // As the both operands are transposed matrices 
    // destination matrix has width=src2Height=4 and height=src1Width=3 
    // Pointer description for destination matrix:
    */
    Ipp32f  dst[3*4];
    Ipp32f* ppDst[3*4] = { dst,   dst+1, dst+2,  dst+3,
                           dst+4, dst+5, dst+6,  dst+7,
                           dst+8, dst+9, dst+10, dst+11 };
    int dstRoiShift = 0;

    IppStatus status = ippmMul_tt_32f_P((const Ipp32f**)ppSrc1,
        src1RoiShift, src1Width, src1Height, (const Ipp32f**)ppSrc2,
        src2RoiShift, src2Width, src2Height, ppDst, dstRoiShift);

    /*
    // It is recommended to check return status
    // to detect wrong input parameters, if any
    */
    if (status == ippStsNoErr) {
        printf_m_Ipp32f_P("Destination matrix:", ppDst, 4, 3, status);
    } else {
        printf("Function returns status: %s \n", ippGetStatusString(status));
    } 
    return status;
}
 

The program above produces the following output:

Destination matrix:

75.000000 27.000000 66.000000 102.000000

66.000000 23.000000 57.000000 88.000000

57.000000 19.000000 48.000000 74.000000

Return Values

ippStsOk

Returns no error.

ippStsNullPtrErr

Returns an error when at least one input pointer is NULL.

ippStsSizeErr

Returns an error when the input size parameter is equal to 0.

ippStsStrideMatrixErr

Returns an error when the stride value is not positive or not divisible by the size of the data type.

ippStsRoiShiftMatrixErr

Returns an error when the roiShift value is negative or not divisible by the size of the data type.

ippStsCountMatrixErr

Returns an error when the count value is less or equal to zero.

ippStsSizeMatchMatrixErr

Returns an error when the sizes of the source matrices are unsuitable.

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.