From c5364249b2600f25155f4c7ac206b3d6ca0e5b06 Mon Sep 17 00:00:00 2001 From: Teddy Date: Mon, 12 Aug 2013 09:51:08 +0800 Subject: rectified a bug in `modulo` --- types.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'types.cpp') diff --git a/types.cpp b/types.cpp index 8611cc6..de7ef66 100644 --- a/types.cpp +++ b/types.cpp @@ -892,7 +892,7 @@ NumObj *IntNumObj::mod(NumObj *_r) { const mpz_class &rval = static_cast(_r)->val; if (rval == 0) throw NormalError(RUN_ERR_NUMERIC_OVERFLOW); mpz_class ret = val % rval; - if (sgn(ret) != sgn(rval)) + if (ret != 0 && sgn(ret) != sgn(rval)) ret = ret + rval; return new IntNumObj(ret); } -- cgit v1.2.3