A policy that provides a common interface to acquire the correct alignment matrices.
More...
template<typename traits_t, typename alignment_matrix_t>
requires (is_type_specialisation_of_v<traits_t,
alignment_configuration_traits> && requires (alignment_matrix_t &
matrix, typename traits_t::score_type const initial_score) { { matrix.resize(
column_index_type{size_t{}},
row_index_type{size_t{}}, initial_score) }; })
class seqan3::detail::policy_alignment_matrix< traits_t, alignment_matrix_t >
A policy that provides a common interface to acquire the correct alignment matrices.
- Template Parameters
-
The alignment matrix must be a matrix type that is compatible with the configured alignment algorithm. It must offer a resize member function that takes a seqan3::detail::column_index_type and seqan3::detail::row_index_type and an additional parameter to initialise the allocated matrix memory.
template<typename traits_t , typename alignment_matrix_t >
Acquires a new thread local alignment and index matrix for the given sequence sizes.
- Parameters
-
[in] | sequence1_size | The size of the first sequence. |
[in] | sequence2_size | The size of the second sequence. |
[in] | initial_score | The initial score used for the acquired alignment matrix. |
- Returns
- A std::tuple storing lvalue references to the thread local alignment and index matrix.
Acquires a thread local alignment and index matrix. Initialises the matrices with the given sequence sizes and the initial score value. In the banded alignment, the alignment matrix is reduced to the column count times the band size.
Exception
Might throw std::bad_alloc if the requested matrix size exceeds the available memory or seqan3::invalid_alignment_configuration if the band does not allow a valid computation of the configured alignment.
- Exceptions
-