Mul

Multiplies vector by constant.

Syntax

Case 1: Vector - constant operation

IppStatus ippmMul_vc_32f(const Ipp32f* pSrc, int srcStride2, Ipp32f val, Ipp32f* pDst, int dstStride2, int len);

IppStatus ippmMul_vc_64f(const Ipp64f* pSrc, int srcStride2, Ipp64f val, Ipp64f* pDst, int dstStride2, int len);

IppStatus ippmMul_vc_32f_P(const Ipp32f** ppSrc, int srcRoiShift, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int len);

IppStatus ippmMul_vc_64f_P(const Ipp64f** ppSrc, int srcRoiShift, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int len);

Case 2: Vector array - constant operation

IppStatus ippmMul_vac_32f(const Ipp32f* pSrc, int srcStride0, int srcStride2, Ipp32f val, Ipp32f* pDst, int dstStride0, int dstStride2, int len, int count);

IppStatus ippmMul_vac_64f(const Ipp64f* pSrc, int srcStride0, int srcStride2, Ipp64f val, Ipp64f* pDst, int dstStride0, int dstStride2, int len, int count);

IppStatus ippmMul_vac_32f_P(const Ipp32f** ppSrc, int srcRoiShift, int srcStride0, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int len, int count);

IppStatus ippmMul_vac_64f_P(const Ipp64f** ppSrc, int srcRoiShift, int srcStride0, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int len, int count);

IppStatus ippmMul_vac_32f_L(const Ipp32f** ppSrc, int srcRoiShift, int srcStride2, Ipp32f val, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int len, int count);

IppStatus ippmMul_vac_64f_L(const Ipp64f** ppSrc, int srcRoiShift, int srcStride2, Ipp64f val, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int len, int count);

Case 3: Vector array - constant array operation

IppStatus ippmMul_vaca_32f (const Ipp32f* pSrc, int srcStride0, int srcStride2, const Ipp32f* pVal, int valStride0, Ipp32f* pDst, int dstStride0, int dstStride2, int len, int count);

IppStatus ippmMul_vaca_64f (const Ipp64f* pSrc, int srcStride0, int srcStride2, const Ipp64f* pVal, int valStride0, Ipp64f* pDst, int dstStride0, int dstStride2, int len, int count);

IppStatus ippmMul_vaca_32f_P (const Ipp32f** ppSrc, int srcRoiShift, int srcStride0, const Ipp32f* pVal, int valStride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int len, int count);

IppStatus ippmMul_vaca_64f_P (const Ipp64f** ppSrc, int srcRoiShift, int srcStride0, const Ipp64f* pVal, valStride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int len, int count);

IppStatus ippmMul_vaca_32f_L (const Ipp32f** ppSrc, int srcRoiShift, int srcStride2, const Ipp32f** ppVal, int valRoiShift, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int len, int count);

IppStatus ippmMul_vaca_64f_L (const Ipp64f** ppSrc, int srcRoiShift, int srcStride2, const Ipp64f** ppVal, int valRoiShift, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int len, int count);

Case 4: Vector - constant array operation

IppStatus ippmMul_vca_32f (const Ipp32f* pSrc, int srcStride2, const Ipp32f* pVal, int valStride0, Ipp32f* pDst, int dstStride0, int dstStride2, int len, int count);

IppStatus ippmMul_vca_64f (const Ipp64f* pSrc, int srcStride2, const Ipp64f* pVal, int valStride0, Ipp64f* pDst, int dstStride0, int dstStride2, int len, int count);

IppStatus ippmMul_vca_32f_P (const Ipp32f** ppSrc, int srcRoiShift, const Ipp32f* pVal, int valStride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int len, int count);

IppStatus ippmMul_vca_64f_P (const Ipp64f** ppSrc, int srcRoiShift, const Ipp64f* pVal, int valStride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int len, int count);

IppStatus ippmMul_vca_32f_L (const Ipp32f* pSrc, int srcStride2, const Ipp32f** ppVal, int valRoiShift, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int len, int count);

IppStatus ippmMul_vca_64f_L (const Ipp64f* pSrc, int srcStride2, const Ipp64f** ppVal, int valRoiShift, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int len, int count);

Parameters

pSrc, ppSrc
Pointer to the source vector or vector array.
srcStride0
Stride between the vectors in the source array.
srcStride2
Stride between the elements in the source vector(s).
srcRoiShift
ROI shift in the source vector.
val
The constant.
pVal, ppVal
Pointer to the source array of constants.
valStride0
Stride between the constants in the source array of constants.
valRoiShift
ROI shift for the source array of constants.
pDst, ppDst
Pointer to the destination vector or vector array.
dstStride0
Stride between the vectors in the destination array.
dstStride2
Stride between the elements in the destination vector.
dstRoiShift
ROI shift in the destination vector.
len
Vector length.
count
The number of vectors (constants) in the array.

Description

The function ippmMul is declared in the ippm.h header file. The function multiplies the elements of the source vector by a constant and stores the result in the destination vector:

To clarify how the function operates on arrays of vectors and constants, see Operations with arrays of objects.

Examples of calling the function ippmMul operating with arrays of constants are similar to those of the function ippmAdd (see Example “ippmAdd_vaca_32f”, Example “ippmAdd_vaca_32f_L”, and Example “ippmAdd_vca_32f_P”).

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

ippmMul_vac_32f  

IppStatus mul_vac_32f(void) {
    /* Source data */
    Ipp32f pSrc[2*6] = { 2, 1, 3, 1, 4, 1,
                         5, 1, 6, 1, 7, 1 };
    /*
    // Elements of interest: 2 vectors with length=3
    */
    int srcStride2 = 2*sizeof(Ipp32f);
    int srcStride0 = 6*sizeof(Ipp32f);
    Ipp32f pDst[6*2] = {0};
    int dstStride2 = 2*sizeof(Ipp32f);
    int dstStride0 = 6*sizeof(Ipp32f);
 
    Ipp32f val=2.0;
    int length = 3;
    int count  = 2;
 
    IppStatus status = ippmMul_vac_32f((const Ipp32f*) pSrc, srcStride0,
        srcStride2, val, pDst, dstStride0, dstStride2, length, count);
 
    /*
    // It is recommended to check return status 
    // to detect wrong input parameters, if any  
    */
    if (status == ippStsNoErr) {
        printf_va_Ipp32f("2 source vectors:", pSrc, 6, 2, status);
        printf_va_Ipp32f("2 destination vectors:", pDst, 6, 2, status);
    } else {
        printf("Function returns status: %s \n", ippGetStatusString(status));
    } 
 
    return status;
}
 

The program above produces the following output:

2 source vectors:

2.000000  1.000000  3.000000  1.000000  4.000000  1.000000

5.000000  1.000000  6.000000  1.000000  7.000000  1.000000

2 destination vectors:

4.000000  0.000000  6.000000 0.000000  8.000000  0.000000

10.000000  0.000000  12.000000  0.000000  14.000000  0.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 size of data type.

ippStsRoiShiftMatrixErr

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

ippStsCountMatrixErr

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

Submit feedback on this help topic

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