On 1/21/19 10:54 AM, Matheus wrote:
On Monday, 21 January 2019 at 15:01:27 UTC, Steven Schveighoffer wrote:

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.


I don't think you can do this, imagine this case:

auto tmp = -1 % -3; // Note divisor in negative too.

tmp will be "-1" which already matches the Python way, so you can't add divisor anymore.

If the divisor is unknown, I hadn't considered the case. I was only considering the case where the divisor is a constant.

In that case, one can probably determine if the divisor is less than 0 before starting.

Not a Python user, just hoping to help answer questions :)

-Steve

Reply via email to