# Spec SimpleScore
Simple scoring scheme that has scores for matches, mismatches, opening gaps and extending gaps.

Extends | Score
All Extended | Score
All Subcl's | ScoreSimdWrapper
Defined in | <seqan/score.h>
Signature | `template <typename TValue> class Score<TValue, Simple>;`

## Template Parameters

`TValue` | The score value to use.

## Member Function Overview

- `Score::Score();, Score::Score(score);, Score::Score(match, mismatch, gap[, gapOpen]);`
  Constructor

## Interface Function Overview

- `TValue scoreGap(score);`
  Set gap score.
- `TValue scoreGapExtend(score);`
  Set gap extension score.
- `TValue scoreGapOpen(score);`
  Set gap open score.
- `TValue scoreMatch(score);`
  Match score
- `TValue scoreMismatch(score);`
  Set mismatch score.
- `void setScoreGap(score, value);`
  Set gap score.
- `void setScoreGapExtend(score, value);`
  Set gap extend score.
- `void setScoreGapOpen(score, value);`
  Set gap open score.
- `void setScoreMatch(score, value);`
  Set match score.
- `void setScoreMismatch(score, value);`
  Set mismatch score.

### Interface Functions Inherited From Score

- `loadScoreMatrix`
- `score`
- `scoreGapExtendHorizontal`
- `scoreGapExtendVertical`
- `scoreGapHorizontal`
- `scoreGapOpenHorizontal`
- `scoreGapOpenVertical`
- `scoreGapVertical`
- `sequenceEntryForScore`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Score

- `SequenceEntryForScore`
- `Spec`
- `Value`

## Member Functions Detail

### `Score::Score(); Score::Score(score); Score::Score(match, mismatch, gap[, gapOpen]);`

Constructor

#### Parameters

`score` | Other SimpleScore object to copy from.
`match` | Match score value, type TValue, default 0.
`msmatch` | Mismatch score value, type TValue, default -1.
`gap` | Gap extension value, type TValue, default -1.
`gapOpen` | Gap open value (defaults to gap), type TValue.

#### Data Races

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

## Interface Functions Detail

### `TValue scoreGap(score);`

Set gap score.

#### Parameters

`score` | The SimpleScore to query for its gap score.

#### Returns

`TValue` | The gap score.

#### Data Races

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

### `TValue scoreGapExtend(score);`

Set gap extension score.

#### Parameters

`score` | The SimpleScore to query for its gap extension score.

#### Returns

`TValue` | The gap extension score.

#### Data Races

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

### `TValue scoreGapOpen(score);`

Set gap open score.

#### Parameters

`score` | The SimpleScore to query for its gap open score.

#### Returns

`TValue` | The gap open score.

#### Data Races

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

### `TValue scoreMatch(score);`

Match score

#### Parameters

`score` | The SimpleScore scoring scheme.

#### Returns

`TValue` | The match score.

#### Data Races

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

### `TValue scoreMismatch(score);`

Set mismatch score.

#### Parameters

`score` | The SimpleScore to query for its mismatch score.

#### Returns

`TValue` | The mismatch score.

#### Data Races

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

### `void setScoreGap(score, value);`

Set gap score.

#### Parameters

`score` | The SimpleScore scoring scheme to set the gap value for.
`value` | The value to set the gap score to.

#### Data Races

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

### `void setScoreGapExtend(score, value);`

Set gap extend score.

#### Parameters

`score` | The SimpleScore scoring scheme to set the gap extend value for.
`value` | The value to set the gap open score to.

#### Data Races

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

### `void setScoreGapOpen(score, value);`

Set gap open score.

#### Parameters

`score` | The SimpleScore scoring scheme to set the gap open value for.
`value` | The value to set the gap open score to.

#### Data Races

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

### `void setScoreMatch(score, value);`

Set match score.

#### Parameters

`score` | The SimpleScore scoring scheme to set the value for.
`value` | The value to set the match score to.

#### Data Races

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

### `void setScoreMismatch(score, value);`

