.. index:: pair: class; QPanda::OriginCircuit .. _doxid-class_q_panda_1_1_origin_circuit: class QPanda::OriginCircuit =========================== .. toctree:: :hidden: Overview ~~~~~~~~ Implementation class of :ref:`QCircuit `. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class OriginCircuit: public :ref:`QPanda::QNode`, public :ref:`QPanda::AbstractQuantumCircuit` { public: // methods virtual void :ref:`pushBackNode`(std::shared_ptr<:ref:`QNode`>); virtual void :ref:`setDagger`(bool isDagger); virtual void :ref:`setControl`(:ref:`QVec`); virtual :ref:`NodeType` :ref:`getNodeType`() const; virtual bool :ref:`isDagger`() const; virtual bool :ref:`getControlVector`(:ref:`QVec`&); virtual :ref:`NodeIter` :ref:`getFirstNodeIter`(); virtual :ref:`NodeIter` :ref:`getLastNodeIter`(); virtual :ref:`NodeIter` :ref:`getEndNodeIter`(); virtual :ref:`NodeIter` :ref:`getHeadNodeIter`(); virtual :ref:`NodeIter` :ref:`insertQNode`(const :ref:`NodeIter`&, std::shared_ptr<:ref:`QNode`>); virtual :ref:`NodeIter` :ref:`deleteQNode`(:ref:`NodeIter`&); void :ref:`clear`(); virtual void :ref:`clearControl`(); virtual size_t :ref:`get_used_qubits`(:ref:`QVec`&) const; virtual size_t :ref:`get_qgate_num`(); bool :target:`check_insert_node_type`(std::shared_ptr<:ref:`QNode`> node); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods virtual :ref:`NodeType` :ref:`getNodeType`() const = 0; virtual :ref:`NodeIter` :ref:`getFirstNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`getLastNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`getEndNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`getHeadNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`insertQNode`(const :ref:`NodeIter`&, std::shared_ptr<:ref:`QNode`>) = 0; virtual :ref:`NodeIter` :ref:`deleteQNode`(:ref:`NodeIter`&) = 0; virtual void :ref:`pushBackNode`(std::shared_ptr<:ref:`QNode`>) = 0; virtual bool :ref:`isDagger`() const = 0; virtual bool :ref:`getControlVector`(:ref:`QVec`&) = 0; virtual void :ref:`setDagger`(bool isDagger) = 0; virtual void :ref:`setControl`(:ref:`QVec`) = 0; virtual void :ref:`clearControl`() = 0; virtual size_t :ref:`get_used_qubits`(:ref:`QVec`&) const = 0; virtual size_t :ref:`get_qgate_num`() = 0; .. _details-class_q_panda_1_1_origin_circuit: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Implementation class of :ref:`QCircuit `. Methods ------- .. index:: pair: function; pushBackNode .. _doxid-class_q_panda_1_1_origin_circuit_1abf6806443223d8a3501e21d20ad24cd8: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void pushBackNode(std::shared_ptr<:ref:`QNode`>) Insert a new Node at the end of current quantum circuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QNode\* - quantum node .. rubric:: Returns: void .. rubric:: See also: :ref:`QNode ` .. index:: pair: function; setDagger .. _doxid-class_q_panda_1_1_origin_circuit_1ab829ebc2f3231193710d100dae2f966e: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void setDagger(bool isDagger) Set dagger to current quantum circuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - bool - is dagger .. index:: pair: function; setControl .. _doxid-class_q_panda_1_1_origin_circuit_1a8ef52cb45260e28e86ac94261313d664: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void setControl(:ref:`QVec`) Set control qubits to current quantum circuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QVec ` - control qubits vector .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; getNodeType .. _doxid-class_q_panda_1_1_origin_circuit_1ab1a3d0a35640d9e78736ff4ff5140be8: .. 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; isDagger .. _doxid-class_q_panda_1_1_origin_circuit_1a76c8eea1a291bffbfa2c168e31cfe880: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool isDagger() const Judge current quantum circuit is dagger. .. rubric:: Returns: bool .. index:: pair: function; getControlVector .. _doxid-class_q_panda_1_1_origin_circuit_1af49cd90d7105b7477ed8a35227af20b2: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool getControlVector(:ref:`QVec`&) Get control vector fron current quantum circuit node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QVec& - qubits vector .. rubric:: Returns: bool .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; getFirstNodeIter .. _doxid-class_q_panda_1_1_origin_circuit_1a2cdc2ed7434e40aa8423dda374bdf202: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`NodeIter` getFirstNodeIter() Get the first :ref:`NodeIter `. .. rubric:: Returns: :ref:`NodeIter ` .. index:: pair: function; getLastNodeIter .. _doxid-class_q_panda_1_1_origin_circuit_1abe8561fc4a56d2bd288f7ef34272dcd3: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`NodeIter` getLastNodeIter() Get the last :ref:`NodeIter `. .. rubric:: Returns: :ref:`NodeIter ` .. index:: pair: function; getEndNodeIter .. _doxid-class_q_panda_1_1_origin_circuit_1a635c3ddf31519b53956ba549a6c7097e: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`NodeIter` getEndNodeIter() Get the end :ref:`NodeIter `. .. rubric:: Returns: :ref:`NodeIter ` .. index:: pair: function; getHeadNodeIter .. _doxid-class_q_panda_1_1_origin_circuit_1aa0411fe9a8b8afb35ef042b57437d895: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`NodeIter` getHeadNodeIter() Get the head :ref:`NodeIter `. .. rubric:: Returns: :ref:`NodeIter ` .. index:: pair: function; insertQNode .. _doxid-class_q_panda_1_1_origin_circuit_1ab25315f3aac7c54e454bf63d393a27a0: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`NodeIter` insertQNode(const :ref:`NodeIter`&, std::shared_ptr<:ref:`QNode`>) Insert a new :ref:`QNode ` at the location specified by :ref:`NodeIter `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - NodeIter& - specified location * - std::shared_ptr - Inserted :ref:`QNode ` .. rubric:: Returns: :ref:`NodeIter ` .. index:: pair: function; deleteQNode .. _doxid-class_q_panda_1_1_origin_circuit_1a21cf62564fe12dd03957980277ff4610: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`NodeIter` deleteQNode(:ref:`NodeIter`&) Delete a :ref:`QNode ` at the location specified by :ref:`NodeIter `. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - NodeIter& - specified location .. rubric:: Returns: :ref:`NodeIter ` Deleted :ref:`NodeIter ` .. index:: pair: function; clear .. _doxid-class_q_panda_1_1_origin_circuit_1a71718ac3207ca26d97a6646c4a21fee7: .. ref-code-block:: cpp :class: doxyrest-title-code-block void clear() Clear all node in current quantum program node. .. rubric:: Returns: void .. index:: pair: function; clearControl .. _doxid-class_q_panda_1_1_origin_circuit_1ae11603555437c0f54cf62113cbb9b5b6: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void clearControl() Clear the control qubits for current quantum circuit. .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; get_used_qubits .. _doxid-class_q_panda_1_1_origin_circuit_1a45c1a4ac6067361724403d42f1d08451: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_used_qubits(:ref:`QVec`&) const Get the used qubits for current quantum circuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QVec ` - used qubits vector .. rubric:: Returns: size_t .. index:: pair: function; get_qgate_num .. _doxid-class_q_panda_1_1_origin_circuit_1a72d2b53b92190603ef47a37caa0862a5: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_qgate_num() Get current quantum circuit qgate number. .. rubric:: Returns: size_t