@@ -379,7 +379,7 @@ class open_addressing_ref_impl {
379379 auto const val = this ->heterogeneous_value (value);
380380 auto const key = this ->extract_key (val);
381381
382- auto probing_iter = probing_scheme_.operator () <bucket_size>(key, storage_ref_.extent ());
382+ auto probing_iter = probing_scheme_.make_iterator <bucket_size>(key, storage_ref_.extent ());
383383 auto const init_idx = *probing_iter;
384384
385385 while (true ) {
@@ -428,9 +428,10 @@ class open_addressing_ref_impl {
428428 __device__ bool insert (cooperative_groups::thread_block_tile<cg_size> const & group,
429429 Value const & value) noexcept
430430 {
431- auto const val = this ->heterogeneous_value (value);
432- auto const key = this ->extract_key (val);
433- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
431+ auto const val = this ->heterogeneous_value (value);
432+ auto const key = this ->extract_key (val);
433+ auto probing_iter =
434+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
434435 auto const init_idx = *probing_iter;
435436
436437 while (true ) {
@@ -523,7 +524,7 @@ class open_addressing_ref_impl {
523524
524525 auto const val = this ->heterogeneous_value (value);
525526 auto const key = this ->extract_key (val);
526- auto probing_iter = probing_scheme_.operator () <bucket_size>(key, storage_ref_.extent ());
527+ auto probing_iter = probing_scheme_.make_iterator <bucket_size>(key, storage_ref_.extent ());
527528 auto const init_idx = *probing_iter;
528529
529530 while (true ) {
@@ -594,9 +595,10 @@ class open_addressing_ref_impl {
594595 " insert_and_find is not supported for pair types larger than 8 bytes on pre-Volta GPUs." );
595596#endif
596597
597- auto const val = this ->heterogeneous_value (value);
598- auto const key = this ->extract_key (val);
599- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
598+ auto const val = this ->heterogeneous_value (value);
599+ auto const key = this ->extract_key (val);
600+ auto probing_iter =
601+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
600602 auto const init_idx = *probing_iter;
601603
602604 while (true ) {
@@ -683,7 +685,7 @@ class open_addressing_ref_impl {
683685 {
684686 static_assert (cg_size == 1 , " Non-CG operation is incompatible with the current probing scheme" );
685687
686- auto probing_iter = probing_scheme_.operator () <bucket_size>(key, storage_ref_.extent ());
688+ auto probing_iter = probing_scheme_.make_iterator <bucket_size>(key, storage_ref_.extent ());
687689 auto const init_idx = *probing_iter;
688690
689691 while (true ) {
@@ -726,7 +728,8 @@ class open_addressing_ref_impl {
726728 __device__ bool erase (cooperative_groups::thread_block_tile<cg_size> const & group,
727729 ProbeKey const & key) noexcept
728730 {
729- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
731+ auto probing_iter =
732+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
730733 auto const init_idx = *probing_iter;
731734
732735 while (true ) {
@@ -783,7 +786,7 @@ class open_addressing_ref_impl {
783786 [[nodiscard]] __device__ bool contains (ProbeKey const & key) const noexcept
784787 {
785788 static_assert (cg_size == 1 , " Non-CG operation is incompatible with the current probing scheme" );
786- auto probing_iter = probing_scheme_.operator () <bucket_size>(key, storage_ref_.extent ());
789+ auto probing_iter = probing_scheme_.make_iterator <bucket_size>(key, storage_ref_.extent ());
787790 auto const init_idx = *probing_iter;
788791
789792 while (true ) {
@@ -820,7 +823,8 @@ class open_addressing_ref_impl {
820823 [[nodiscard]] __device__ bool contains (
821824 cooperative_groups::thread_block_tile<cg_size> const & group, ProbeKey const & key) const noexcept
822825 {
823- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
826+ auto probing_iter =
827+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
824828 auto const init_idx = *probing_iter;
825829
826830 while (true ) {
@@ -859,7 +863,7 @@ class open_addressing_ref_impl {
859863 [[nodiscard]] __device__ iterator find (ProbeKey const & key) const noexcept
860864 {
861865 static_assert (cg_size == 1 , " Non-CG operation is incompatible with the current probing scheme" );
862- auto probing_iter = probing_scheme_.operator () <bucket_size>(key, storage_ref_.extent ());
866+ auto probing_iter = probing_scheme_.make_iterator <bucket_size>(key, storage_ref_.extent ());
863867 auto const init_idx = *probing_iter;
864868
865869 while (true ) {
@@ -900,7 +904,8 @@ class open_addressing_ref_impl {
900904 [[nodiscard]] __device__ iterator find (
901905 cooperative_groups::thread_block_tile<cg_size> const & group, ProbeKey const & key) const noexcept
902906 {
903- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
907+ auto probing_iter =
908+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
904909 auto const init_idx = *probing_iter;
905910
906911 while (true ) {
@@ -949,7 +954,7 @@ class open_addressing_ref_impl {
949954 if constexpr (not allows_duplicates) {
950955 return static_cast <size_type>(this ->contains (key));
951956 } else {
952- auto probing_iter = probing_scheme_.operator () <bucket_size>(key, storage_ref_.extent ());
957+ auto probing_iter = probing_scheme_.make_iterator <bucket_size>(key, storage_ref_.extent ());
953958 auto const init_idx = *probing_iter;
954959 size_type count = 0 ;
955960
@@ -993,7 +998,8 @@ class open_addressing_ref_impl {
993998 [[nodiscard]] __device__ size_type count (
994999 cooperative_groups::thread_block_tile<cg_size> const & group, ProbeKey const & key) const noexcept
9951000 {
996- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
1001+ auto probing_iter =
1002+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
9971003 auto const init_idx = *probing_iter;
9981004 size_type count = 0 ;
9991005
@@ -1216,8 +1222,8 @@ class open_addressing_ref_impl {
12161222 // perform probing
12171223 // make sure the flushing_tile is converged at this point to get a coalesced load
12181224 auto const probe_key = *(input_probe + idx);
1219- auto probing_iter =
1220- probing_scheme_. operator ()<bucket_size>( probing_tile, probe_key, storage_ref_.extent ());
1225+ auto probing_iter = probing_scheme_. make_iterator <bucket_size>(
1226+ probing_tile, probe_key, storage_ref_.extent ());
12211227 auto const init_idx = *probing_iter;
12221228
12231229 bool running = true ;
@@ -1348,7 +1354,7 @@ class open_addressing_ref_impl {
13481354 __device__ void for_each (ProbeKey const & key, CallbackOp&& callback_op) const noexcept
13491355 {
13501356 static_assert (cg_size == 1 , " Non-CG operation is incompatible with the current probing scheme" );
1351- auto probing_iter = probing_scheme_.operator () <bucket_size>(key, storage_ref_.extent ());
1357+ auto probing_iter = probing_scheme_.make_iterator <bucket_size>(key, storage_ref_.extent ());
13521358 auto const init_idx = *probing_iter;
13531359
13541360 while (true ) {
@@ -1397,7 +1403,8 @@ class open_addressing_ref_impl {
13971403 ProbeKey const & key,
13981404 CallbackOp&& callback_op) const noexcept
13991405 {
1400- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
1406+ auto probing_iter =
1407+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
14011408 auto const init_idx = *probing_iter;
14021409 bool empty = false ;
14031410
@@ -1461,7 +1468,8 @@ class open_addressing_ref_impl {
14611468 CallbackOp&& callback_op,
14621469 SyncOp&& sync_op) const noexcept
14631470 {
1464- auto probing_iter = probing_scheme_.operator ()<bucket_size>(group, key, storage_ref_.extent ());
1471+ auto probing_iter =
1472+ probing_scheme_.make_iterator <bucket_size>(group, key, storage_ref_.extent ());
14651473 auto const init_idx = *probing_iter;
14661474 bool empty = false ;
14671475
0 commit comments