Arkanjo 0.2
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
similarity_table.hpp File Reference

Similarity relationships storage and analysis. More...

#include <fstream>
#include <map>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
#include <arkanjo/base/function.hpp>
#include <arkanjo/base/path.hpp>
#include <arkanjo/utils/utils.hpp>
#include <arkanjo/base/config.hpp>
+ Include dependency graph for similarity_table.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PathId
 
struct  Cluster
 Represents a cluster of similar functions in the similarity graph. More...
 
struct  ClusterInfo
 
class  Similarity_Table
 Represents a similarity graph between functions (paths). More...
 

Typedefs

template<typename Key , typename Weight >
using AdjacencyList = std::vector<std::vector<std::pair<Key, Weight>>>
 { 1: [{ key, weight }, { key, weight }] 2: [{ key, weight }] 3: [] ... }
 

Detailed Description

Similarity relationships storage and analysis.

Stores and analyzes similarity relationships between code functions, including similarity probabilities and threshold-based filtering.

Similarity Table is a abstraction that store the pair of functions that are similar to each other and the similarity probability between them.

Definition in file similarity_table.hpp.

Typedef Documentation

◆ AdjacencyList

template<typename Key , typename Weight >
using AdjacencyList = std::vector<std::vector<std::pair<Key, Weight>>>

{ 1: [{ key, weight }, { key, weight }] 2: [{ key, weight }] 3: [] ... }

Definition at line 56 of file similarity_table.hpp.