Intel IPP Integration Wrappers Developer Guide and Reference
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.