|
Boost Users : |
From: Pfligersdorffer, Christian (Christian.Pfligersdorffer_at_[hidden])
Date: 2008-02-21 04:54:29
Hello all,
we use fp_utilities in our portable binary archive implementation to
serialize floating point numbers. For doing so we found the functions
fp_traits<T>_impl::get_bits() and set_bits() to be exactly what we need.
In combination with Beman Dawes endian library we're able to transfer
binary data between ppc-32 and x86-32 reliably. This might serve as a
usecase since John Maddock pointed out serialization as a prominent
application of the library.
/**
* save floating point types
*
* We simply rely on fp_traits to extract the bit pattern into an
(unsigned)
* integral type and store that into the stream.
*
* \todo treat nan values using fp_classify
*/
template <typename T>
BOOST_DEDUCED_TYPENAME boost::enable_if<boost::is_floating_point<T>
>::type
save(const T & t, dummy<3> = 0)
{
using namespace boost::math::detail;
BOOST_DEDUCED_TYPENAME fp_traits<T>::type::bits bits;
fp_traits<T>::type::get_bits(t, bits);
save(bits);
}
As you can see our code depends on functions that apparently are not
part of the public interface and I wonder why. Perhaps I overlooked
something? Those interested in the full code can find it in the boost
vault.
To sum it up: We think the fp_utilities provide useful functionality and
our tests indicate reliability that can be counted on. So thank you
Johan Rade for this contribution!
Best Regards,
-- Christian Pfligersdorffer Software Engineering http://www.eos.info John Maddock wrote: > The review of Johan Rade's floating point utilities starts today. > > [...] > > 3) C++ locale facets: these will read and write non-finite > numbers in a portable and round-trippable way: that is not > otherwise possible with current C++ std library > implementations. These are particularly useful for > number-serialisation for example. > > Since the design is already specified by the C++ standard for > these facets, your review here should focus on > implementation, testing, documentation, and perhaps where in > Boost these should best be placed if accepted. > > These look to be a useful collection of utilities, so I'll > look forward to your reviews,
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