From: Alejandro Colomar <alx@kernel.org>
To: Vincent Lefevre <vincent@vinc17.net>,
Morten Welinder <mwelinder@gmail.com>,
linux-man@vger.kernel.org, libc-alpha@sourceware.org,
jsm-csl@polyomino.org.uk, newbie-02@gmx.de
Subject: Re: Man page issues: logb, significand, cbrt, log2, log10, exp10
Date: Sun, 3 Mar 2024 13:21:25 +0100 [thread overview]
Message-ID: <ZeRrRgEvvxjvHi-K@debian> (raw)
In-Reply-To: <20240303114600.GA3653@qaa.vinc17.org>
[-- Attachment #1: Type: text/plain, Size: 1977 bytes --]
Hi Vincent,
On Sun, Mar 03, 2024 at 12:46:00PM +0100, Vincent Lefevre wrote:
> On 2024-03-03 03:21:26 +0100, Alejandro Colomar wrote:
> > Maybe just add some headers to core-math, and package it as a
> > standalone library.
>
> The issue is that it is not portable yet.
Well, one could package it just to the systems to which it is portable,
if that's useful. That's why a standalone library has more chances of
being available soon than glibc. You'd need to make it portable (and
other things) to put it in glibc; but if you say "here's libcore-math,
avaiable only in XXX systems", you could get distros to distribute it
already. And then provide headers that don't clash with glibc, such as
<core-math/*.h> or whatever.
>
> > > FWIW, it appears that the author of the glibc exp10 implementation
> > > agrees with me that the implementation is sub-standard:
> > >
> > > https://codebrowser.dev/glibc/glibc/math/e_exp10.c.html
> > >
> > > /* This is a very stupid and inprecise implementation. It'll get
> > > replaced sometime (soon?). */
> > > return __ieee754_exp (M_LN10 * arg);
> >
> > Hmmm. Still, it's simple. If pow(10, x) is strictly better, maybe one
> > can prove it and send a patch. Or for something better, it'll take more
> > work.
>
> If by "strictly better", you mean that for each input, it returns a
> result that is at least as accurate as the one returned by the above
> expression, then, probably no. The reason is that the rounding errors
> in the above expression may partly compensate on a random basis. So,
> for some proportion of inputs, you'll actually get an accurate result.
> And unless pow is designed to be almost correctly rounded, it will
> probably be sometimes worse.
Then glibc's current code is good, I guess. It's simple, and works for
most programs.
Have a lovely day!
Alex
--
<https://www.alejandro-colomar.es/>
Looking for a remote C programming job at the moment.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-03-03 12:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CANv4PNkVv_0eLgiSP3L_KfC-eZJaVLZ5AP1AGfD0GNrR5M4Hrg@mail.gmail.com>
[not found] ` <ZeEnJB96mMC5bfBz@debian>
[not found] ` <CANv4PNmMpiwfv5acr7U6VEVe7PE_AMTzkkpNoNN9jrtVzk_93Q@mail.gmail.com>
2024-03-02 21:54 ` Alejandro Colomar
2024-03-03 2:02 ` Morten Welinder
2024-03-03 2:21 ` Alejandro Colomar
2024-03-03 11:46 ` Vincent Lefevre
2024-03-03 12:21 ` Alejandro Colomar [this message]
2024-03-03 22:26 ` Morten Welinder
2024-03-04 12:17 ` Adhemerval Zanella Netto
2024-03-05 16:12 ` [PATCH v2 0/3] manual/math.texi: logb(3) and cbrt(3) fixes Alejandro Colomar
2024-03-05 16:12 ` [PATCH v2 1/3] manual: logb(x) is floor(log2(fabs(x))) Alejandro Colomar
2024-03-29 22:08 ` DJ Delorie
2024-03-29 23:00 ` Alejandro Colomar
2024-03-05 16:12 ` [PATCH v2 2/3] manual: floor(log2(fabs(x))) has rounding errors Alejandro Colomar
2024-03-30 0:24 ` DJ Delorie
2024-03-30 9:27 ` Alejandro Colomar
2024-03-30 9:30 ` Alejandro Colomar
2024-03-30 9:47 ` Andreas Schwab
2024-03-05 16:12 ` [PATCH v2 3/3] manual: Cube roots are rarely representable Alejandro Colomar
2024-03-30 0:27 ` DJ Delorie
2024-03-30 7:07 ` Paul Zimmermann
2024-03-30 16:51 ` DJ Delorie
2024-03-30 18:42 ` Alejandro Colomar
2024-03-30 18:50 ` DJ Delorie
2024-03-30 19:07 ` Alejandro Colomar
2024-03-31 20:38 ` [PATCH v3 0/4] manual: arith.texi and math.texi fixes Alejandro Colomar
2024-03-31 20:38 ` [PATCH v3 1/4] manual: logb(x) is floor(log2(fabs(x))) Alejandro Colomar
2024-03-31 20:38 ` [PATCH v3 2/4] manual: floor(log2(fabs(x))) has rounding errors Alejandro Colomar
2024-03-31 20:38 ` [PATCH v3 3/4] manual: Clarify return value of cbrt(3) Alejandro Colomar
2024-04-01 18:57 ` DJ Delorie
2024-03-31 20:38 ` [PATCH v3 4/4] manual: significand() uses FLT_RADIX, not 2 Alejandro Colomar
2024-04-01 19:09 ` DJ Delorie
2024-03-04 15:29 Man page issues: logb, significand, cbrt, log2, log10, exp10 Wilco Dijkstra
2024-03-05 8:14 ` Paul Zimmermann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZeRrRgEvvxjvHi-K@debian \
--to=alx@kernel.org \
--cc=jsm-csl@polyomino.org.uk \
--cc=libc-alpha@sourceware.org \
--cc=linux-man@vger.kernel.org \
--cc=mwelinder@gmail.com \
--cc=newbie-02@gmx.de \
--cc=vincent@vinc17.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).