4 ms·
But it’s faster! Don’t you prefer a solution that is correct half the time over a slow solution that is correct all the time?
by Skeime 4y ago
But it’s faster! Don’t you prefer a solution that is correct half the time over a slow solution that is correct all the time?
- thaumasiotes 4y agoAll of them are correct. There isn't a language in the table that will give you false information.
- Aardwolf 4y agoIs it really faster? If you want to modulo with powers of 2, you can use bit-and with a power of two minus 1, that has the good behavior and is definitely faster than what the one outputting negative values does. Or do you mean if based on integer division? I don't know what is fastest to implement in hardware for that one to be honest.
- Skeime 4y agoAt least that’s the reason I’ve heard for preferring C-style mod. Or rather, round-to-zero integer division it faster than round-to-negative-infinity integer division and arguably, you should choose / and % such that a = (a / b) * b + (a % b) always holds. This then forces the strange convention for %.
- LegionMammal978 4y ago> round-to-zero integer division it faster than round-to-negative-infinity integer division Do you have a source for this? Obviously, the big instruction sets natively implement round-to-zero division because that's what everyone already uses, but I've always attributed that to historical accident rather than first principles.
- Aardwolf 4y agoI'd even argue that flooring division is also more useful than round to zero and is also what binary shifting does. At least more useful for my use-cases (things like dealing with coordinates in game worlds, ...), but unlike for modulo, at least here I can imagine use cases where the other option, round to zero, is also useful (e.g. financial, ...)