Boost logo

Boost :

From: Hugo Duncan (hugoduncan_at_[hidden])
Date: 2003-10-14 14:30:17


David Abrahams <dave_at_[hidden]> wrote:

> Deane Yang <deane_yang_at_[hidden]> writes:
>
>> This works well in physics, where one knows in advance pretty much
>> all dimensions that one is going to need.
>>
>> On the other hand, Hugo's approach would appear to allow for
>> compile-time definition of dimensions:
>
> Exactly as my approach does.

Yes, since the number of entries in your list can be changed.

> Tagging things with a DimensionType in that way will cause O(N^2)
> compile-time algorithms for computing the multiplication result,
> unless you use an MPL associative container, which, IIUC are not
> implemented yet. I posted a prototype a couple of weeks ago, in case
> you care.

I assume that there is a cost with either approach.

With the tagged approach the typelists have less elements.
By keeping the tags sorted i believe the cost is less than O(N^2).

I am no expert here and will happily defer to you.

>> The other quibble is that I also need fractional powers
>> of dimensions.
>
> The fractional power thing is strange, but OK.

Why strange? eg. it's sometimes useful to have the square root
of a length.

> That's why I suggest you look through the slides carefully. They
> provide a gentle introduction to the principles and structure behind
> the MPL.

I enjoyed reading it too!

>> I don't even know how to add fractions and reduce to lowest
>> terms in mpl yet.

Boost has a GCD compile time library.

Hugo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk