Nearest-Neighbor (NN) search with KD-trees C++ library
This project builds and defines the build2 package for nanoflann, a C++11 header-only library for Nearest Neighbor (NN) search with KD-trees.
Usage
Make sure to add the stable section of the cppget.org
repository to your project's repositories.manifest
to be able to fetch the package.
:
role: prerequisite
location: https://pkg.cppget.org/1/stable
# trust: ...
If the stable section of cppget.org
is not an option then add this Git repository itself instead as a prerequisite.
:
role: prerequisite
location: https://github.com/build2-packaging/nanoflann.git
Tests
Examples
Reviews
Builds
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_fedora_40-gcc_14-bindist |
timestamp |
2024-09-15 22:03:26 UTC (05:24:23 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_17_libc++ |
timestamp |
2024-09-15 08:51:38 UTC (18:36:11 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_17 |
timestamp |
2024-09-15 08:50:40 UTC (18:37:08 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_13 |
timestamp |
2024-09-14 10:59:14 UTC (01 16:28:35 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew-static_O3 |
timestamp |
2024-09-14 08:44:04 UTC (01 18:43:45 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew-O3 |
timestamp |
2024-09-14 08:41:15 UTC (01 18:46:34 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew |
timestamp |
2024-09-14 08:38:31 UTC (01 18:49:18 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18 |
timestamp |
2024-09-14 03:36:00 UTC (01 23:51:49 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18-static_O3 |
timestamp |
2024-09-14 03:35:09 UTC (01 23:52:40 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18-static_O3 |
timestamp |
2024-09-14 03:34:39 UTC (01 23:53:10 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18-O3 |
timestamp |
2024-09-14 03:34:35 UTC (01 23:53:14 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18-O3 |
timestamp |
2024-09-14 03:32:39 UTC (01 23:55:10 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18 |
timestamp |
2024-09-14 03:32:05 UTC (01 23:55:44 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_fedora_39-gcc_13-bindist |
timestamp |
2024-09-14 01:41:50 UTC (02 01:45:59 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64 |
timestamp |
2024-09-14 01:20:57 UTC (02 02:06:52 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64-static_O2 |
timestamp |
2024-09-14 01:20:24 UTC (02 02:07:25 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin22.5.0 |
tgt config |
macos_13-clang_15.0 |
timestamp |
2024-09-14 01:19:52 UTC (02 02:07:57 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
timestamp |
2024-09-14 01:19:45 UTC (02 02:08:04 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64-O2 |
timestamp |
2024-09-14 01:18:34 UTC (02 02:09:15 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-O3 |
timestamp |
2024-09-14 01:17:35 UTC (02 02:10:14 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14 |
timestamp |
2024-09-14 01:17:01 UTC (02 02:10:48 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_ubuntu_24.04-gcc_13-bindist |
timestamp |
2024-09-14 01:11:17 UTC (02 02:16:32 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd13.3 |
tgt config |
freebsd_13-clang_17 |
timestamp |
2024-09-14 01:11:09 UTC (02 02:16:40 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_12-bindist |
timestamp |
2024-09-14 01:11:01 UTC (02 02:16:48 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_13.1 |
timestamp |
2024-09-14 01:10:09 UTC (02 02:17:40 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_17_libc++ |
timestamp |
2024-09-14 01:09:35 UTC (02 02:18:14 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_17 |
timestamp |
2024-09-14 01:08:49 UTC (02 02:19:00 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
timestamp |
2024-09-13 18:25:45 UTC (02 09:02:04 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++ |
timestamp |
2024-09-13 18:24:26 UTC (02 09:03:23 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-O3 |
timestamp |
2024-09-13 18:22:53 UTC (02 09:04:56 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10-static_O2 |
timestamp |
2024-09-13 16:27:35 UTC (02 11:00:14 days ago) |
result |
error (test) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10-O2 |
timestamp |
2024-09-13 16:27:03 UTC (02 11:00:46 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10 |
timestamp |
2024-09-13 16:26:25 UTC (02 11:01:24 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
timestamp |
2024-09-13 16:18:51 UTC (02 11:08:58 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++ |
timestamp |
2024-09-13 16:17:47 UTC (02 11:10:02 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-O3 |
timestamp |
2024-09-13 16:16:23 UTC (02 11:11:26 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-static_O3 |
timestamp |
2024-09-13 14:16:41 UTC (02 13:11:08 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8-static_O2 |
timestamp |
2024-09-13 14:02:44 UTC (02 13:25:05 days ago) |
result |
error (test) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8-O2 |
timestamp |
2024-09-13 14:02:02 UTC (02 13:25:47 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8 |
timestamp |
2024-09-13 14:00:30 UTC (02 13:27:19 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10-static_O2 |
timestamp |
2024-09-13 13:57:48 UTC (02 13:30:01 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10-O2 |
timestamp |
2024-09-13 13:56:05 UTC (02 13:31:44 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18 |
timestamp |
2024-09-13 13:54:41 UTC (02 13:33:08 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18-O3 |
timestamp |
2024-09-13 13:52:59 UTC (02 13:34:50 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_17_msvc_msvc_17.10 |
timestamp |
2024-09-13 13:51:20 UTC (02 13:36:29 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-static_O3 |
timestamp |
2024-09-13 13:21:03 UTC (02 14:06:46 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10 |
timestamp |
2024-09-13 13:20:04 UTC (02 14:07:45 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
timestamp |
2024-09-13 13:19:13 UTC (02 14:08:36 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14 |
timestamp |
2024-09-13 13:15:32 UTC (02 14:12:17 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-O3 |
timestamp |
2024-09-13 13:13:51 UTC (02 14:13:58 days ago) |
result |
warning (test) | warning (test-installed) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18-static_O3 |
timestamp |
2024-09-13 11:21:51 UTC (02 16:05:58 days ago) |
result |
error (test) | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0 |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0-O3 |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0-static_O3 |
result |
unbuilt |
Changes
nanoflann 1.5.4: Released Jan 10, 2024
- Fix outdated NANOFLANN_VERSION macro in header file
- Fix poll-allocator alignment problems
- Add NANOFLANN_USE_SYSTEM_GTEST option
- Look for Threads dependency in CMake config script
nanoflann 1.5.3: Released Dec 7, 2023
- Other changes:
- Save one redundant call to
computeMinMax()
in middleSplit_
(PR#220 by qq422216549).
This saves a lot of time, up to 20% faster in a benchmark with small (thousands) point clouds.
nanoflann 1.5.2: Released Nov 29, 2023
nanoflann 1.5.1: Released Nov 27, 2023
- API changes:
- Add new search method
rknnSearch()
for knn searches with a maximum radius.
- Add missing
SearchParameters
argument to KDTreeSingleIndexDynamicAdaptor_::knnSearch()
(PR#213 by ManosPapadakis95).
- Add missing method
KNNResultSet::empty()
for consistency with the other result sets.
- Other changes:
- Add GUI examples for each search type:
nanoflann_gui_example_R3_knn
nanoflann_gui_example_R3_radius
nanoflann_gui_example_R3_rknn
nanoflann 1.5.0: Released Jun 16, 2023
- API changes:
- Users of radius search should change their result placeholder type:
std::vector<std::pair<IndexType, DistanceType>>
=> std::vector<nanoflann::ResultItem<IndexType, DistanceType>>
. (See #166 for the motivation of this change).
- More concise auxiliary (internal) type name:
array_or_vector_selector
-> array_or_vector
.
- Remove obsolete parameter
nChecks_IGNORED
. Removed from SearchParams
constructor too, so that structure has been renamed SearchParameters
to
enforce users to update the code and avoid mistakes with the order of its
ctor parameters.
- Added method RadiusResultSet::empty()
- Template argument rename:
AccesorType
=> IndexType
(does not actually affect user code at all).
- Added concurrent tree building support, refer to
KDTreeSingleIndexAdaptorParams::n_thread_build
.
- Other changes:
- Macros to avoid conflicts with X11 symbols.
- Inline an auxiliary example function in case users want to use it and
include the file in multiple translation units (Closes #182).
- Move all benchmarking code, data, and scripts to its own repository to keep this repo as clean as possible.
- Fix "potentially uninitialized" GCC warning.
- Clarified, even more, in docs and examples, that L2 distances are squared distances.
- Removed the (with modern compilers) now useless
inline
keyword in class members.
- Add examples with GUI (requires mrpt-gui):
- nanoflann_gui_example_R3: Radius search on R³ Euclidean space.
- nanoflann_gui_example_bearings: NN search on non-Euclidean spaces.
- BUGFIXES:
- Avoid segfault if saving an empty index (Closes #205).
nanoflann 1.4.3: Released Jul 24, 2022
- Added flag SkipInitialBuildIndex to allow not wasting time building a tree when it will be loaded from a file later on (PR #171).
- Mark all constructors explicit, to avoid unintended creation of temporary objects (Issue #179).
- BUGFIX: avoid potential index out of bounds in KDTreeSingleIndexDynamicAdaptor (PR #173)
nanoflann 1.4.2: Released Jan 11, 2022
- Install pkg-config .pc file under lib directory (Closes #161).
- Integrate AppVeyor CI.
nanoflann 1.4.1: Released Jan 6, 2022
- 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.
nanoflann 1.4.0: Released Jan 2, 2022
- nanoflann::KDTreeSingleIndexAdaptor() ctor now forwards additional parameters to the metric class, enabling custom dynamic metrics.
- Add and apply a
.clang-format
file (same one than used in MOLAorg/MOLA projects).
- Examples: clean up and code modernization.
- CMake variables prefixed now with
NANOFLANN_
for easier integration of nanoflann as a Git submodule.
- Fixes for IndexType which are not of integral types PR #154
- save/load API upgraded from C
FILE*
to C++ file streams (By Dominic Kempf, Heidelberg University, PR).
nanoflann 1.3.2: Released Nov 5, 2020
- Add optional argument for Eigen matrix layout commit.
- Throw exception on malloc failure PR #126.
- Respect GNUInstallDirs in CMake install rules PR #131.
nanoflann 1.3.1: Released Oct 11, 2019
nanoflann 1.3.0: Released Aug 28, 2018
- Instructions for
make install
for Linux and Windows (Closes #87).
- Fix all (?) MSVC conversion warnings (Closes: #95).
- Avoid need for _USE_MATH_DEFINES in MSVC (Closes: #96)
- Eigen::Matrix datasets: now uses std::cref() to store a reference to matrix.
- GSOC2017 contributions by Pranjal Kumar Rai:
- Support for dynamic datasets.
- Support for non-Euclidean spaces: SO(2), SO(3)
nanoflann 1.2.3: Released Dec 20, 2016
- Fixed: split plane now correctly chooses the dimensions with the largest span.
Should lead to more optimal trees.