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