This is the mail archive of the 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: weird optimization in sin+cos, x86 backend

On 2012-02-09 12:36:01 -0500, Geert Bosch wrote:
> I think it would make sense to have a check list of properties, and
> use configure-based tests to categorize implementations. These tests
> would be added as we go along.
> Criteria:
>  [ ] Conforms to C99 for exceptional values 
>      (accepting/producing NaNs, infinities)

C is not the only language. Other languages (e.g. Java) may have
different rules. And IEEE 754-2008 also specifies different rules.
And you may want to consider LIA-2 too, which is again different...

>  [ ] Handles non-standard rounding modes,
>      trapping math, errno, etc.

By "non-standard rounding modes", I assume you mean "non-default
rounding modes".

>  [ ] Meets certain relative error bounds,
>      copy from Ada Annex G numerical requirements
>      (typically between 2 eps and 4 eps for much of range)

FYI, OpenCL also has numerical requirements.

>  [ ] Guaranteed error less than 1 ulp over all arguments,
>      typical max. error close to 0.5 ulp.

Instead, I would say faithful rounding (this is slightly stricter
for results close to powers of 2).

>  [ ] Correctly rounded for all arguments

I would add:

   [ ] Symmetry (e.g. cos(-x) = cos(x), sin(-x) = - sin(x)) in the
       symmetric rounding modes.

   [ ] Monotonicity (for monotonous functions).

(note that they are implied by correct rounding).

Vincent Lefèvre <> - Web: <>
100% accessible validated (X)HTML - Blog: <>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

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