Skip to content
This repository has been archived by the owner on Feb 3, 2020. It is now read-only.

Releases: JuliaGeometry/KDTrees.jl

v0.5.7

31 Mar 14:52
Compare
Choose a tag to compare
v0.5.7 Pre-release
Pre-release
  • Fixed some corner cases where a user would try to create a try with a 0 point array or a 0 dimensional array.
  • Added workaround for a clash between Colors.jl and Devectorize.jl packages.
  • Fixed some deprecations.

v0.5.6

05 Mar 19:19
Compare
Choose a tag to compare
v0.5.6 Pre-release
Pre-release
  • Deprecated the function names k_nearest_neighbour and query_ball_point. These are now called knn and inball respectively. This is for them to be a bit more Julian.
  • Added dual tree range querying. This is when the query points are put in a separate tree and both trees are traversed at the same time. It is however not well optimized yet.
  • Added option to sort or not sort the results from range searches.
  • Improved speed of knn for larger dimensions.

v0.5.5

23 Feb 23:01
Compare
Choose a tag to compare
v0.5.5 Pre-release
Pre-release
  • Fixed a bug where the results from knn was not sorted according to distance.

v0.5.4

23 Feb 12:33
Compare
Choose a tag to compare
v0.5.4 Pre-release
Pre-release
  • Now using a heap structure to store the current k nearest neighbours. This has effect on performance for large k.
  • The tree can now rearrange the input data to optimize the memory layout of the data.
  • The logic in the tree building has been improved. Trees are now around 3 times faster to build compared to the previous release.
  • Default leafsize changed to 10. With the memory structure optimization the cost of calculating the distance is reduced which means that we should increase the leafsize.

v0.5.3

16 Feb 11:52
Compare
Choose a tag to compare
v0.5.3 Pre-release
Pre-release
  • Changed to a new way of splitting the tree when building it.
    The sub tree split is made so that each leaf node will have exactly leaf_size points in it (except the last). The last node will have n_points % leaf_size points in it and it will always be the node with the highest index. In each recursive step we calculate if the last node will happen on the left or right side of the current sub tree. If the last node will be found in the left side of the sub tree we split the tree such that the right side will be a complete binary tree and vice versa.
  • Default leaf_size changed to 5
    From my benchmarks it seems that 5 is a good number (for euclidian distance). Different distances that are more or less heavy to compute is likely to change this (the heavier the smaller leaf_size).
  • Removed manually inlining distance function
    If we later want to support different measures than it is unfeasible to inline the distance function explicitly. Using a separate function and the @inline macro (in 0.4) does not seem to have a performance hit compared to manually inlining.

v0.4.1

06 Feb 09:08
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release

Hotfixed some commented out code in the test runner.

v0.4

06 Feb 09:08
Compare
Choose a tag to compare
v0.4 Pre-release
Pre-release
* Made benchmarks more accurate
* Improved logic in traversal
* Improved the test to compare against brute force solution
* Splitted the tests in more files

v0.3

05 Feb 11:25
Compare
Choose a tag to compare
v0.3 Pre-release
Pre-release
* Updates some bench marks to give better representation
* Added inbounds to distance formulas
* Added some more type specification to avoid @code_typewarns
* Not using views or sub anymore in creation of tree
* Added print function for tree

v0.2

03 Feb 14:57
Compare
Choose a tag to compare
v0.2 Pre-release
Pre-release
* Started using `ArrayViews` instead of `sub`. Good increase in performance.
* Removed a few unnecessary square roots. Little change in performance.
* Added some errors and warnings if strange arguments where passed into functions.

v0.1

03 Feb 14:57
Compare
Choose a tag to compare
v0.1 Pre-release
Pre-release
v0.1