OpenFOAM
8
The OpenFOAM Foundation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Hasher.H
Go to the documentation of this file.
1
/*---------------------------------------------------------------------------*\
2
========= |
3
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4
\\ / O peration | Website: https://openfoam.org
5
\\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
6
\\/ M anipulation |
7
-------------------------------------------------------------------------------
8
License
9
This file is part of OpenFOAM.
10
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.
15
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
19
for more details.
20
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/>.
23
24
InNamespace
25
Foam
26
27
Description
28
Misc. hashing functions, mostly from Bob Jenkins.
29
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.
34
35
See also
36
http://burtleburtle.net/bob/c/lookup3.c
37
and HasherInt.H for a specialized version
38
39
SourceFiles
40
Hasher.C
41
42
\*---------------------------------------------------------------------------*/
43
44
#ifndef Hasher_H
45
#define Hasher_H
46
47
#include <cstddef>
48
49
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50
51
namespace
Foam
52
{
53
54
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55
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);
61
62
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
63
64
}
// End namespace Foam
65
66
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
67
68
#endif
69
70
// ************************************************************************* //
Foam::Hasher
unsigned Hasher(const void *data, size_t len, unsigned seed=0)
Bob Jenkins's 96-bit mixer hashing function (lookup3)
Definition:
Hasher.C:476
Foam
Namespace for OpenFOAM.
Definition:
atmBoundaryLayer.H:213
src
OpenFOAM
primitives
hashes
Hasher
Hasher.H
Generated by
1.8.13