class QPanda::QubitPool¶
Overview¶
QubitPool abstract class It is the container of the PhysicalQubit. More…
#include <QubitPoolFactory.h> class QubitPool { public: // methods virtual size_t getMaxQubit() const = 0; virtual size_t get_max_usedqubit_addr() const = 0; virtual size_t getIdleQubit() const = 0; virtual Qubit* allocateQubit() = 0; virtual Qubit* allocateQubitThroughPhyAddress(size_t) = 0; virtual Qubit* allocateQubitThroughVirAddress(size_t qubit_num) = 0; virtual void Free_Qubit(Qubit*) = 0; virtual void clearAll() = 0; virtual size_t getPhysicalQubitAddr(Qubit*) = 0; virtual size_t getVirtualQubitAddress(Qubit*) const = 0; virtual size_t get_allocate_qubits(std::vector<Qubit*>&) const = 0; }; // direct descendants class OriginQubitPool; class OriginQubitPoolv1; class OriginQubitPoolv2;
Detailed Documentation¶
QubitPool abstract class It is the container of the PhysicalQubit.
Methods¶
virtual size_t getMaxQubit() const = 0
get size of the PhysicalQubit vector
Returns:
size_t
virtual size_t get_max_usedqubit_addr() const = 0
Gets the largest address in the used physical qubit.
Returns:
size_t
virtual size_t getIdleQubit() const = 0
get size of the idle position
Returns:
size_t
virtual Qubit* allocateQubit() = 0
allocate a Qubit
Returns:
Qubit*
virtual Qubit* allocateQubitThroughPhyAddress(size_t) = 0
allocate a Qubit through physical address
Returns:
Qubit*
virtual Qubit* allocateQubitThroughVirAddress(size_t qubit_num) = 0
allocate a Qubit through virtual address
Returns:
Qubit*
virtual void Free_Qubit(Qubit*) = 0
free a Qubit
virtual void clearAll() = 0
clear the PhysicalQubit vector
virtual size_t getPhysicalQubitAddr(Qubit*) = 0
get physical qubit address
Parameters:
Qubit* |
Returns:
size_t
virtual size_t getVirtualQubitAddress(Qubit*) const = 0
get virtual qubit address
Parameters:
Qubit* |
Returns:
size_t
virtual size_t get_allocate_qubits(std::vector<Qubit*>&) const = 0
get allocate qubits
Parameters:
QVec& |
Returns:
size_t