.. index:: pair: class; QPanda::TopologyMatch .. _doxid-class_q_panda_1_1_topology_match: class QPanda::TopologyMatch =========================== .. toctree:: :hidden: struct_QPanda_TopologyMatch_edge.rst struct_QPanda_TopologyMatch_gate.rst struct_QPanda_TopologyMatch_node.rst struct_QPanda_TopologyMatch_node_cmp.rst Overview ~~~~~~~~ QProg/QCircuit matches the topology of the physical qubits. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class TopologyMatch: public :ref:`QPanda::TraversalInterface` { public: // structs struct :ref:`edge`; struct :ref:`gate`; struct :ref:`node`; struct :ref:`node_cmp`; // construction :target:`TopologyMatch`( :ref:`QuantumMachine`* machine, :ref:`QProg` prog, :ref:`SwapQubitsMethod` method = :ref:`CNOT_GATE_METHOD`, :ref:`ArchType` arch_type = :ref:`IBM_QX5_ARCH`, const std::string conf = :ref:`CONFIG_PATH` ); // methods void :ref:`mappingQProg`(:ref:`QVec`& qv, :ref:`QProg`& mapped_prog); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, bool& ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, bool& ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, bool& ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, bool& ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, bool& ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, bool& ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, bool& ); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); .. _details-class_q_panda_1_1_topology_match: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ QProg/QCircuit matches the topology of the physical qubits. Methods ------- .. index:: pair: function; mappingQProg .. _doxid-class_q_panda_1_1_topology_match_1a6b5bf04991ba44cfc9165d9322e602bb: .. ref-code-block:: cpp :class: doxyrest-title-code-block void mappingQProg(:ref:`QVec`& qv, :ref:`QProg`& mapped_prog) Mapping qubits in a quantum program. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - Qprog - quantum program * - Qprog& - the mapped quantum program .. rubric:: Returns: void