Boost logo

Boost Users :

From: Daryle Walker (darylew_at_[hidden])
Date: 2008-08-28 05:13:14


On Aug 27, 2008, at 4:38 PM, Bo Peng wrote:

>> I have an alternate suggestion: what about continued fractions?
>> Turn the
>> floating point value into a list of integers. This works no
>> matter what
>> f.p. systems the source and destination use. You just need a
>> portable
>> integer serialization format.
>
> Then why cannot we use IEEE745 format for float serialization on
> all systems?

Because I don't think that the IEEE-754 internal format is as stable
as you think it is. (Looking at Wikipedia's entries on IEEE-754 and
754r, there is a standard conceptual format, but problem is how do
various implementations carry out the internal bit-wise format. Room
for interpretation will doom your plan.)

> 1. If a systems is IEEE745 compatible, serialize float numbers
> directly. This will work 99.9% of the times, and will be very
> efficient.
> 2. If a system is not IEEE745 compatible, to serialize a float number,
> we write the number as 32 or 64 continuous bits, in IEEE745 format, to
> de-serialize a float number, we read the number in IEEE745 formats and
> write in native float format. An intermediate string representation
> can be used for the translations.

The string or "direct" conversions may introduce rounding errors.

> I mean, these continuous IEEE745 bits are equivalent to your "portable
> integer serialization format", but will be much more efficient on
> IEEE745 compatible systems.

Is it worth potentially screwing 0.01% of your customers when you may
not have to?

-- 
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net