Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #138886
| From | "Rick C. Hodgin" <rick.c.hodgin@gmail.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: storing and retrieving a double may show a difference? |
| Date | 2018-12-21 12:57 -0500 |
| Organization | Liberty Software Foundation |
| Message-ID | <pvj9ev$2im$1@dont-email.me> (permalink) |
| References | (1 earlier) <499a90dd-d54d-4d5e-8357-3971b41bbc1c@googlegroups.com> <dfea3799-9803-4238-9596-4eb241454c31@googlegroups.com> <vJ7TD.51875$9q81.9099@fx12.am4> <pvj3ic$reu$1@dont-email.me> <072134ca-5434-4543-a557-f2011b8c9127@googlegroups.com> |
On 12/21/2018 12:05 PM, chanrasjid@gmail.com wrote:
> On Saturday, December 22, 2018 at 12:15:16 AM UTC+8, Rick C. Hodgin wrote:
>> It's the PC bits:
>>
>> Page 12
>> http://home.agh.edu.pl/~amrozek/x87.pdf
>>
>> 00b -- 24-bit precision
>> 01b -- Reserved
>> 10b -- 53-bit precision
>> 11b -- 64-bit precision
>
> It would be an issue for me as I just rely on what Arch Linux gives me. But I can accept such minor differences.
The differences relate to how accurate the computations are. If you
use 24-bit precision, you can have losses at 2^(-23) bits, which means
every value beyond the approximately 7th significant digit will be
trash. If you use 53 bits, then every value beyond the approximately
15th digit will be trash. And using 64-bit precision will get you
approximately 17-18 significant digits.
> But can I set full bits in gcc compiler flags?
I don't typically use GCC, but IIRC there are intrinsics that allow you
to set the values. I couldn't find them just now on a quick Google
search.
See "x87 FP Assists" on how these bits are set:
https://software.intel.com/en-us/articles/x87-and-sse-floating-point-assists-in-ia-32-flush-to-zero-ftz-and-denormals-are-zero-daz
Here's the assembly code to set those bits in the PC field. In GCC
you'll have to mangle it to get it to work with the way GCC works.
I'm not an expert in that mangling, so I can't help you there, but
these are the instructions:
unsigned short x;
_asm
{
// Load whatever it already is
fstcw x
// Mask off all the PC bits
and x,0fcffh
// Note: Right now it's set to 00b --24-bit precision
// Use one of these to set bit-level of precision
// or x,00200h // Set to 53-bit precision
// or x,00400h // Set to 64-bit precision
// Store it back into the FPU
fldcw x
}
Note: This won't affect direct loads and stores. It won't be converted.
But if you do any calculation then it will affect it. To get exact IEEE-
754 rounding when storing values there are some other things you must do.
GCC has a host of flags which follow IEEE-754 rules, or bypass them for
speed. Depending on your need, you may need to explore them.
--
Rick C. Hodgin
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-20 23:25 -0800
Re: storing and retrieving a double may show a difference? fir <profesor.fir@gmail.com> - 2018-12-21 00:56 -0800
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-21 07:02 -0800
Re: storing and retrieving a double may show a difference? Bart <bc@freeuk.com> - 2018-12-21 15:33 +0000
Re: storing and retrieving a double may show a difference? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2018-12-21 11:16 -0500
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-21 09:05 -0800
Re: storing and retrieving a double may show a difference? fir <profesor.fir@gmail.com> - 2018-12-21 09:43 -0800
Re: storing and retrieving a double may show a difference? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2018-12-21 12:57 -0500
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-21 20:06 +0000
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-21 17:10 +0000
Re: storing and retrieving a double may show a difference? fir <profesor.fir@gmail.com> - 2018-12-21 09:17 -0800
Re: storing and retrieving a double may show a difference? fir <profesor.fir@gmail.com> - 2018-12-21 09:20 -0800
Re: storing and retrieving a double may show a difference? fir <profesor.fir@gmail.com> - 2018-12-21 09:24 -0800
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-21 21:46 -0800
Re: storing and retrieving a double may show a difference? Manfred <noname@add.invalid> - 2018-12-22 21:41 +0100
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-22 21:08 +0000
Re: storing and retrieving a double may show a difference? Manfred <noname@add.invalid> - 2018-12-23 20:34 +0100
Re: storing and retrieving a double may show a difference? Tim Rentsch <txr@alumni.caltech.edu> - 2018-12-28 09:14 -0800
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-22 19:16 -0800
Re: storing and retrieving a double may show a difference? fir <profesor.fir@gmail.com> - 2018-12-21 09:12 -0800
Re: storing and retrieving a double may show a difference? James Kuyper <jameskuyper@alumni.caltech.edu> - 2018-12-21 09:23 -0800
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-21 20:03 +0000
Re: storing and retrieving a double may show a difference? James Kuyper <jameskuyper@alumni.caltech.edu> - 2018-12-22 00:10 -0500
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-22 11:06 +0000
Re: storing and retrieving a double may show a difference? mark.bluemel@gmail.com - 2018-12-21 01:00 -0800
What type of problem is it? (Was: storing and retrieving a double may show a difference?) gazelle@shell.xmission.com (Kenny McCormack) - 2018-12-21 09:10 +0000
Re: What type of problem is it? (Was: storing and retrieving a double may show a difference?) mark.bluemel@gmail.com - 2018-12-21 01:33 -0800
Re: storing and retrieving a double may show a difference? Bart <bc@freeuk.com> - 2018-12-21 10:16 +0000
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-21 11:25 +0000
Re: storing and retrieving a double may show a difference? James Kuyper <jameskuyper@alumni.caltech.edu> - 2018-12-21 08:06 -0500
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-21 07:13 -0800
Re: storing and retrieving a double may show a difference? James Kuyper <jameskuyper@alumni.caltech.edu> - 2018-12-21 09:10 -0800
Re: storing and retrieving a double may show a difference? Tim Rentsch <txr@alumni.caltech.edu> - 2018-12-28 08:16 -0800
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-21 08:09 -0800
Re: storing and retrieving a double may show a difference? "Chris M. Thomasson" <invalid_chris_thomasson@invalid.invalid> - 2018-12-22 17:23 -0800
Re: storing and retrieving a double may show a difference? "Chris M. Thomasson" <invalid_chris_thomasson@invalid.invalid> - 2018-12-22 17:58 -0800
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-22 19:30 -0800
Re: storing and retrieving a double may show a difference? Richard Damon <Richard@Damon-Family.org> - 2018-12-22 22:48 -0500
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-22 20:10 -0800
Re: storing and retrieving a double may show a difference? "Chris M. Thomasson" <invalid_chris_thomasson@invalid.invalid> - 2018-12-22 20:41 -0800
Re: storing and retrieving a double may show a difference? Barry Schwarz <schwarzb@dqel.com> - 2018-12-22 22:02 -0800
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-23 02:43 -0800
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-23 12:38 +0000
Re: storing and retrieving a double may show a difference? chanrasjid@gmail.com - 2018-12-23 05:12 -0800
Re: storing and retrieving a double may show a difference? fir <profesor.fir@gmail.com> - 2018-12-23 05:32 -0800
Re: storing and retrieving a double may show a difference? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-12-23 14:55 +0000
Re: storing and retrieving a double may show a difference? Richard Damon <Richard@Damon-Family.org> - 2018-12-23 07:43 -0500
Re: storing and retrieving a double may show a difference? Manfred <noname@add.invalid> - 2018-12-23 20:42 +0100
csiph-web