]> www.ginac.de Git - ginac.git/blobdiff - ginac/utils.h
Improved dummy index renaming.
[ginac.git] / ginac / utils.h
index 6a8739cf2048d89f0b0b94154abe81b267bdce65..e3262c4026994a7245f0d07ce3d07e8d0d926486 100644 (file)
@@ -58,14 +58,18 @@ inline int compare_pointers(const T * a, const T * b)
        return 0;
 }
 
-/** Rotate bits of unsigned value by one bit to the left. */
-inline unsigned rotate_left(unsigned n)
-{
-       return (n & 0x80000000U) ? (n << 1 | 0x00000001U) : (n << 1);
-}
+#if SIZEOF_VOID_P == SIZEOF_INT
+typedef unsigned int p_int;
+#elif SIZEOF_VOID_P == SIZEOF_LONG
+typedef unsigned long p_int;
+#elif SIZEOF_VOID_P == SIZEOF_LONG_LONG
+typedef unsigned long long p_int;
+#else
+typedef unsigned long p_int;
+#endif
 
 /** Truncated multiplication with golden ratio, for computing hash values. */
-inline unsigned golden_ratio_hash(unsigned n)
+inline unsigned golden_ratio_hash(p_int n)
 {
        // This function works much better when fast arithmetic with at
        // least 64 significant bits is available.