.. index:: pair: class; QPanda::DecomposeDoubleQGate .. _doxid-class_q_panda_1_1_decompose_double_q_gate: class QPanda::DecomposeDoubleQGate ================================== .. toctree:: :hidden: Overview ~~~~~~~~ Decomposing double gates in qprog. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class DecomposeDoubleQGate: public :ref:`QPanda::TraversalInterface` { public: // construction :target:`DecomposeDoubleQGate`(std::vector> valid_qgate_matrix); // methods virtual void :ref:`execute`(std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node); virtual void :ref:`execute`(std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node); virtual void :ref:`execute`(std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node); virtual void :ref:`execute`(std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node); virtual void :ref:`execute`(std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node); virtual void :ref:`execute`(std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node); virtual void :ref:`execute`(std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node); }; 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_decompose_double_q_gate: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Decomposing double gates in qprog. Decomposing control unitary single qgate in qprog. Methods ------- .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_decompose_double_q_gate_1a3dbc33addd5cb01b78633af95bea60d5: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void execute(std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node) Execution traversal qgatenode. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - AbstractQGateNode\* - quantum gate * - AbstractQGateNode\* - quantum gate .. rubric:: Returns: void .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_decompose_double_q_gate_1af6d787f2cd6aea690bf7fc1bbd48b648: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void execute(std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node) Execution traversal measure node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - AbstractQuantumMeasure\* - measure node * - AbstractQGateNode\* - quantum gate .. rubric:: Returns: void .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_decompose_double_q_gate_1a272f7505f0ada1fc6f4772c27a213f40: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void execute(std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node) Execution traversal reset node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - AbstractQuantumReset\* - reset node * - AbstractQGateNode\* - quantum gate .. rubric:: Returns: void .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_decompose_double_q_gate_1a0e4f114859a809e755faaf0cc14d5823: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void execute(std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node) Execution traversal control flow node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - AbstractControlFlowNode\* - control flow node * - AbstractQGateNode\* - quantum gate .. rubric:: Returns: void .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_decompose_double_q_gate_1acd506ee0fe197869f6df7c673f766e84: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void execute(std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node) Execution traversal qcircuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - AbstractQuantumCircuit\* - quantum circuit * - AbstractQGateNode\* - quantum gate .. rubric:: Returns: void .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_decompose_double_q_gate_1a6681980f9989d49d7d3a9ba8c39a6414: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void execute(std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node) Execution traversal qprog. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - AbstractQuantumProgram\* - quantum prog * - AbstractQGateNode\* - quantum gate .. rubric:: Returns: void .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_decompose_double_q_gate_1afdbe4b52c5015fc872ac819c28c7fd6d: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void execute(std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node) Execution traversal qprog. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - AbstractClassicalProg\* - quantum prog * - AbstractQGateNode\* - quantum gate .. rubric:: Returns: void