warpcore 0.0.1
Hashing at the Speed of Light on modern CUDA-accelerators
warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize > Class Template Reference

quadratic probing scheme: \(hash(k,i) = h(k)+\frac{1}{2}\cdot i+\frac{1}{2}\cdot i^2\) More...

Public Types

using key_type = typename Hasher::key_type
 
using index_type = index_t
 
using tag = tags::probing_scheme
 

Public Member Functions

__device__ QuadraticProbing (index_type capacity, index_type probing_length, const cg::thread_block_tile< CGSize > &group)
 constructor More...
 
template<class T >
__device__ index_type begin (T, T)=delete
 
template<class T >
__device__ index_type begin (T)=delete
 
__device__ index_type begin (key_type key, key_type seed=0) noexcept
 begin probing sequence More...
 
__device__ index_type next () noexcept
 next probing index for key More...
 

Static Public Member Functions

static constexpr __host____device__ index_type cg_size () noexcept
 get cooperative group size More...
 
static constexpr __device__ index_type end () noexcept
 end specifier of probing sequence More...
 

Detailed Description

template<class Hasher, index_t CGSize = 1>
class warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >

quadratic probing scheme: \(hash(k,i) = h(k)+\frac{1}{2}\cdot i+\frac{1}{2}\cdot i^2\)

Template Parameters
Hasherhash function
CGSizecooperative group size

Definition at line 218 of file probing_schemes.cuh.

Member Typedef Documentation

◆ index_type

template<class Hasher , index_t CGSize = 1>
using warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::index_type = index_t

Definition at line 226 of file probing_schemes.cuh.

◆ key_type

template<class Hasher , index_t CGSize = 1>
using warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::key_type = typename Hasher::key_type

Definition at line 225 of file probing_schemes.cuh.

◆ tag

template<class Hasher , index_t CGSize = 1>
using warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::tag = tags::probing_scheme

Definition at line 227 of file probing_schemes.cuh.

Constructor & Destructor Documentation

◆ QuadraticProbing()

template<class Hasher , index_t CGSize = 1>
__device__ warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::QuadraticProbing ( index_type  capacity,
index_type  probing_length,
const cg::thread_block_tile< CGSize > &  group 
)
inlineexplicit

constructor

Parameters
[in]capacitycapacity of the underlying hash table
[in]probing_lengthnumber of probing attempts
[in]groupcooperative group

Definition at line 241 of file probing_schemes.cuh.

Member Function Documentation

◆ begin() [1/3]

template<class Hasher , index_t CGSize = 1>
__device__ index_type warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::begin ( key_type  key,
key_type  seed = 0 
)
inlinenoexcept

begin probing sequence

Parameters
[in]keykey to be probed
[in]seedrandom seed
Returns
initial probing index for key

Definition at line 264 of file probing_schemes.cuh.

◆ begin() [2/3]

template<class Hasher , index_t CGSize = 1>
template<class T >
__device__ index_type warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::begin ( )
inlinedelete

◆ begin() [3/3]

template<class Hasher , index_t CGSize = 1>
template<class T >
__device__ index_type warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::begin ( ,
 
)
inlinedelete

◆ cg_size()

template<class Hasher , index_t CGSize = 1>
static constexpr __host____device__ index_type warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::cg_size ( )
inlinestaticconstexprnoexcept

get cooperative group size

Returns
cooperative group size

Definition at line 233 of file probing_schemes.cuh.

◆ end()

template<class Hasher , index_t CGSize = 1>
static constexpr __device__ index_type warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::end ( )
inlinestaticconstexprnoexcept

end specifier of probing sequence

Returns
end specifier

Definition at line 291 of file probing_schemes.cuh.

◆ next()

template<class Hasher , index_t CGSize = 1>
__device__ index_type warpcore::probing_schemes::QuadraticProbing< Hasher, CGSize >::next ( )
inlinenoexcept

next probing index for key

Returns
next probing index

Definition at line 278 of file probing_schemes.cuh.


The documentation for this class was generated from the following file: