Visible to Intel only — GUID: GUID-B163603C-A300-49CE-A592-00DDE84B3E93
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.