Intel IPP Integration Wrappers Developer Guide and Reference

ID 751823
Date 1/18/2023
Public
Document Table of Contents

Core Functionality

IwException

Stores an error code value for an exception returned by the function.

class IwException { public: // Constructor with status assignment IwException( IppStatus status // Intel IPP status value ); // Default destructor ~IwException() {} // IwException to IppStatus cast operator inline operator IppStatus() const; IppStatus m_status; // Stored Intel IPP status value };

IwValue

Stores values for an array for array type casting

For more information on Ipp32s, see:

  • Data Types (Intel® Integrated Performance Primitives for Intel® Architecture Developer Reference. Volume 1: Signal and Data Processing)
  • Data Types (Intel® Integrated Performance Primitives for Intel® Architecture Developer Reference. Volume 2: Image Processing)
  • Data Types (Intel® Integrated Performance Primitives Theory of Operation)

template<typename DST> class IwValue { public: // Default constructor. Sets an array to zero. IwValue(); // Uniform template-based constructor. Sets channels to one value. template<typename SRC> IwValue(SRC valUniform); // 3-channel template-based constructor. Sets channels to individual values. template<typename SRC> IwValue(SRC valC1, SRC valC2, SRC valC3); // 4-channel template-based constructor. Sets channels to individual values. template<typename SRC> IwValue(SRC valC1, SRC valC2, SRC valC3, SRC valC4); // Buffer template-based constructor. Sets values from a buffer of a specific type. template<typename SRC> IwValue(SRC *pBuffer, unsigned int channels); // Buffer parameter-based constructor. Sets values from a buffer of a specific type. IwValue(void *pBuffer, IppDataType type, unsigned int channels); // Uniform template setter. Sets channels to one value. template<typename SRC> void SetValue(SRC valUniform); // 3-channel template setter. Sets channels to individual values. template<typename SRC> void SetValue(SRC valC1, SRC valC2, SRC valC3); // 4-channel template setter. Sets channels to individual values. template<typename SRC> void SetValue(SRC valC1, SRC valC2, SRC valC3, SRC valC4); // Buffer template-based setter. Sets values from a buffer of a specific type. template<typename SRC> void SetValue(SRC *pBuffer, unsigned int channels); // Buffer parameter-based setter. Sets values from a buffer of a specific type. void SetValue(void *pBuffer, IppDataType type, unsigned int channels); // Returns number of initialized values. int ValuesNum() const; // IwValue to the Ipp64f cast operator. inline operator DST () const; // IwValue to the Ipp64f* cast operator. inline operator DST* () const; // IwValue to the const Ipp64f* cast operator. inline operator const DST* () const; private: int m_values; // Number of initialized values. DST m_val[4]; // Reserve 4 channels. }; typedef IwValue<Ipp64f> IwValueFloat; typedef IwValue<Ipp32s> IwValueInt;

iwTypeToSize

Converts IppDataType to actual length, in bytes. Returns the size of IppDataType, in bytes.

IW_DECL_CPP(int) iwTypeToSize( IppDataType type // Data type );

iwTypeIsFloat

Returns 1 if data type is of float type, and 0 otherwise.

IW_DECL_CPP(int) iwTypeIsFloat( IppDataType type // Data type );

iwTypeGetMin

Returns minimum possible value for the specified data type.

IW_DECL_CPP(double) iwTypeGetMin( IppDataType type // Data type for min value );

iwTypeGetMax

Returns maximum possible value for the specified data type.

IW_DECL_CPP(double) iwTypeGetMax( IppDataType type // Data type for max value );

iwTypeGetRange

Returns the range of values for the specified data type.

IW_DECL_CPP(double) iwTypeGetRange( IppDataType type // Data type for a range value );

iwValueSaturate

Casts double value to input type with rounding and saturation.

IW_DECL_CPP(double) iwValueSaturate( double val, // Input value IppDataType dstType // Data type for a saturation range );

iwValueRelToAbs

Converts a relative value in range of [0, 1] to an absolute value according the specified type.

IW_DECL_CPP(double) iwValueRelToAbs( double val, // Relative value. From 0 to 1. IppDataType type // Data type for the absolute range )

IwTls

Template-based TLS abstraction layer class.

// Template-based TLS abstraction layer class. // This is an extention of C IwTls structure with automatic objects destruction template<class TYPE> class IwTls: private ::IwTls { public: // Default constructor IwTls(); // Default destructor ~IwTls(); // Allocates an object for a current thread and returns a pointer to it TYPE* Create(); // Releases an object for a current thread void Release(); // Releases objects for all threads void ReleaseAll(); // Returns pointer to an object for a current thread TYPE* Get() const; private: // Object destructor static void __STDCALL TypeDestructor(void *pData); };

IwSetCpuFeaturesRegion

Sets Intel IPP optimizations for the current region and restores the original optimizations at the end of the region.

// This class sets Intel IPP optimizations for the current region and restores previous optimizations at the region end class IwSetCpuFeaturesRegion { public: // Default constructor. Saves current enabled CPU features. IwSetCpuFeaturesRegion(); // Saves current enabled CPU features and sets new features mask. IwSetCpuFeaturesRegion(Ipp64u featuresMask); // Sets new features mask for the region. IppStatus Set(Ipp64u featuresMask); // Default destructor. Restores saved features mask. ~IwSetCpuFeaturesRegion(); private: Ipp64u m_stored; };

IppiPoint

For information about IppiPoint, see Structures and Enumerators in the Intel® Integrated Performance Primitives Developer Guide and Reference.