# Spec TwoLevelRankDictionary
A TwoLevelRankDictionary is a RankDictionary consisting of two levels.

Extends | RankDictionary
All Extended | RankDictionary
Defined in | <seqan/index.h>
Signature | `template <typename TValue, typename TSpec, typename TConfig> class RankDictionary<TValue, WaveletTree<TSpec> >;`

## Template Parameters

`TValue` | The alphabet type of the wavelet tree.
`TSpec` | A tag for specialization purposes. Default: `void`

## Interface Function Overview

### Interface Functions Inherited From RankDictionary

- `clear`
- `createRankDictionary`
- `empty`
- `getFibre`
- `getRank`
- `getValue`
- `length`
- `open`
- `reserve`
- `resize`
- `save`
- `setValue`
- `updateRanks`

## Detailed Description

This RankDictionary consists of two levels of rank infromation, in which one stores information of blocks and the other information until a specified block. Combining those two informations leads to constant rank dictionary look ups.

#### Dox Sources

    /*!
     * @class TwoLevelRankDictionary
     *
     * @extends RankDictionary
     *
     * @headerfile <seqan/index.h>
     *
     * @brief A TwoLevelRankDictionary is a @link RankDictionary @endlink consisting
     *        of two levels.
     *
     * @signature template <typename TValue, typename TSpec, typename TConfig> class
     *            RankDictionary<TValue, WaveletTree<TSpec> >;
     *
     * @tparam TValue The alphabet type of the wavelet tree.
     * @tparam TSpec A tag for specialization purposes. Default: <tt>void</tt>
     *
     * This @link RankDictionary @endlink consists of two levels of rank
     * infromation, in which one stores information of blocks and the other
     * information until a specified block. Combining those two informations leads
     * to constant rank dictionary look ups.
     */