This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gnu software bugs - long double


On 11/02/2013 09:11 PM, David Given wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 02/11/13 19:48, Mischa Baars wrote:
[...]
I have written a couple of new trigonometric functions for use in
the library, and actually I need this to function properly.
The point is that 1.1 simply cannot be represented precisely as a IEEE
floating point number, for precisely the same reasons that 1/3 cannot
be represented precisely as a decimal number (1.3333...). This is
intrinsic to the way that floating point numbers work. If you try,
you'll get the closest number that IEEE floats *can* represent.

If you really need a completely precise representation of 1.1, then
you're not going to be able to use IEEE floats --- you'll have to use
decimals or some sort of fractional representation instead. I don't
know if gcc can help you with those, but there are endless helper
libraries that will do both for you. They're usually pretty slow, though.

You are mistaken :)

Indeed some rational numbers can only be represented up to a certain number of bits, like 1 / 3. Others can be exactly represented, like 1 / 8.

All real numbers, and therefore all rational numbers, can be represented up to a certain number of bits.

Converting 1.1 from string to double should not be a problem.

- -- ???? ?????????????? ????? http://www.cowlark.com ?????
? "There does not now, nor will there ever, exist a programming
? language in which it is the least bit hard to write bad programs." ---
? Flon's Axiom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iD8DBQFSdVxhf9E0noFvlzgRAjTFAJ4+UO9b60TkX+/lOa8C/5Hs/XMT3QCcCm8u
k2FWyohiL0rQtLUtotFkS/Q=
=LgFz
-----END PGP SIGNATURE-----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]