You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At anyone reading this: please feel free to put suggestions & endorsements into comments below
Here are some assorted ideas / plans for the future:
API:
Think about providing find_navigable() / erase_navigable() that return truly iterable iterators. Probably not goping to happen, we have lower_bound() now.
Add performance_hints() that checks for various performance issues (and returns a list of <string, bool> checks. E.g.
Is the value trivially copyable or movable? (TBC)
Is the value "small" in size? -> Use pointer instead
Suggest using std::vector for high-dim keys (TBC)
self_join() function?
Check R-Tree (std std::...) direct access to nodes. What do people use it for? Should we provide it?
Similar to previous: Support custom data (and possibly functions) in nodes. Examples for functions + data would be to store aggregate information (total child count, total area of boxes, some kind of aggregate running on the values associated with keys...).
Internally:
Make std::vector the default key for high dimensions (verify the idea first). On hold: No benefit for DIM < 30 and only marginal (i.e. only for insertion but not query/kNN) above 30.
Make Entry & Node trivially copyable
Documentation:
Document prominently that PhPoint/Box are only "default" keys
Document more prominently that find/erase do not return real iterators
At anyone reading this: please feel free to put suggestions & endorsements into comments below
Here are some assorted ideas / plans for the future:
API:
Think about providingProbably not goping to happen, we havefind_navigable()/erase_navigable()that return truly iterable iterators.lower_bound()now.performance_hints()that checks for various performance issues (and returns a list of <string, bool> checks. E.g.self_join()function?Internally:
MakeOn hold: No benefit for DIM < 30 and only marginal (i.e. only for insertion but not query/kNN) above 30.std::vectorthe default key for high dimensions (verify the idea first).Documentation: