mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Switched from old hashing functions to use Bob Jenkins' hash routine
- If the underlying type is contiguous, FixedList hashes its storage directly. - Drop labelPairHash (non-commutative) from fvMeshDistribute since FixedList::Hash does the right thing anyhow. - Hash<edge> specialization is commutative, without multiplication. - Hash<triFace> specialization kept multiplication (but now uLabel). There's not much point optimizing it, since it's not used much anyhow. Misc. changes - added StaticAssert to NamedEnum.H - label.H / uLabel.H : define FOAM_LABEL_MAX, FOAM_ULABEL_MAX with the values finally used for the storage. These can be useful for pre-processor checks elsewhere (although I stopped needing them in the meantime).
This commit is contained in:
@ -56,6 +56,12 @@ int main(int argc, char *argv[])
|
||||
Info<< "list:" << list
|
||||
<< " hash:" << FixedList<label, 4>::Hash<>()(list) << endl;
|
||||
|
||||
Info<< "FixedList<label, ..> is contiguous, "
|
||||
"thus hashing function is irrelevant: with string::hash" << endl;
|
||||
|
||||
Info<< "list:" << list
|
||||
<< " hash:" << FixedList<label, 4>::Hash<string::hash>()(list) << endl;
|
||||
|
||||
label a[4] = {0, 1, 2, 3};
|
||||
FixedList<label, 4> list2(a);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user