class QPanda::OriginProgram¶
Overview¶
Implementation class of QProg. More…
#include <QProgram.h> class OriginProgram: public QPanda::QNode, public QPanda::AbstractQuantumProgram { public: // methods virtual void pushBackNode(std::shared_ptr<QNode> node); virtual NodeIter getFirstNodeIter(); virtual NodeIter getLastNodeIter(); virtual NodeIter getEndNodeIter(); virtual NodeIter getHeadNodeIter(); virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>); virtual NodeIter deleteQNode(NodeIter&); virtual NodeType getNodeType() const; virtual void clear(); bool check_insert_node_type(std::shared_ptr<QNode> node); virtual size_t get_max_qubit_addr(); virtual size_t get_used_qubits(QVec&); virtual size_t get_used_cbits(std::vector<ClassicalCondition>&); virtual size_t get_qgate_num(); virtual std::map<Qubit*, bool> get_measure_pos(); virtual bool is_measure_last_pos(); virtual std::vector<std::pair<Qubit*, ClassicalCondition>> get_measure_qubits_cbits(); };
Inherited Members¶
public: // methods virtual NodeType getNodeType() const = 0; 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; 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;
Detailed Documentation¶
Implementation class of QProg.
Methods¶
virtual void pushBackNode(std::shared_ptr<QNode> node)
Insert new node at the end of current quantum program node.
Parameters:
QNode* |
quantum node |
Returns:
void
See also:
virtual NodeIter getFirstNodeIter()
Get the first NodeIter.
Returns:
virtual NodeIter getLastNodeIter()
Get the last NodeIter.
Returns:
virtual NodeIter getEndNodeIter()
Get the end NodeIter.
Returns:
virtual NodeIter getHeadNodeIter()
Get the head NodeIter.
Returns:
virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>)
Insert a new QNode at the location specified by NodeIter.
Parameters:
NodeIter& |
specified location |
std::shared_ptr<QNode> |
Inserted QNode |
Returns:
virtual NodeIter deleteQNode(NodeIter&)
Delete a QNode at the location specified by NodeIter.
Parameters:
NodeIter& |
specified location |
Returns:
virtual NodeType getNodeType() const
Get current node type.
Returns:
NodeType current node type
See also:
virtual void clear()
Clear all node in current quantum program node.
Returns:
void
virtual size_t get_max_qubit_addr()
Gets the maximum physical address of used qubits.
Returns:
size_t maximum physical address
virtual size_t get_used_qubits(QVec&)
Get the used qubits for current quantum program.
Parameters:
used qubits vector |
Returns:
size_t
virtual size_t get_used_cbits(std::vector<ClassicalCondition>&)
Get the used classical bits for current quantum program.
Parameters:
used qubits vector |
Returns:
size_t
virtual size_t get_qgate_num()
Get current quantum program qgate number.
Returns:
size_t
virtual std::map<Qubit*, bool> get_measure_pos()
Get Measure operation position of the program.
Returns:
std::map<Qubit*, bool>
virtual bool is_measure_last_pos()
Measure operation in the last position of the program.
Returns:
bool
virtual std::vector<std::pair<Qubit*, ClassicalCondition>> get_measure_qubits_cbits()
Get Measure operation qubits and cbits vector.
Returns:
std::vector<std::pair<Qubit*, ClassicalCondition>>