.. index:: pair: class; QPanda::QGate .. _doxid-class_q_panda_1_1_q_gate: class QPanda::QGate =================== .. toctree:: :hidden: Overview ~~~~~~~~ QPanda2 quantum gate basic classs. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class QGate: public :ref:`QPanda::AbstractQGateNode` { public: // construction :target:`QGate`(const QGate&); :target:`QGate`( :ref:`QVec`&, :ref:`QuantumGate`* ); :target:`QGate`(std::shared_ptr<:ref:`AbstractQGateNode`> node); // methods :ref:`NodeType` :ref:`getNodeType`() const; virtual size_t :ref:`getQuBitVector`(:ref:`QVec`&) const; virtual size_t :ref:`getTargetQubitNum`() const; virtual size_t :ref:`getControlQubitNum`() const; virtual :ref:`QuantumGate`* :ref:`getQGate`() const; virtual bool :ref:`setDagger`(bool); virtual bool :ref:`setControl`(:ref:`QVec`); std::shared_ptr<:ref:`AbstractQGateNode`> :target:`getImplementationPtr`(); QGate :ref:`dagger`(); QGate :ref:`control`(:ref:`QVec`); virtual void :ref:`clear_control`(); virtual void :ref:`remap`(:ref:`QVec`); virtual bool :ref:`isDagger`() const; virtual size_t :ref:`getControlVector`(:ref:`QVec`&) const; }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block 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; .. _details-class_q_panda_1_1_q_gate: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ QPanda2 quantum gate basic classs. Methods ------- .. index:: pair: function; getNodeType .. _doxid-class_q_panda_1_1_q_gate_1a29ad4ab9dcadcd7f475001fd9a0556b8: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`NodeType` getNodeType() const Get current node type. .. rubric:: Returns: NodeType current node type .. rubric:: See also: :ref:`NodeType ` .. index:: pair: function; getQuBitVector .. _doxid-class_q_panda_1_1_q_gate_1af8b38e520fdfa4b7d7cb930a40040c18: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getQuBitVector(:ref:`QVec`&) const 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; getTargetQubitNum .. _doxid-class_q_panda_1_1_q_gate_1a81a7ed8b3bf6e3caf0699963589b6ad4: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getTargetQubitNum() const Get qubit num inside this quantum gate. .. rubric:: Returns: size_t qubit num .. index:: pair: function; getControlQubitNum .. _doxid-class_q_panda_1_1_q_gate_1a815b77d108038bf9ffc190c6742a21ff: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getControlQubitNum() const Get control qubit num inside this quantum gate. .. rubric:: Returns: size_t qubit num .. index:: pair: function; getQGate .. _doxid-class_q_panda_1_1_q_gate_1a981f821f17af5aafaad2b8fe0bb7bf17: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QuantumGate`* getQGate() const Get Quantum Gate. .. rubric:: Returns: QuantumGate \* .. index:: pair: function; setDagger .. _doxid-class_q_panda_1_1_q_gate_1a352e65d95899b339f427cc79913e311d: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool setDagger(bool) 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_q_gate_1aaf82a6a76dd24f00cab894b47075643e: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool setControl(:ref:`QVec`) 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; dagger .. _doxid-class_q_panda_1_1_q_gate_1a3880ada6470a3f75537075ad628c5d0b: .. ref-code-block:: cpp :class: doxyrest-title-code-block QGate dagger() Get a dagger quantumgate base on current quantum gate node. .. rubric:: Returns: :ref:`QPanda::QGate ` quantum gate .. index:: pair: function; control .. _doxid-class_q_panda_1_1_q_gate_1aa63bc39be9ea5afe47a8e029b23a6f9b: .. ref-code-block:: cpp :class: doxyrest-title-code-block QGate control(:ref:`QVec`) Get a control quantumgate base on current quantum gate node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QVec ` - control qubits vector .. rubric:: Returns: :ref:`QPanda::QGate ` quantum gate .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; clear_control .. _doxid-class_q_panda_1_1_q_gate_1a0bb9be4dd036ec74fb1f025580c2d833: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void clear_control() Clear the control qubits for current quantum gate. .. rubric:: Returns: .. index:: pair: function; remap .. _doxid-class_q_panda_1_1_q_gate_1a22576c9aad40a42e560d525afcfd3917: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void remap(:ref:`QVec`) remap qubit .. rubric:: Returns: .. index:: pair: function; isDagger .. _doxid-class_q_panda_1_1_q_gate_1a4f73af1d279083a0096122377db8c3c8: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool isDagger() const Judge current quantum gate is dagger. .. rubric:: Returns: bool .. index:: pair: function; getControlVector .. _doxid-class_q_panda_1_1_q_gate_1a5938d3c01939b1700fd424e577bf202a: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getControlVector(:ref:`QVec`&) const 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 `