Exponential operator

BCS ao at pathlink.com
Fri Aug 7 12:01:04 PDT 2009


Reply to Jimbob,

> "bearophile" <bearophileHUGS at lycos.com> wrote in message
> news:h5h3uf$23sg$1 at digitalmars.com...
> 
>> Lars T. Kyllingstad:
>> 
>>> He also proposed that the overload be called opPower.
>>> 
>> I want to add to two small things to that post of mine:
>> http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalma
>> rs.D&article_id=95123
>> 
>> The name opPow() may be good enough instead of opPower().
>> 
>> And A^^3 may be faster than A*A*A when A isn't a simple number, so
>> always
>> replacing the
>> power with mults may be bad.
> It wont be on x86. Multiplication has a latency of around 4 cycles
> whether int or float, so x*x*x will clock around 12 cycles. The main
> instruction needed for pow, F2XM1, costs anywhere from 50 cycles to
> 120, depending on the cpu. And then you need to do a bunch of other
> stuff to make F2XM1 handle different bases.
> 

For constant integer exponents the compiler should be able to choose between 
the multiplication solution and a intrinsic solution.

also: http://en.wikipedia.org/wiki/Exponentiation#Efficiently_computing_a_power





More information about the Digitalmars-d mailing list