On 6/23/16 1:22 PM, Andrei Alexandrescu wrote:
So I was looking for an efficient exponentiation implementation, and
http://www.stepanovpapers.com/PAM.pdf has a nice discussion starting at
page 54. Stepanov's solution, however, duplicates code, so I eliminated it:
https://dpaste.dzfl.pl/e53acb41885a
The cost is the use of one goto. Can the code be restructured to not
need it?
Why is this not the same?
for(;;) // previously outer:
{
if (e % 2 != 0)
{
r = mul(r, b, overflow);
if (e == 1) return r;
}
b = mul(b, b, overflow);
e /= 2;
}
-Steve