Remove trailing whitespace systematically
[foam-extend-3.2.git] / src / foam / primitives / hashes / Hasher / Hasher.H
blob288c6845fe5fd296962be7378c3693d26224d266
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     |
5     \\  /    A nd           | For copyright notice see file Copyright
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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/>.
24 InNamespace
25     Foam
27 Description
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.
35 SeeAlso
36     http://burtleburtle.net/bob/c/lookup3.c
37     and HasherInt.H for a specialized version
39 SourceFiles
40     Hasher.C
42 \*---------------------------------------------------------------------------*/
44 #ifndef Hasher_H
45 #define Hasher_H
47 #include <cstddef>
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 namespace Foam
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 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
68 #endif
70 // ************************************************************************* //