Program Listing for File SuffixSorting.h
↰ Return to documentation for file (ADS/string/SuffixSorting.h)
/*--------------------------------------------------------------------------*/
/*-------------------------- File SuffixSorting.h --------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_SuffixSorting
#define __ADS_SuffixSorting
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/Contract.h"
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <string_view>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
template< class I = std::uint32_t >
requires( std::same_as< I , std::uint32_t > ||
std::same_as< I , std::uint64_t > )
[[nodiscard]] std::vector< I > suffixArray( std::string_view T );
template< class I >
requires( std::same_as< I , std::uint32_t > ||
std::same_as< I , std::uint64_t > )
[[nodiscard]] std::vector< I > suffixArray( const std::vector< I > & T ,
std::size_t K );
template< class I >
[[nodiscard]] std::vector< I > plcpArray( std::string_view T ,
const std::vector< I > & SA );
template< class I >
[[nodiscard]] std::vector< I > lcpArrayPhi( std::string_view T ,
const std::vector< I > & SA );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/string/impl/SuffixSorting.tpp"
/*--------------------------------------------------------------------------*/
#endif /* SuffixSorting.h included */
/*--------------------------------------------------------------------------*/
/*------------------------ End File SuffixSorting.h ------------------------*/
/*--------------------------------------------------------------------------*/