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

The type returned by seqan3::views::minimiser. More...

#include <seqan3/search/views/minimiser.hpp>

+ Inheritance diagram for seqan3::detail::minimiser_view< urng1_t, urng2_t >:

Classes

class  basic_iterator
 Iterator for calculating minimisers. More...
 

Public Member Functions

Constructors, destructor and assignment
 minimiser_view ()=default
 Defaulted.
 
 minimiser_view (minimiser_view const &rhs)=default
 Defaulted.
 
 minimiser_view (minimiser_view &&rhs)=default
 Defaulted.
 
minimiser_viewoperator= (minimiser_view const &rhs)=default
 Defaulted.
 
minimiser_viewoperator= (minimiser_view &&rhs)=default
 Defaulted.
 
 ~minimiser_view ()=default
 Defaulted.
 
 minimiser_view (urng1_t urange1, size_t const window_size)
 Construct from a view and a given number of values in one window.
 
template<typename other_urng1_t >
requires (std::ranges::viewable_range<other_urng1_t> && std::constructible_from<urng1_t, std::ranges::ref_view<std::remove_reference_t<other_urng1_t>>>)
 minimiser_view (other_urng1_t &&urange1, size_t const window_size)
 Construct from a non-view that can be view-wrapped and a given number of values in one window.
 
 minimiser_view (urng1_t urange1, urng2_t urange2, size_t const window_size)
 Construct from two views and a given number of values in one window.
 
template<typename other_urng1_t , typename other_urng2_t >
requires (std::ranges::viewable_range<other_urng1_t> && std::constructible_from<urng1_t, std::views::all_t<other_urng1_t>> && std::ranges::viewable_range<other_urng2_t> && std::constructible_from<urng2_t, std::views::all_t<other_urng2_t>>)
 minimiser_view (other_urng1_t &&urange1, other_urng2_t &&urange2, size_t const window_size)
 Construct from two non-views that can be view-wrapped and a given number of values in one window.
 
Iterators
basic_iterator< false > begin ()
 Returns an iterator to the first element of the range.
 
basic_iterator< true > begin () const
 Returns an iterator to the first element of the range.
 
sentinel end () const
 Returns an iterator to the element following the last element of the range.
 

Private Types

using default_urng2_t = std::ranges::empty_view< seqan3::detail::empty_type >
 The default argument of the second range.
 
using sentinel = std::default_sentinel_t
 The sentinel type of the minimiser_view.
 

Private Attributes

urng1_t urange1 {}
 The first underlying range.
 
urng2_t urange2 {}
 The second underlying range.
 
size_t window_size {}
 The number of values in one window.
 

Static Private Attributes

static constexpr bool const_iterable
 Whether the given ranges are const_iterable.
 
static constexpr bool second_range_is_given = !std::same_as<urng2_t, default_urng2_t>
 Boolean variable, which is true, when second range is not of empty type.
 

Detailed Description

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
class seqan3::detail::minimiser_view< urng1_t, urng2_t >

The type returned by seqan3::views::minimiser.

Template Parameters
urng1_tThe type of the underlying range, must model std::ranges::forward_range, the reference type must model std::totally_ordered. The typical use case is that the reference type is the result of seqan3::kmer_hash.
urng2_tThe type of the second underlying range, must model std::ranges::forward_range, the reference type must model std::totally_ordered. If only one range is provided this defaults to std::ranges::empty_view.

See seqan3::views::minimiser for a detailed explanation on minimizers.

Note
Most members of this class are generated by std::ranges::view_interface which is not yet documented here.
See also
seqan3::views::minimiser

Constructor & Destructor Documentation

◆ minimiser_view() [1/4]

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
seqan3::detail::minimiser_view< urng1_t, urng2_t >::minimiser_view ( urng1_t  urange1,
size_t const  window_size 
)
inlineexplicit

Construct from a view and a given number of values in one window.

Parameters
[in]urange1The input range to process. Must model std::ranges::viewable_range and std::ranges::forward_range.
[in]window_sizeThe number of values in one window.

