X-Git-Url: https://ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Futils.h;h=a4af3300e38d8c9d45370a30d908513a6759c6f2;hb=a79a813e7249f793859d1d3b443d1931dbab94b6;hp=ebfc9804314a789d6657609ac1b80a9942a03a0c;hpb=619d77d2676f7f1a562fb9fefc0ba6754fe2d750;p=ginac.git diff --git a/ginac/utils.h b/ginac/utils.h index ebfc9804..a4af3300 100644 --- a/ginac/utils.h +++ b/ginac/utils.h @@ -4,7 +4,7 @@ * of any interest to the user of the library. */ /* - * GiNaC Copyright (C) 1999-2007 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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