- there were previously no hashing mechanisms for lists so they would fall back to the definition for primitives and hash the memory location of the allocated List object. - provide a UList::Hash<> sub-class for inheritance, and also a global specialization for UList<T>, List<T> such that the hash value for List<List<T>> cascades properly. - provide similar function in triFace to ensure that it remains similar in behaviour to face. - added SymmHash to Pair, for use when order is unimportant. STYLE: use string::hash() more consistently - no particular reason to use Hash<word>() which forwards to string::hash() anyhow
102 lines
1.7 KiB
C++
102 lines
1.7 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: v1806 |
|
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
|
| \\/ M anipulation | |
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
stringList
|
|
(
|
|
"The quick brown fox jumps over the lazy dog"
|
|
"The best hash is the one you don't write yourself!"
|
|
)
|
|
|
|
|
|
labelList
|
|
(
|
|
0
|
|
1
|
|
100
|
|
1000
|
|
-1
|
|
-10
|
|
-100
|
|
100
|
|
)
|
|
|
|
labelListList
|
|
(
|
|
(0)
|
|
(0 0)
|
|
(0 0 0)
|
|
(0 1)
|
|
(100 1000)
|
|
(0 1 100 1000)
|
|
(100 1000)
|
|
)
|
|
|
|
faceList
|
|
(
|
|
(0 1 2 3 4 5)
|
|
(5 4 3 1 2 0)
|
|
(0 1 2 3 4 5)
|
|
(100 0 15)
|
|
(15 0 100)
|
|
)
|
|
|
|
// edges are hashed commutatively
|
|
edgeList
|
|
(
|
|
(0 1)
|
|
(1 0)
|
|
(45 100)
|
|
(100 45)
|
|
(128 1000)
|
|
(1000 128)
|
|
(100 45)
|
|
)
|
|
|
|
// triFaces are also hashed commutatively (via multiply/add)
|
|
triFaceList
|
|
(
|
|
(10 20 30)
|
|
(30 20 10)
|
|
(20 10 30)
|
|
)
|
|
|
|
|
|
labelPairList
|
|
(
|
|
(0 1)
|
|
(1 0)
|
|
(45 100)
|
|
(100 45)
|
|
(128 1000)
|
|
(1000 128)
|
|
(100 45)
|
|
)
|
|
|
|
|
|
labelPairPairList
|
|
(
|
|
((0 1) (1 0))
|
|
((45 100) (100 45))
|
|
((128 1000) (1000 128))
|
|
((45 100) (100 45))
|
|
)
|
|
|
|
|
|
wordPairList
|
|
(
|
|
("Yes" "No")
|
|
("True" "False")
|
|
("No" "Yes")
|
|
("False" "True")
|
|
)
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|