numeric_limits.cpp
Go to the documentation of this file.
00001 
00008 /*****************************************************************************
00009 ** Includes
00010 *****************************************************************************/
00011 
00012 #include <limits>
00013 #include "../../include/ecl/type_traits/numeric_limits.hpp"
00014 
00015 /*****************************************************************************
00016 ** Namespaces
00017 *****************************************************************************/
00018 
00019 namespace ecl {
00020 
00021 /*****************************************************************************
00022 ** Static Variables
00023 *****************************************************************************/
00028 const char numeric_limits<char>::one;
00029 const uint16 numeric_limits<char>::bits;
00030 const uint16 numeric_limits<char>::bytes;
00031 const char numeric_limits<char>::minimum;
00032 const char numeric_limits<char>::maximum;
00033 
00034 const unsigned char numeric_limits<unsigned char>::one;
00035 const uint16 numeric_limits<unsigned char>::bits;
00036 const uint16 numeric_limits<unsigned char>::bytes;
00037 const unsigned char numeric_limits<unsigned char>::minimum;
00038 const unsigned char numeric_limits<unsigned char>::maximum;
00039 
00040 
00041 const int16 numeric_limits<int16>::one;
00042 const uint16 numeric_limits<int16>::bits;
00043 const uint16 numeric_limits<int16>::bytes;
00044 const int16 numeric_limits<int16>::minimum;
00045 const int16 numeric_limits<int16>::maximum;
00046 
00047 const uint16 numeric_limits<uint16>::one;
00048 const uint16 numeric_limits<uint16>::bits;
00049 const uint16 numeric_limits<uint16>::bytes;
00050 const uint16 numeric_limits<uint16>::minimum;
00051 const uint16 numeric_limits<uint16>::maximum;
00052 
00053 const int32 numeric_limits<int32>::one;
00054 const uint16 numeric_limits<int32>::bits;
00055 const uint16 numeric_limits<int32>::bytes;
00056 const int32 numeric_limits<int32>::minimum;
00057 const int32 numeric_limits<int32>::maximum;
00058 
00059 const uint32 numeric_limits<uint32>::one;
00060 const uint16 numeric_limits<uint32>::bits;
00061 const uint16 numeric_limits<uint32>::bytes;
00062 const uint32 numeric_limits<uint32>::minimum;
00063 const uint32 numeric_limits<uint32>::maximum;
00064 
00065 const int64 numeric_limits<int64>::one;
00066 const uint16 numeric_limits<int64>::bits;
00067 const uint16 numeric_limits<int64>::bytes;
00068 const int64 numeric_limits<int64>::minimum;
00069 const int64 numeric_limits<int64>::maximum;
00070 
00071 const uint64 numeric_limits<uint64>::one;
00072 const uint16 numeric_limits<uint64>::bits;
00073 const uint16 numeric_limits<uint64>::bytes;
00074 const uint64 numeric_limits<uint64>::minimum;
00075 const uint64 numeric_limits<uint64>::maximum;
00076 
00077 /* Dummy precision is a useful concept borrowed from eigen. It is used to help define
00078  * fuzzy operators which is especially handy for comparing floats which are notorious with
00079  * a strict '=' operator.
00080  *
00081  * @sa eigen/include/ecl/Eigen3/src/Core/NumTraits.h
00082  */
00083 const numeric_limits<char>::Precision numeric_limits<char>::dummy_precision = 1e-5f;
00084 const numeric_limits<unsigned char>::Precision numeric_limits<unsigned char>::dummy_precision = 1e-5f;
00085 const numeric_limits<short>::Precision numeric_limits<short>::dummy_precision = 1e-5f;
00086 const numeric_limits<unsigned short>::Precision numeric_limits<unsigned short>::dummy_precision = 1e-5f;
00087 const numeric_limits<int>::Precision numeric_limits<int>::dummy_precision = 0.0;
00088 const numeric_limits<unsigned int>::Precision numeric_limits<unsigned int>::dummy_precision = 0.0;
00089 const numeric_limits<long>::Precision numeric_limits<long>::dummy_precision = 0.0;
00090 const numeric_limits<unsigned long>::Precision numeric_limits<unsigned long>::dummy_precision = 0.0;
00091 const numeric_limits<long long>::Precision numeric_limits<long long>::dummy_precision = 0.0;
00092 const numeric_limits<unsigned long long>::Precision numeric_limits<unsigned long long>::dummy_precision = 0.0;
00093 
00094 const float numeric_limits<float>::minimum = -std::numeric_limits<float>::max();
00095 const float numeric_limits<float>::maximum = std::numeric_limits<float>::max();
00096 const float numeric_limits<float>::dummy_precision = 1e-5f;
00097 
00098 const double numeric_limits<double>::minimum = -std::numeric_limits<double>::max();
00099 const double numeric_limits<double>::maximum = std::numeric_limits<double>::max();
00100 const double numeric_limits<double>::dummy_precision = 1e-12;
00101 
00102 const long double numeric_limits<long double>::minimum = -std::numeric_limits<long double>::max();
00103 const long double numeric_limits<long double>::maximum = std::numeric_limits<long double>::max();
00104 const long double numeric_limits<long double>::dummy_precision = 1e-15;
00108 }  // namespace ecl


ecl_type_traits
Author(s): Daniel Stonier
autogenerated on Mon Jul 3 2017 02:21:23