21 #ifndef SRC_TIMING_LIBRARY_TIMING_ARCS_H_
22 #define SRC_TIMING_LIBRARY_TIMING_ARCS_H_
24 #include "../entity_system/entity_system.h"
25 #include "../standard_cell/standard_cells.h"
26 #include "lookup_table.h"
27 #include <unordered_map>
48 std::size_t operator () (
const std::pair<entity_system::entity,entity_system::entity> &p)
const {
49 return std::hash<uint32_t>{}(p.first) ^ std::hash<uint32_t>{}(p.second);
66 std::unordered_map< std::pair< entity_system::entity, entity_system::entity >, entity_system::entity,
pair_entity_hash > m_pinpair2arc;
70 entity_system::entity create(entity_system::entity from, entity_system::entity to);
71 entity_system::entity
get(entity_system::entity from, entity_system::entity to)
const;
73 entity_system::entity from(entity_system::entity arc)
const {
74 return m_from[m_system.
lookup(arc)];
76 entity_system::entity to(entity_system::entity arc)
const {
77 return m_to[m_system.
lookup(arc)];
80 std::size_t size()
const {
81 return m_system.
size();
88 const std::vector<entity_system::entity> & pin_timing_arcs(entity_system::entity pin)
const {
const entity_system::entity_system & pin_system() const
Pin system getter.
Definition: standard_cells.h:179
Definition: library_timing_arcs.h:53
Definition: library_timing_arcs.h:47
Property class.
Definition: property.h:33
entity_system class.
Definition: entity_system.h:40
std::size_t size() const
Returns the size of the system.
Definition: entity_system.h:82
Standard cell class.
Definition: standard_cells.h:37
entity_index lookup(entity e) const
Gets the index of an entity.
Definition: entity_system.h:149