class QPanda::QCodarMatch¶
Overview¶
A Contextual Duration-Aware Qubit Mapping (CODAR) More…
#include <QCodarMatch.h> class QCodarMatch: public QPanda::TraversalInterface { public: // construction QCodarMatch( QuantumMachine* machine, QProg prog, QCodarGridDevice arch_type, int m, int n, const std::string config_data = CONFIG_PATH ); // methods void initScheduler( QCodarGridDevice arch_type, size_t qubits ); void initGridDevice( QCodarGridDevice arch_type, int& m, int& n ); void mappingQProg(size_t run_times, QVec& qv, QProg& mapped_prog); void buildResultingQProg( const std::vector<GateInfo> resulting_gates, const std::vector<int> map_vec, QVec& q, QProg& prog ); void traversalQProgParsingInfo(QProg* prog); virtual void execute( std::shared_ptr<AbstractQGateNode> cur_node, std::shared_ptr<QNode> parent_node, bool& ); virtual void execute( std::shared_ptr<AbstractQuantumMeasure> cur_node, std::shared_ptr<QNode> parent_node, bool& ); virtual void execute( std::shared_ptr<AbstractQuantumReset> cur_node, std::shared_ptr<QNode> parent_node, bool& ); virtual void execute( std::shared_ptr<AbstractControlFlowNode> cur_node, std::shared_ptr<QNode> parent_node, bool& ); virtual void execute( std::shared_ptr<AbstractQuantumCircuit> cur_node, std::shared_ptr<QNode> parent_node, bool& ); virtual void execute( std::shared_ptr<AbstractQuantumProgram> cur_node, std::shared_ptr<QNode> parent_node, bool& ); virtual void execute( std::shared_ptr<AbstractClassicalProg> cur_node, std::shared_ptr<QNode> parent_node, bool& ); };
Inherited Members¶
public: // methods virtual void execute( std::shared_ptr<AbstractQGateNode> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumMeasure> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumReset> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractControlFlowNode> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumCircuit> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumProgram> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractClassicalProg> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args );
Detailed Documentation¶
A Contextual Duration-Aware Qubit Mapping (CODAR)
Methods¶
void mappingQProg(size_t run_times, QVec& qv, QProg& mapped_prog)
Mapping qubits in a quantum program.
Parameters:
size_t |
run_times : the number of times run the remapping |
qubits vector |
|
Qprog& |
the mapped quantum program |
Returns:
void
void buildResultingQProg( const std::vector<GateInfo> resulting_gates, const std::vector<int> map_vec, QVec& q, QProg& prog )
build QProg by the mapping results
Parameters:
std::vector<GateInfo> |
gates info vector |
std::vector<int> |
map vector |
Qprog& |
the mapped quantum program |
Returns:
void
void traversalQProgParsingInfo(QProg* prog)
traversal quantum program and Parsing quantum program information
Parameters:
QProg* |
quantum program pointer |
Returns:
void