Numeric Limits

This commit is contained in:
Isuru Samarathunga
2025-10-12 12:52:02 +05:30
parent 6ce5667ada
commit 07638ea7b3

View File

@ -22,8 +22,7 @@
namespace ia
{
template<typename _value_type>
using initializer_list = std::initializer_list<_value_type>;
template<typename _value_type> using initializer_list = std::initializer_list<_value_type>;
#undef VOID
typedef void VOID;
@ -52,49 +51,49 @@ namespace ia
typedef std::align_val_t ALIGN_T;
// pointer types
typedef VOID* PVOID;
typedef BOOL* PBOOL;
typedef CHAR* PCHAR;
typedef CHAR16* PCHAR16;
typedef VOID *PVOID;
typedef BOOL *PBOOL;
typedef CHAR *PCHAR;
typedef CHAR16 *PCHAR16;
typedef INT8* PINT8;
typedef INT16* PINT16;
typedef INT32* PINT32;
typedef INT64* PINT64;
typedef INT8 *PINT8;
typedef INT16 *PINT16;
typedef INT32 *PINT32;
typedef INT64 *PINT64;
typedef UINT8* PUINT8;
typedef UINT16* PUINT16;
typedef UINT32* PUINT32;
typedef UINT64* PUINT64;
typedef UINT8 *PUINT8;
typedef UINT16 *PUINT16;
typedef UINT32 *PUINT32;
typedef UINT64 *PUINT64;
typedef INT* PINT;
typedef UINT* PUINT;
typedef SIZE_T* PSIZE;
typedef SSIZE_T* PSSIZE;
typedef INT *PINT;
typedef UINT *PUINT;
typedef SIZE_T *PSIZE;
typedef SSIZE_T *PSSIZE;
typedef FLOAT32 PFLOAT32;
typedef FLOAT64 PFLOAT64;
// const pointer types
typedef CONST VOID* PCVOID;
typedef CONST BOOL* PCBOOL;
typedef CONST CHAR* PCCHAR;
typedef CONST CHAR16* PCCHAR16;
typedef CONST VOID *PCVOID;
typedef CONST BOOL *PCBOOL;
typedef CONST CHAR *PCCHAR;
typedef CONST CHAR16 *PCCHAR16;
typedef CONST INT8* PCINT8;
typedef CONST INT16* PCINT16;
typedef CONST INT32* PCINT32;
typedef CONST INT64* PCINT64;
typedef CONST INT8 *PCINT8;
typedef CONST INT16 *PCINT16;
typedef CONST INT32 *PCINT32;
typedef CONST INT64 *PCINT64;
typedef CONST UINT8* PCUINT8;
typedef CONST UINT16* PCUINT16;
typedef CONST UINT32* PCUINT32;
typedef CONST UINT64* PCUINT64;
typedef CONST UINT8 *PCUINT8;
typedef CONST UINT16 *PCUINT16;
typedef CONST UINT32 *PCUINT32;
typedef CONST UINT64 *PCUINT64;
typedef CONST INT* PCINT;
typedef CONST UINT* PCUINT;
typedef CONST SIZE_T* PCSIZE;
typedef CONST SSIZE_T* PCSSIZE;
typedef CONST INT *PCINT;
typedef CONST UINT *PCUINT;
typedef CONST SIZE_T *PCSIZE;
typedef CONST SSIZE_T *PCSSIZE;
typedef CONST FLOAT32 PCFLOAT32;
typedef CONST FLOAT64 PCFLOAT64;
@ -107,34 +106,46 @@ namespace ia
UINT16 Data3;
UINT8 Data4[8];
bool operator==(const _IA_GUID& other)
bool operator==(const _IA_GUID &other)
{
UINT64* myData = (UINT64*)(&Data1);
UINT64* otherData = (UINT64*)(&(other.Data1));
UINT64 *myData = (UINT64 *) (&Data1);
UINT64 *otherData = (UINT64 *) (&(other.Data1));
return ((myData[0] == otherData[0]) && (myData[1] == otherData[1]));
}
} GUID;
STATIC CONSTEXPR FLOAT32 FLOAT32_EPSILON = std::numeric_limits<FLOAT32>::epsilon();
STATIC CONSTEXPR FLOAT32 FLOAT64_EPSILON = std::numeric_limits<FLOAT64>::epsilon();
STATIC CONSTEXPR FLOAT32 FLOAT64_EPSILON = std::numeric_limits<FLOAT64>::epsilon();
namespace types
{
static BOOL __internal_validate_types()
{
if(sizeof(CHAR) != static_cast<size_t>(1)) return false;
if(sizeof(INT8) != static_cast<size_t>(1)) return false;
if(sizeof(INT16) != static_cast<size_t>(2)) return false;
if(sizeof(INT32) != static_cast<size_t>(4)) return false;
if(sizeof(INT64) != static_cast<size_t>(8)) return false;
if(sizeof(UINT8) != static_cast<size_t>(1)) return false;
if(sizeof(UINT16) != static_cast<size_t>(2)) return false;
if(sizeof(UINT32) != static_cast<size_t>(4)) return false;
if(sizeof(UINT64) != static_cast<size_t>(8)) return false;
if(sizeof(FLOAT32) != static_cast<size_t>(4)) return false;
if(sizeof(FLOAT64) != static_cast<size_t>(8)) return false;
if(sizeof(PVOID) < static_cast<size_t>(4)) return false;
if (sizeof(CHAR) != static_cast<size_t>(1))
return false;
if (sizeof(INT8) != static_cast<size_t>(1))
return false;
if (sizeof(INT16) != static_cast<size_t>(2))
return false;
if (sizeof(INT32) != static_cast<size_t>(4))
return false;
if (sizeof(INT64) != static_cast<size_t>(8))
return false;
if (sizeof(UINT8) != static_cast<size_t>(1))
return false;
if (sizeof(UINT16) != static_cast<size_t>(2))
return false;
if (sizeof(UINT32) != static_cast<size_t>(4))
return false;
if (sizeof(UINT64) != static_cast<size_t>(8))
return false;
if (sizeof(FLOAT32) != static_cast<size_t>(4))
return false;
if (sizeof(FLOAT64) != static_cast<size_t>(8))
return false;
if (sizeof(PVOID) < static_cast<size_t>(4))
return false;
return true;
}
}
}
} // namespace types
} // namespace ia