Boost Users :
Subject: Re: [Boost-users] [units] Question about user-defined value types
From: Olaf Meeuwissen (olaf.meeuwissen_at_[hidden])
Date: 2012-01-22 18:44:10
W Z <zwt2002_at_[hidden]> writes:
> The rational type right now has a numerator and a denominator, both
> are long type. I would like to support operations with rational
> numbers only to keep the number representation precise, so no double
> types should be involved.
> I first tried to get scaled units working with rational
> numbers. However, make_scaled_units takes in a scale and then
> internally returns a double value as a scale. I then wrote my own
> scale class but it's only partially working (conversion works one way
> only). It just seems like boost.units has a lot of places internally
> that use double as scale factors and conversion factors, and I'm
> looking for a cleaner way to make units library support rational
> numbers without re-writing a lot of code. Any idea would be greatly
I've only just started looking at Boost.Unit, but your comments made me
wonder if you're specifying the second template parameter to quantity.
The boost/units/quantity.hpp file has
template<class Unit, class Y = double> class quantity;
I would think that something like
quantity<length, rational> distance;
ought to work as expected.
BTW, you are aware of Boost.Rational, right?
Hope this helps,
-- Olaf Meeuwissen, LPIC-2 FLOSS Engineer -- AVASYS CORPORATION FSF Associate Member #1962 Help support software freedom http://www.fsf.org/jf?referrer=1962
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