CHANGELOG
Changelog for package nanoflann
1.10.1 (2026-06-09)
Merge pull request #303 from jlblancoc/refactor/tests-smaller-files refactor: unit tests into smaller files
refactor: unit tests into smaller files
CHANGELOG: ported to rst format for ROS tools compatibility
doc: update outdated COPYING dates
docs: add readme build badges
docs: add ROS build farm badge table to README
Add ROS package.xml and integrate BUILD_TESTING for ROS build farm - package.xml: plain cmake build_type, BSD-2-Clause, libgtest-dev test_depend - CMakeLists.txt: include(CTest), use BUILD_TESTING guard, auto-select system GTest when ROS_VERSION env is set - tests/CMakeLists.txt: remove redundant project(), rename test target to nanoflann_unit_tests to avoid collisions in workspaces
Contributors: Jose Luis Blanco-Claraco
1.10.0 (2026-06-06)
New: Incremental self-balancing dynamic k-d tree index (
KDTreeSingleIndexIncrementalAdaptor), both single-threaded and multithreaded variants (#302).Performance: Hoist point-length computation out of search inner loops (#301).
Refactor: Deduplicate tree builders, harden Eigen adaptor ownership, centralize DIM dispatch with
if constexpr(#297, #299, #300).Fix:
SO2_Adaptornow returns absolute angular distance instead of signed (#298).Fix:
saveIndex/loadIndexnow include a magic+version+type-size header and throw on mismatch (#295).Fix:
KDTreeSingleIndexDynamicAdaptor_saveIndex/loadIndex infinite recursion (#290).Fix: loadIndex reading past EOF for empty indices (#287).
Fix: duplicate-entry growth on removePoint/addPoints re-add cycles (#285).
Fix: divideTree assertion failure with dynamic adaptor removePoint/addPoints (#283).
CI: Added Windows (MSVC + clang-cl) and macOS (14+15) workflows; extended tested C++ standards.
Docs: Consolidated macro list and documented threading guarantees.
Contributors: Jose Luis Blanco-Claraco
1.8.0 (2025-11-16)
1.7.1 (2025-03-15)
Fix:
ResultSets::worstDist(): fix a potential access to negative index in array (did not happen in practice, but static analysis tools correctly detected this possibility).Contributors: Jose Luis Blanco-Claraco
1.7.0 (2025-02-03)
API:
ResultSets::worstDist(): clarified the meaning of its return value; now returns the actual worst distance in the found set (only if set is full).Contributors: Jose Luis Blanco-Claraco
1.6.3 (2025-01-07)
cmake_required_version bumped to 3.10.
clang-format version bumped to 14.
Contributors: Jose Luis Blanco-Claraco
1.6.2 (2024-11-04)
Fix:
middleSplit_for same points (#250).Fix: Build warnings.
Contributors: Jose Luis Blanco-Claraco, yzabalotski
1.6.1 (2024-08-24)
Add conan install instructions.
Add multiple thread kdtree build support for
KDTreeEigenMatrixAdaptor(#246).Contributors: Jose Luis Blanco-Claraco
1.6.0 (2024-07-11)
Fix:
nanoflann::SearchParameters::sortedwas ignored forRadiusResultSet.API:
ResultSetclasses now must implement asort()method.API: Added type
IndexTypetonanoflann::KDTreeBaseClass.Contributors: Jose Luis Blanco-Claraco
1.5.5 (2024-03-12)
1.5.4 (2024-01-10)
Fix outdated
NANOFLANN_VERSIONmacro in header file.Fix pool-allocator alignment problems.
Add
NANOFLANN_USE_SYSTEM_GTESToption.Look for Threads dependency in CMake config script.
Contributors: Jose Luis Blanco-Claraco
1.5.3 (2023-12-07)
Performance: Save one redundant call to
computeMinMax()inmiddleSplit_(#220). Saves up to 20% build time in benchmarks with small (thousands) point clouds.Contributors: Jose Luis Blanco-Claraco, qq422216549
1.5.2 (2023-11-29)
Performance: Improve RKNN search efficiency (#219).
Contributors: Jose Luis Blanco-Claraco, kya8
1.5.1 (2023-11-27)
New API:
rknnSearch()for knn searches with a maximum radius.Fix: Add missing
SearchParametersargument toKDTreeSingleIndexDynamicAdaptor_::knnSearch()(#213).Fix: Add missing method
KNNResultSet::empty()for consistency with other result sets.Add GUI examples for each search type:
nanoflann_gui_example_R3_knn,nanoflann_gui_example_R3_radius,nanoflann_gui_example_R3_rknn.Contributors: Jose Luis Blanco-Claraco, ManosPapadakis95
1.5.0 (2023-06-16)
API: Users of radius search should update result placeholder type from
std::vector<std::pair<IndexType, DistanceType>>tostd::vector<nanoflann::ResultItem<IndexType, DistanceType>>.API: More concise auxiliary type name:
array_or_vector_selector->array_or_vector.API: Remove obsolete parameter
nChecks_IGNORED;SearchParamsrenamed toSearchParameters.API: Added method
RadiusResultSet::empty().API: Template argument rename:
AccesorType=>IndexType.API: Added concurrent tree building support via
KDTreeSingleIndexAdaptorParams::n_thread_build.Macros to avoid conflicts with X11 symbols.
Inline auxiliary example function to support inclusion in multiple translation units.
Move all benchmarking code and scripts to a separate repository.
Fix: Potential uninitialized variable GCC warning.
Docs: Clarified that L2 distances are squared distances.
Add GUI examples:
nanoflann_gui_example_R3andnanoflann_gui_example_bearings.Fix: Avoid segfault when saving an empty index.
Contributors: Jose Luis Blanco-Claraco
1.4.3 (2022-07-24)
Add flag
SkipInitialBuildIndexto skip tree building when the index will be loaded from a file (#171).Mark all constructors explicit to avoid unintended creation of temporary objects.
Fix: Potential index out of bounds in
KDTreeSingleIndexDynamicAdaptor(#173).Contributors: Jose Luis Blanco-Claraco
1.4.2 (2022-01-11)
Install pkg-config
.pcfile under lib directory.Integrate AppVeyor CI.
Contributors: Jose Luis Blanco-Claraco
1.4.1 (2022-01-06)
Fix incorrect install directory for cmake target & config files.
Do not install example binaries with
make install.Provide working examples for cmake and pkgconfig under
examples/example_*directories.Contributors: Jose Luis Blanco-Claraco
1.4.0 (2022-01-02)
API:
nanoflann::KDTreeSingleIndexAdaptor()ctor now forwards additional parameters to the metric class, enabling custom dynamic metrics.Add and apply a
.clang-formatfile.Examples: Clean up and code modernization.
CMake variables now prefixed with
NANOFLANN_for easier Git submodule integration.Fix:
IndexTypefor non-integral types (#154).API: save/load upgraded from C
FILE*to C++ file streams (#157).Contributors: Jose Luis Blanco-Claraco, Dominic Kempf
1.3.2 (2020-11-05)
1.3.1 (2019-10-11)
Fix bug in
KDTreeSingleIndexDynamicAdaptor.Fix build in XCode.
Simplify CMakeLists for Eigen example (requires Eigen3Config.cmake now).
Avoid setting cmake global executable build path.
Contributors: Jose Luis Blanco-Claraco
1.3.0 (2018-08-28)
Add
make installinstructions for Linux and Windows.Fix all MSVC conversion warnings.
Avoid need for
_USE_MATH_DEFINESin MSVC.Eigen::Matrix datasets: now uses
std::cref()to store a reference to matrix.GSOC2017: Support for dynamic datasets.
GSOC2017: Support for non-Euclidean spaces: SO(2), SO(3).
Contributors: Jose Luis Blanco-Claraco, Pranjal Kumar Rai
1.2.3 (2016-12-20)
Fix: Split plane now correctly chooses the dimension with the largest span, leading to more optimal trees.
Contributors: Jose Luis Blanco-Claraco
1.2.2 (2016-11-10)
knnSearch()now also returns the number of valid points found.Contributors: Jose Luis Blanco-Claraco
1.2.1 (2016-06-01)
Fix potential compiler warnings if
IndexTypeis signed.New unit tests comparing results against brute-force search.
Contributors: Jose Luis Blanco-Claraco
1.2.0 (2016-05-05)
Fix: Many class constructors were accepting const ref arguments but storing const values.
Contributors: Jose Luis Blanco-Claraco
1.1.9 (2015-10-02)
New:
KDTreeSingleIndexAdaptor::radiusSearchCustomCallback().Better documentation in class headers.
Cleanup of unused code.
Remove redundant parameter
KDTreeSingleIndexAdaptorParams::dim.Contributors: Jose Luis Blanco-Claraco
1.1.8 (2014-05-02)
Create hidden constructors in nanoflann class to disallow unintentional copies that corrupt internal pointers.
Fix crash when building an index from an empty dataset.
Contributors: Jose Luis Blanco-Claraco
1.1.7 (2013-08-24)
Two internal containers now automatically use fixed-size arrays when problem dimension is known at compile time, improving efficiency (
KDTreeSingleIndexAdaptor::BoundingBox,KDTreeSingleIndexAdaptor::distance_vector_t).Fix compilation with GCC 4.8 and C++11 enabled.
Contributors: Jose Luis Blanco-Claraco, Simon Praetorius
1.1.6 (2013-05-14)
Fix warnings about unused parameters.
Fix
L1_adaptor.accum_dist(), which was implementing L2 instead of L1.Fix wrong typedef in
KDTreeEigenMatrixAdaptor<>forIndexType!=size_t.Contributors: Jose Luis Blanco-Claraco
1.1.5 (2013-03-25)
Fix: Memory pool was not freed after each call to
buildIndex().GCC: Added
-isystemflag to gtest headers to avoid pedantic warnings.Contributors: Jose Luis Blanco-Claraco
1.1.4 (2013-01-11)
Fix compilation with Visual Studio 11 (MSVC 2012).
Fix compilation of gtest with VS11 and its
_VARIADIC_MAXbug.Add security check: throw exception if searches are attempted before
buildIndex().New example demonstrating save/load of the index to files.
Expose save/load methods as public.
Contributors: Jose Luis Blanco-Claraco
1.1.3 (2012-06-06)
Embed GTest sources due to changes in newer Ubuntu packages.
Add asserts to detect NULL query points passed by the user.
New method
RadiusResultSet::worst_item().New method
RadiusResultSet::set_radius_and_clear().Avoid potential collision of min/max macros with
<windows.h>.Remove unneeded
#includeof std headers.New sample code for vectors of vectors.
Fix building of tests for MSVC on Windows.
Allow manually setting path to Eigen3 (mainly for Windows example builds).
Contributors: Jose Luis Blanco-Claraco
1.1.2 (2012-05-02)
Better documentation and benchmark graphs for choosing
leaf_max_size.KDTreeSingleIndexAdaptor::buildIndex()can now be called multiple times even when the dataset size changes.Contributors: Jose Luis Blanco-Claraco
1.1.1 (2012-02-01)
Fix kd-tree index and L1/L2 metrics to allow distinct types for data elements and distances (e.g. integer data with floating-point distances).
Fix examples and unit tests to use template arguments instead of hard-coded
floattypes.Contributors: Jose Luis Blanco-Claraco, Thomas Vincent
1.1.0 (2011-12-15)
Fix warnings for MSVC and GCC with
-Wall -pedantic.Update performance tests for current nanoflann code.
All main classes now have a new template argument for index type, defaulting to
size_tinstead ofint.Contributors: Jose Luis Blanco-Claraco
1.0.0 (2011-08-30)
Initial release.
Contributors: Jose Luis Blanco-Claraco