Subtracts matrix from another matrix.
Case 1: Matrix - matrix operation
IppStatus ippmSub_mm_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_mm_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_mm_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int width, int height);
IppStatus ippmSub_mm_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int width, int height);
Case 2: Transposed matrix - matrix operation
IppStatus ippmSub_tm_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_tm_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_tm_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int width, int height);
IppStatus ippmSub_tm_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int width, int height);
Case 3: Matrix - transposed matrix operation
IppStatus ippmSub_mt_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_mt_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_mt_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int width, int height);
IppStatus ippmSub_mt_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int width, int height);
Case 4: Transposed matrix - transposed matrix operation
IppStatus ippmSub_tt_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_tt_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride1, int dstStride2, int width, int height);
IppStatus ippmSub_tt_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int width, int height);
IppStatus ippmSub_tt_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int width, int height);
Case 5: Matrix - matrix array operation
IppStatus ippmSub_mma_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mma_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mma_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mma_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mma_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mma_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 6: Transposed matrix - matrix array operation
IppStatus ippmSub_tma_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tma_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tma_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tma_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tma_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tma_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 7: Matrix - transposed matrix array operation
IppStatus ippmSub_mta_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mta_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mta_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mta_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mta_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mta_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 8: Transposed matrix - transposed matrix array operation
IppStatus ippmSub_tta_32f(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tta_64f(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tta_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tta_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tta_32f_L(const Ipp32f* pSrc1, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tta_64f_L(const Ipp64f* pSrc1, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 9: Matrix array - matrix operation
IppStatus ippmSub_mam_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mam_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mam_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mam_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mam_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mam_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 10: Transposed matrix array - matrix operation
IIppStatus ippmSub_tam_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tam_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tam_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tam_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tam_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tam_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 11: Matrix array - transposed matrix operation
IppStatus ippmSub_mat_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mat_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mat_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mat_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mat_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mat_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 12: Transposed matrix array - transposed matrix operation
IppStatus ippmSub_tat_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tat_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tat_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tat_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tat_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tat_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 13: Matrix array - matrix array operation
IppStatus ippmSub_mama_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mama_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mama_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mama_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mama_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mama_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 14: Transposed matrix array - matrix array operation
IppStatus ippmSub_tama_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tama_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tama_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tama_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tama_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tama_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 15: Matrix array - transposed matrix array operation
IppStatus ippmSub_mata_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mata_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mata_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mata_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_mata_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_mata_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
Case 16: Transposed matrix array - transposed matrix array operation
IppStatus ippmSub_tata_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tata_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride1, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tata_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tata_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int width, int height, int count);
IppStatus ippmSub_tata_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
IppStatus ippmSub_tata_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride1, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride1, int dstStride2, int width, int height, int count);
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). |
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). |
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. |
width |
Matrix width. |
height |
Matrix height. |
count |
Number of matrices in the array. |
The function ippmSub is declared in the ippm.h header file.
When performed on two matrices (cases 1, 5, 9, 13), the function subtracts an element of the second source matrix from the respective element of the first source matrix and stores the result in pDst. This operation is done in loop through all matrix elements:
dst[i][j] = src1[i][j] - src2[i][j],
0 ≤ i < height, 0 ≤ j < width.
When performed on a transposed matrix and a matrix (cases 2, 6, 10, 14), the function subtracts an element of the second source matrix from the respective element of the first source matrix and stores the result in pDst. This operation is done in loop through all matrix elements:
dst[i][j] = src1[j][i] - src2[i][j],
0 ≤ i < height, 0 ≤ j < width.
Note that the transposed matrix must have the number of rows equal to width and the number of columns equal to height.
The following example demonstrates how to use the function ippmSub_tm_32f_P. To clarify other cases, see examples for the ippmAdd function. For more information, see also examples in Getting Started.
IppStatus sub_tm_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; /* Src2 source data */ Ipp32f src2[3*6] = { 7, 0, 0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 0, 0, 4, 0, 3, 0}; /* // Nonzero elements of interest are referred by mask using // Pointer descriptor: Src2 width=2, height=3 */ Ipp32f* ppSrc2[3*2] = { src2, src2+5, src2+7, src2+8, src2+14, src2+16 }; int src2RoiShift = 0;
/* // Pointer description for destination matrix: // Dst width=2, height=3 */ Ipp32f dst[3*2]; Ipp32f* ppDst[3*2] = { dst, dst+1, dst+2, dst+3, dst+4, dst+5 };
int dstRoiShift = 0; int width = 2; int height = 3;
IppStatus status = ippmSub_tm_32f_P((const Ipp32f**)ppSrc1, src1RoiShift, (const Ipp32f**)ppSrc2, src2RoiShift, ppDst, dstRoiShift, width, height ); /*
// It is recommended to check return status
// to detect wrong input parameters, if any
*/
if(status == ippStsNoErr){
printf_m_Ipp32f_P("Destination matrix:", ppDst, 2, 3, status);
} else {
printf("Function returns status: %s \n", ippGetStatusString(status));
}
return status; }
The program above produces the following output:
Destination matrix:
2.000000 5.000000
6.000000 4.000000
3.000000 1.000000
When performed on a matrix array and a transposed matrix (cases 3, 7, 11, 15), the function subtracts an element of the transposed source matrix from the respective element of the first source matrix and stores the result in pDst. This operation is done in loop through all matrix elements:
dst[i][j] = src1[i][j] - src2[j][i],
0 ≤ i < height, 0 ≤ j < width.
Note that the transposed matrix must have the number of rows equal to width and the number of columns equal to height.
When performed on two transposed matrices (cases 4, 8, 12, 16), the function subtracts an element of the second transposed matrix from the respective element of the first transposed matrix and stores the result in pDst. This operation is done in loop through all matrix elements:
dst[i][j] = src1[j][i] - src2[j][i],
0 ≤ i < height, 0 ≤ j < width.
Note that both transposed matrices must have the number of rows equal to width and the number of columns equal to height.
The following example demonstrates how to use the function ippmSub_tt_32f_P. For more information, see also examples in Getting Started.
IppStatus sub_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; /* Src2 source data */ Ipp32f src2[2*6] = { 0, 7, 0, 2, 4, 0, 1, 1, 0, 3, 0, 0 };
/* // Nonzero elements of interest are referred by mask using // pointer descriptor: Src2 width=3, height=2 */ Ipp32f* ppSrc2[2*3] = { src2+1, src2+3, src2+4, src2+6, src2+7, src2+9 }; int src2RoiShift = 0; /* // Pointer description for destination matrix: // Dst width=2, height=3 */ Ipp32f dst[3*2]; Ipp32f* ppDst[3*2] = { dst, dst+1, dst+2, dst+3, dst+4, dst+5 }; int dstRoiShift = 0; int width = 2; int height = 3;
IppStatus status = ippmSub_tt_32f_P((const Ipp32f**)ppSrc1, src1RoiShift, (const Ipp32f**)ppSrc2, src2RoiShift, ppDst, dstRoiShift, width, height );
/*
// It is recommended to check return status
// to detect wrong input parameters, if any
*/
if(status == ippStsNoErr){
printf_m_Ipp32f_P("Destination matrix:", ppDst, 2, 3, status);
} else {
printf("Function returns status: %s \n", ippGetStatusString(status));
}
return status; }
The program above produces the following output:
Destination matrix:
2.000000 5.000000
6.000000 4.000000
3.000000 1.000000
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. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.