# Spec Levels
Levels is a RankDictionary consisting of up to three levels.

Extends | RankDictionary
All Extended | RankDictionary
Defined in | <seqan/index.h>
Signature | `template <typename TValue, typename TSpec, typename TConfig> struct RankDictionary<TValue, Levels<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 up to three levels of rank infromation, in which one stores information of blocks (1st level) and the other information until a specified block. Combining those two information leads to constant rank dictionary look ups. To reduce space one can increase the number of levels up to three.

#### Dox Sources

    /*!
     * @class Levels
     *
     * @extends RankDictionary
     *
     * @headerfile <seqan/index.h>
     *
     * @brief Levels is a @link RankDictionary @endlink consisting of up to three
     *        levels.
     *
     * @signature template <typename TValue, typename TSpec, typename TConfig>
     *            struct RankDictionary<TValue, Levels<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 up to three levels of rank
     * infromation, in which one stores information of blocks (1st level) and the
     * other information until a specified block. Combining those two information
     * leads to constant rank dictionary look ups. To reduce space one can increase
     * the number of levels up to three.
     */