X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Futils.h;h=1cac625624501ab1725d870afbe98ac0a469fd01;hp=ebfc9804314a789d6657609ac1b80a9942a03a0c;hb=d7c5ca75b0fc9e58a8676681e3801869e47ad911;hpb=090348bcd9ac2104e1e387430aecd5c8b7289633 diff --git a/ginac/utils.h b/ginac/utils.h index ebfc9804..1cac6256 100644 --- a/ginac/utils.h +++ b/ginac/utils.h @@ -44,6 +44,13 @@ class dunno {}; unsigned log2(unsigned n); +/** Rotate bits of unsigned value by one bit to the left. + * This can be necesary if the user wants to define its own hashes. */ +inline unsigned rotate_left(unsigned n) +{ + return (n & 0x80000000U) ? (n << 1 | 0x00000001U) : (n << 1); +} + /** Compare two pointers (just to establish some sort of canonical order). * @return -1, 0, or 1 */ template