1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
5 \\ / A nd | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation, either version 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
28 Misc. hashing functions, mostly from Bob Jenkins.
30 The Jenkins hashing function(s) is similar in speed to Paul Hsieh's
31 SuperFast hash, but is public domain, supports incremental hashing
32 and has been reported to have better characteristics.
33 It is also what postgresql seems to be using.
36 http://burtleburtle.net/bob/c/lookup3.c
37 and HasherInt.H for a specialized version
42 \*---------------------------------------------------------------------------*/
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56 //- Bob Jenkins's 96-bit mixer hashing function (lookup3)
57 // @param[in] data - a character stream
58 // @param[in] len - the number of bytes
59 // @param[in] seed - the previous hash, or an arbitrary value
60 unsigned Hasher(const void* data, size_t len, unsigned seed = 0);
62 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
64 } // End namespace Foam
66 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70 // ************************************************************************* //