Blender Git Commits

Blender Git "temp-ghash-experiments" branch commits.

June 29, 2015, 15:18 (GMT)
Merge branch 'master' into temp-ghash-experiments

Note that 'store hash' feature was removed for now - to complex to maintain (conflicts)
and relatively easy to re-add if we ever really want this one day.

Conflicts:
source/blender/blenlib/BLI_ghash.h
source/blender/blenlib/intern/BLI_ghash.c
source/blender/blenlib/intern/hash_mm2a.c
source/blender/bmesh/tools/bmesh_region_match.c
tests/gtests/blenlib/BLI_ghash_performance_test.cc
tests/gtests/blenlib/BLI_ghash_test.cc
tests/gtests/blenlib/CMakeLists.txt
March 16, 2015, 12:46 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 13, 2015, 13:49 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 13, 2015, 09:39 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 9, 2015, 14:31 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 6, 2015, 13:06 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 6, 2015, 13:00 (GMT)
Making hash storage optional.

This required quite a bit of work, but storing hashes for 'simple' very quick
hashing/comparison functions is stupid (loss of space, and even introduces a
very small slow down), while with e.g. strings (which comparison and hasing
is quite expansive), it gives huge speedup (twice quicker insertion, about
33% quicker on lookup).

This makes lower-level code a bit less clear, since we add one 'child type' of Entry
for each case (GHash/GSet, and storing hash or not), but this also has the benefit
of being stricter when accessing entries' members...
March 5, 2015, 16:25 (GMT)
Cleanup (reduce a bit passing size of entries around by storing it in ghash itself).
March 5, 2015, 13:22 (GMT)
GTests GHash performance cleanup (strictly one test per GTest).
March 5, 2015, 13:10 (GMT)
Factorize gset/ghash add/reinsert functions.
March 5, 2015, 12:38 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 3, 2015, 08:01 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 2, 2015, 20:20 (GMT)
Merge branch 'master' into temp-ghash-experiments
March 2, 2015, 19:55 (GMT)
Grrr, thought I had added that file already!
March 2, 2015, 19:54 (GMT)
GHash: Add difference and symmetric_difference (with tests).

Also fix some issues in previous commits.

Notes about our 'symmetric_difference':
* name is taken from py, but our function takes multiple arguments,
and returns keys which are present in one and only one given ghash.
So we may want a better name for that
(real symmetric difference only accepts/works with two args)!
* Its code is a bit more complex than the others, think it's worth it though,
XOR is a really useful operation imho.
March 2, 2015, 15:03 (GMT)
GHash: add intersection (with tests).
March 2, 2015, 14:34 (GMT)
GHash: add Union operations (with tests).
March 1, 2015, 20:48 (GMT)
Minor optimization to strcmp hash helper - if both pointers are the same, then strings are the same...
March 1, 2015, 20:25 (GMT)
GHash: add copy/isdisjoint/isequal/issubset/issuperset, with gtests.

We still need union/intersection/difference/symetric_difference...
March 1, 2015, 17:45 (GMT)
Fix crashing GHashIterators.

Inlined accessors are using a another struct than Entry itself,
those two must match perfectly!

Also fix a few other minor typo/mistakes, and come back to modulo
bucket-hashing for now.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021