[*] increase epsilon size for other quirks
match MSVCs ABI to some extent.
This commit is contained in:
parent
6c8bc1d01c
commit
6f13157ce3
@ -29,6 +29,11 @@ struct _AuNonStdLimits
|
|||||||
{
|
{
|
||||||
return Epsilon;
|
return Epsilon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static constexpr Type lowest()
|
||||||
|
{
|
||||||
|
return min();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -69,6 +74,8 @@ struct AuNumericLimits<unsigned long> : AuNumericLimits<unsigned int>
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO: clang x86 and x64 will need different hacks for [unsigned] long long
|
// TODO: clang x86 and x64 will need different hacks for [unsigned] long long
|
||||||
|
// Update: reece: i dont care enough to fully support non--Au-types for now.
|
||||||
|
// will fix
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct AuNumericLimits<bool> : _AuNonStdLimits<bool, false, true, true>
|
struct AuNumericLimits<bool> : _AuNonStdLimits<bool, false, true, true>
|
||||||
@ -94,38 +101,49 @@ struct _AuNonStdLimitsFP
|
|||||||
template <>
|
template <>
|
||||||
struct AuNumericLimits<float> : _AuNonStdLimitsFP<float>
|
struct AuNumericLimits<float> : _AuNonStdLimitsFP<float>
|
||||||
{
|
{
|
||||||
static double max()
|
static constexpr float max()
|
||||||
{
|
{
|
||||||
return 340282346638528859811704183484516925440.0000000000000000;
|
return 340282346638528859811704183484516925440.0000000000000000f;
|
||||||
}
|
}
|
||||||
|
|
||||||
static double min()
|
// Techincally not compatible with C++11!
|
||||||
|
// This is techincally ::lowest() in real c++
|
||||||
|
static constexpr float min()
|
||||||
{
|
{
|
||||||
return -340282346638528859811704183484516925440.0000000000000000;
|
return -340282346638528859811704183484516925440.0000000000000000f;
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr double epsilon()
|
static constexpr float epsilon()
|
||||||
{
|
{
|
||||||
return 0.000000000000000111;
|
return 1.192092896e-07F;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static constexpr float lowest()
|
||||||
|
{
|
||||||
|
return -(max());
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct AuNumericLimits<double> : _AuNonStdLimitsFP<double>
|
struct AuNumericLimits<double> : _AuNonStdLimitsFP<double>
|
||||||
{
|
{
|
||||||
static double max()
|
static constexpr double max()
|
||||||
{
|
{
|
||||||
return 1.7976931348623157e+308;
|
return 1.7976931348623158e+308;
|
||||||
}
|
}
|
||||||
|
|
||||||
static double min()
|
static constexpr double min()
|
||||||
{
|
{
|
||||||
return -2.2250738585072014e-308;
|
return -2.2250738585072014e-308;
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr double epsilon()
|
static constexpr double epsilon()
|
||||||
{
|
{
|
||||||
return 0.000000000000000111;
|
return 2.2204460492503131e-016;
|
||||||
|
}
|
||||||
|
|
||||||
|
static constexpr double lowest()
|
||||||
|
{
|
||||||
|
return -(max());
|
||||||
}
|
}
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user