This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: Minimum floating-point requirements


On Sat, Feb 15, 2014 at 11:49:53AM -0500, David Edelsohn wrote:
> > The PowerPC port is not just for recent POWER server hardware and whatever
> > applications thereon care about performance of certain long double
> > operations but not about accuracy and exceptions in cases where the
> > present functions are defective.  I'm thinking more in terms of embedded
> > and general-purpose GNU/Linux distributions that support a wide range of
> > processors and where consistency between different architectures is
> > important.  And I consider consistency between different architectures to
> > be one of the great strengths of the GNU system as a whole.
> 
> The POWER long double format, including its peculiarities and
> limitations, has existed for over 20 years. It has performed to the
> satisfaction of a huge number of customers without this additional
> conformance. No one has requested this additional conformance except
> people who are concerned about conformance for conformance sake.

That's not true. In order to be able to reason about rounding, you
need IEEE semantics that IBM double-double does not provide. Of course
you could refrain from using long double and stick to the standard
IEEE types, but this doesn't work on i386, where FLT_EVAL_METHOD==2
and float_t and double_t are both long double; in that case, trying to
do any reasoning about rounding with float or double is futile and you
have to use long double.

It would be nice to just be able to write programs that need to have
well-defined rounding semantics using long double and not have to
worry about system-specific wackiness, but IBM double-double breaks
this. I make this complaint about IBM double-double as a floating
point programmer who specifically has to work around its brokenness.

Rich


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