diff --git a/buddy/ChangeLog b/buddy/ChangeLog index eacb95c01..90e5a8cf9 100644 --- a/buddy/ChangeLog +++ b/buddy/ChangeLog @@ -1,3 +1,8 @@ +2011-11-12 Alexandre Duret-Lutz + + * src/kernel.h (PAIR, TRIPLE): Redefine these hash functions using + something that is simpler to compute. + 2011-08-28 Alexandre Duret-Lutz * examples/adder/adder.cxx (test_vector): Add parentheses to diff --git a/buddy/src/kernel.h b/buddy/src/kernel.h index 05cb98c13..8138a7534 100644 --- a/buddy/src/kernel.h +++ b/buddy/src/kernel.h @@ -153,9 +153,8 @@ extern bddCacheStat bddcachestats; /* Hashfunctions */ -#define PAIR(a,b) ((unsigned int)((((unsigned int)a)+((unsigned int)b))*(((unsigned int)a)+((unsigned int)b)+((unsigned int)1))/((unsigned int)2)+((unsigned int)a))) -#define TRIPLE(a,b,c) ((unsigned int)(PAIR((unsigned int)c,PAIR(a,b)))) - +#define PAIR(a,b) (((unsigned)a)+((unsigned)b)*12582917U) +#define TRIPLE(a,b,c) (((unsigned)a)+((unsigned)b)*12582917U+((unsigned)c)*4256249U) /* Inspection of BDD nodes */ #define ISCONST(a) ((a) < 2)