# Class FastFMIndexConfig
A configuration object that determines the data types of certain fibres of the FMIndex.

Defined in | <seqan/index.h>
Signature | `template <[typename TSpec[, typename TLengthSum[, unsigned LEVELS[, unsigned WORDS_PER_BLOCK]]]]> struct FastFMIndexConfig;`

## Template Parameters

`TSpec` | The specializating type, defaults to `void`.
`TLengthSum` | The underlying type to store precomputed rank values, defaults to `size_t`. The type must hold a value equal to the length of the bit vector.
`LEVELS` | The number of levels of the rank dictionary, defaults to `1`.
`WORDS_PER_BLOCK` | Number of popcount operations per rank query, defaults to `0`. If set to 0, the number equals the size of the underlying alphabet type.

## Member Typedef Overview

- `typedef Levels<TSpec, TConfig> Bwt;`
  The `Bwt` determines the type of the occurrence table. In the default FastFMIndexConfig object the type of `Bwt` is an enhanced prefix sum rank dictionary (LevelsPrefixRDConfig).
- `typedef Levels<TSpec, TConfig> Sentinels;`
  The `Sentinels` determines the type of the sentinels in the FMIndex. In the default FastFMIndexConfig object the type of `Sentinels` is a one level RankDictionary.

## Member Variable Overview

- `unsigned FastFMIndexConfig::SAMPLING`
  The sampling rate determines how many suffix array entries are represented with one entry in the CompressedSA.

## Member Typedef Detail

### `typedef Levels<TSpec, TConfig> Bwt;`

The `Bwt` determines the type of the occurrence table. In the default FastFMIndexConfig object the type of `Bwt` is an enhanced prefix sum rank dictionary (LevelsPrefixRDConfig).

### `typedef Levels<TSpec, TConfig> Sentinels;`

The `Sentinels` determines the type of the sentinels in the FMIndex. In the default FastFMIndexConfig object the type of `Sentinels` is a one level RankDictionary.

## Member Variables Detail

### `unsigned FastFMIndexConfig::SAMPLING`

The sampling rate determines how many suffix array entries are represented with one entry in the CompressedSA.

#### Dox Sources

    /*!
     * @class FastFMIndexConfig
     *
     * @headerfile <seqan/index.h>
     *
     * @brief A configuration object that determines the data types of certain
     *        fibres of the @link FMIndex @endlink.
     *
     * @signature template <[typename TSpec[, typename TLengthSum[, unsigned
     *            LEVELS[, unsigned WORDS_PER_BLOCK]]]]> struct FastFMIndexConfig;
     *
     * @tparam TSpec The specializating type, defaults to <tt>void</tt>.
     * @tparam TLengthSum The underlying type to store precomputed rank values,
     *                    defaults to <tt>size_t</tt>. The type must hold a value
     *                    equal to the length of the bit vector.
     * @tparam LEVELS The number of levels of the rank dictionary, defaults to
     *                <tt>1</tt>.
     * @tparam WORDS_PER_BLOCK Number of popcount operations per rank query,
     *                         defaults to <tt>0</tt>. If set to 0, the number
     *                         equals the size of the underlying alphabet type.
     *
     * @typedef FastFMIndexConfig::Bwt
     *
     * @brief The <tt>Bwt</tt> determines the type of the occurrence table. In the
     *        default @link FastFMIndexConfig @endlink object the type of
     *        <tt>Bwt</tt> is an enhanced prefix sum rank dictionary (@link
     *        LevelsPrefixRDConfig @endlink).
     *
     * @signature typedef Levels<TSpec, TConfig> Bwt;
     *
     * @typedef FastFMIndexConfig::Sentinels
     *
     * @brief The <tt>Sentinels</tt> determines the type of the sentinels in the
     *        @link FMIndex @endlink. In the default @link FastFMIndexConfig
     *        @endlink object the type of <tt>Sentinels</tt> is a one level @link
     *        RankDictionary @endlink.
     *
     * @signature typedef Levels<TSpec, TConfig> Sentinels;
     *
     * @var unsigned FastFMIndexConfig::SAMPLING;
     *
     * @brief The sampling rate determines how many suffix array entries are
     *        represented with one entry in the @link CompressedSA @endlink.
     */