.. index:: pair: class; QPanda::OriginQGate .. _doxid-class_q_panda_1_1_origin_q_gate: class QPanda::OriginQGate ========================= .. toctree:: :hidden: Overview ~~~~~~~~ Implementation class of :ref:`QGate `. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class OriginQGate: public :ref:`QPanda::QNode`, public :ref:`QPanda::AbstractQGateNode` { public: // construction :target:`OriginQGate`( :ref:`QVec`&, :ref:`QuantumGate`* ); // methods virtual :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:`Qubit`* :ref:`popBackQuBit`(); virtual :ref:`QuantumGate`* :ref:`getQGate`() const; virtual void :ref:`setQGate`(:ref:`QuantumGate`*); virtual bool :ref:`setDagger`(bool); virtual bool :ref:`setControl`(:ref:`QVec`); virtual bool :ref:`isDagger`() const; virtual size_t :ref:`getControlVector`(:ref:`QVec`&) const; virtual void :ref:`PushBackQuBit`(:ref:`Qubit`*); virtual void :ref:`remap`(:ref:`QVec`); virtual void :ref:`clear_control`(); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods virtual :ref:`NodeType` :ref:`getNodeType`() const = 0; 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_origin_q_gate: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Implementation class of :ref:`QGate `. Methods ------- .. index:: pair: function; getNodeType .. _doxid-class_q_panda_1_1_origin_q_gate_1a289a189f32d4fc2f3b39f60f43ed9ef4: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :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_origin_q_gate_1abd21f4492afe40943fd216b911658c3f: .. 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_origin_q_gate_1afb97fe04738cf235ca585a4c151c2f00: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getTargetQubitNum() const Get target qubit num inside this quantum gate. .. rubric:: Returns: size_t qubit num .. index:: pair: function; getControlQubitNum .. _doxid-class_q_panda_1_1_origin_q_gate_1a8425692d5f3b68f37e3c59f0d258099a: .. 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; popBackQuBit .. _doxid-class_q_panda_1_1_origin_q_gate_1a1b3a19e040e57af230b251e77fce0b2a: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`Qubit`* popBackQuBit() erase qubit vector element at end .. rubric:: Returns: Qubit\* .. index:: pair: function; getQGate .. _doxid-class_q_panda_1_1_origin_q_gate_1a86a84d652e3bc4259db0ccbd6ab82f77: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QuantumGate`* getQGate() const Get Quantum Gate. .. rubric:: Returns: QuantumGate \* .. index:: pair: function; setQGate .. _doxid-class_q_panda_1_1_origin_q_gate_1a56c6c33f9aa4f6e7117617c0569175c5: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void setQGate(:ref:`QuantumGate`*) Set Quantum Gate. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QuantumGate\* - QuantumGate pointer .. index:: pair: function; setDagger .. _doxid-class_q_panda_1_1_origin_q_gate_1a92e412a3fe47a10b001dbd8cc4f15346: .. 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_origin_q_gate_1a252fb142c39d234bed82332ce13b1c46: .. 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; isDagger .. _doxid-class_q_panda_1_1_origin_q_gate_1ac2f8642b4fafff5c9789319673d2a1d4: .. 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_origin_q_gate_1a3a3c35274292c34bc7fb74ac7be21aa1: .. 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 ` .. index:: pair: function; PushBackQuBit .. _doxid-class_q_panda_1_1_origin_q_gate_1ab2b18fc595acbe9c64a365cf6ac957c4: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void PushBackQuBit(:ref:`Qubit`*) insert qubit vector element at end .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - Qubit\* - :ref:`Qubit ` pointer .. index:: pair: function; remap .. _doxid-class_q_panda_1_1_origin_q_gate_1a2aa2b6ca3d753ddc7dd372b8227014b0: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void remap(:ref:`QVec`) remap qubit .. rubric:: Returns: .. index:: pair: function; clear_control .. _doxid-class_q_panda_1_1_origin_q_gate_1a3ef27230bf8ba1202a06033b6fc82f17: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void clear_control() Clear the control qubits for current quantum gate. .. rubric:: See also: :ref:`QVec `