ponce:
http://github.com/p0nce/gfm
Some of those things are at home in Phobos.Maybe there are ways to improve this ucent mul (avoiding magic constants, using foreach, using size_t, maybe with asm too and __ctfe):
else static if (op == "*")
{
uint[4] a = toParts();
uint[4] b = y.toParts();
this = 0;
for(size_t i = 0; i < 4; ++i)
for(size_t j = 0; j < 4 - i; ++j)
this += self(cast(ulong)(a[i]) * b[j]) << (32
* (i + j));
}
Bye,
bearophile
