[GIT] ppl/ppl(master): Optimized smod_2exp_signed_int.

Module: ppl/ppl Branch: master Commit: 21d120a07448821720acd415213f9b08a9a14338 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=21d120a074488...
Author: Abramo Bagnara abramo.bagnara@gmail.com Date: Tue May 4 13:07:37 2010 +0200
Optimized smod_2exp_signed_int.
---
src/checked_int.inlines.hh | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/checked_int.inlines.hh b/src/checked_int.inlines.hh index 79985cd..6217dc7 100644 --- a/src/checked_int.inlines.hh +++ b/src/checked_int.inlines.hh @@ -1310,8 +1310,8 @@ smod_2exp_signed_int(Type& to, const Type x, unsigned int exp, if (exp >= sizeof(Type) * CHAR_BIT) to = x; else { - Type m = Type(1) << (exp - 1); - to = (x & (m - 1)) - (x & m); + Type m = -(Type(1) << (exp - 1)); + to = (x + m) ^ m; } return V_EQ; }
participants (1)
-
Abramo Bagnara