On Sunday, 12 August 2012 at 13:11:36 UTC, David wrote:
My implementation of py_mod:

int py_mod(int a, int b) {
    return cast(uint)a % b;
}

So a simple cast from signed to unsigned does exactly what I need (Prf_Jakob showed me that in IRC)

It seems to work when b is a power of 2, but not for other numbers. Example: -3 % 7 = 4, but cast(uint)-3 = 4294967293, and 4294967293 % 7 = 1.

How much does a cast cost? I mean is that even an extra asm instruction?

Casting ints to uints and back is free because the bits can remain the same (only the interpretation changes).

Reply via email to