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:
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:
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>>