70 const Tensor& points_row_splits,
71 const Tensor& hash_table_splits,
72 Tensor& hash_table_index,
73 Tensor& hash_table_cell_splits);
136 template <
class T,
class TIndex>
138 const Tensor& queries,
140 const Tensor& points_row_splits,
141 const Tensor& queries_row_splits,
142 const Tensor& hash_table_splits,
143 const Tensor& hash_table_index,
144 const Tensor& hash_table_cell_splits,
146 const bool ignore_query_point,
147 const bool return_distances,
149 Tensor& neighbors_index,
150 Tensor& neighbors_row_splits,
151 Tensor& neighbors_distance);
204 template <
class T,
class TIndex>
206 const Tensor& queries,
209 const Tensor& points_row_splits,
210 const Tensor& queries_row_splits,
211 const Tensor& hash_table_splits,
212 const Tensor& hash_table_index,
213 const Tensor& hash_table_cell_splits,
215 Tensor& neighbors_index,
216 Tensor& neighbors_count,
217 Tensor& neighbors_distance);
219 #ifdef BUILD_CUDA_MODULE 246 void BuildSpatialHashTableCUDA(
const Tensor&
points,
248 const Tensor& points_row_splits,
249 const Tensor& hash_table_splits,
250 Tensor& hash_table_index,
251 Tensor& hash_table_cell_splits);
314 template <
class T,
class TIndex>
315 void FixedRadiusSearchCUDA(
const Tensor&
points,
316 const Tensor& queries,
318 const Tensor& points_row_splits,
319 const Tensor& queries_row_splits,
320 const Tensor& hash_table_splits,
321 const Tensor& hash_table_index,
322 const Tensor& hash_table_cell_splits,
324 const bool ignore_query_point,
325 const bool return_distances,
327 Tensor& neighbors_index,
328 Tensor& neighbors_row_splits,
329 Tensor& neighbors_distance);
382 template <
class T,
class TIndex>
383 void HybridSearchCUDA(
const Tensor&
points,
384 const Tensor& queries,
387 const Tensor& points_row_splits,
388 const Tensor& queries_row_splits,
389 const Tensor& hash_table_splits,
390 const Tensor& hash_table_index,
391 const Tensor& hash_table_cell_splits,
393 Tensor& neighbors_index,
394 Tensor& neighbors_count,
395 Tensor& neighbors_distance);
413 const Dtype& index_dtype);
422 "FixedRadiusIndex::SetTensorData without radius not " 430 const Tensor& points_row_splits,
435 int knn)
const override {
440 const Tensor& query_points,
442 bool sort =
true)
const override {
444 "FixedRadiusIndex::SearchRadius with multi-radii not " 449 const Tensor& query_points,
451 bool sort =
true)
const override;
453 const Tensor& query_points,
454 const Tensor& queries_row_splits,
456 bool sort =
true)
const;
460 int max_knn)
const override;
463 const Tensor& query_points,
464 const Tensor& queries_row_splits,
const int64_t max_hash_tabls_size
Definition: FixedRadiusIndex.h:469
const Dtype Int64
Definition: Dtype.cpp:66
FixedRadiusIndex for nearest neighbor range search.
Definition: FixedRadiusIndex.h:401
Tensor points_row_splits_
Definition: FixedRadiusIndex.h:472
Definition: NNSIndex.h:40
Metric
Supported metrics.
Definition: NeighborSearchCommon.h:38
const double hash_table_size_factor
Definition: FixedRadiusIndex.h:468
FixedRadiusIndex()
Default Constructor.
Definition: FixedRadiusIndex.cpp:37
bool SetTensorData(const Tensor &dataset_points, const Dtype &index_dtype=core::Int64) override
Definition: FixedRadiusIndex.h:419
~FixedRadiusIndex()
Definition: FixedRadiusIndex.cpp:53
std::tuple< Tensor, Tensor, Tensor > SearchHybrid(const Tensor &query_points, double radius, int max_knn) const override
Definition: FixedRadiusIndex.cpp:206
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:93
Tensor hash_table_splits_
Definition: FixedRadiusIndex.h:473
Tensor hash_table_index_
Definition: FixedRadiusIndex.h:475
std::tuple< Tensor, Tensor, Tensor > SearchRadius(const Tensor &query_points, const Tensor &radii, bool sort=true) const override
Definition: FixedRadiusIndex.h:439
FixedRadiusIndex & operator=(const FixedRadiusIndex &)=delete
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:40
Definition: PinholeCameraIntrinsic.cpp:35
std::pair< Tensor, Tensor > SearchKnn(const Tensor &query_points, int knn) const override
Definition: FixedRadiusIndex.h:434
Tensor hash_table_cell_splits_
Definition: FixedRadiusIndex.h:474
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:57
#define LogError(...)
Definition: Logging.h:67