51 const Tensor& points_row_splits,
52 const Tensor& hash_table_splits,
53 Tensor& hash_table_index,
54 Tensor& hash_table_cell_splits);
117 template <
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);
185 template <
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
227 void 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);
295 template <
class T,
class TIndex>
296 void 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);
363 template <
class T,
class TIndex>
364 void 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);
394 const Dtype& index_dtype);
403 "FixedRadiusIndex::SetTensorData without radius not "
411 const Tensor& points_row_splits,
416 int knn)
const override {
421 const Tensor& query_points,
423 bool sort =
true)
const override {
425 "FixedRadiusIndex::SearchRadius with multi-radii not "
430 const Tensor& query_points,
432 bool sort =
true)
const override;
434 const Tensor& query_points,
435 const Tensor& queries_row_splits,
437 bool sort =
true)
const;
441 int max_knn)
const override;
444 const Tensor& query_points,
445 const Tensor& queries_row_splits,
#define LogError(...)
Definition: Logging.h:48
FixedRadiusIndex for nearest neighbor range search.
Definition: FixedRadiusIndex.h:382
FixedRadiusIndex(const FixedRadiusIndex &)=delete
Tensor hash_table_splits_
Definition: FixedRadiusIndex.h:454
const int64_t max_hash_tabls_size
Definition: FixedRadiusIndex.h:450
std::tuple< Tensor, Tensor, Tensor > SearchRadius(const Tensor &query_points, const Tensor &radii, bool sort=true) const override
Definition: FixedRadiusIndex.h:420
Tensor hash_table_cell_splits_
Definition: FixedRadiusIndex.h:455
std::pair< Tensor, Tensor > SearchKnn(const Tensor &query_points, int knn) const override
Definition: FixedRadiusIndex.h:415
Tensor points_row_splits_
Definition: FixedRadiusIndex.h:453
bool SetTensorData(const Tensor &dataset_points, const Dtype &index_dtype=core::Int64) override
Definition: FixedRadiusIndex.h:400
FixedRadiusIndex & operator=(const FixedRadiusIndex &)=delete
std::tuple< Tensor, Tensor, Tensor > SearchHybrid(const Tensor &query_points, double radius, int max_knn) const override
Definition: FixedRadiusIndex.cpp:187
Tensor hash_table_index_
Definition: FixedRadiusIndex.h:456
const double hash_table_size_factor
Definition: FixedRadiusIndex.h:449
~FixedRadiusIndex()
Definition: FixedRadiusIndex.cpp:34
FixedRadiusIndex()
Default Constructor.
Definition: FixedRadiusIndex.cpp:18
Definition: NNSIndex.h:21
Metric
Supported metrics.
Definition: NeighborSearchCommon.h:19
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
const Dtype Int64
Definition: Dtype.cpp:47
Definition: PinholeCameraIntrinsic.cpp:16