|
SeqAn3 3.4.0-rc.4
The Modern C++ library for sequence analysis.
|
The CRTP-policy to determine the optimum of the dynamic programming matrix. More...
#include <seqan3/alignment/pairwise/policy/find_optimum_policy.hpp>
Protected Member Functions | |
| template<typename cell_t , typename score_t > | |
| constexpr void | check_and_update (cell_t const &cell, alignment_algorithm_state< score_t > &state) const noexcept |
| Tests if the score in the current cell is greater than the current alignment optimum. | |
| template<typename cell_t , typename score_t > | |
| constexpr void | check_score_of_cell (cell_t const ¤t_cell, alignment_algorithm_state< score_t > &state) const noexcept |
| Checks if a given cell is a new optimum in the alignment. | |
| template<typename alignment_column_t , typename score_t > | |
| constexpr void | check_score_of_cells_in_last_column (alignment_column_t &&last_column, alignment_algorithm_state< score_t > &state) const noexcept |
| Checks all cells of the last alignment column for a new alignment optimum. | |
| template<typename cell_t , typename score_t > | |
| constexpr void | check_score_of_last_cell (cell_t const &last_cell, alignment_algorithm_state< score_t > &state) const noexcept |
| Checks if the last cell of the alignment matrix is a new optimum in the alignment. | |
| template<typename cell_t , typename score_t > | |
| constexpr void | check_score_of_last_row_cell (cell_t const &last_row_cell, alignment_algorithm_state< score_t > &state) const noexcept |
| Checks if a cell in the last row of the alignment matrix is a new optimum in the alignment. | |
Private Member Functions | |
Constructors, destructor and assignment | |
| constexpr | find_optimum_policy ()=default |
| Defaulted. | |
| constexpr | find_optimum_policy (find_optimum_policy const &)=default |
| Defaulted. | |
| constexpr | find_optimum_policy (find_optimum_policy &&)=default |
| Defaulted. | |
| constexpr find_optimum_policy & | operator= (find_optimum_policy const &)=default |
| Defaulted. | |
| constexpr find_optimum_policy & | operator= (find_optimum_policy &&)=default |
| Defaulted. | |
| ~find_optimum_policy ()=default | |
| Defaulted. | |
| template<typename configuration_t > | |
| find_optimum_policy (configuration_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 | test_every_cell {false} |
| Whether every cell of the alignment matrix shall be tracked. | |
| bool | test_last_column_cell {false} |
| Whether cells of the last column shall be tracked. | |
| bool | test_last_row_cell {false} |
| Whether cells of the last row shall be tracked. | |
Friends | |
| template<typename other_alignment_algorithm_t > | |
| class | affine_gap_init_policy |
| Allow seqan3::detail::affine_gap_init_policy to access check_score. | |
| template<typename other_alignment_algorithm_t , typename score_t , typename is_local_t > | |
| class | affine_gap_policy |
| Allow seqan3::detail::affine_gap_policy to access check_score. | |
| template<typename other_alignment_algorithm_t , simd_concept score_t, typename is_local_t > | |
| class | simd_affine_gap_policy |
The CRTP-policy to determine the optimum of the dynamic programming matrix.
| alignment_algorithm_t | The derived type (seqan3::detail::alignment_algorithm) to be augmented with this CRTP-policy. |
This class determines the matrix wide optimum. The search space can be further refined using the traits_type which configures the search space of the alignment matrix.
|
inlineconstexprprotectednoexcept |
Tests if the score in the current cell is greater than the current alignment optimum.
| cell_t | The type of the alignment matrix cell. The cell type corresponds to the value type of the range returned by seqan3::detail::alignment_matrix_policy::current_alignment_column. |
| score_t | The alignment algorithm score type. |
| [in] | cell | The current cell to get the score and the coordinate from. |
| [in,out] | state | The state with the current optimum to update. |
|
inlineconstexprprotectednoexcept |
Checks if a given cell is a new optimum in the alignment.
| cell_t | The type of the alignment matrix cell. |
| score_t | The type of the score. |
| [in] | current_cell | The currently computed alignment matrix cell. |
| [in,out] | state | The state with the current optimum to update. |
This function resolves to a "NO-OP" function if the trait for searching every cell is set to std::false_type.
|
inlineconstexprprotectednoexcept |
Checks all cells of the last alignment column for a new alignment optimum.
| alignment_column_t | The type of an alignment column. |
| score_t | The type of the optimal score. |
| [in] | last_column | The last column of the alignment matrix. |
| [in,out] | state | The state with the current optimum to update. |
This function resolves to a "NO-OP" function if the trait for searching the last column is set to std::false_type or if the trait for searching every cell is set to std::true_type.
|
inlineconstexprprotectednoexcept |
Checks if the last cell of the alignment matrix is a new optimum in the alignment.
| cell_t | The type of the last cell. |
| score_t | The type of the score. |
| [in] | last_cell | The last cell of the alignment matrix. |
| [in,out] | state | The state with the current optimum to update. |
This function resolves to a "NO-OP" function if the last cell has been checked already as part of the last row, last column, or in case every cell was checked.
|
inlineconstexprprotectednoexcept |
Checks if a cell in the last row of the alignment matrix is a new optimum in the alignment.
| cell_t | The type of the alignment matrix cell. |
| score_t | The type of the score. |
| [in] | last_row_cell | The cell of the current column in the last row of the alignment matrix. |
| [in,out] | state | The state with the current optimum to update. |
This function resolves to a "NO-OP" function if the trait for searching the last row is set to std::false_type or if the trait for searching every cell is set to std::true_type.