Skip to content

Latest commit

 

History

History
213 lines (121 loc) · 6.98 KB

class_QPanda_AbstractQuantumProgram.rst

File metadata and controls

213 lines (121 loc) · 6.98 KB

pair: class; QPanda::AbstractQuantumProgram

class QPanda::AbstractQuantumProgram

Overview

Quantum program basic abstract class. More...<details-class_q_panda_1_1_abstract_quantum_program>

cpp

#include <QProgram.h>

class AbstractQuantumProgram: public QPanda::AbstractNodeManager<doxid-class_q_panda_1_1_abstract_node_manager> { public: // methods

virtual void clear<doxid-class_q_panda_1_1_abstract_quantum_program_1a5f31f3aa64a849d6654eb8ee1f73d3ab>() = 0; virtual size_t get_max_qubit_addr<doxid-class_q_panda_1_1_abstract_quantum_program_1a8bdeebab139384217702489f01a7920a>() = 0; virtual size_t get_used_qubits<doxid-class_q_panda_1_1_abstract_quantum_program_1abea5d2c41984ba3cf679325137b3067a>(QVec<doxid-class_q_panda_1_1_q_vec>&) = 0; virtual size_t get_used_cbits<doxid-class_q_panda_1_1_abstract_quantum_program_1a8db1ec2607e05c8a11232a0c627572c9>(std::vector<ClassicalCondition<doxid-class_q_panda_1_1_classical_condition>>&) = 0; virtual size_t get_qgate_num<doxid-class_q_panda_1_1_abstract_quantum_program_1aa910c05e038c58904ef1a49635087622>() = 0; virtual bool is_measure_last_pos<doxid-class_q_panda_1_1_abstract_quantum_program_1a1d8232f912af4b86cf1b1770fda0360e>() = 0; virtual std::map<Qubit<doxid-class_q_panda_1_1_qubit>, bool> :ref:`get_measure_pos<doxid-class_q_panda_1_1_abstract_quantum_program_1ad25f4650c9ac5a30649f260c0ac43a8d>`() = 0; virtual std::vector<std::pair<:ref:`Qubit<doxid-class_q_panda_1_1_qubit>`, ClassicalCondition<doxid-class_q_panda_1_1_classical_condition>>> get_measure_qubits_cbits<doxid-class_q_panda_1_1_abstract_quantum_program_1a76a02e81401bb45d83a365decfb584d5>() = 0;

};

// direct descendants

class OriginProgram<doxid-class_q_panda_1_1_origin_program>; class QProg<doxid-class_q_panda_1_1_q_prog>;

Inherited Members

cpp

public:

// methods

virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getFirstNodeIter<doxid-class_q_panda_1_1_abstract_node_manager_1aab8aacb324825696cf2c7735b8ce17bc>() = 0; virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getLastNodeIter<doxid-class_q_panda_1_1_abstract_node_manager_1af035a5d190751faeea05132aefe1d6c6>() = 0; virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getEndNodeIter<doxid-class_q_panda_1_1_abstract_node_manager_1ad2f723e4ab1bfbb499226d0a6939bd18>() = 0; virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getHeadNodeIter<doxid-class_q_panda_1_1_abstract_node_manager_1abffeb4cc2327ec65520da3b127999393>() = 0; virtual NodeIter<doxid-class_q_panda_1_1_node_iter> insertQNode<doxid-class_q_panda_1_1_abstract_node_manager_1a9b5dc4a55201cd684f010f60835dd40d>(const NodeIter<doxid-class_q_panda_1_1_node_iter>&, std::shared_ptr<QNode<doxid-class_q_panda_1_1_q_node>>) = 0; virtual NodeIter<doxid-class_q_panda_1_1_node_iter> deleteQNode<doxid-class_q_panda_1_1_abstract_node_manager_1a1aab80e3d5b0a1dab7f0804458c6628e>(NodeIter<doxid-class_q_panda_1_1_node_iter>&) = 0; virtual void pushBackNode<doxid-class_q_panda_1_1_abstract_node_manager_1ae4b5be219a36fc04e671f00dfe3b6b11>(std::shared_ptr<QNode<doxid-class_q_panda_1_1_q_node>>) = 0;

Detailed Documentation

Quantum program basic abstract class.

Methods

pair: function; clear

cpp

virtual void clear() = 0

Clear all node in current quantum program node.

pair: function; get_max_qubit_addr

cpp

virtual size_t get_max_qubit_addr() = 0

Gets the maximum physical address of used qubits.

Returns:

size_t maximum physical address

pair: function; get_used_qubits

cpp

virtual size_t get_used_qubits(QVec<doxid-class_q_panda_1_1_q_vec>&) = 0

Get the used qubits for current quantum program.

Parameters:

Returns:

size_t

pair: function; get_used_cbits

cpp

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

Get the used classical bits for current quantum program.

Parameters:

Returns:

size_t

pair: function; get_qgate_num

cpp

virtual size_t get_qgate_num() = 0

Get current quantum program qgate number.

Returns:

size_t

pair: function; is_measure_last_pos

cpp

virtual bool is_measure_last_pos() = 0

Measure operation in the last position of the program.

Returns:

bool

pair: function; get_measure_pos

cpp

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

Get Measure operation position of the program.

Returns:

std::map<Qubit*, bool>

pair: function; get_measure_qubits_cbits

cpp

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

Get Measure operation qubits and cbits vector.

Returns:

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