Class FMIndex

Class Documentation

class FMIndex

the FM-index of a text: its transform with the counts for the rank every b places and the places of the suffixes at the multiples of mu

Public Functions

explicit FMIndex(std::string_view s, std::size_t b = 64, std::size_t mu = 32)

the index of s

Pre:

b > 0, mu > 0, s.size() < 2^32

inline std::size_t size(void) const

the length n of the text

BWT transform(void) const

the transform of the text

std::size_t rank(char c, std::size_t k) const

the occurrences of c in L[ 0 , k ), the $ excluded

Pre:

k <= n + 1

std::pair<std::size_t, std::size_t> range(std::string_view P) const

the range [ first , last ) of the rows of M’ prefixed by P, empty if none, by backward search

Pre:

P not empty

std::size_t count(std::string_view P) const

the number of the occurrences of P

Pre:

P not empty

std::vector<std::size_t> locate(std::string_view P) const

the places of the occurrences of P, in increasing order

Pre:

P not empty

std::string extract(std::size_t i, std::size_t j) const

s[ i , j )

Pre:

i <= j <= n

std::size_t sizeInBits(void) const

the bits of the index: L, the counts, the marks with their directory, the samples and the arrays of the alphabet