I am hoping for insight into what looks like a partial multiplication.
#define LOW(x) ((x)&0xffffffff)
#define HIGH(x) ((x)>>32)
unsigned long long NotMultiply(unsigned long long x, unsigned long long y)
{
return HIGH(x)*HIGH(y) + LOW(x)*LOW(y);
}
This function is iterated multiple times, as follows:
unsigned long long DoBusyWork( unsigned long long x, unsigned long long y, int n)
{
while (n--)
x = NotMultiply(x,y);
return x;
}
Are there any shortcuts for calculating this result ?
What about for the case where x == y?
Any links to more information would help..