An FM Index specialisation that handles reversing the given text.
More...
#include <seqan3/search/fm_index/fm_index.hpp>
|
template<std::ranges::bidirectional_range text_t> |
| reverse_fm_index (text_t &&text) |
| Constructor that immediately constructs the index given a range. The range cannot be empty. More...
|
|
cursor_type | cursor () const noexcept |
| Returns a seqan3::fm_index_cursor on the index that can be used for searching. Cursor is pointing to the root node of the implicit suffix tree. . More...
|
|
bool | empty () const noexcept |
| Checks whether the index is empty. More...
|
|
bool | operator!= (fm_index const &rhs) const noexcept |
| Compares two indices. More...
|
|
bool | operator== (fm_index const &rhs) const noexcept |
| Compares two indices. More...
|
|
void | serialize (archive_t &archive) |
| Serialisation support function. More...
|
|
size_type | size () const noexcept |
| Returns the length of the indexed text including sentinel characters. More...
|
|
| fm_index ()=default |
| Defaulted.
|
|
| fm_index (fm_index const &rhs) |
| When copy constructing, also update internal data structures.
|
|
| fm_index (fm_index &&rhs) |
| When move constructing, also update internal data structures.
|
|
| fm_index (text_t &&text) |
| Constructor that immediately constructs the index given a range. The range cannot be empty. More...
|
|
fm_index & | operator= (fm_index rhs) |
| When copy/move assigning, also update internal data structures.
|
|
| ~fm_index ()=default |
| Defaulted.
|
|
|
template<std::ranges::range text_t> |
void | construct_ (text_t &&text) |
| Constructs the index given a range. The range cannot be an rvalue (i.e. a temporary object) and has to be non-empty. More...
|
|
|
using | alphabet_type = alphabet_t |
| The type of the underlying character of the indexed text.
|
|
using | size_type = typename sdsl_index_type::size_type |
| Type for representing positions in the indexed text.
|
|
using | cursor_type = fm_index_cursor< fm_index > |
| The type of the (unidirectional) cursor.
|
|
static constexpr text_layout | text_layout_mode |
| Indicates whether index is built over a collection.
|
|
template<
semialphabet alphabet_t,
text_layout text_layout_mode, detail::sdsl_index sdsl_index_type = default_sdsl_index_type>
class seqan3::detail::reverse_fm_index< alphabet_t, text_layout_mode, sdsl_index_type >
An FM Index specialisation that handles reversing the given text.
- Template Parameters
-
alphabet_t | The alphabet type; must model seqan3::semialphabet. |
text_layout_mode | Indicates whether this index works on a text collection or a single text. See seqan3::text_layout. |
sdsl_index_type | The type of the underlying SDSL index, must model seqan3::sdsl_index. |
This FM Index reverses the given text before constructing the seqan3::fm_index. This type is used by the seqan3::bi_fm_index.
◆ reverse_fm_index()
template<
semialphabet alphabet_t,
text_layout text_layout_mode, detail::sdsl_index sdsl_index_type = default_sdsl_index_type>
template<std::ranges::bidirectional_range text_t>
Constructor that immediately constructs the index given a range. The range cannot be empty.
- Template Parameters
-
text_t | The type of range to construct from; must model std::ranges::bidirectional_range. |
- Parameters
-
[in] | text | The text to construct from. |
Complexity
- Todo:
- At least linear.
◆ construct_()
template<
semialphabet alphabet_t,
text_layout text_layout_mode, detail::sdsl_index sdsl_index_type = default_sdsl_index_type>
template<std::ranges::range text_t>
Constructs the index given a range. The range cannot be an rvalue (i.e. a temporary object) and has to be non-empty.
- Template Parameters
-
text_t | The type of range to construct from; must model std::ranges::bidirectional_range. |
- Parameters
-
[in] | text | The text to construct from. |
- Todo:
- This has to be better implemented with regard to the memory peak due to not matching interfaces with the SDSL.
Complexity
- Todo:
- At least linear.
Exceptions
No guarantee.
- Todo:
- Ensure strong exception guarantee.
The documentation for this class was generated from the following file: