.. index:: pair: class; QPanda::QGateCounter .. _doxid-class_q_panda_1_1_q_gate_counter: class QPanda::QGateCounter ========================== .. toctree:: :hidden: Overview ~~~~~~~~ Count quantum gate num in quantum program, quantum circuit, quantum while, quantum if. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class QGateCounter: public :ref:`QPanda::TraversalInterface` { public: // methods template void :target:`traversal`(_Ty& node); size_t :target:`count`(); 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_q_gate_counter: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Count quantum gate num in quantum program, quantum circuit, quantum while, quantum if. Methods ------- .. index:: pair: function; execute .. _doxid-class_q_panda_1_1_q_gate_counter_1a1fbcfe36538823ff4fd3be323d80fd47: .. 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_q_gate_counter_1a549b0ef0d545bed8add9380302a99ea7: .. 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_q_gate_counter_1a0780b4c25eafac9668ce753d3b489e03: .. 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_q_gate_counter_1ada66d662291f19c3f7c0fd8dae5a830b: .. 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_q_gate_counter_1a502f0ee73d3a9ed935ced0d89817b08a: .. 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_q_gate_counter_1a68c6a36cbea203db47787ed449ffab74: .. 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_q_gate_counter_1a67b9801d9fda4613d9323355ca04c085: .. 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