SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::detail::affine_gap_init_policy< alignment_algorithm_t > Class Template Reference

The CRTP-policy that implements the initialisation of the dynamic programming matrix with affine gaps. More...

#include <seqan3/alignment/pairwise/policy/affine_gap_init_policy.hpp>

Private Member Functions

template<typename score_t , typename value_t >
constexpr auto convert_to_simd_maybe (value_t const value) const noexcept
 Converts the given value into a simd vector or just returns the value if alignment is not executed in vectorised mode.
 
template<typename cell_t , typename score_t >
constexpr auto init_column_cell (cell_t &&column_cell, alignment_algorithm_state< score_t > &state) const noexcept
 Initialises a cell in the first column of the dynamic programming matrix.
 
template<typename cell_t , typename score_t >
constexpr auto init_origin_cell (cell_t &&origin_cell, alignment_algorithm_state< score_t > &state) const noexcept
 Initialises the first cell of the dynamic programming matrix.
 
template<typename cell_t , typename score_t >
constexpr auto init_row_cell (cell_t &&row_cell, alignment_algorithm_state< score_t > &state) const noexcept
 Initialises a cell in the first row of the dynamic programming matrix.
 
Constructors, destructor and assignment

Defaulted all standard constructor.

constexpr affine_gap_init_policy () noexcept=default
 Defaulted.
 
constexpr affine_gap_init_policy (affine_gap_init_policy const &) noexcept=default
 Defaulted.
 
constexpr affine_gap_init_policy (affine_gap_init_policy &&) noexcept=default
 Defaulted.
 
constexpr affine_gap_init_policyoperator= (affine_gap_init_policy const &) noexcept=default
 Defaulted.
 
constexpr affine_gap_init_policyoperator= (affine_gap_init_policy &&) noexcept=default
 Defaulted.
 
 ~affine_gap_init_policy () noexcept=default
 Defaulted.
 
template<typename config_t >
 affine_gap_init_policy (config_t const &config)
 Initialises the policy with the configuration.
 

Private Attributes

friend alignment_algorithm_t
 Befriends the derived class to grant it access to the private members.
 
bool first_column_is_free {}
 Initialisation state of the first column of the alignment.
 
bool first_row_is_free {}
 Initialisation state of the first row of the alignment.
 

Detailed Description

template<typename alignment_algorithm_t>
class seqan3::detail::affine_gap_init_policy< alignment_algorithm_t >

The CRTP-policy that implements the initialisation of the dynamic programming matrix with affine gaps.

Template Parameters
alignment_algorithm_tThe derived type (seqan3::detail::alignment_algorithm) to be augmented with this CRTP-policy.
traits_typeThe traits type to determine the initialisation rules of the dynamic programming matrix. Defaults to seqan3::detail::default_affine_init_traits.
Remarks
The template parameters of this CRTP-policy are selected in the seqan3::detail::alignment_configurator::select_gap_init_policy when selecting the alignment for the given configuration.

Member Function Documentation

◆ convert_to_simd_maybe()

template<typename alignment_algorithm_t >
template<typename score_t , typename value_t >
constexpr auto seqan3::detail::affine_gap_init_policy< alignment_algorithm_t >::convert_to_simd_maybe ( value_t const  value) const
inlineconstexprprivatenoexcept

Converts the given value into a simd vector or just returns the value if alignment is not executed in vectorised mode.

Template Parameters
score_tThe type of the score; must model either seqan3::simd::simd_concept or seqan3::arithmetic.
value_tThe value type to convert; must model seqan3::arithmetic.
Parameters
[in]valueThe value to possibly convert.
Returns
A simd vector filled with the given value or the value itself if the alignment is not executed in vectorised mode.

◆ init_column_cell()

template<typename alignment_algorithm_t >
template<typename cell_t , typename score_t >
constexpr auto seqan3::detail::affine_gap_init_policy< alignment_algorithm_t >::init_column_cell ( cell_t &&  column_cell,
alignment_algorithm_state< score_t > &  state 
) const
inlineconstexprprivatenoexcept

Initialises a cell in the first column of the dynamic programming matrix.

Template Parameters
cell_tThe underlying cell type.
score_tThe score type used inside of the alignment algorithm.
Parameters
[in,out]column_cellA cell of the first row of the dynamic programming matrix.
[in,out]stateThe state with gap information and the current alignment optimum.

cell_t is the result type of dereferencing the zipped iterator over the respective alignment score matrix and the alignment trace matrix used inside of the seqan3::detail::alignment_matrix_policy. The first parameter stored in the zipped tuple is the seqan3::detail::alignment_score_matrix_proxy and the second value is the seqan3::detail::alignment_trace_matrix_proxy.

◆ init_origin_cell()

template<typename alignment_algorithm_t >
template<typename cell_t , typename score_t >
constexpr auto seqan3::detail::affine_gap_init_policy< alignment_algorithm_t >::init_origin_cell ( cell_t &&  origin_cell,
alignment_algorithm_state< score_t > &  state 
) const
inlineconstexprprivatenoexcept

Initialises the first cell of the dynamic programming matrix.

Template Parameters
cell_tThe underlying cell type.
score_tThe score type used inside of the alignment algorithm.
Parameters
[in,out]origin_cellThe first cell of the dynamic programming matrix.
[in,out]stateThe state with gap information and the current alignment optimum.

cell_t is the result type of dereferencing the zipped iterator over the respective alignment score matrix and the alignment trace matrix used inside of the seqan3::detail::alignment_matrix_policy. The first parameter stored in the zipped tuple is the seqan3::detail::alignment_score_matrix_proxy and the second value is the seqan3::detail::alignment_trace_matrix_proxy.

◆ init_row_cell()

template<typename alignment_algorithm_t >
template<typename cell_t , typename score_t >
constexpr auto seqan3::detail::affine_gap_init_policy< alignment_algorithm_t >::init_row_cell ( cell_t &&  row_cell,
alignment_algorithm_state< score_t > &  state 
) const
inlineconstexprprivatenoexcept

Initialises a cell in the first row of the dynamic programming matrix.

Template Parameters
cell_tThe underlying cell type.
score_tThe score type used inside of the alignment algorithm.
Parameters
[in,out]row_cellA cell of the first row of the dynamic programming matrix.
[in,out]stateThe state with gap information and the current alignment optimum.

cell_t is the result type of dereferencing the zipped iterator over the respective alignment score matrix and the alignment trace matrix used inside of the seqan3::detail::alignment_matrix_policy. The first parameter stored in the zipped tuple is the seqan3::detail::alignment_score_matrix_proxy and the second value is the seqan3::detail::alignment_trace_matrix_proxy.


The documentation for this class was generated from the following file:
Hide me