public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/111741] New: gcc long double precision
@ 2023-10-09 17:12 bernardwidynski at gmail dot com
  2023-10-09 17:12 ` [Bug c/111741] " bernardwidynski at gmail dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: bernardwidynski at gmail dot com @ 2023-10-09 17:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111741

            Bug ID: 111741
           Summary: gcc long double precision
           Product: gcc
           Version: 11.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bernardwidynski at gmail dot com
  Target Milestone: ---

Created attachment 56081
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56081&action=edit
C program to compute sum of numbers 1, 2, 3, ... N

It is my understanding the long double in gcc has 80 bits precision.

I've run a simple program which shows that it is less than 80 bits precision.

The numbers 1, 2, 3, ... N are summed and compared with N*(N+1)/2

For the case where N = 2^32, the sums compare correctly.

For the case where N = 2^33, the sums are different.

2^33*(2^33-1)/2 is less than 80 bits in precision.

Why doesn't the long double have the capacity for this computation?

See attached program and output file.

This was run on Cygwin64 using gcc version 11.4.0 on an Intel Core i7-9700

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/111741] gcc long double precision
  2023-10-09 17:12 [Bug c/111741] New: gcc long double precision bernardwidynski at gmail dot com
@ 2023-10-09 17:12 ` bernardwidynski at gmail dot com
  2023-10-09 17:20 ` pinskia at gcc dot gnu.org
  2023-10-09 17:30 ` bernardwidynski at gmail dot com
  2 siblings, 0 replies; 4+ messages in thread
From: bernardwidynski at gmail dot com @ 2023-10-09 17:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111741

--- Comment #1 from bernardwidynski at gmail dot com ---
Created attachment 56082
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56082&action=edit
Output file

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/111741] gcc long double precision
  2023-10-09 17:12 [Bug c/111741] New: gcc long double precision bernardwidynski at gmail dot com
  2023-10-09 17:12 ` [Bug c/111741] " bernardwidynski at gmail dot com
@ 2023-10-09 17:20 ` pinskia at gcc dot gnu.org
  2023-10-09 17:30 ` bernardwidynski at gmail dot com
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-10-09 17:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111741

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
80bit is the full precission and that 80bits includes 1 bit sign bit, 64bits
for the mantissa and 15bits for the exponent.

So anything above 64bits will start to lose precission in the last digits.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/111741] gcc long double precision
  2023-10-09 17:12 [Bug c/111741] New: gcc long double precision bernardwidynski at gmail dot com
  2023-10-09 17:12 ` [Bug c/111741] " bernardwidynski at gmail dot com
  2023-10-09 17:20 ` pinskia at gcc dot gnu.org
@ 2023-10-09 17:30 ` bernardwidynski at gmail dot com
  2 siblings, 0 replies; 4+ messages in thread
From: bernardwidynski at gmail dot com @ 2023-10-09 17:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111741

--- Comment #3 from bernardwidynski at gmail dot com ---
Thanks for the quick response.

That explains it.

On Mon, Oct 9, 2023 at 10:20 AM pinskia at gcc dot gnu.org <
gcc-bugzilla@gcc.gnu.org> wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111741
>
> Andrew Pinski <pinskia at gcc dot gnu.org> changed:
>
>            What    |Removed                     |Added
>
> ----------------------------------------------------------------------------
>              Status|UNCONFIRMED                 |RESOLVED
>          Resolution|---                         |INVALID
>
> --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
> 80bit is the full precission and that 80bits includes 1 bit sign bit,
> 64bits
> for the mantissa and 15bits for the exponent.
>
> So anything above 64bits will start to lose precission in the last digits.
>
> --
> You are receiving this mail because:
> You reported the bug.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-10-09 17:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-09 17:12 [Bug c/111741] New: gcc long double precision bernardwidynski at gmail dot com
2023-10-09 17:12 ` [Bug c/111741] " bernardwidynski at gmail dot com
2023-10-09 17:20 ` pinskia at gcc dot gnu.org
2023-10-09 17:30 ` bernardwidynski at gmail dot com

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).