From: Vincent Lefevre <vincent@vinc17.net>
To: Alejandro Colomar <alx@kernel.org>
Cc: 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 12:46:00 +0100 [thread overview]
Message-ID: <20240303114600.GA3653@qaa.vinc17.org> (raw)
In-Reply-To: <ZePerBa3QAvoFVSR@debian>
On 2024-03-03 03:21:26 +0100, Alejandro Colomar wrote:
> Hi Morten,
>
> On Sat, Mar 02, 2024 at 09:02:24PM -0500, Morten Welinder wrote:
> > Thanks.
> >
> > There is (was?) already crlibm out there.
> > https://core-math.gitlabpages.inria.fr/ No particular need for wheel
> > reinvention here.
>
> crlibm doesn't seem to exist anymore.
The sources are still available at more non-official mirror, but
it is no longer maintained.
> Maybe just add some headers to core-math, and package it as a
> standalone library.
The issue is that it is not portable yet.
> > 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.
--
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
next prev parent reply other threads:[~2024-03-03 11:46 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 [this message]
2024-03-03 12:21 ` Alejandro Colomar
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=20240303114600.GA3653@qaa.vinc17.org \
--to=vincent@vinc17.net \
--cc=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 \
/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).