|
Boost : |
From: Matthias Schabel (boost_at_[hidden])
Date: 2007-03-30 10:26:36
>> Steven - are you OK with the changes I've committed to the sandbox?
>> I'm still not 100% happy with the angle syntax, but it isn't obvious
>> to me how to improve it...
>
> You're misusing dimensionless_quantity....
Not sure what you mean - I need to preserve system information in
dimensionless quantities to make the trig functions properly
invertible : that is acos(cos(theta)) == theta should hold true...
> Did you run the tests and examples?
The only one that needed changing was test_dimensionless_quantity
because mutating value() had not been removed and there were a number
of tests relying on that. I'll remove them and put together a test on
quantity_cast/from_value when the syntax is stable...
>> I'm also a little concerned about the
>> runtime optimization issues raised - I'll take a look at the assembly
>> generated by gcc. I was particularly surprised by the Intel compiler
>> performance. I believe Intel bought the KAI C++ compiler that was
>> well known to be extremely good at optimization in the presence of
>> template code (in particular expression templates)...
>
> We could try comparing it to a simple wrapper. If
> that is slower than double than there is nothing
> we can do to improve perfomance.
I agree; I'll look into seeing how difficult it would be to have a
non-dimension checking quantity wrapper class that allows us to
preserve syntax but doesn't bother to do metaprogramming. Conversions
will clearly be a problem in this case...
Matthias
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk