Boost logo

Boost Users :

From: Cromwell Enage (sponage_at_[hidden])
Date: 2007-01-23 10:34:42


--- Sami wrote:
> On 1/22/07, Sami wrote:
> >
> > Hi Tony,
> >
> > Thx for your reply first of all.
> >
> > On 1/22/07, Gottlob Frege wrote:
> > >
> > >
> > >
> > > On 1/22/07, Sami wrote:
> > > >
> > > > Hi All,
> > > >
> > > >
> > > >
> > > if (Pow == 0) return 1; // to do argue about
> the value of '0 to the
> > > 0'.
> > > if (Pow == 1) return r;
> > > return pow<Pow - 1>(r) * r;
> > >
> >
> > }
> > >
> > >
> > Now, why do you want it - I doubt that it will buy
> you anything in terms
> > of performance.
> > The issue is not particularly about performance,
> it is about being able
> > to do this at compile time; other than, well,
> trying out MPL. Your
> > resolution to the problem is quite nice, though
> that's not what I am asking.
> > My question is about MPL, not "how to do this with
> C++"...
> >
> > There should be a way of doing this using MPL with
> a single line of code.
> > Or, even compute integer power of integers and get
> a compile time result.
> > This is useful for many metaprograms and again,
> not a performance concern.
> >
> > Any ideas?
> >
> >
> >
>
> One more note. In my original post, I mentioned this
> constant sequence
> wrapper. If there were such a thing (is there?) then
> one could evaluate
> integer power of an integer at compile time. For
> instance:
>
> const unsigned SIZE = 3;
> const unsigned EIGHT = fold ( constant_sequence<
> int_<2>, SIZE >,
> int_<1>, times< _ , _ > :: type :: value ;
>
> This is only a thought. Maybe there is a better way
> of computing powers,
> without using fold or that constant_sequence
> thingy..
>
> As for the real powers, maybe there is a
> Boost.Fusion algorithm that can do
> it..

Actually, there are two MPL algorithms in the Boost
Vault < http://boost-consulting.com/vault/ >. Look
inside the Template Metaprogramming folder for
mpl_math.zip; the algorithms are integral_power and
power, IIRC.

                              Cromwell D. Enage

 
____________________________________________________________________________________
We won't tell. Get more on shows you hate to love
(and love to hate): Yahoo! TV's Guilty Pleasures list.
http://tv.yahoo.com/collections/265


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