クラス テンプレート shttl::static_off_hasher< T, OFFSET >

#include <static_off_hasher.h>

shttl::static_off_hasher< T, OFFSET >に対する継承グラフ

Inheritance graph
[凡例]
shttl::static_off_hasher< T, OFFSET >のコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public 型

typedef hasher< T > base_type
typedef base_type::size_type size_type
typedef static_off_hasher<
T, OFFSET > 
this_type
typedef T value_type

Public メソッド

size_type idx_bit () const
value_type idx_mask () const
size_type index (const T &t) const
bool match (const T &lhs, const T &rhs) const
size_type off_bit () const
u64 off_mask () const
value_type rebuild (const value_type &tag, size_type index) const
size_type size () const
 static_off_hasher (const size_type index_bit_size)
tag (const T &t) const

Static Public 変数

static const std::numeric_limits<
value_type
value_info

Protected 変数

size_type m_idx_bit
value_type m_idx_mask

説明

template<class T = u32, size_t OFFSET = 0>
class shttl::static_off_hasher< T, OFFSET >

static_off_hasher.h45 行で定義されています。


型定義

template<class T = u32, size_t OFFSET = 0>
typedef hasher<T> shttl::static_off_hasher< T, OFFSET >::base_type

static_off_hasher.h50 行で定義されています。

template<class T = u32, size_t OFFSET = 0>
typedef base_type::size_type shttl::static_off_hasher< T, OFFSET >::size_type

shttl::hasher< T >を再定義しています。

static_off_hasher.h52 行で定義されています。

template<class T = u32, size_t OFFSET = 0>
typedef static_off_hasher<T, OFFSET> shttl::static_off_hasher< T, OFFSET >::this_type

static_off_hasher.h49 行で定義されています。

template<class T = u32, size_t OFFSET = 0>
typedef T shttl::static_off_hasher< T, OFFSET >::value_type

static_off_hasher.h53 行で定義されています。


コンストラクタとデストラクタ

template<class T = u32, size_t OFFSET = 0>
shttl::static_off_hasher< T, OFFSET >::static_off_hasher ( const size_type  index_bit_size  )  [inline, explicit]

static_off_hasher.h70 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::idx_bit()shttl::static_off_hasher< T, OFFSET >::off_bit()shttl::static_off_hasher< T, OFFSET >::value_info.

00070                                                                    :
00071             m_idx_bit ( index_bit_size ), 
00072             m_idx_mask( (value_type)shttl::mask(0, index_bit_size) )
00073         {
00074             if( (/*idx_bit() < 0 || */(size_type)value_info.digits < idx_bit()) ||
00075                 (/*off_bit() < 0 || */(size_type)value_info.digits < off_bit()) ||
00076                 (                 (size_type)value_info.digits < idx_bit() + off_bit()  )
00077             ){
00078                 throw std::invalid_argument("static_off_hasher::static_off_hasher");  
00079             }
00080         }

関数の呼び出しグラフ:


関数

template<class T = u32, size_t OFFSET = 0>
size_type shttl::static_off_hasher< T, OFFSET >::idx_bit (  )  const [inline]

static_off_hasher.h58 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::m_idx_bit.

参照元 shttl::static_off_hasher< T, OFFSET >::rebuild()shttl::static_off_hasher< T, OFFSET >::static_off_hasher()shttl::static_off_hasher< T, OFFSET >::tag().

00058 { return m_idx_bit;              }

Here is the caller graph for this function:

template<class T = u32, size_t OFFSET = 0>
value_type shttl::static_off_hasher< T, OFFSET >::idx_mask (  )  const [inline]

static_off_hasher.h59 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::m_idx_mask.

参照元 shttl::static_off_hasher< T, OFFSET >::index()shttl::double_hasher< T, OFFSET, U >::index()shttl::double_hasher< T, OFFSET, U >::match()shttl::static_off_hasher< T, OFFSET >::size().

00059 { return m_idx_mask;             }

Here is the caller graph for this function:

template<class T = u32, size_t OFFSET = 0>
size_type shttl::static_off_hasher< T, OFFSET >::index ( const T &  t  )  const [inline, virtual]

