This file documents recent notable changes to this project. The format of this file is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.18.0 - 2025-11-19
- Updated ndarray to 0.17.
0.13.0 - 2025-05-03
- Requires Rust 1.81 or newer.
- Improved performance of
BallTree::query(#77).
0.12.0 - 2025-03-05
- Added
CosineDistance Metric Implementation- Implemented the Cosine distance metric by defining the
Cosinestruct and implementing theMetrictrait. Cosine distance is defined as1 - cosine similarity, where [ \text{cosine similarity} = \frac{\mathbf{A} \cdot \mathbf{B}}{|\mathbf{A}| |\mathbf{B}|} ] - Ensured thread safety and used generic floating-point types (
Float) for flexibility in numerical calculations.
- Implemented the Cosine distance metric by defining the
0.11.0 - 2024-08-07
- Requires Rust 1.74 or newer.
- Updated ndarray to 0.16.
0.10.0 - 2023-12-20
- Instead of
Floattrait,FloatCoretrait is used as a bound forTinBallTreeandVantagePointTree. - Requires Rust 1.70 or newer.
0.9.0 - 2023-08-07
EuclideanderivesEq.
- Switched to edition 2021.
- Requires Rust 1.64 or newer.
0.8.0 - 2022-04-18
- Add pairwise distance computation function.
- Make fields of
Node,BallTreeaccessible for user. - MSRV is changed to 1.53.0.
0.7.1 - 2021-07-06
- Implement
CloneandSyncforEuclideanstruct.
0.7.0 - 2021-06-23
- Add
Metrictrait, use it for distance calculation instead of function pointer. - Add
Euclideanstruct, which implementsMetrictrait.
0.6.0 - 2021-03-29
- Upgrade ndarray to 0.15.0
- Requires Rust 1.49 or later.
0.5.2 - 2021-02-16
- Fixed build on aarch64.
0.5.1 - 2020-12-30
- Upgrade ndarray to 0.14.0
0.5.0 - 2020-08-20
BallTreeandVantagePointTreeaccept an ndarray as a point.
- No longer panics when a coordinate is NaN; the distance from a point with
NaNin its coordinate and another point is considered greater than the distance between any two points withoutNaNin their coordinates. BallTree::queryreturns empty vectors, rather than panics, whenkis zero.
0.4.0 - 2020-06-01
- A vantage point tree data structure to find nearest points.
BallTreeaccepts not only anf64array but also anf32one.BallTree::euclideanto create a ball tree withoug having to pass a distance metric as an argument.
- The codinates of each point must be stored in a contiguous area in memory.
- A distance metric is now a function, not a trait.
0.3.0 - 2020-04-17
- The ownership of the input can be transferred to
BallTree, which accepts both an owned array and a view. - An error is returned, rather than a panic, if an empty array is given to
construct a
BallTree. query_onehas been renamedquery_nearest.queryreturns indices and distances separately, so that data of the same type are stored together.
0.2.0 - 2020-04-09
BallTreetakesArrayBaseas its input, instead ofArrayView, to allow more types in ndarray.
0.1.0 - 2019-11-20
- A ball tree data structure to find nearest neighbors.