Program Listing for File EditDistance.h

↰ Return to documentation for file (ADS/string/EditDistance.h)

/*--------------------------------------------------------------------------*/
/*-------------------------- File EditDistance.h ---------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/

#ifndef __ADS_EditDistance
 #define __ADS_EditDistance
                      /* self-identification: #endif constant */

/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/

#include "ADS/Contract.h"

#include <cstddef>
#include <cstdint>
#include <string_view>
#include <utility>
#include <vector>

/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/

namespace ADS {

[[nodiscard]] inline std::size_t levenshtein( std::string_view a ,
                                              std::string_view b );

[[nodiscard]] inline std::size_t levenshtein( std::string_view a ,
                                              std::string_view b ,
                                              std::size_t k );

[[nodiscard]] inline std::size_t lcsLength( std::string_view a ,
                                            std::string_view b );

[[nodiscard]] inline std::vector< std::pair< std::size_t , std::size_t > >
 approximateMatches( std::string_view T , std::string_view P ,
                     std::size_t k );

/*--------------------------------------------------------------------------*/

}  // end( namespace ADS )

/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/

#include "ADS/string/impl/EditDistance.tpp"

/*--------------------------------------------------------------------------*/

#endif  /* EditDistance.h included */

/*--------------------------------------------------------------------------*/
/*------------------------ End File EditDistance.h -------------------------*/
/*--------------------------------------------------------------------------*/