114template <
typename tuple_t>
137 using tuple_t::tuple_t;
140 template <
typename other_tuple_t>
141 requires std::constructible_from<tuple_t, other_tuple_t &&>
146 template <
typename other_tuple_t>
147 requires std::constructible_from<tuple_t, other_tuple_t const &>
149 tuple_t{static_cast<other_tuple_t const &>(other)}
153 template <
typename other_tuple_t>
154 requires std::constructible_from<tuple_t, other_tuple_t>
156 tuple_t{static_cast<other_tuple_t &&>(
std::move(other))}
160 template <
typename other_tuple_t>
161 requires std::assignable_from<tuple_t &, other_tuple_t &&>
164 as_base() = std::forward<other_tuple_t>(other);
169 template <
typename other_tuple_t>
170 requires std::assignable_from<tuple_t &, other_tuple_t const &>
173 as_base() =
static_cast<other_tuple_t
const &
>(other);
178 template <
typename other_tuple_t>
179 requires std::assignable_from<tuple_t &, other_tuple_t>
182 as_base() =
static_cast<other_tuple_t &&
>(std::move(other));
194 return get_score_impl<0>(*
this);
199 return get_score_impl<0>(*
this);
204 return get_score_impl<0>(std::move(*
this));
209 return get_score_impl<0>(std::move(*
this));
215 return get_score_impl<1>(*
this);
220 return get_score_impl<1>(*
this);
225 return get_score_impl<1>(std::move(*
this));
230 return get_score_impl<1>(std::move(*
this));
236 return get_score_impl<2>(*
this);
241 return get_score_impl<2>(*
this);
246 return get_score_impl<2>(std::move(*
this));
251 return get_score_impl<2>(std::move(*
this));
263 return get_trace_impl<0>(*
this);
269 return get_trace_impl<0>(*
this);
275 return get_trace_impl<0>(std::move(*
this));
281 return get_trace_impl<0>(std::move(*
this));
288 return get_trace_impl<1>(*
this);
294 return get_trace_impl<1>(*
this);
300 return get_trace_impl<1>(std::move(*
this));
306 return get_trace_impl<1>(std::move(*
this));
313 return get_trace_impl<2>(*
this);
319 return get_trace_impl<2>(*
this);
325 return get_trace_impl<2>(std::move(*
this));
331 return get_trace_impl<2>(std::move(*
this));
344 template <
size_t index,
typename this_t>
351 return get<index>(std::forward<this_t>(me));
353 return get<index>(get<0>(std::forward<this_t>(me)));
364 template <
size_t index,
typename this_t>
365 requires (index < 3 && affine_score_and_trace_cell<tuple_t>)
370 return get<index>(get<1>(std::forward<this_t>(me)));
376 return static_cast<tuple_t &
>(*this);
384template <
typename tuple_t>
389template <
size_t index,
typename tuple_t>
A proxy for an affine score matrix cell.
Definition: affine_cell_proxy.hpp:117
decltype(auto) horizontal_trace() &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:297
decltype(auto) horizontal_trace() const &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:303
affine_cell_proxy(affine_cell_proxy const &)=default
Defaulted.
decltype(auto) horizontal_trace() const &noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:291
decltype(auto) horizontal_score() &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:223
affine_cell_proxy(affine_cell_proxy &&)=default
Defaulted.
decltype(auto) best_score() &noexcept
Access the best score of the wrapped score matrix cell.
Definition: affine_cell_proxy.hpp:192
affine_cell_proxy()=default
Defaulted.
decltype(auto) vertical_score() &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:244
affine_cell_proxy(other_tuple_t &&other)
Converting constructor. Initialises from another tuple type.
Definition: affine_cell_proxy.hpp:142
decltype(auto) vertical_score() const &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:249
static constexpr decltype(auto) get_score_impl(this_t &&me) noexcept
Implements the get interface for the various calls to receive the score value.
Definition: affine_cell_proxy.hpp:346
decltype(auto) horizontal_score() const &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:228
decltype(auto) vertical_score() const &noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:239
decltype(auto) horizontal_score() const &noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:218
decltype(auto) best_trace() &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:272
decltype(auto) best_trace() const &noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:266
~affine_cell_proxy()=default
Defaulted.
static constexpr decltype(auto) get_trace_impl(this_t &&me) noexcept
Implements the get interface for the various calls to receive the trace value.
Definition: affine_cell_proxy.hpp:366
decltype(auto) vertical_score() &noexcept
Access the vertical score of the wrapped score matrix cell.
Definition: affine_cell_proxy.hpp:234
tuple_t & as_base() &noexcept
Casts this to the base class type.
Definition: affine_cell_proxy.hpp:374
decltype(auto) horizontal_score() &noexcept
Access the horizontal score of the wrapped score matrix cell.
Definition: affine_cell_proxy.hpp:213
affine_cell_proxy(affine_cell_proxy< other_tuple_t > const &other)
Converting copy-constructor.
Definition: affine_cell_proxy.hpp:148
decltype(auto) best_score() &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:202
affine_cell_proxy & operator=(affine_cell_proxy const &)=default
Defaulted.
affine_cell_proxy & operator=(affine_cell_proxy< other_tuple_t > &&other)
Converting move-assignment.
Definition: affine_cell_proxy.hpp:180
decltype(auto) best_score() const &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:207
decltype(auto) best_score() const &noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:197
decltype(auto) vertical_trace() const &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:328
decltype(auto) vertical_trace() &noexcept
Access the vertical score of the wrapped score matrix cell.
Definition: affine_cell_proxy.hpp:310
affine_cell_proxy & operator=(affine_cell_proxy< other_tuple_t > const &other)
Converting copy-assignment.
Definition: affine_cell_proxy.hpp:171
decltype(auto) vertical_trace() &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:322
decltype(auto) best_trace() const &&noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:278
decltype(auto) vertical_trace() const &noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: affine_cell_proxy.hpp:316
affine_cell_proxy & operator=(affine_cell_proxy &&)=default
Defaulted.
affine_cell_proxy & operator=(other_tuple_t &&other)
Converting assignment. Initialises from another tuple type.
Definition: affine_cell_proxy.hpp:162
affine_cell_proxy(affine_cell_proxy< other_tuple_t > &&other)
Converting move-constructor.
Definition: affine_cell_proxy.hpp:155
decltype(auto) best_trace() &noexcept
Access the optimal score of the wrapped score matrix cell.
Definition: affine_cell_proxy.hpp:260
decltype(auto) horizontal_trace() &noexcept
Access the horizontal score of the wrapped score matrix cell.
Definition: affine_cell_proxy.hpp:285
Provides seqan3::detail::empty_type.
trace_directions
The possible directions a trace can have. The values can be combined by the logical |-operator.
Definition: trace_directions.hpp:29
A type that satisfies std::is_arithmetic_v<t>.
The concept for a type that models an affine cell of the combined score and trace matrix.
The concept for a type that models an affine cell of the score matrix.
The concept for a type that models an affine cell of the trace matrix.
The concept for a type that models either seqan3::arithmetic or seqan3::simd::simd_concept.
The concept for a type that either is the same type as seqan3::detail::trace_directions or models the...
Subconcept definition for seqan3::tuple_like to test for std::tuple_size-interface.
The generic simd concept.
Whether a type behaves like a tuple.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: configuration.hpp:415
SeqAn specific customisations in the standard namespace.
An empty class type used in meta programming.
Definition: empty_type.hpp:23
Provides the declaration of seqan3::detail::trace_directions.
Provides concepts that do not have equivalents in C++20.
Provides seqan3::simd::simd_concept.
Provides seqan3::tuple_like.