This repository has been archived by the owner on Feb 3, 2020. It is now read-only.
Releases: JuliaGeometry/KDTrees.jl
Releases · JuliaGeometry/KDTrees.jl
v0.5.7
- 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
- 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
- Fixed a bug where the results from knn was not sorted according to distance.
v0.5.4
- 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
- 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
Hotfixed some commented out code in the test runner.
v0.4
* 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
* 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
* 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
v0.1