◆ minimiser_view() [2/4]

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
template<typename other_urng1_t >
requires (std::ranges::viewable_range<other_urng1_t> && std::constructible_from<urng1_t, std::ranges::ref_view<std::remove_reference_t<other_urng1_t>>>)
seqan3::detail::minimiser_view< urng1_t, urng2_t >::minimiser_view ( other_urng1_t &&  urange1,
size_t const  window_size 
)
inlineexplicit

Construct from a non-view that can be view-wrapped and a given number of values in one window.

Template Parameters
other_urng1_tThe type of another urange. Must model std::ranges::viewable_range and be constructible from urng1_t.
Parameters
[in]urange1The input range to process. Must model std::ranges::viewable_range and std::ranges::forward_range.
[in]window_sizeThe number of values in one window.

◆ minimiser_view() [3/4]

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
seqan3::detail::minimiser_view< urng1_t, urng2_t >::minimiser_view ( urng1_t  urange1,
urng2_t  urange2,
size_t const  window_size 
)
inlineexplicit

Construct from two views and a given number of values in one window.

Parameters
[in]urange1The first input range to process. Must model std::ranges::viewable_range and std::ranges::forward_range.
[in]urange2The second input range to process. Must model std::ranges::viewable_range and std::ranges::forward_range.
[in]window_sizeThe number of values in one window.

◆ minimiser_view() [4/4]

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
template<typename other_urng1_t , typename other_urng2_t >
requires (std::ranges::viewable_range<other_urng1_t> && std::constructible_from<urng1_t, std::views::all_t<other_urng1_t>> && std::ranges::viewable_range<other_urng2_t> && std::constructible_from<urng2_t, std::views::all_t<other_urng2_t>>)
seqan3::detail::minimiser_view< urng1_t, urng2_t >::minimiser_view ( other_urng1_t &&  urange1,
other_urng2_t &&  urange2,
size_t const  window_size 
)
inlineexplicit

Construct from two non-views that can be view-wrapped and a given number of values in one window.

Template Parameters
other_urng1_tThe type of another urange. Must model std::ranges::viewable_range and be constructible from urng1_t.
other_urng2_tThe type of another urange. Must model std::ranges::viewable_range and be constructible from urng2_t.
Parameters
[in]urange1The input range to process. Must model std::ranges::viewable_range and std::ranges::forward_range.
[in]urange2The second input range to process. Must model std::ranges::viewable_range and std::ranges::forward_range.
[in]window_sizeThe number of values in one window.

Member Function Documentation

◆ begin() [1/2]

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
basic_iterator< false > seqan3::detail::minimiser_view< urng1_t, urng2_t >::begin ( )
inline

Returns an iterator to the first element of the range.

Returns
Iterator to the first element.

Complexity

Constant.

Exceptions

Strong exception guarantee.

◆ begin() [2/2]

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
basic_iterator< true > seqan3::detail::minimiser_view< urng1_t, urng2_t >::begin ( ) const
inline

Returns an iterator to the first element of the range.

Returns
Iterator to the first element.

Complexity

Constant.

Exceptions

Strong exception guarantee.

◆ end()

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
sentinel seqan3::detail::minimiser_view< urng1_t, urng2_t >::end ( ) const
inline

Returns an iterator to the element following the last element of the range.

Returns
Iterator to the end.

This element acts as a placeholder; attempting to dereference it results in undefined behaviour.

Complexity

Constant.

Exceptions

No-throw guarantee.

Member Data Documentation

◆ const_iterable

template<std::ranges::view urng1_t, std::ranges::view urng2_t = std::ranges::empty_view<seqan3::detail::empty_type>>
constexpr bool seqan3::detail::minimiser_view< urng1_t, urng2_t >::const_iterable
staticconstexprprivate
Initial value:
=
Specifies requirements of an input range type for which the const version of that type satisfies the ...

Whether the given ranges are const_iterable.


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