.. index:: pair: class; QPanda::AbstractQGateNode .. _doxid-class_q_panda_1_1_abstract_q_gate_node: class QPanda::AbstractQGateNode =============================== .. toctree:: :hidden: Overview ~~~~~~~~ Quantum gate basic abstract class. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class AbstractQGateNode { public: // methods virtual size_t :ref:`getQuBitVector`(:ref:`QVec`&) const = 0; virtual :ref:`Qubit`* :ref:`popBackQuBit`() = 0; virtual void :ref:`PushBackQuBit`(:ref:`Qubit`*) = 0; virtual size_t :ref:`getTargetQubitNum`() const = 0; virtual size_t :ref:`getControlQubitNum`() const = 0; virtual :ref:`QuantumGate`* :ref:`getQGate`() const = 0; virtual void :ref:`setQGate`(:ref:`QuantumGate`*) = 0; virtual bool :ref:`isDagger`() const = 0; virtual size_t :ref:`getControlVector`(:ref:`QVec`&) const = 0; virtual void :ref:`clear_control`() = 0; virtual bool :ref:`setDagger`(bool) = 0; virtual bool :ref:`setControl`(:ref:`QVec`) = 0; virtual void :ref:`remap`(:ref:`QVec`) = 0; }; // direct descendants class :ref:`OriginQGate`; class :ref:`QGate`; .. _details-class_q_panda_1_1_abstract_q_gate_node: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Quantum gate basic abstract class. Methods ------- .. index:: pair: function; getQuBitVector .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1a0e536c808361e0243bffcdb949f5cc46: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getQuBitVector(:ref:`QVec`&) const = 0 Get qubit vector inside this quantum gate. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QVec& - qubit vector .. rubric:: Returns: size_t .. rubric:: See also: :ref:`GateType ` .. index:: pair: function; popBackQuBit .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1a16a32117dd9d453c5219bac6a4223aee: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`Qubit`* popBackQuBit() = 0 erase qubit vector element at end .. rubric:: Returns: Qubit\* .. index:: pair: function; PushBackQuBit .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1a6eff60e20adc05b09f142506716b11a4: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void PushBackQuBit(:ref:`Qubit`*) = 0 insert qubit vector element at end .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - Qubit\* - :ref:`Qubit ` pointer .. index:: pair: function; getTargetQubitNum .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1aba498aceb9db852cf5f52febf01c67c1: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getTargetQubitNum() const = 0 Get target qubit num inside this quantum gate. .. rubric:: Returns: size_t qubit num .. index:: pair: function; getControlQubitNum .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1a5f01c3abe784f28ab97f1bf7c9846be0: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getControlQubitNum() const = 0 Get control qubit num inside this quantum gate. .. rubric:: Returns: size_t qubit num .. index:: pair: function; getQGate .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1afdc702d1ca93eb404b532fac032bd61d: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QuantumGate`* getQGate() const = 0 Get Quantum Gate. .. rubric:: Returns: QuantumGate \* .. index:: pair: function; setQGate .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1af754b29a705224c2b8569594bb59c35d: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void setQGate(:ref:`QuantumGate`*) = 0 Set Quantum Gate. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QuantumGate\* - QuantumGate pointer .. index:: pair: function; isDagger .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1a741d55580cfb5d2597bd25f3236819a8: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool isDagger() const = 0 Judge current quantum gate is dagger. .. rubric:: Returns: bool .. index:: pair: function; getControlVector .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1ac82c51d31b345c36c0ce5edf2a8411b7: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getControlVector(:ref:`QVec`&) const = 0 Get control vector fron current quantum gate node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QVec& - qubits vector .. rubric:: Returns: size_t .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; clear_control .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1a69d17f7abbab8652e30aef0ef472805f: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void clear_control() = 0 Clear the control qubits for current quantum gate. .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; setDagger .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1ae930a57233bd67928e5c8abfcd6b1835: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool setDagger(bool) = 0 Set dagger to current quantum gate. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - bool - is dagger .. rubric:: Returns: bool .. index:: pair: function; setControl .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1aff311eda65e1ce1105cf54aa10cf8650: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool setControl(:ref:`QVec`) = 0 Set control qubits to current quantum gate. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QVec ` - control qubits vector .. rubric:: Returns: bool .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; remap .. _doxid-class_q_panda_1_1_abstract_q_gate_node_1ac5a171d2e8347715631a79f4a3c96d74: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void remap(:ref:`QVec`) = 0 remap qubit .. rubric:: Returns: