diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2015-02-24 15:49:10 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2015-02-24 15:49:10 +0000 |
commit | 18f11f38f1d2f7bf89a167213048eb11e037a5f2 (patch) | |
tree | 39d724fa075810003deaa290387fd854bf751fdb | |
parent | f55e41f8e3c03edcc4451252c51034ed96704c56 (diff) | |
download | mpfr-18f11f38f1d2f7bf89a167213048eb11e037a5f2.tar.gz |
[src/mpfr-impl.h] Added SAFE_DIFF macro (safe difference).
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@9306 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | src/mpfr-impl.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mpfr-impl.h b/src/mpfr-impl.h index 315ce1e3e..8c3af99d4 100644 --- a/src/mpfr-impl.h +++ b/src/mpfr-impl.h @@ -1213,9 +1213,10 @@ do { \ #define IS_POW2(X) (((X) & ((X) - 1)) == 0) #define NOT_POW2(X) (((X) & ((X) - 1)) != 0) -/* Safe absolute value (to avoid possible integer overflow) */ +/* Safe absolute value and difference (to avoid possible integer overflow) */ /* type is the target (unsigned) type */ #define SAFE_ABS(type,x) ((x) >= 0 ? (type)(x) : -(type)(x)) +#define SAFE_DIFF(type,x,y) (MPFR_ASSERTD((x) >= (y)), (type)(x) - (type)(y)) #define mpfr_get_d1(x) mpfr_get_d(x,__gmpfr_default_rounding_mode) |