Skip to content

v1.2.0

Compare
Choose a tag to compare
@tzaeschke tzaeschke released this 14 Apr 15:33
fb80406

This release contains numerous improvements mostly related to performance:

  • Bugfix: FilterSphere was not working correctly. #27
  • Potentially BREAKING CHANGE: Refactored API of all methods that accept callbacks and filters to
    accept universal/forwarding references.
    Also changed filters and callback to not require const methods. #22
  • Clean up iterator implementations. #19
  • Make PhTree and PhTreeMultimap movable (move-assign/copy). #18
  • Potentially BREAKING CHANGE when using IsNodeValid() in provided filters:
    Changed bit_width_t from uin16_t to uint32_t. This improves performance of 3D insert/emplace
    on small datasets by up to 15%. To avoid warnings that meant that the API of FilterAABB and FilterSphere
    had to be changed to accept uint32_t instead of int. This may break some implementations. #17
  • DIM>8 now uses custom b_plus_tree_map instead of std::map. This improves performance for all operations, e.g.
    window queries on large datasets are up to 4x faster. Benchmarks results can be found in the issue. #14
  • postfix/infix field moved from Node to Entry. This avoids indirections and improves performance of most by ~10%.
    operations by 5-15%. #11
  • Entries now use 'union' to store children. #9
  • Avoid unnecessary find() when removing a node. #5
  • Avoid unnecessary key copy when inserting a node. #4
  • for_each(callback, filter) was traversing too many nodes. #2
  • Build improvements for bazel/cmake