1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM. 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 // ************************************************************************* //