|
Boost Users : |
Subject: Re: [Boost-users] Convert big endian to little endian (floating point values)
From: Jeff Garland (azswdude_at_[hidden])
Date: 2015-12-08 19:07:34
Not currently -- right from the docs under floating point support it sez...
http://www.boost.org/doc/libs/1_59_0/libs/endian/doc/index.html
Support for floating point types was removed from Boost 1.58.0 because
there was not enough time to resolve reliability concerns. It is expected
that floating point support will be available in Boost 1.59.0.
Since those are the 1.59 docs I'd infer that it wasn't fixed in 1.59.
Jeff
On Tue, Dec 8, 2015 at 3:18 PM, Martin Vymazal <martin.vymazal_at_[hidden]>
wrote:
> On 2015-12-08 22:48, Maarten de Vries wrote:
>
>> On 8 December 2015 at 22:14, Martin Vymazal <martin.vymazal_at_[hidden]>
>> wrote:
>>
>> Hi,
>>>
>>> ok, here's the whole story. We have a code that computes some data,
>>> compresses them through zlib and saves as binary. We also use our
>>> own utility to postprocess the compressed file and convert it to
>>> human-readable format.
>>>
>>> What happened recently is that the code ran on a big-endian machine
>>> and since zlib preserves the endian-ess of the data, it generated a
>>> binary with big-endian doubles. We would like to have the
>>> possibility of bringing that file on a little-endian machine (say
>>> user's laptop) and postprocess there, instead of doing everything on
>>> the big-endian machine. Do you have an alternative suggestion how to
>>> approach this problem? Let's assume that writing the output data in
>>> any other format than the current one is not possible.
>>>
>>> I am also still interested in knowing whether boost (1.59) supports
>>> conversions between endian representations of floating-point values.
>>>
>>
>> If you absolutely must, the easiest way to do this is to read the data
>> as if it's an unsigned integer type (of the correct size), convert
>> endianness, then reinterpret_cast (or something similarly horrible) to
>> the floating point type.
>>
>> Of course, not relying on the platform specific bit representation of
>> primitive data types when serializing data is a much better idea.
>>
>> -- Maarten
>>
>
> What would be a possible approach to save the data without 'relying on the
> platform specific bit representation of primitive data types' as you put
> it? I can not save the data as plain ascii text, because the files would
> simply be huge (the're already big as they are). Is there some more
> intelligent solution? I'm not a software engineer, so I'd be happy to hear
> what is the common practice here.
>
> I will also try one last time: does boost support conversion of floating
> point types or not? The website says so, but it doesn't work for me. I am
> not asking because I plan to use this functionality, I'm simply curious
> since I already started playing with it.
>
>
> Martin
>
>
>
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
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