Precision
Eljay Love-Jensen
eljay@adobe.com
Mon Dec 22 00:46:00 GMT 2003
Hi Feodor,
#include <iostream>
using std::cout;
using std::endl;
template <typename FP>
int MantissaBitSize(FP one)
{
int rv = 1;
FP fXeno = one / 2;
FP fLast = one;
FP f = one + fXeno;
while(f != fLast)
{
fLast = f;
fXeno = fXeno / 2;
fLast = f + fXeno;
++rv;
}
return rv;
}
int main()
{
cout << "float : " << MantissaBitSize(1.0f) << endl;
cout << "double : " << MantissaBitSize(1.0 ) << endl;
cout << "long double: " << MantissaBitSize(1.0l) << endl;
}
HTH,
--Eljay
[Non-HTML encoded, this time. Sorry about that.]
More information about the Gcc-help
mailing list