On Mon, Sep 5, 2022 at 2:09 AM Paul Zimmermann wrote: > Dear Rich, > > > Could you summaraize briefly what you have in mind, and what tradeoffs > > might be? Are these intended to be drop-in replacements for the > > existing standard functions, or implementations for the "cr" versions > > thereof? I have not followed closely the "mandatory requirement of > > correct rounding for mathematical functions in the next revision of > > the IEEE-754 standard" topic and how it relates to the future of C, > > but my vague recollection was that the direction folks were leaning > > was towards a separate set of cr*() functions or something. > > the current situation is: > > - IEEE 754 does not require correct rounding for mathematical functions > > - indeed, the C2X standard will reserve cr_xxx names for correctly rounded > functions > > - thus mathematical libraries will have essentially 3 choices: > > 0) either provide incorrectly rounded functions as (say) exp. > This is the current situation. > > 1) provide incorrectly rounded functions as exp, and correctly rounded > functions as cr_exp. > > 2) or provide only exp, with correct rounding (then cr_exp could be an > alias > for exp) > > It seems that LLVM-libc will go for 2), I have no news from other > libraries. > (fwiw, #2 is almost certainly what we'll do with bionic too.) > > But if > > it's possible to do correct rounding in a way that's all-wins > > (performance, size, quality of results) or nearly all wins (maybe > > slightly larger?), at least for select functions, that seems very > > interesting. > > If you look at Table II from https://hal.inria.fr/hal-03721525, you see > that > for *single* precision functions (binary32), indeed that's all-wins. > > Best regards, > Paul > >