class QPanda::OriginQubitPool

Overview

#include <OriginQuantumMachine.h>

class OriginQubitPool: public QPanda::QubitPool
{
public:
    // methods

    static OriginQubitPool* get_instance();
    size_t get_capacity();
    void set_capacity(size_t);
    Qubit* get_qubit_by_addr(size_t qaddr);
    virtual void clearAll();
    virtual size_t getMaxQubit() const;
    virtual size_t getIdleQubit() const;
    virtual size_t get_max_usedqubit_addr() const;
    virtual Qubit* allocateQubit();
    virtual Qubit* allocateQubitThroughPhyAddress(size_t);
    virtual Qubit* allocateQubitThroughVirAddress(size_t qubit_num);
    virtual void Free_Qubit(Qubit*);
    virtual size_t getPhysicalQubitAddr(Qubit*);
    virtual size_t getVirtualQubitAddress(Qubit*) const;
    virtual size_t get_allocate_qubits(std::vector<Qubit*>&) const;
    Qubit* qAlloc();
    QVec qAllocMany(size_t);
    void qFree(Qubit*);
    void qFreeAll(QVec&);
};

Inherited Members

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;

Detailed Documentation

Methods

virtual void clearAll()

clear the PhysicalQubit vector

virtual size_t getMaxQubit() const

get size of the PhysicalQubit vector

Returns:

size_t

virtual size_t getIdleQubit() const

get size of the idle position

Returns:

size_t

virtual size_t get_max_usedqubit_addr() const

Gets the largest address in the used physical qubit.

Returns:

size_t

virtual Qubit* allocateQubit()

allocate a Qubit

Returns:

Qubit*

virtual Qubit* allocateQubitThroughPhyAddress(size_t)

allocate a Qubit through physical address

Returns:

Qubit*

virtual Qubit* allocateQubitThroughVirAddress(size_t qubit_num)

allocate a Qubit through virtual address

Returns:

Qubit*

virtual void Free_Qubit(Qubit*)

free a Qubit

virtual size_t getPhysicalQubitAddr(Qubit*)

get physical qubit address

Parameters:

Qubit*

Returns:

size_t

virtual size_t getVirtualQubitAddress(Qubit*) const

get virtual qubit address

Parameters:

Qubit*

Returns:

size_t

virtual size_t get_allocate_qubits(std::vector<Qubit*>&) const

get allocate qubits

Parameters:

QVec&

Returns:

size_t