|
yosys-master
|
Collaboration diagram for SubCircuit::SolverWorker:Data Structures | |
| struct | DiBit |
| struct | DiCache |
| struct | DiEdge |
| struct | DiNode |
| struct | GraphData |
| struct | NodeSet |
Protected Member Functions | |
| SolverWorker (Solver *userSolver) | |
| void | setVerbose () |
| void | addGraph (std::string graphId, const Graph &graph) |
| void | addCompatibleTypes (std::string needleTypeId, std::string haystackTypeId) |
| void | addCompatibleConstants (int needleConstant, int haystackConstant) |
| void | addSwappablePorts (std::string needleTypeId, const std::set< std::string > &ports) |
| void | addSwappablePortsPermutation (std::string needleTypeId, const std::map< std::string, std::string > &portMapping) |
| void | solve (std::vector< Solver::Result > &results, std::string needleGraphId, std::string haystackGraphId, const std::map< std::string, std::set< std::string >> &initialMappings, bool allowOverlap, int maxSolutions) |
| void | mine (std::vector< Solver::MineResult > &results, int minNodes, int maxNodes, int minMatches, int limitMatchesPerGraph) |
| void | clearOverlapHistory () |
| void | clearConfig () |
Private Types | |
| typedef std::vector< std::map < int, int > > | adjMatrix_t |
Private Member Functions | |
| bool | matchNodePorts (const Graph &needle, int needleNodeIdx, const Graph &haystack, int haystackNodeIdx, const std::map< std::string, std::string > &swaps) const |
| bool | matchNodes (const GraphData &needle, int needleNodeIdx, const GraphData &haystack, int haystackNodeIdx) const |
| void | generateEnumerationMatrix (std::vector< std::set< int >> &enumerationMatrix, const GraphData &needle, const GraphData &haystack, const std::map< std::string, std::set< std::string >> &initialMappings) const |
| bool | checkEnumerationMatrix (std::vector< std::set< int >> &enumerationMatrix, int i, int j, const GraphData &needle, const GraphData &haystack) |
| bool | pruneEnumerationMatrix (std::vector< std::set< int >> &enumerationMatrix, const GraphData &needle, const GraphData &haystack, int &nextRow, bool allowOverlap) |
| void | printEnumerationMatrix (const std::vector< std::set< int >> &enumerationMatrix, int maxHaystackNodeIdx=-1) const |
| bool | checkPortmapCandidate (const std::vector< std::set< int >> &enumerationMatrix, const GraphData &needle, const GraphData &haystack, int idx, const std::map< std::string, std::string > ¤tCandidate) |
| void | generatePortmapCandidates (std::set< std::map< std::string, std::string >> &portmapCandidates, const std::vector< std::set< int >> &enumerationMatrix, const GraphData &needle, const GraphData &haystack, int idx) |
| bool | prunePortmapCandidates (std::vector< std::set< std::map< std::string, std::string >>> &portmapCandidates, std::vector< std::set< int >> enumerationMatrix, const GraphData &needle, const GraphData &haystack) |
| void | ullmannRecursion (std::vector< Solver::Result > &results, std::vector< std::set< int >> &enumerationMatrix, int iter, const GraphData &needle, GraphData &haystack, bool allowOverlap, int limitResults) |
| void | solveForMining (std::vector< Solver::Result > &results, const GraphData &needle) |
| int | testForMining (std::vector< Solver::MineResult > &results, std::set< NodeSet > &usedSets, std::set< NodeSet > &nextPool, NodeSet &testSet, const std::string &graphId, const Graph &graph, int minNodes, int minMatches, int limitMatchesPerGraph) |
| void | findNodePairs (std::vector< Solver::MineResult > &results, std::set< NodeSet > &nodePairs, int minNodes, int minMatches, int limitMatchesPerGraph) |
| void | findNextPool (std::vector< Solver::MineResult > &results, std::set< NodeSet > &pool, int oldSetSize, int increment, int minNodes, int minMatches, int limitMatchesPerGraph) |
Static Private Member Functions | |
| static void | printAdjMatrix (const adjMatrix_t &matrix) |
| static int | numberOfPermutations (const std::vector< std::string > &list) |
| static void | permutateVectorToMap (std::map< std::string, std::string > &map, const std::vector< std::string > &list, int idx) |
| static int | numberOfPermutationsArray (const std::vector< std::vector< std::string >> &list) |
| static void | permutateVectorToMapArray (std::map< std::string, std::string > &map, const std::vector< std::vector< std::string >> &list, int idx) |
| static void | applyPermutation (std::map< std::string, std::string > &map, const std::map< std::string, std::string > &permutation) |
Private Attributes | |
| Solver * | userSolver |
| std::map< std::string, GraphData > | graphData |
| std::map< std::string, std::set< std::string > > | compatibleTypes |
| std::map< int, std::set< int > > | compatibleConstants |
| std::map< std::string, std::set< std::set < std::string > > > | swapPorts |
| std::map< std::string, std::set< std::map < std::string, std::string > > > | swapPermutations |
| DiCache | diCache |
| bool | verbose |
Static Private Attributes | |
| static const int | maxPermutationsLimit = 1000000 |
Friends | |
| class | Solver |
Definition at line 287 of file subcircuit.cc.
|
private |
Definition at line 291 of file subcircuit.cc.
|
inlineprotected |
Definition at line 1474 of file subcircuit.cc.
|
inlineprotected |
Definition at line 1498 of file subcircuit.cc.
|
inlineprotected |
Definition at line 1493 of file subcircuit.cc.
|
inlineprotected |
Definition at line 1483 of file subcircuit.cc.
Here is the call graph for this function:
|
inlineprotected |
Definition at line 1503 of file subcircuit.cc.
|
inlineprotected |
Definition at line 1509 of file subcircuit.cc.
|
inlinestaticprivate |
|
inlineprivate |
Definition at line 885 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 965 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotected |
Definition at line 1585 of file subcircuit.cc.
|
inlineprotected |
Definition at line 1579 of file subcircuit.cc.
|
inlineprivate |
Definition at line 1397 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 1358 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 851 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 994 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 725 of file subcircuit.cc.
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 773 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotected |
Definition at line 1560 of file subcircuit.cc.
Here is the call graph for this function:
|
inlinestaticprivate |
Definition at line 321 of file subcircuit.cc.
Here is the caller graph for this function:
|
inlinestaticprivate |
Definition at line 359 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestaticprivate |
|
inlinestaticprivate |
Definition at line 370 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestaticprivate |
|
inlineprivate |
Definition at line 940 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 913 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 1044 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotected |
Definition at line 1478 of file subcircuit.cc.
|
inlineprotected |
Definition at line 1515 of file subcircuit.cc.
Here is the call graph for this function:
|
inlineprivate |
Definition at line 1263 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 1283 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Definition at line 1107 of file subcircuit.cc.
Here is the call graph for this function:
Here is the caller graph for this function:
|
friend |
Definition at line 1594 of file subcircuit.cc.
|
private |
Definition at line 717 of file subcircuit.cc.
|
private |
Definition at line 716 of file subcircuit.cc.
|
private |
Definition at line 720 of file subcircuit.cc.
|
private |
Definition at line 715 of file subcircuit.cc.
|
staticprivate |
Definition at line 319 of file subcircuit.cc.
|
private |
Definition at line 719 of file subcircuit.cc.
|
private |
Definition at line 718 of file subcircuit.cc.
|
private |
Definition at line 714 of file subcircuit.cc.
|
private |
Definition at line 721 of file subcircuit.cc.