2.0.1 (2025-07-17)
Fixed bugs:
- Fix a bug in experimental predicate helpers (e.g.,
make_intersects) requiringmemory_spacetypedef #1255 - Add missing
distance(sphere, point)anddistance(box, sphere)#1266 - Fix usage of hardcoded floats in distance calculations #1267
- Fix Clang 17 type deduction failures with aggregate initialization #1279
2.0 (2025-04-16)
New features:
- New interfaces for search indexes (APIv2) #1155, #1157, #1161
- Hyper-dimensional geometries #1100, #1148, #1146, #1154
Build Changes:
Enhancements:
- Promote
ArborX::Trianglefrom the EXPERIMENTAL namespace #1154 - Add
Segmentgeometry [EXPERIMENTAL] #1165 - cmake: make install path configurable #1174
- Add
DefaultIndexableGetter[EXPERIMENTAL] #1181 - Define
ARBORX_VERSIONnumber macro #1190 - Allow running DBSCAN in different precision #1203
- Move
MinimumSpanningTreetoExperimentalnamespace #1213 - Add ellipsoid geometry [EXPERIMENTAL] #1222
Backward incompatible changes:
- Generalize geometries to support any dimension and precision #1100, #1148, #1146, #1154
- Remove deprecated algorithms from
ArborXnamespace (e.g.,min,maxlastElement,clone) #1151 - Remove old interfaces (APIv1) from indexes #1155, #1157, #1161
- Remove
ArborX::PairIndexRank#1156 - Remove
ArborX::PrimitivesTagandArborX::PredicatesTagfromArborX::AccessTraits#1172 - Switch
AnyNewerVersiontoSameMajorVersionin CMake #1188 - Add helper functions for predicates construction
make_{intersects,nearest}#1232
Fixed bugs:
- Do not divide by zero when computing ray-AABB intersection #1226
1.7 (2024-09-03)
New features:
- Distributed tree: add support for a nearest query with a callback [EXPERIMENTAL] #1075
- Distributed tree: add support for a spatial query only taking a callback #733
Build Changes:
- Require Kokkos 4.2.00 #1054
Enhancements:
- Implement box-triangle intersection #1059
- Add tetrahedron geometry [EXPERIMENTAL] #1079
- Expand KDOP to support different dimensions and precision [EXPERIMENTAL] #982
- Add 2D KDOP geometries [EXERIMENTAL] #1088
- Improve performance of the distributed algorithms #1098, #1103
- Add
make_ordered_intersectshelper function to implicitly construct ordered intersect queries for a set of geometries [EXPERIMENTAL] #1117
Backward incompatible changes:
Deprecations:
Fixed bugs:
- Fix a Kokkos bounds check warning reported when using FDBSCAN-DenseBox #1067
- Fix DBSCAN test on Intel GPUs #1112
- Fix policy warning when using CMake 3.30 with Boost #1123
- Fix geometry traits for
constgeometries #1129
1.6 (2024-04-11)
New features:
- Introduce new API for ArborX indexes (EXPERIMENTAL) #970, #1017
- Add Moving Least Squares (MLS) interpolation (EXPERIMENTAL) #946, #992, #1000
Build Changes:
- Require Kokkos 4.1.00 #973
Enhancements:
- Introduce
PairValueIndexandExperimental::attach_indices#969, #1016, #1036 - Improve examples #1008, #1009, #936
- Auto-fetch Google benchmark when not found locally #1039
- Allow default initialized distributed tree #1040
- Implement distance point-triangle #1046
- Implement nearest query for BruteForce #1053
- Add helper functions to construct predicates #1038
- Add an example of a distributed tree k-nearest neighbors search #724
- Add triangulated surface distance benchmark #1052
Deprecations:
- Deprecate
min,max,minMax#998 - Deprecate
iota,exclusivePrefixSum,accumulate,adjacentDifference#999
Fixed bugs:
- Fixed CUDA build warning #1010
- Fixed HIP build with ROCm 6 #1030
- Fixed FDBSCAN-DenseBox issue with user provided
AccessTraits#1045 - Fixed stream destruction order in CUDA access traits example and execution spaces benchmark #1050
1.5 (2023-12-16)
Build Changes:
- Require Kokkos 4.0.00 #895
Enhancements:
- Add a multi-dimensional triangle (EXPERIMENTAL) #916
- Add example of triangle-point intersections #542
- Allow running individual queries in non-batch mode (EXPERIMENTAL) #917
- Support for MSVC (core only) #908
Fixed bugs:
- Fix compilation for CUDA-12.2 #933
- Fix a bug in the dendrogram generation #955
- Fix compilation for C++20 #884
1.4.1 (2023-06-08)
Build Changes:
- Add support for Trilinos 14.0 #886
1.4 (2023-05-05)
New features:
Build changes:
Enhancements:
- Add a faster implementation of the union-find for Serial #767, #780
- Annotate fences #805
- Improve performance of FDBSCAN #810
- Add new facility to find "half" or "full" neighbor lists (EXPERIMENTAL) #809, #812
- Introduce
ArborX::PairIndexRank#819 - Reduce memory consumption when sending data in
DistributedTree#829 - Avoid extra copy when sending across network in
sendAcrossNetwork#830 - Deprecate
ARBORX_USE_CUDA_AWARE_MPIand replace it withARBORX_USE_GPU_AWARE_MPI#828 - Allow 7D data #853, #854
Backward incompatible changes:
- Remove deprecated queryDispatch calls in the distributed tree #793
- Remove volatile overloads in
ArborX::BoxandArborX::Point#838
Fixed bugs:
- Fix a bug when using distributed tree with rays #786
- Fix undefined behavior when parsing boolean options in DBSCAN benchmark #804
- Fix compilation for CUDA 11.0-11.3 #850
1.3 (2022-10-18)
New features:
Build changes:
Enhancements:
- Switch to using stackless spatial traversal for all backends #672
- Add ordered tree traversal (EXPERIMENTAL) #683
- Add a ray-tracing example using ordered tree traversal #691
- Add
distance()function to the nearest predicate #700 - Template
BruteForceon bounding volume #712 - Throw an exception when FDBSCAN-DenseBox may potentially produce wrong result #560
- Migrate full DBSCAN driver from
examples/tobenchmarks/#736 - Add a DBSCAN example #763
Backward incompatible changes:
- Fail compilation when using the old
ArborX::Traitsinterface #667 - Remove deprecated
BVHversion templated on a device type #705 - Remove deprecated
DistributedSearchTreeandDistributedTreetemplated on a device type #706
Fixed bugs:
- Make sure default-initialized
BVHandBruteForcedo not give undefined behavior #692 - Avoid use of uninitialized core distances in the minimum spanning tree #753
1.2 (2022-04-01)
New features:
Build changes:
- Require Kokkos 3.4 #578
Enhancements:
- Indicate the status of the worktree in the hash string ("-dirty") #558
- Check valid callback and space accessibility #563
- Add a molecular dynamics example #564
- Improve performance of the HIP backend when using HIP-Clang #575
- Add Point-Sphere intersection algorithm #584
- Avoid host copy in distributed tree construction when using CUDA-aware MPI #597
- Print Kokkos version during configuration #609
- Improve performance of the brute force algorithm #616
- Use 64-bit Morton indices by default in the construction #637
- Allow alternate space filling curves (EXPERIMENTAL) #646
- Add ray-triangle intersection algorithm #617
Deprecations:
- Deprecate
lastElementhelper function in theArborXnamespace #648 - Deprecate
ArborX::InlineCallbackTag#656
Fixed bugs:
- Fix the exit status of the DBSCAN example #566
- Bring DBSCAN README documentation in line with the code #568, #668
- Fix a race condition in the BVH construction #579
- Fix a bug in the nearest search using the DistributedTree #653
1.1 (2021-09-23)
New features:
- Allow k-DOP as a bounding volume in BVH #386
Enhancements:
- Store a dimension value in a DBSCAN datafile #523
- Enable knn queries with spheres and boxes #495 and #494
- Use double-precision floating-points to normalize
Raydirection #535 - Improve performance of the brute force algorithm #534
- Improve performance of the DBSCAN algorithm (new FDBSCAN-DenseBox algorithm) #508
- Allow non-View input for DBSCAN #509
- Install CMake package version file #521
- Add a simple intersection example #513
- Improve performance for the SYCL backend through the use of oneDPL for sorting #456
Fixed bugs:
- Fix a bug in DBSCAN noise marking #525
1.0 (2021-03-13)
New features:
- Allow early termination of a traversal by a thread #427
- Implement DBSCAN clustering algorithm #331
- Implement brute-force algorithm #468
- Add initial ray-tracing support #414 and #461
Build changes:
- Require CMake 3.16 #486
Enhancements:
- Add
KOKKOS_FUNCTIONtoAccessTraits::size()in View specialization #463 - Add
query()free function #425 - Improve performance for the HIP backend through the use of rocThrust for sorting #424
- Support for SYCL and OpenMPTarget #422
Backward incompatible changes:
- Change signature of the nearest callback #366
1.0-rc0 (2020-10-03)
New features:
- New
BVH::query()overload that only takes predicates and callback #329
Enhancements:
- Implement stackless tree traversal using escape index (ropes) #364
- Add support for Kokkos HIP backend #236
- Ensure that all kernels and memory allocations are prefixed with
ArborX::#362 and #380 - Improve performance of knn traversal #357
- Add new query overloads for the distributed tree #356
- Increase performance of the BVH construction #350
- Allow non device type template parameter for output views in query() on distributed trees #349
Fixed bugs:
- Fix double free when making copies of a distributed tree #369
- Resolve duplicate
Details::toBufferStatus(int)symbol error downstream #360 - Fix narrowing conversion warnings #343
Deprecations:
- Deprecate
DistributedSearchTreein favor ofDistributedTree#396
0.9-beta (2020-06-10)
New features:
- Enable user-defined callback in BVH search #166
- Make predicates sorting optional #243
- Use user-provided execution space instances #250
- Implement algorithm for finding strongly connected components (halo finder) #237
- Store bounding boxes in single-precision floating-point format #235
- Allow usage of CUDA-aware MPI #162
Build changes:
- Require Kokkos 3.1 #268
- Require C++14 standard when building ArborX #226
- Require Kokkos CMake build #93
Enhancements:
- Template BVH on memory space #251
- Add example for callbacks and lift requirement for tagging inline #325
- Enable building against Trilinos' Kokkos installation #156
- Add access traits CUDA example #107
- Let
BVH::bounds()be aKOKKOS_FUNCTION#326 - Improve performance of the radius search #306
- Improve performance of the kNN search #308
- Retain the original path to Kokkos #287
- Disable tests, examples, benchmarks by default #284
- Template distributed search tree on the memory space #260
- Enable predicates access traits in distributed search tree #196
- Set default build type to
RelWithDebInfo#188 - Remove all fences #150
- Improve performance for sorting with CUDA by using Thrust #147
- Improve compilation error messages produced by
BVH::query()#279
Fixed bugs:
- Fix ambiguity in
queryDispatch()overload resolution #293 - Properly update hash in version file when building from subdirs #266
- Avoid second pass for radius search when the results are empty #240
- Avoid more compiler warnings for
nvcc_wrapper#185 - Fix segfault in
Distributor#296 - Allow non device type template parameter for output views in
BVH::query()#271
Deprecations:
- Deprecate
Traits::Accessin favor ofAccessTraits#300
0.8-beta2 (2019-10-10)
New features:
Build changes:
- Replace TriBITS build system with "raw" CMake #14
- Rename
ArborX_ENABLE_XYZoptions toARBORX_ENABLE_XYZ#99 - Provide an option to disable tests and examples #31
- Make MPI dependency optional #42
Enhancements:
- Use
MPI_Comm_dupto separate ArborX comm context from user's #135 - Add CMake option for enabling benchmarks #138
- Add intersection of a
PointwithBox#122 - Improve error messages in BVH constructor and BVH::query() #113
- Relax CudaUVM requirement #24
- Find Boost in subdirectories that actually require it #22
Fixed bugs: