35 #ifndef _BLAZE_UTIL_LIMITS_H_
36 #define _BLAZE_UTIL_LIMITS_H_
105 template<
typename Type >
125 struct Limits<unsigned char>
129 static inline unsigned char inf() {
return std::numeric_limits<unsigned char>::max(); }
145 static inline char inf () {
return std::numeric_limits<char>::max(); }
149 static inline char ninf() {
return std::numeric_limits<char>::min(); }
161 struct Limits<signed char>
165 static inline signed char inf () {
return std::numeric_limits<signed char>::max(); }
169 static inline signed char ninf() {
return std::numeric_limits<signed char>::min(); }
181 struct Limits<wchar_t>
185 static inline wchar_t inf () {
return std::numeric_limits<wchar_t>::max(); }
189 static inline wchar_t ninf() {
return std::numeric_limits<wchar_t>::min(); }
201 struct Limits<unsigned short>
205 static inline unsigned short inf() {
return std::numeric_limits<unsigned short>::max(); }
221 static inline short inf () {
return std::numeric_limits<short>::max(); }
225 static inline short ninf() {
return std::numeric_limits<short>::min(); }
237 struct Limits<unsigned int>
241 static inline unsigned int inf() {
return std::numeric_limits<unsigned int>::max(); }
257 static inline int inf () {
return std::numeric_limits<int>::max(); }
261 static inline int ninf() {
return std::numeric_limits<int>::min(); }
273 struct Limits<unsigned long>
277 static inline unsigned long inf() {
return std::numeric_limits<unsigned long>::max(); }
293 static inline long inf () {
return std::numeric_limits<long>::max(); }
297 static inline long ninf() {
return std::numeric_limits<long>::min(); }
310 struct Limits<std::size_t>
314 static inline size_t inf() {
return std::numeric_limits<size_t>::max(); }
328 struct Limits<ptrdiff_t>
332 static inline ptrdiff_t
inf () {
return std::numeric_limits<ptrdiff_t>::max(); }
336 static inline ptrdiff_t ninf() {
return std::numeric_limits<ptrdiff_t>::min(); }
353 static inline float inf () {
return std::numeric_limits<float>::max(); }
357 static inline float ninf() {
return -std::numeric_limits<float>::max(); }
365 static inline float accuracy() {
return 1E-6F; }
369 static inline float fpuAccuracy() {
return 1E-12F; }
381 struct Limits<double>
385 static inline double inf () {
return std::numeric_limits<double>::max(); }
389 static inline double ninf() {
return -std::numeric_limits<double>::max(); }
397 static inline double accuracy() {
return 1E-8; }
401 static inline double fpuAccuracy() {
return 1E-15; }
413 struct Limits<long double>
417 static inline long double inf () {
return std::numeric_limits<long double>::max(); }
421 static inline long double ninf() {
return -std::numeric_limits<long double>::max(); }
429 static inline long double accuracy() {
return 1E-10L; }
433 static inline long double fpuAccuracy() {
return 1E-15L; }
Numerical limits of built-in data types.The Limits class provides numerical limits for the following ...
Definition: Limits.h:106
const Infinity inf
Global Infinity instance.The blaze::inf instance can be used wherever a built-in data type is expecte...
Definition: Infinity.h:1098
const Accuracy accuracy
Global Accuracy instance.The blaze::accuracy instance can be used wherever a floating point data type...
Definition: Accuracy.h:901
const Epsilon epsilon
Global Epsilon instance.The blaze::epsilon instance can be used wherever a floating point data type i...
Definition: Epsilon.h:901
Header file for basic type definitions.