# Spec MyersPattern
Provides fast approximate searching of one string in another using Myer's fast bit-parallel algorithm with application of the Ukkonen- trick.

Extends | Pattern
All Extended | Pattern
Defined in | <seqan/find.h>
Signature | `template <typename TNeedle[, typename TSpec[, typename TFindBeginPatternSpec]]> class Pattern<TNeedle, Myers<TSpec, TFindBeginPatternSpec> >;`

## Template Parameters

`TSpec` | Specialization tag. This is FindInfix for infix search or FindPrefix for prefix search. Defaults to FindInfix.
`TFindBeginPatternSpec` | Specialization of Pattern used to find the begin of matches.This must be a finder for prefix search, e.g. `DPSearch<TScore, FindPrefix>` or `Myers<FindPrefix>`. Specify `void` to suppress prefix searching. Default: DefaultFindBeginPatternSpec
`TNeedle` | The needle type. Types: String

## Interface Function Overview

- `TScoreValue getScore(pattern);`
  Score of the last found match in approximate searching.
- `TScoreValue scoreLimit(pattern);`
  The minimal score a match must reach in approximate searching.
- `void setScoreLimit(pattern, limit);`
  Set the minimal score a match must reach in approximate serach.

### Interface Functions Inherited From Pattern

- `getBeginScore`
- `host`
- `needle`
- `position`
- `scoringScheme`
- `setNeedle`
- `setScoringScheme`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Pattern

- `Container`
- `Difference`
- `Host`
- `Needle`
- `PexMultiFinder`
- `Position`
- `ScoringScheme`
- `Size`
- `Value`

## Detailed Description

The needle-length must be smaller than the highest number that can be stored in an unsigned int.

## Interface Functions Detail

### `TScoreValue getScore(pattern);`

Score of the last found match in approximate searching.

#### Parameters

`pattern` | A myers pattern that can be used for approximate searching.

#### Returns

`TScoreValue` | The score of the last match found using `pattern`. If no match was found then the value is undefined.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TScoreValue scoreLimit(pattern);`

The minimal score a match must reach in approximate searching.

#### Parameters

`pattern` | The pattern to query.

#### Returns

`TScoreValue` | The score limit value.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `void setScoreLimit(pattern, limit);`

Set the minimal score a match must reach in approximate serach.

#### Parameters

`pattern` | The pattern to set the limit for.
`limit` | The limit score value to set.

#### Returns

`TScoreValue` | The score limit value.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

#### Dox Sources

    /*!
     * @class MyersPattern
     *
     * @extends Pattern
     *
     * @headerfile <seqan/find.h>
     *
     * @brief Provides fast approximate searching of one string in another using
     *        Myer's fast bit-parallel algorithm with application of the Ukkonen-
     *        trick.
     *
     * @signature template <typename TNeedle[, typename TSpec[, typename
     *            TFindBeginPatternSpec]]> class Pattern<TNeedle, Myers<TSpec,
     *            TFindBeginPatternSpec> >;
     *
     * @tparam TSpec Specialization tag. This is @link
     *               ApproximateFinderSearchTypeTags#FindInfix @endlink for infix
     *               search or @link ApproximateFinderSearchTypeTags#FindPrefix
     *               @endlink for prefix search. Defaults to
     *               @linkApproximateFinderSearchTypeTags#FindInfix @endlink.
     * @tparam TFindBeginPatternSpec  Specialization of @link Pattern @endlink used
     *                               to find the begin of matches.This must be a
     *                               finder for prefix search, e.g. @link
     *                               DPSearchPattern <tt>DPSearch&lt;TScore,
     *                               FindPrefix&gt;</tt> @endlink or @link
     *                               MyersPattern <tt>Myers&lt;FindPrefix&gt;</tt>
     *                               @endlink. Specify <tt>void</tt> to suppress
     *                               prefix searching. Default: @link
     *                               DefaultFindBeginPatternSpec @endlink
     * @tparam TNeedle The needle type. Types: String
     *
     * The needle-length must be smaller than the highest number that can be stored
     * in an unsigned int.
     *
     * @fn MyersPattern#scoreLimit
     *
     * @headerfile <seqan/find.h>
     *
     * @brief The minimal score a match must reach in approximate searching.
     *
     * @signature TScoreValue scoreLimit(pattern);
     *
     * @param[in] pattern The pattern to query.
     *
     * @return TScoreValue The score limit value.
     *
     * @fn MyersPattern#setSoreLimit
     *
     * @headerfile <seqan/find.h>
     *
     * @brief Set the minimal score a match must reach in approximate serach.
     *
     * @signature void setScoreLimit(pattern, limit);
     *
     * @param[in,out] pattern The pattern to set the limit for.
     * @param[in] limit The limit score value to set.
     *
     * @return TScoreValue The score limit value.
     *
     * @fn MyersPattern#getScore
     *
     * @headerfile <seqan/find.h>
     *
     * @brief Score of the last found match in approximate searching.
     *
     * @signature TScoreValue getScore(pattern);
     *
     * @param[in] pattern A myers pattern that can be used for approximate
     *                    searching.
     *
     * @return TScoreValue The score of the last match found using <tt>pattern</tt>.
     *                     If no match was found then the value is undefined.
     */