21namespace seqan3::detail
26template <
typename score_type>
35template <
typename matrix_t>
45 } -> std::same_as<typename std::remove_cvref_t<matrix_t>::size_type>;
49 } -> std::same_as<typename std::remove_cvref_t<matrix_t>::size_type>;
52 m.at(matrix_coordinate{})
53 } -> std::same_as<typename std::remove_cvref_t<matrix_t>::reference>;
58#if SEQAN3_DOXYGEN_ONLY(1) 0
59template <
typename matrix_t>
102template <matrix matrix1_t, matrix matrix2_t>
103 requires std::equality_comparable_with<typename matrix1_t::reference, typename matrix2_t::reference>
104inline bool operator==(matrix1_t
const & lhs, matrix2_t
const & rhs)
noexcept
106 if (lhs.rows() != rhs.rows())
109 if (lhs.cols() != rhs.cols())
112 for (
size_t row = 0u; row < lhs.rows(); ++row)
113 for (
size_t col = 0u; col < lhs.cols(); ++col)
114 if (matrix_coordinate co{row_index_type{row}, column_index_type{col}}; lhs.at(co) != rhs.at(co))
126template <matrix matrix1_t, matrix matrix2_t>
127 requires std::equality_comparable_with<typename matrix1_t::reference, typename matrix2_t::reference>
128inline bool operator!=(matrix1_t
const & lhs, matrix2_t
const & rhs)
noexcept
130 return !(lhs == rhs);
Provides seqan3::detail::matrix_index, seqan3::detail::matrix_coordinate and associated strong types.