Set mismatch score.

#### Parameters

`score` | The SimpleScore scoring scheme to set the mismatch value for.
`value` | The value to set the mismatch score to.

#### Data Races

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

#### Dox Sources

    /*!
     * @class SimpleScore
     *
     * @extends Score
     *
     * @headerfile <seqan/score.h>
     *
     * @brief Simple scoring scheme that has scores for matches, mismatches, opening
     *        gaps and extending gaps.
     *
     * @signature template <typename TValue> class Score<TValue, Simple>;
     *
     * @tparam TValue The score value to use.
     *
     * @fn SimpleScore::Score
     *
     * @brief Constructor
     *
     * @signature Score::Score();
     * @signature Score::Score(score);
     * @signature Score::Score(match, mismatch, gap[, gapOpen]);
     *
     * @param[in] score Other SimpleScore object to copy from.
     * @param[in] match Match score value, type TValue, default 0.
     * @param[in] msmatch Mismatch score value, type TValue, default -1.
     * @param[in] gap Gap extension value, type TValue, default -1.
     * @param[in] gapOpen Gap open value (defaults to gap), type TValue.
     *
     * @fn SimpleScore#scoreMatch
     *
     * @brief Match score
     *
     * @signature TValue scoreMatch(score);
     *
     * @param[in] score The SimpleScore scoring scheme.
     *
     * @return TValue The match score.
     *
     * @fn SimpleScore#setScoreMatch
     *
     * @brief Set match score.
     *
     * @signature void setScoreMatch(score, value);
     *
     * @param[in,out] score The SimpleScore scoring scheme to set the value for.
     * @param[in] value The value to set the match score to.
     *
     * @fn SimpleScore#scoreMismatch
     *
     * @brief Set mismatch score.
     *
     * @signature TValue scoreMismatch(score);
     *
     * @param[in] score The SimpleScore to query for its mismatch score.
     *
     * @return TValue The mismatch score.
     *
     * @fn SimpleScore#setScoreMismatch
     *
     * @brief Set mismatch score.
     *
     * @signature void setScoreMismatch(score, value);
     *
     * @param[in,out] score The SimpleScore scoring scheme to set the mismatch value
     *                      for.
     * @param[in] value The value to set the mismatch score to.
     *
     * @fn SimpleScore#scoreGapExtend
     *
     * @brief Set gap extension score.
     *
     * @signature TValue scoreGapExtend(score);
     *
     * @param[in] score The SimpleScore to query for its gap extension score.
     *
     * @return TValue The gap extension score.
     *
     * @fn SimpleScore#setScoreGapExtend
     *
     * @brief Set gap extend score.
     *
     * @signature void setScoreGapExtend(score, value);
     *
     * @param[in,out] score The SimpleScore scoring scheme to set the gap extend
     *                      value for.
     * @param[in] value The value to set the gap open score to.
     *
     * @fn SimpleScore#scoreGapOpen
     *
     * @brief Set gap open score.
     *
     * @signature TValue scoreGapOpen(score);
     *
     * @param[in] score The SimpleScore to query for its gap open score.
     *
     * @return TValue The gap open score.
     *
     * @fn SimpleScore#setScoreGapOpen
     *
     * @brief Set gap open score.
     *
     * @signature void setScoreGapOpen(score, value);
     *
     * @param[in,out] score The SimpleScore scoring scheme to set the gap open value
     *                      for.
     * @param[in] value The value to set the gap open score to.
     *
     * @fn SimpleScore#scoreGap
     *
     * @brief Set gap score.
     *
     * @signature TValue scoreGap(score);
     *
     * @param[in] score The SimpleScore to query for its gap score.
     *
     * @return TValue The gap score.
     *
     * @fn SimpleScore#setScoreGap
     *
     * @brief Set gap score.
     *
     * @signature void setScoreGap(score, value);
     *
     * @param[in,out] score The SimpleScore scoring scheme to set the gap value for.
     * @param[in] value The value to set the gap score to.
     */