f117f45d86
Correct own mistake in 3e499c1a
2015-12-13 01:57:57 +11:00
3e499c1a31
Cleanup: sync edgehash w/ ghash remove logic
2015-11-29 17:51:12 +11:00
09c2bff32f
Cleanup: rename hash -> bucket_index, edgehash API
...
Was confusing since a hash isn't typically used as an index on its own.
Also C99 for loop for bucket resize loop.
2015-11-29 17:51:12 +11:00
472599402f
Cleanup: ghash/edgehash style
...
Call functions on own lines (nicer for debugging)
2015-11-29 17:51:12 +11:00
5d30c23c35
doxygen: corrections/updates
...
Also add depsgraph & physics
2015-05-20 14:12:22 +10:00
12661de087
Remove invalid assert
2015-04-09 13:00:58 +10:00
808de65d91
EdgeHash: ensure function, avoids multiple lookups
2015-04-07 10:53:20 +10:00
d4aaa4f9b6
cleanup: use const for smallhash & minor edits
2014-12-18 13:12:25 +01:00
15bde0dbea
Docs: comments (hash table & beauty fill)
2014-12-17 09:58:23 +01:00
83cbcefac8
Add edgehash remove, clear functions, Heap clear
...
Edgehash was missing removal functions (remove, popkey, clear),
since it wasn't needed so far, but is based on same code as ghash which has them.
also add heap clear() method so we can reuse heaps.
(needed for upcoming fix).
2014-12-09 00:32:20 +01:00
6be4b39526
GHash: add flag get/set for gset
2014-08-12 13:29:40 +10:00
1b6864752f
GHash/EdgeHash: avoid NULL check on iterator init
2014-08-07 11:19:55 +10:00
fa8ff63b48
Edgehash: Improve magic number for hashing
...
Gives consistently better results. Tested with wide variety of meshes.
2014-07-15 13:08:46 +10:00
8554fa2fad
GHash, EdgeHash: add debugging function to measure the hash quality
...
Can use to check on improvements to hash functions.
2014-07-14 23:59:47 +10:00
98cb7ad237
Remove redundant NULL check
2014-07-14 14:23:23 +10:00
365ff66987
GSet, GHash: Add BLI_gset_add, since its common to add members to a set
...
also rename BLI_edgeset_reinsert -> BLI_edgeset_add, in this case its the same.
2014-06-14 00:47:12 +10:00
9bff19fbfd
GHash, Edgehash: add lookup_default() funcs.
...
Returns a fallback argument when the key isn't found.
2014-04-22 01:36:59 +10:00
25c9ea8cb3
GHash, EdgeHash: hint on unlikely branch
...
also avoid searching buckets for empty hashes
2014-04-21 02:50:07 +10:00
5580afb5df
GHash/Edgehash: make simple iterator checking functions inline.
...
also remove NULL check, only a few areas made use of this.
2014-04-08 15:50:38 +10:00
412826a504
Mempool: delay allocating an initial chunk, its not always used
2014-04-08 12:58:56 +10:00
af59ee340f
Mempool: remove BLI_MEMPOOL_SYSMALLOC, MEM_* allocs are more efficient now
2014-04-05 12:14:05 +11:00
2097e621ed
Code cleanup: use r_ prefix for return args
2014-03-16 03:26:23 +11:00
7acb7cb897
Replace XOR swapping by default ("naive", with extra var) one.
...
Ref: http://en.wikipedia.org/wiki/XOR_swap_algorithm , modern compilers/CPUs are much more efficient with "naive" algo than XOR one.
Doubled check, for me in an optimized build, XOR is several times slower than naive algo.
2014-01-21 15:50:44 +01:00
f9d5bccb06
code cleanup: spelling
2013-10-31 23:52:44 +00:00
d59b4752e4
add hash iterator functions to access the pointer to the value.
2013-09-02 02:58:53 +00:00
2924a02a35
move strict compiler checks into a header so its easier to manage in one place (pragmas were copied around).
...
also enable more strict warnings for BLF (which had some incorrect casts).
2013-09-01 00:46:04 +00:00
b8547074e1
mempool internal change, use unsigned ints where possible (less overhead),
...
also quiet compiler warning for BLI_LINKSTACK_FREE macro.
2013-08-30 21:32:57 +00:00
1dba986505
internal changes to ghash/edgehash, reorganize to split out resizing the hash from insertion.
2013-08-26 13:41:13 +00:00
762e7da976
add some safety checks in debug mode to ensure sets/hashes aren't confused.
2013-08-26 09:37:15 +00:00
3b414b9859
minor changes to edgehassh/ghash
...
- no need to zero vars when freeing ghash
- de duplicate ghash remove code.
- edgehash clear now works more like ghash.
2013-08-25 21:02:31 +00:00
bbce51d116
replace hashes with sets where possible.
2013-08-25 20:03:45 +00:00
1d5eff36f5
BKI_gset and EdgeSet api, use when hash values aren't used (reuses ghash internally without allocating space for the value).
2013-08-25 20:00:19 +00:00
e2bd3a4644
clearing the mempool can now keep more then a single element reserved.
2013-08-25 16:16:38 +00:00
3a9eb9b497
doxygen docs for ghash/edgehash
2013-08-25 12:17:46 +00:00
7c65015ab8
use ints for ghash/edgehash flags, since its allocated theres not much point to try save a few bytes here.
2013-08-24 20:16:14 +00:00
585272fbcf
cloth was using edgehash not quite correctly:
...
- was ordering vertex args unnecessarily.
- was adding the same edges multiple times into the edgehash.
2013-08-24 16:06:18 +00:00
aefe93d909
revert bucket size change (edgehash was this way for years, since r26206, ghash since r57657)
...
having 2 free buckets for each entry is faster but uses more memory.
use the original size, best case 3 entries per bucket.
2013-08-24 15:09:57 +00:00
f2acb10b6b
edge hash: take an arg for the guarded-malloc string (as ghash does)
2013-08-24 13:08:55 +00:00
9c090cecfe
ghash and edgehash api, allow newly defined hashes to take in the size of the hash as an arg (avoids resizing in simple cases when the hash is created and filled immediately).
2013-08-24 13:04:03 +00:00
4dd9353e56
ghash/edgehash flag wasn't being initialized for new hashes. also init vars in same order for ghash/edgehash.
2013-08-21 20:21:42 +00:00
754b4ab3bc
add hash function BLI_ghash_assign, BLI_edgehash_assign
...
avoids remove,insert and only hashes the key once.
2013-08-18 03:41:39 +00:00
ee2d95f850
minor api cleanup for ghash/edgehash
...
- use single inlined lookup function.
- move comments into source.
- pack iterator vars more efficiently.
2013-08-18 01:00:52 +00:00
fbb446dff6
add assert for hashes if an existing element is ever inserted into a ghash/edgehash.
...
the outliner does this intentionally, so add a flag to allow this situation optionally.
2013-08-18 00:36:04 +00:00
418011907c
remove nan copyrights from code added since blender become opensource (copy paste errors), also remove BKE_script.h
2013-07-02 10:14:59 +00:00
1a50be2d94
Make edgehash and ghash use the same limit for expanding buckets, r26206 changed ghash.
...
double checked and r26206 does indeed give a speedup, so change for edgehash too.
2013-06-22 22:30:56 +00:00
1fb980e7df
reduce sign conversion comparisons for smallhash and tweak warnings elsewhere.
2013-06-22 20:20:06 +00:00
0ac5028f2a
use unsigned ints for edgehash
2013-05-10 12:06:40 +00:00
62db610220
use unsigned int's for smallhash, avoids using ABS when converting an
...
int from a key.
2013-05-08 12:54:07 +00:00
319036f2d5
fix [ #35026 ] Curve build modifier
2013-04-22 12:00:37 +00:00
9f8070d047
code cleanup:
...
- define array sizes for functions that take vectors.
- quiet some -Wshadow warnings.
- some copy/paste error in readfile.c made it set the same particle recalc flag twice.
2012-10-20 08:02:18 +00:00