.. index:: pair: class; QPanda::Variational::VariationalQuantumGate .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate: class QPanda::Variational::VariationalQuantumGate ================================================= .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class VariationalQuantumGate { public: // construction :ref:`VariationalQuantumGate`(const VariationalQuantumGate&); :ref:`VariationalQuantumGate`(); // methods size_t :ref:`n_var`(); const std::vector<:ref:`var`>& :ref:`get_vars`(); const std::vector& :target:`get_constants`(); int :ref:`var_pos`(:ref:`var` _var); virtual :ref:`QGate` :ref:`feed`() = 0; virtual :ref:`QGate` :ref:`feed`(std::map offset); virtual std::shared_ptr :ref:`copy`() = 0; virtual bool :target:`set_dagger`(bool dagger); virtual bool :target:`set_control`(:ref:`QVec` control_qubit); virtual bool :target:`is_dagger`(); virtual :ref:`QVec` :target:`get_control_qubit`(); virtual void :target:`copy_dagger_and_control_qubit`(:ref:`QGate`& gate); virtual void :target:`copy_dagger_and_control_qubit`(std::shared_ptr gate); }; // direct descendants class :ref:`VariationalQuantumGate_CNOT`; class :ref:`VariationalQuantumGate_CR`; class :ref:`VariationalQuantumGate_CRX`; class :ref:`VariationalQuantumGate_CRY`; class :ref:`VariationalQuantumGate_CRZ`; class :ref:`VariationalQuantumGate_CU`; class :ref:`VariationalQuantumGate_CZ`; class :ref:`VariationalQuantumGate_H`; class :ref:`VariationalQuantumGate_iSWAP`; class :ref:`VariationalQuantumGate_RPhi`; class :ref:`VariationalQuantumGate_RX`; class :ref:`VariationalQuantumGate_RY`; class :ref:`VariationalQuantumGate_RZ`; class :ref:`VariationalQuantumGate_S`; class :ref:`VariationalQuantumGate_SqiSWAP`; class :ref:`VariationalQuantumGate_SWAP`; class :ref:`VariationalQuantumGate_T`; class :ref:`VariationalQuantumGate_U1`; class :ref:`VariationalQuantumGate_U2`; class :ref:`VariationalQuantumGate_U3`; class :ref:`VariationalQuantumGate_U4`; class :ref:`VariationalQuantumGate_X`; class :ref:`VariationalQuantumGate_X1`; class :ref:`VariationalQuantumGate_Y`; class :ref:`VariationalQuantumGate_Y1`; class :ref:`VariationalQuantumGate_Z`; class :ref:`VariationalQuantumGate_Z1`; .. _details-class_q_panda_1_1_variational_1_1_variational_quantum_gate: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Construction ------------ .. index:: pair: function; VariationalQuantumGate .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1a44eadb3fe9594c0cc691c2d1b06cd658: .. ref-code-block:: cpp :class: doxyrest-title-code-block VariationalQuantumGate(const VariationalQuantumGate&) Copy Constructor for a new :ref:`Variational ` Quantum Gate object. .. index:: pair: function; VariationalQuantumGate .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1a2a29b7083325db10b62755ae610d2a35: .. ref-code-block:: cpp :class: doxyrest-title-code-block VariationalQuantumGate() Default Constructor for a new :ref:`Variational ` Quantum Gate object. Methods ------- .. index:: pair: function; n_var .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1a94e84e5572d19b6f4017e15671cc8fc1: .. ref-code-block:: cpp :class: doxyrest-title-code-block size_t n_var() .. rubric:: Returns: size_t the number of vars. .. index:: pair: function; get_vars .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1a040e35879202ce657c995466e9a64e04: .. ref-code-block:: cpp :class: doxyrest-title-code-block const std::vector<:ref:`var`>& get_vars() Get all variables for the VQG. .. rubric:: Returns: std::vector .. index:: pair: function; var_pos .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1a289faed2739b91d54ea82d7a72aa4beb: .. ref-code-block:: cpp :class: doxyrest-title-code-block int var_pos(:ref:`var` _var) Get the position for var in the m_vars. If not existed, return -1. Otherwise, return the position n, which is var == m_vars[n]. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - var - The corresponding variable. .. rubric:: Returns: int -1 if not existed, or position. .. index:: pair: function; feed .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1ad331ff4076e3ad2e6108ebb270dc4947: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QGate` feed() = 0 Interface to instantialize the :ref:`QGate ` with VQG. .. rubric:: Returns: :ref:`QGate ` Instantiation .. index:: pair: function; feed .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1af174cd439585ec3b29f4b1360d3ecd90: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QGate` feed(std::map offset) Interface to instantialize the :ref:`QGate ` with the "offset". .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - offset - .. rubric:: Returns: :ref:`QGate ` .. index:: pair: function; copy .. _doxid-class_q_panda_1_1_variational_1_1_variational_quantum_gate_1aa135247611e3a0f49af4a15734f3505f: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::shared_ptr copy() = 0 Interface to copy the instance, and return a shared_ptr for the object. .. rubric:: Returns: std::shared_ptr