// This requires 'long long' (or an equivalent 64 bit type)---which is,
// unfortunately, not ANSI-C++-compliant.
// (Yet C99 demands it, which is reason for hope.)
unsigned long long l = n * 0x4f1bbcddULL;
return (unsigned)l;
// This requires 'long long' (or an equivalent 64 bit type)---which is,
// unfortunately, not ANSI-C++-compliant.
// (Yet C99 demands it, which is reason for hope.)
unsigned long long l = n * 0x4f1bbcddULL;
return (unsigned)l;