shttl::hasher< T >を実装しています。

static_off_hasher.h84 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::idx_mask()shttl::static_off_hasher< T, OFFSET >::off_bit().

00085         {
00086             return static_cast<size_type>((t >> off_bit()) & idx_mask());
00087         }

関数の呼び出しグラフ:

template<class T = u32, size_t OFFSET = 0>
bool shttl::static_off_hasher< T, OFFSET >::match ( const T &  lhs,
const T &  rhs 
) const [inline, virtual]

shttl::hasher< T >を実装しています。

static_off_hasher.h101 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::off_mask().

参照元 shttl::double_hasher< T, OFFSET, U >::match().

00102         {
00103             return (lhs & ~off_mask()) == (rhs & ~off_mask());
00104         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

template<class T = u32, size_t OFFSET = 0>
size_type shttl::static_off_hasher< T, OFFSET >::off_bit (  )  const [inline]

static_off_hasher.h60 行で定義されています。

参照元 shttl::static_off_hasher< T, OFFSET >::index()shttl::static_off_hasher< T, OFFSET >::rebuild()shttl::static_off_hasher< T, OFFSET >::static_off_hasher()shttl::static_off_hasher< T, OFFSET >::tag().

00060 { return OFFSET;                 }

Here is the caller graph for this function:

template<class T = u32, size_t OFFSET = 0>
u64 shttl::static_off_hasher< T, OFFSET >::off_mask (  )  const [inline]

static_off_hasher.h61 行で定義されています。

参照元 shttl::static_off_hasher< T, OFFSET >::match().

00061 { return shttl::mask(0, OFFSET); }

Here is the caller graph for this function:

template<class T = u32, size_t OFFSET = 0>
value_type shttl::static_off_hasher< T, OFFSET >::rebuild ( const value_type tag,
size_type  index 
) const [inline]

static_off_hasher.h94 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::idx_bit()shttl::static_off_hasher< T, OFFSET >::off_bit().

参照元 shttl::double_hasher< T, OFFSET, U >::rebuild().

00095         {
00096             return (value_type)(
00097                 ((tag << idx_bit()) | index) << off_bit()
00098             );
00099         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

template<class T = u32, size_t OFFSET = 0>
size_type shttl::static_off_hasher< T, OFFSET >::size (  )  const [inline, virtual]

shttl::hasher< T >を実装しています。

static_off_hasher.h64 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::idx_mask().

参照元 shttl::double_hasher< T, OFFSET, U >::size().

00065         {
00066             return (size_type)idx_mask() + 1; 
00067         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

template<class T = u32, size_t OFFSET = 0>
T shttl::static_off_hasher< T, OFFSET >::tag ( const T &  t  )  const [inline, virtual]

shttl::hasher< T >を実装しています。

static_off_hasher.h89 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::idx_bit()shttl::static_off_hasher< T, OFFSET >::off_bit().

参照元 shttl::double_hasher< T, OFFSET, U >::tag().

00090         {
00091             return t >> (off_bit()+idx_bit());
00092         }

関数の呼び出しグラフ:

Here is the caller graph for this function:


変数

template<class T = u32, size_t OFFSET = 0>
size_type shttl::static_off_hasher< T, OFFSET >::m_idx_bit [protected]

static_off_hasher.h108 行で定義されています。

参照元 shttl::static_off_hasher< T, OFFSET >::idx_bit().

template<class T = u32, size_t OFFSET = 0>
value_type shttl::static_off_hasher< T, OFFSET >::m_idx_mask [protected]

static_off_hasher.h109 行で定義されています。

参照元 shttl::static_off_hasher< T, OFFSET >::idx_mask().

template<class T = u32, size_t OFFSET = 0>
const std::numeric_limits<value_type> shttl::static_off_hasher< T, OFFSET >::value_info [static]

static_off_hasher.h55 行で定義されています。

参照元 shttl::static_off_hasher< T, OFFSET >::static_off_hasher().


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 15:36:26 2013に生成されました。  doxygen 1.4.7