On 1/21/19 2:33 AM, Paul Backus wrote:
On Monday, 21 January 2019 at 04:52:53 UTC, NaN wrote:
On Sunday, 20 January 2019 at 18:51:54 UTC, Steven Schveighoffer wrote:
On 1/20/19 1:28 PM, faissaloo wrote:
In Python -1%3 == 2 however in D -1%3 == -1
Is there a standard library function or something that gives me the Python version of modulo?

Hm... (n%3+3)%3 should work.

-Steve

You only need the

(n % 3) + 3

You need both:

(-3 % 3) + 3 == 3
((-3 % 3) + 3) % 3 == 0

Probably, this optimizes into better code, but maybe the optimizer already does this with the expression above:

auto tmp = n % 3;
if(tmp < 0)
   tmp += 3;

It's just not a nice single expression.

-Steve

Reply via email to