v0.6.0
PicoTree v0.6.0 changes:
- Replaced std::pair<> with pico_tree::Neighbor<>.
- Better readability of the type itself and its variables (first, second vs. index, distance).
- std::pair<> is not a POD type or trivially copyable. This practically means it can't easily be mapped to memory (such as with pybind11).
- Added various typedefs (usings) to the public interface of the KdTree: IndexType, ScalarType, PointsType, etc. Updated the examples to follow the same typedef style.
- Replaced the std::deque based dynamic memory manager with a custom ListPool one.
- At the time of writing, the performance of using an std::deque can vary quite a bit across implementations of the C++ standard. This is because (at least in part) the internal chunk sizes differ across those implementations.
- Benchmarking on the Würzburg marketplace dataset shows that the new ListPool gives a small overall performance improvement of about 2-3%.
- Renamed the custom visitor version of SearchNn to SearchNearest to disambiguate it from the SearchNn that looks for a single nearest neighbor.
- The EigenAdaptor has received some updates.
- C++11 compliant.
- The Eigen example will now be build when the workflow is triggered.
- Added unit tests.
- Added PicoTree Python bindings using pybind11.
- Supports all KdTree query types.
- Added examples, unit tests and a GitHub workflow for the bindings.
- Performed a mini benchmark to compare vs. the KdTrees of SciPy and Scikit-learn.