class QPanda::AbstractQuantumProgram

Overview

Quantum program basic abstract class. More…

#include <QProgram.h>

class AbstractQuantumProgram: public QPanda::AbstractNodeManager
{
public:
    // methods

    virtual void clear() = 0;
    virtual size_t get_max_qubit_addr() = 0;
    virtual size_t get_used_qubits(QVec&) = 0;
    virtual size_t get_used_cbits(std::vector<ClassicalCondition>&) = 0;
    virtual size_t get_qgate_num() = 0;
    virtual bool is_measure_last_pos() = 0;
    virtual std::map<Qubit*, bool> get_measure_pos() = 0;
    virtual std::vector<std::pair<Qubit*, ClassicalCondition>> get_measure_qubits_cbits() = 0;
};

// direct descendants

class OriginProgram;
class QProg;

Inherited Members

public:
    // methods

    virtual NodeIter getFirstNodeIter() = 0;
    virtual NodeIter getLastNodeIter() = 0;
    virtual NodeIter getEndNodeIter() = 0;
    virtual NodeIter getHeadNodeIter() = 0;
    virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>) = 0;
    virtual NodeIter deleteQNode(NodeIter&) = 0;
    virtual void pushBackNode(std::shared_ptr<QNode>) = 0;

Detailed Documentation

Quantum program basic abstract class.

Methods

virtual void clear() = 0

Clear all node in current quantum program node.

virtual size_t get_max_qubit_addr() = 0

Gets the maximum physical address of used qubits.

Returns:

size_t maximum physical address

virtual size_t get_used_qubits(QVec&) = 0

Get the used qubits for current quantum program.

Parameters:

QVec

used qubits vector

Returns:

size_t

virtual size_t get_used_cbits(std::vector<ClassicalCondition>&) = 0

Get the used classical bits for current quantum program.

Parameters:

QVec

used qubits vector

Returns:

size_t

virtual size_t get_qgate_num() = 0

Get current quantum program qgate number.

Returns:

size_t

virtual bool is_measure_last_pos() = 0

Measure operation in the last position of the program.

Returns:

bool

virtual std::map<Qubit*, bool> get_measure_pos() = 0

Get Measure operation position of the program.

Returns:

std::map<Qubit*, bool>

virtual std::vector<std::pair<Qubit*, ClassicalCondition>> get_measure_qubits_cbits() = 0

Get Measure operation qubits and cbits vector.

Returns:

std::vector<std::pair<Qubit*, ClassicalCondition>>