|
Boost : |
From: Hugo Duncan (hugoduncan_at_[hidden])
Date: 2003-10-16 18:19:52
Jan Langer <jan_at_[hidden]> wrote:
> Hugo Duncan wrote:
>>>> Agreed, but how do you use a unit such as BTU which is not defined
>>>> in terms of units of fundamental dimensions?
>>
>>> how about:
>>> quantity <double, energy> const btu = 1055 * joules;
>>
>> energy is not a fundamental dimension.
>>
>> joules = kg·m2/s2 [ M L^2 T^-2 ]
>
> yes of course. but why shouldn't it be used as the dimension of a
> quantity?
I think my issue is based on the assumption that per (quantity)
instance unit information would be possible, ie. that there is
not necessarily a "stored" unit for each dimension. This
then raises issues of expressions such as
quantity<double,power,watts> p; // stored units
quantity<double,energy> e = 10 * btu; // runtime units
quantity<double,time> t = 1 * min; // runtime units
p = e * t; // need to convert btu/min to watts
The expressions can obviously get arbirarily complex so it is
not possible to define all required conversions (eg btu/min to watts)
externally to the expressions where they are used.
Reasons for runtime units include
i) allowing user to input in arbitrary units
ii) facilitate financial calculations (where inputs have to
be keep in their input currency(==unit))
Hugo
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk