Date: Thu, 08 Jan 2009 22:56:59 +0100 From: =?UTF-8?B?VsOhY2xhdiBIYWlzbWFu?= <v.haisman@sh.cvut.cz> To: Bruce Evans <brde@optusnet.com.au>, Vaclav Haisman <v.haisman@sh.cvut.cz>, imp@FreeBSD.ORG, freebsd-gnats-submit@FreeBSD.ORG, freebsd-standards@FreeBSD.ORG Subject: Re: standards/130067: Wrong numeric limits in system headers? Message-ID: <496676AB.9040905@sh.cvut.cz> In-Reply-To: <20090106190313.GA15233@zim.MIT.EDU> References: <200812302231.mBUMVUtf092910@www.freebsd.org> <20081231215445.S3923@delplex.bde.org> <20090106190313.GA15233@zim.MIT.EDU>
next in thread | previous in thread | raw e-mail | index | archive | help
David Schultz wrote, On 6.1.2009 20:03: > On FreeBSD/i386, long doubles are represented with 64 bits of > precision, but computations are performed with 53 bits of > precision. In a sane world, this discrepancy wouldn't exist, but > for reasons I won't get into, they do, and probably always will. > > C99 defines the LDBL constants based on what can be represented, > not what can be computed as the result of arithmetic operations, > so my interpretation is that the values in float.h are correct, > though confusing. I am not language lawyer but even if it were true that the constants are right, there is still the problem that they (especially the LDBL_MAX value) are useless with the provided GCC. Either GCC or the headers should be changed. Otherwise the constants are rather useless and unusable. -- VH
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?496676AB.9040905>