.. index:: pair: class; QPanda::OriginQubitPool .. _doxid-class_q_panda_1_1_origin_qubit_pool: class QPanda::OriginQubitPool ============================= .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class OriginQubitPool: public :ref:`QPanda::QubitPool` { public: // methods static OriginQubitPool* :target:`get_instance`(); size_t :target:`get_capacity`(); void :target:`set_capacity`(size_t); :ref:`Qubit`* :target:`get_qubit_by_addr`(size_t qaddr); virtual void :ref:`clearAll`(); virtual size_t :ref:`getMaxQubit`() const; virtual size_t :ref:`getIdleQubit`() const; virtual size_t :ref:`get_max_usedqubit_addr`() const; virtual :ref:`Qubit`* :ref:`allocateQubit`(); virtual :ref:`Qubit`* :ref:`allocateQubitThroughPhyAddress`(size_t); virtual :ref:`Qubit`* :ref:`allocateQubitThroughVirAddress`(size_t qubit_num); virtual void :ref:`Free_Qubit`(:ref:`Qubit`*); virtual size_t :ref:`getPhysicalQubitAddr`(:ref:`Qubit`*); virtual size_t :ref:`getVirtualQubitAddress`(:ref:`Qubit`*) const; virtual size_t :ref:`get_allocate_qubits`(std::vector<:ref:`Qubit`*>&) const; :ref:`Qubit`* :target:`qAlloc`(); :ref:`QVec` :target:`qAllocMany`(size_t); void :target:`qFree`(:ref:`Qubit`*); void :target:`qFreeAll`(:ref:`QVec`&); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods virtual size_t :ref:`getMaxQubit`() const = 0; virtual size_t :ref:`get_max_usedqubit_addr`() const = 0; virtual size_t :ref:`getIdleQubit`() const = 0; virtual :ref:`Qubit`* :ref:`allocateQubit`() = 0; virtual :ref:`Qubit`* :ref:`allocateQubitThroughPhyAddress`(size_t) = 0; virtual :ref:`Qubit`* :ref:`allocateQubitThroughVirAddress`(size_t qubit_num) = 0; virtual void :ref:`Free_Qubit`(:ref:`Qubit`*) = 0; virtual void :ref:`clearAll`() = 0; virtual size_t :ref:`getPhysicalQubitAddr`(:ref:`Qubit`*) = 0; virtual size_t :ref:`getVirtualQubitAddress`(:ref:`Qubit`*) const = 0; virtual size_t :ref:`get_allocate_qubits`(std::vector<:ref:`Qubit`*>&) const = 0; .. _details-class_q_panda_1_1_origin_qubit_pool: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; clearAll .. _doxid-class_q_panda_1_1_origin_qubit_pool_1a3daa08ee90ec03ac9583d4341f25e28f: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void clearAll() clear the :ref:`PhysicalQubit ` vector .. index:: pair: function; getMaxQubit .. _doxid-class_q_panda_1_1_origin_qubit_pool_1ae21b8c3c6a90a2063ebae8ca77501e9f: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getMaxQubit() const get size of the :ref:`PhysicalQubit ` vector .. rubric:: Returns: size_t .. index:: pair: function; getIdleQubit .. _doxid-class_q_panda_1_1_origin_qubit_pool_1aa86d390b6c4948eb44f6a38ebd711268: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getIdleQubit() const get size of the idle position .. rubric:: Returns: size_t .. index:: pair: function; get_max_usedqubit_addr .. _doxid-class_q_panda_1_1_origin_qubit_pool_1a4ec5765f7b12c8415b0152778e455055: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_max_usedqubit_addr() const Gets the largest address in the used physical qubit. .. rubric:: Returns: size_t .. index:: pair: function; allocateQubit .. _doxid-class_q_panda_1_1_origin_qubit_pool_1a095b5c0a89a5083923ee11ab5504eac4: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`Qubit`* allocateQubit() allocate a :ref:`Qubit ` .. rubric:: Returns: Qubit\* .. index:: pair: function; allocateQubitThroughPhyAddress .. _doxid-class_q_panda_1_1_origin_qubit_pool_1a584a025d186468c8d603569cf75db937: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`Qubit`* allocateQubitThroughPhyAddress(size_t) allocate a :ref:`Qubit ` through physical address .. rubric:: Returns: Qubit\* .. index:: pair: function; allocateQubitThroughVirAddress .. _doxid-class_q_panda_1_1_origin_qubit_pool_1aa56a2b1954f9b9834b0477a9d66ec5ec: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`Qubit`* allocateQubitThroughVirAddress(size_t qubit_num) allocate a :ref:`Qubit ` through virtual address .. rubric:: Returns: Qubit\* .. index:: pair: function; Free_Qubit .. _doxid-class_q_panda_1_1_origin_qubit_pool_1a01f41389cffce42427fccc14b3737fb4: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void Free_Qubit(:ref:`Qubit`*) free a :ref:`Qubit ` .. index:: pair: function; getPhysicalQubitAddr .. _doxid-class_q_panda_1_1_origin_qubit_pool_1aee2d5e5a0f1b40b105af4302bc3d96c2: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getPhysicalQubitAddr(:ref:`Qubit`*) get physical qubit address .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - Qubit\* - .. rubric:: Returns: size_t .. index:: pair: function; getVirtualQubitAddress .. _doxid-class_q_panda_1_1_origin_qubit_pool_1a38b608356530b3b192f813f69796251b: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t getVirtualQubitAddress(:ref:`Qubit`*) const get virtual qubit address .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - Qubit\* - .. rubric:: Returns: size_t .. index:: pair: function; get_allocate_qubits .. _doxid-class_q_panda_1_1_origin_qubit_pool_1a52b60312a570c04a361e44f4b8508ed0: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_allocate_qubits(std::vector<:ref:`Qubit`*>&) const get allocate qubits .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QVec& - .. rubric:: Returns: size_t