33 #include <igraph/igraph.h>
36 #include <unordered_map>
37 #include <unordered_set>
64 std::size_t
operator()(
const std::pair<const void *, const void *> &pair )
const noexcept
66 return std::hash<const void *>()( pair.first ) ^ ( std::hash<const void *>()( pair.second ) << 1 );
72 bool operator()(
const std::pair<const void *, const void *> &p1,
73 const std::pair<const void *, const void *> &p2 )
const noexcept
75 return p1.first == p2.first && p1.second == p2.second;
84 std::unordered_set<igraph_integer_t> &&roots,
85 std::unordered_map<igraph_integer_t, const void *> &&m_vertices_to_ptrs,
86 std::unordered_map<const void *, PtrType> &&m_ptrs_to_types );
108 const std::vector<const Gate *>
get_gates()
const;
110 const std::vector<const Net *>
get_nets()
const;
112 const std::unordered_map<const void *, PtrType>
get_all()
const;
127 igraph_t *m_igraph_ptr;
129 std::unordered_set<igraph_integer_t> m_roots;
131 std::unordered_map<igraph_integer_t, const void *> m_vertices_to_ptrs;
133 std::unordered_map<const void *, igraph_integer_t> m_ptrs_to_vertices;
135 std::unordered_map<const void *, PtrType> m_ptrs_to_types;
Result< std::vector< std::pair< const void *, PtrType > > > get_neighbors(const void *ptr, igraph_neimode_t direction) const
Result< igraph_integer_t > get_vertex_from_ptr(const void *ptr) const
const Netlist * get_netlist() const
const igraph_t * get_igraph() const
Result< std::vector< igraph_integer_t > > get_vertices_from_ptrs(const std::vector< const void * > &ptrs) const
const std::vector< const Gate * > get_gates() const
Result< std::pair< const void *, PtrType > > get_ptr_from_vertex(const igraph_integer_t vertex) const
const std::vector< const Net * > get_nets() const
Result< std::monostate > export_dot(const std::string &pathname) const
static Result< std::unique_ptr< ClockTree > > from_netlist(const Netlist *netlist)
Result< std::unique_ptr< ClockTree > > get_subtree(const void *ptr, const bool parent) const
Result< std::vector< std::pair< const void *, PtrType > > > get_ptrs_from_vertices(const std::vector< igraph_integer_t > &vertices) const
const std::unordered_map< const void *, PtrType > get_all() const
This file contains the class that holds a netlist graph.
bool operator()(const std::pair< const void *, const void * > &p1, const std::pair< const void *, const void * > &p2) const noexcept
std::size_t operator()(const std::pair< const void *, const void * > &pair) const noexcept