tket
Loading...
Searching...
No Matches
Public Member Functions | List of all members
tket::MappingManager Class Reference

#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
 

Detailed Description

Definition at line 31 of file MappingManager.hpp.

Constructor & Destructor Documentation

◆ MappingManager()

tket::MappingManager::MappingManager ( const ArchitecturePtr _architecture)

Definition at line 21 of file MappingManager.cpp.

Member Function Documentation

◆ route_circuit()

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

Parameters
circuitCircuit to be routed
routing_methodsRanked RoutingMethod objects to use for routing segments.
Returns
True if circuit is modified

Definition at line 24 of file MappingManager.cpp.

◆ route_circuit_with_maps()

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

Parameters
circuitCircuit to be routed
routing_methodsRanked RoutingMethod objects to use for routing segments.
mapsFor tracking placed and permuted qubits during Compilation
Returns
True if circuit is modified

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.


The documentation for this class was generated from the following files: