CrossProduct

Computes cross product of two 3D vectors.

Syntax

Case 1: Vector - vector operation

IppStatus ippmCrossProduct_vv_32f(const Ipp32f* pSrc1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride2, Ipp32f* pDst, int dstStride2);

IppStatus ippmCrossProduct_vv_64f(const Ipp64f* pSrc1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride2, Ipp64f* pDst, int dstStride2);

IppStatus ippmCrossProduct_vv_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift);

IppStatus ippmCrossProduct_vv_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift);

Case 2: Vector - vector array operation

IppStatus ippmCrossProduct_vva_32f(const Ipp32f* pSrc1, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmCrossProduct_vva_64f(const Ipp64f* pSrc1, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmCrossProduct_vva_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmCrossProduct_vva_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmCrossProduct_vva_32f_L(const Ipp32f* pSrc1, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmCrossProduct_vva_64f_L(const Ipp64f* pSrc1, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 3: Vector array - vector operation

IppStatus ippmCrossProduct_vav_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride2, const Ipp32f* pSrc2, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmCrossProduct_vav_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride2, const Ipp64f* pSrc2, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmCrossProduct_vav_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, Ipp32f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmCrossProduct_vav_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmCrossProduct_vav_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride2, const Ipp32f* pSrc2, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmCrossProduct_vav_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride2, const Ipp64f* pSrc2, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Case 4: Vector array - vector array operation

IppStatus ippmCrossProduct_vava_32f(const Ipp32f* pSrc1, int src1Stride0, int src1Stride2, const Ipp32f* pSrc2, int src2Stride0, int src2Stride2, Ipp32f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmCrossProduct_vava_64f(const Ipp64f* pSrc1, int src1Stride0, int src1Stride2, const Ipp64f* pSrc2, int src2Stride0, int src2Stride2, Ipp64f* pDst, int dstStride0, int dstStride2, int count);

IppStatus ippmCrossProduct_vava_32f_P(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp32f** pDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmCrossProduct_vava_64f_P(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride0, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride0, Ipp64f** ppDst, int dstRoiShift, int dstStride0, int count);

IppStatus ippmCrossProduct_vava_32f_L(const Ipp32f** ppSrc1, int src1RoiShift, int src1Stride2, const Ipp32f** ppSrc2, int src2RoiShift, int src2Stride2, Ipp32f** ppDst, int dstRoiShift, int dstStride2, int count);

IppStatus ippmCrossProduct_vava_64f_L(const Ipp64f** ppSrc1, int src1RoiShift, int src1Stride2, const Ipp64f** ppSrc2, int src2RoiShift, int src2Stride2, Ipp64f** ppDst, int dstRoiShift, int dstStride2, int count);

Parameters

pSrc1, ppSrc1

Pointer to the first source vector or vector array.

src1Stride0

Stride between the vectors in the first source vector array.

src1Stride2

Stride between the elements in the first source vector(s).

src1RoiShift

ROI shift in the first source vector.

pSrc2, ppSrc2

Pointer to the second source vector or vector array.

src2Stride0

Stride between the vectors in the second source vector array.

src2Stride2

Stride between the elements in the second source vector(s).

src2RoiShift

ROI shift in the second source vector(s).

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.

count

Number of vectors in the array.

Description

The function ippmCrossProduct is declared in the ippm.h header file. The function composes a vector product of two source vectors. The first element in the destination vector is obtained by subtracting the product of the third element in the first source vector and the second element in the second source vector from the product of the second element in the first source vector and the third element in the second source vector.

The following relations are used in computing the first destination element and the other two elements:

The result is stored in the destination vector.

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.

Note iconNote

The function ippmCrossProduct is defined only for three-dimensional vectors and fails with all other argument types.


Submit feedback on this help topic

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