Developer Reference

  • 2021
  • 01/25/2021
  • Public Content
Contents

Sqr

Computes a square of each element of a vector.

Syntax

IppStatus ippsSqr_32f(const Ipp32f*
pSrc
, Ipp32f*
pDst
, int
len
);
IppStatus ippsSqr_64f(const Ipp64f*
pSrc
, Ipp64f*
pDst
, int
len
);
IppStatus ippsSqr_32fc(const Ipp32fc*
pSrc
, Ipp32fc*
pDst
, int
len
);
IppStatus ippsSqr_64fc(const Ipp64fc*
pSrc
, Ipp64fc*
pDst
, int
len
);
IppStatus ippsSqr_8u_Sfs(const Ipp8u*
pSrc
, Ipp8u*
pDst
, int
len
, int
scaleFactor
);
IppStatus ippsSqr_16s_Sfs(const Ipp16s*
pSrc
, Ipp16s*
pDst
, int
len
, int
scaleFactor
);
IppStatus ippsSqr_16u_Sfs(const Ipp16u*
pSrc
, Ipp16u*
pDst
, int
len
, int
scaleFactor
);
IppStatus ippsSqr_16sc_Sfs(const Ipp16sc*
pSrc
, Ipp16sc*
pDst
, int
len
, int
scaleFactor
);
IppStatus ippsSqr_32f_I(Ipp32f*
pSrcDst
, int
len
);
IppStatus ippsSqr_64f_I(Ipp64f*
pSrcDst
, int
len
);
IppStatus ippsSqr_32fc_I(Ipp32fc*
pSrcDst
, int
len
);
IppStatus ippsSqr_64fc_I(Ipp64fc*
pSrcDst
, int
len
);
IppStatus ippsSqr_8u_ISfs(Ipp8u*
pSrcDst
, int
len
, int
scaleFactor
);
IppStatus ippsSqr_16s_ISfs(Ipp16s*
pSrcDst
, int
len
, int
scaleFactor
);
IppStatus ippsSqr_16u_ISfs(Ipp16u*
pSrcDst
, int
len
, int
scaleFactor
);
IppStatus ippsSqr_16sc_ISfs(Ipp16sc*
pSrcDst
, int
len
, int
scaleFactor
);
Include Files
ipps.h
Domain Dependencies
Headers:
ippcore.h
,
ippvm.h
Libraries:
ippcore.lib
,
ippvm.lib
Parameters
pSrc
Pointer to the source vector.
pDst
Pointer to the destination vector.
pSrcDst
Pointer to the source and destination vector for in-place operations.
len
Number of elements in the vector
scaleFactor
Scale factor, refer to Integer Scaling.
Description
This function computes the square of each element of the vector
pSrc
, and stores the result in
pDst
. The computation is performed as follows:
pDst
[n] =
pSrc
[ n]
2
The in-place flavors of
ippsSqr
compute the square of each element of the vector
pSrcDst
and store the result in
pSrcDst
. The computation is performed as follows:
pSrcDst
[n] =
pSrcDst
[ n]
2
When computing the square of an integer number, the output result can exceed the data range and become saturated. To get a precise result, use the scale factor.
Return Values
ippStsNoErr
Indicates no error.
ippStsNullPtrErr
Indicates an error when the
pSrc
,
pDst
,
or pSrcDst
pointer is
NULL
.
ippStsSizeErr
Indicates an error when
len
is less than or equal to zero.

Example

Sqr
:
/******************************************************************************* * Copyright 2015-2021 Intel Corporation. * * This software and the related documents are Intel copyrighted materials, and * your use of them is governed by the express license under which they were * provided to you (License). Unless the License provides otherwise, you may not * use, modify, copy, publish, distribute, disclose or transmit this software or * the related documents without Intel's prior written permission. * * This software and the related documents are provided as is, with no express * or implied warranties, other than those that are expressly stated in the * License. *******************************************************************************/ #include <stdio.h> #include "ipp.h" /* Next two defines are created to simplify code reading and understanding */ #define EXIT_MAIN exitLine: /* Label for Exit */ #define check_sts(st) if((st) != ippStsNoErr) goto exitLine; /* Go to Exit if Intel(R) Integrated Primitives (Intel(R) IPP) function returned status different from ippStsNoErr */ /* Results of ippMalloc() are not validated because Intel(R) IPP functions perform bad arguments check and will return an appropriate status */ int main() { int len = 32; int i; Ipp16s *pSrc = ippsMalloc_16s(len * sizeof(Ipp16s)); Ipp16s *pDst = ippsMalloc_16s(len * sizeof(Ipp16s)); IppStatus status; int scale = 0; //without scaling printf("\n\nSource vector\n"); for (i = 0; i < len; i++) { pSrc[i] = 2 + i; printf("%d; ", pSrc[i]); } check_sts(status = ippsSqr_16s_Sfs(pSrc, pDst, len, scale)); printf("\n\nResult\n"); for (i = 0; i < len; i++) printf("%d; ", pDst[i]); printf("\n\n"); EXIT_MAIN ippsFree(pSrc); ippsFree(pDst); printf("Exit status %d (%s)\n", (int)status, ippGetStatusString(status)); return (int)status; }
Sqr_I
:
/******************************************************************************* * Copyright 2015-2021 Intel Corporation. * * This software and the related documents are Intel copyrighted materials, and * your use of them is governed by the express license under which they were * provided to you (License). Unless the License provides otherwise, you may not * use, modify, copy, publish, distribute, disclose or transmit this software or * the related documents without Intel's prior written permission. * * This software and the related documents are provided as is, with no express * or implied warranties, other than those that are expressly stated in the * License. *******************************************************************************/ #include <stdio.h> #include "ipp.h" /* Next two defines are created to simplify code reading and understanding */ #define EXIT_MAIN exitLine: /* Label for Exit */ #define check_sts(st) if((st) != ippStsNoErr) goto exitLine; /* Go to Exit if Intel(R) Integrated Primitives (Intel(R) IPP) function returned status different from ippStsNoErr */ /* Results of ippMalloc() are not validated because Intel(R) IPP functions perform bad arguments check and will return an appropriate status */ int main() { int len = 32; int i; Ipp16u *pSrcDst = ippsMalloc_16u(len * sizeof(Ipp16u)); IppStatus status; int scale = 0; //without scaling printf("\n\nSource vector\n"); for (i = 0; i < len; i++) { pSrcDst[i] = i; printf("%d; ", pSrcDst[i]); } check_sts(status = ippsSqr_16u_ISfs(pSrcDst, len, scale)); printf("\n\nResult\n"); for (i = 0; i < len; i++) printf("%d; ", pSrcDst[i]); printf("\n\n"); EXIT_MAIN ippsFree(pSrcDst); printf("Exit status %d (%s)\n", (int)status, ippGetStatusString(status)); return (int)status; }

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.