Talk:Exponentiation operator: Difference between revisions

From Rosetta Code
Content added Content deleted
(question about details on int^int behaviour)
Line 14: Line 14:


Yes. [[User:NevilleDNZ|NevilleDNZ]] 06:22, 19 February 2008 (MST)
Yes. [[User:NevilleDNZ|NevilleDNZ]] 06:22, 19 February 2008 (MST)

It should be specified also the return type; even for ''int''<sup>''int''</sup> it makes sense to return a real value, since if the exponent is negative, it is what we get mathemtically. Should we return an integer instead? (This means: if the exp is less than 0, the result is 0)

Revision as of 01:06, 8 December 2008

Fractional Exponents

This is for integer powers only right? No fractional exponents? --Mwn3d 05:58, 19 February 2008 (MST)

I believe that the REAL * REAL fraction can probably be done faster using some numerical equation. Eg simply

OP ** = ( REAL base, exponent )REAL: exp(log(base)*exponent); ~ # ... #

This above would work for fractional powers. For integral exponents the routine I provided is "sometimes" faster then alternatives, esp where the exponent is s power of two.

BTW: I wrote these routine as a hint to User:Short Circuit, and as a replacement to the mpz_class pow2(mpz_class exp) routine he contributed in Lucas-Lehmer_test#C++ (Which is probably painfully slow).

NevilleDNZ 06:11, 19 February 2008 (MST)

OK, but for this task, all that is required is intint and realint right? --Mwn3d 06:19, 19 February 2008 (MST)

Yes. NevilleDNZ 06:22, 19 February 2008 (MST)

It should be specified also the return type; even for intint it makes sense to return a real value, since if the exponent is negative, it is what we get mathemtically. Should we return an integer instead? (This means: if the exp is less than 0, the result is 0)