Skip to content

v0.7.0

Compare
Choose a tag to compare
@Jaybro Jaybro released this 13 Apr 19:25
· 227 commits to master since this release

The desire to introduce some general API improvements led to dropping the adaptor interface in favor of a traits interface:

  • Reducing template argument duplication.
  • Removing awkward constructor requirement for metrics.
  • Improving interfacing with individual points. E.g.: An OpenCV point required wrapping in v0.6.0.

Changes:

  • Updated metrics.
    • Renamed all C++ metrics. Most notable: MetricL2 changed to L2Squared.
    • Python enum entry L2 renamed to L2Squared.
    • Added the L2 metric for C++.
    • Metrics should now be default constructible instead of having a constructor that takes run-time dimensions.
  • KdTree construction speed improved by about 5-10% depending on the input size.
  • Added pico_understory. It contains a pre-alpha version of an implementation of the cover tree. It won't be added to pico_tree.
  • Renamed pico_common to pico_toolshed.
  • Adaptor interface requirements for point sets and points replaced by a single traits interface.
    • Added support for working with an std::vector<Point>.
    • Added support for working with an std::reference_wrapper<std::vector<Point>>.
    • Eigen adapter interface updated to a traits interface.
    • Eigen support for std::vector<Eigen::Matrix<>> and std::vector<Eigen::Map<>> added.
    • Eigen support for std::reference_wrapper<Eigen::Matrix<>> added.
  • Split the benchmark into multiple benchmarks.
  • Split various pico_tree internals into separate files.
  • Added an OpenCV interfacing demo.