tket
|
#include <MappingManager.hpp>
Public Member Functions | |
MappingManager (const ArchitecturePtr &_architecture) | |
bool | route_circuit (Circuit &circuit, const std::vector< RoutingMethodPtr > &routing_methods) const |
route_circuit Referenced Circuit modified such that all multi-qubit gates are permitted by this->architecture_ RoutingIncompability thrown if Circuit has more logical qubits than Architecture has physical qubits RoutingIncompability thrown if Circuit has a gate of OpType not in Architecture's permitted OpTypes | |
bool | route_circuit_with_maps (Circuit &circuit, const std::vector< RoutingMethodPtr > &routing_methods, std::shared_ptr< unit_bimaps_t > maps) const |
route_circuit_maps Referenced Circuit modified such that all multi-qubit gates are permitted by this->architecture_ RoutingIncompability thrown if Circuit has more logical qubits than Architecture has physical qubits RoutingIncompability thrown if Circuit has a gate of OpType not in Architecture's permitted OpTypes | |
Definition at line 31 of file MappingManager.hpp.
tket::MappingManager::MappingManager | ( | const ArchitecturePtr & | _architecture | ) |
Definition at line 21 of file MappingManager.cpp.
bool tket::MappingManager::route_circuit | ( | Circuit & | circuit, |
const std::vector< RoutingMethodPtr > & | routing_methods | ||
) | const |
route_circuit Referenced Circuit modified such that all multi-qubit gates are permitted by this->architecture_ RoutingIncompability thrown if Circuit has more logical qubits than Architecture has physical qubits RoutingIncompability thrown if Circuit has a gate of OpType not in Architecture's permitted OpTypes
circuit | Circuit to be routed |
routing_methods | Ranked RoutingMethod objects to use for routing segments. |
Definition at line 24 of file MappingManager.cpp.
bool tket::MappingManager::route_circuit_with_maps | ( | Circuit & | circuit, |
const std::vector< RoutingMethodPtr > & | routing_methods, | ||
std::shared_ptr< unit_bimaps_t > | maps | ||
) | const |
route_circuit_maps Referenced Circuit modified such that all multi-qubit gates are permitted by this->architecture_ RoutingIncompability thrown if Circuit has more logical qubits than Architecture has physical qubits RoutingIncompability thrown if Circuit has a gate of OpType not in Architecture's permitted OpTypes
circuit | Circuit to be routed |
routing_methods | Ranked RoutingMethod objects to use for routing segments. |
maps | For tracking placed and permuted qubits during Compilation |
Before mapping we find the set of Circuit UnitID that are both not also Architecture UnitiD, but have no Architecture dependent gates and so could be mapped without being assigned. We then assign each of these UnitID to nominally "bad" Architecture UnitID. In this case a "bad" UnitID is one with low out-degree and large total distance to other UnitID.
Criteria for Routing being finished. Each linear edge has reached end of Circuit.
Definition at line 37 of file MappingManager.cpp.