51 const Tensor& points_row_splits,
52 const Tensor& hash_table_splits,
53 Tensor& hash_table_index,
54 Tensor& hash_table_cell_splits);
117template <
class T,
class TIndex>
119 const Tensor& queries,
121 const Tensor& points_row_splits,
122 const Tensor& queries_row_splits,
123 const Tensor& hash_table_splits,
124 const Tensor& hash_table_index,
125 const Tensor& hash_table_cell_splits,
127 const bool ignore_query_point,
128 const bool return_distances,
130 Tensor& neighbors_index,
131 Tensor& neighbors_row_splits,
132 Tensor& neighbors_distance);
185template <
class T,
class TIndex>
187 const Tensor& queries,
190 const Tensor& points_row_splits,
191 const Tensor& queries_row_splits,
192 const Tensor& hash_table_splits,
193 const Tensor& hash_table_index,
194 const Tensor& hash_table_cell_splits,
196 Tensor& neighbors_index,
197 Tensor& neighbors_count,
198 Tensor& neighbors_distance);
200#ifdef BUILD_CUDA_MODULE
227void BuildSpatialHashTableCUDA(
const Tensor&
points,
229 const Tensor& points_row_splits,
230 const Tensor& hash_table_splits,
231 Tensor& hash_table_index,
232 Tensor& hash_table_cell_splits);
295template <
class T,
class TIndex>
296void FixedRadiusSearchCUDA(
const Tensor&
points,
297 const Tensor& queries,
299 const Tensor& points_row_splits,
300 const Tensor& queries_row_splits,
301 const Tensor& hash_table_splits,
302 const Tensor& hash_table_index,
303 const Tensor& hash_table_cell_splits,
305 const bool ignore_query_point,
306 const bool return_distances,
308 Tensor& neighbors_index,
309 Tensor& neighbors_row_splits,
310 Tensor& neighbors_distance);
363template <
class T,
class TIndex>
364void HybridSearchCUDA(
const Tensor&
points,
365 const Tensor& queries,
368 const Tensor& points_row_splits,
369 const Tensor& queries_row_splits,
370 const Tensor& hash_table_splits,
371 const Tensor& hash_table_index,
372 const Tensor& hash_table_cell_splits,
374 Tensor& neighbors_index,
375 Tensor& neighbors_count,
376 Tensor& neighbors_distance);
379#ifdef BUILD_SYCL_MODULE
387 const Tensor& points_row_splits,
388 const Tensor& hash_table_splits,
389 Tensor& hash_table_index,
390 Tensor& hash_table_cell_splits);
393template <
class T,
class TIndex>
395 const Tensor& queries,
397 const Tensor& points_row_splits,
398 const Tensor& queries_row_splits,
399 const Tensor& hash_table_splits,
400 const Tensor& hash_table_index,
401 const Tensor& hash_table_cell_splits,
403 const bool ignore_query_point,
404 const bool return_distances,
406 Tensor& neighbors_index,
407 Tensor& neighbors_row_splits,
408 Tensor& neighbors_distance,
412template <
class T,
class TIndex>
414 const Tensor& queries,
417 const Tensor& points_row_splits,
418 const Tensor& queries_row_splits,
419 const Tensor& hash_table_splits,
420 const Tensor& hash_table_index,
421 const Tensor& hash_table_cell_splits,
423 Tensor& neighbors_index,
424 Tensor& neighbors_count,
425 Tensor& neighbors_distance,
444 const Dtype& index_dtype);
457 const Dtype& index_dtype,
468 "FixedRadiusIndex::SetTensorData without radius not "
476 const Tensor& points_row_splits,
481 int knn)
const override {
482 utility::LogError(
"FixedRadiusIndex::SearchKnn not implemented.");
486 const Tensor& query_points,
488 bool sort =
true)
const override {
490 "FixedRadiusIndex::SearchRadius with multi-radii not "
495 const Tensor& query_points,
497 bool sort =
true)
const override;
499 const Tensor& query_points,
500 const Tensor& queries_row_splits,
504 bool ignore_query_point =
false)
const;
508 int max_knn)
const override;
511 const Tensor& query_points,
512 const Tensor& queries_row_splits,
FixedRadiusIndex for nearest neighbor range search.
Definition FixedRadiusIndex.h:432
FixedRadiusIndex(const FixedRadiusIndex &)=delete
Tensor hash_table_splits_
Definition FixedRadiusIndex.h:521
const int64_t max_hash_tabls_size
Definition FixedRadiusIndex.h:517
Tensor hash_table_cell_splits_
Definition FixedRadiusIndex.h:522
int64_t tile_bytes_
Distance tile budget for SYCL (bytes). See kSYCLKnnDefaultTileBytes.
Definition FixedRadiusIndex.h:525
Tensor points_row_splits_
Definition FixedRadiusIndex.h:520
bool SetTensorData(const Tensor &dataset_points, const Dtype &index_dtype=core::Int64) override
Definition FixedRadiusIndex.h:465
std::tuple< Tensor, Tensor, Tensor > SearchHybrid(const Tensor &query_points, double radius, int max_knn) const override
Definition FixedRadiusIndex.cpp:219
Tensor hash_table_index_
Definition FixedRadiusIndex.h:523
const double hash_table_size_factor
Definition FixedRadiusIndex.h:516
~FixedRadiusIndex()
Definition FixedRadiusIndex.cpp:44
FixedRadiusIndex()
Default Constructor.
Definition FixedRadiusIndex.cpp:18
std::tuple< Tensor, Tensor, Tensor > SearchRadius(const Tensor &query_points, const Tensor &radii, bool sort=true) const override
Definition FixedRadiusIndex.h:485
std::pair< Tensor, Tensor > SearchKnn(const Tensor &query_points, int knn) const override
Definition FixedRadiusIndex.h:480
FixedRadiusIndex & operator=(const FixedRadiusIndex &)=delete
Shared types and SYCL nearest-neighbor search tuning defaults.
Metric
Supported metrics.
Definition NeighborSearchCommon.h:22
@ L2
Definition NeighborSearchCommon.h:22
void FixedRadiusSearchSYCL(const Tensor &points, const Tensor &queries, double radius, const Tensor &points_row_splits, const Tensor &queries_row_splits, const Tensor &hash_table_splits, const Tensor &hash_table_index, const Tensor &hash_table_cell_splits, const Metric metric, const bool ignore_query_point, const bool return_distances, const bool sort, Tensor &neighbors_index, Tensor &neighbors_row_splits, Tensor &neighbors_distance, int64_t)
Definition KnnSearchOpsSYCL.cpp:583
void HybridSearchSYCL(const Tensor &points, const Tensor &queries, double radius, int max_knn, const Tensor &points_row_splits, const Tensor &queries_row_splits, const Tensor &hash_table_splits, const Tensor &hash_table_index, const Tensor &hash_table_cell_splits, const Metric metric, Tensor &neighbors_index, Tensor &neighbors_count, Tensor &neighbors_distance, int64_t)
Definition KnnSearchOpsSYCL.cpp:712
void HybridSearchCPU(const Tensor &points, const Tensor &queries, double radius, int max_knn, const Tensor &points_row_splits, const Tensor &queries_row_splits, const Tensor &hash_table_splits, const Tensor &hash_table_index, const Tensor &hash_table_cell_splits, const Metric metric, Tensor &neighbors_index, Tensor &neighbors_count, Tensor &neighbors_distance)
Definition FixedRadiusSearchOps.cpp:74
void BuildSpatialHashTableCPU(const Tensor &points, double radius, const Tensor &points_row_splits, const Tensor &hash_table_splits, Tensor &hash_table_index, Tensor &hash_table_cell_splits)
Definition FixedRadiusSearchOps.cpp:21
void FixedRadiusSearchCPU(const Tensor &points, const Tensor &queries, double radius, const Tensor &points_row_splits, const Tensor &queries_row_splits, const Tensor &hash_table_splits, const Tensor &hash_table_index, const Tensor &hash_table_cell_splits, const Metric metric, const bool ignore_query_point, const bool return_distances, const bool sort, Tensor &neighbors_index, Tensor &neighbors_row_splits, Tensor &neighbors_distance)
Definition FixedRadiusSearchOps.cpp:38
void BuildSpatialHashTableSYCL(const Tensor &points, double radius, const Tensor &points_row_splits, const Tensor &hash_table_splits, Tensor &hash_table_index, Tensor &hash_table_cell_splits)
Definition FixedRadiusSearchSYCLImpl.h:176
constexpr int64_t kSYCLKnnDefaultTileBytes
SYCL NNS defaults for KnnIndex and FixedRadiusIndex constructors.
Definition NeighborSearchCommon.h:64
const Dtype Int64
Definition Dtype.cpp:47
Definition PinholeCameraIntrinsic.cpp:16