Skip to content

Latest commit

 

History

History
415 lines (229 loc) · 14.1 KB

class_QPanda_OriginProgram.rst

File metadata and controls

415 lines (229 loc) · 14.1 KB

pair: class; QPanda::OriginProgram

class QPanda::OriginProgram

Overview

Implementation class of QProg <doxid-class_q_panda_1_1_q_prog>. More...<details-class_q_panda_1_1_origin_program>

cpp

#include <QProgram.h>

class OriginProgram:

public QPanda::QNode<doxid-class_q_panda_1_1_q_node>, public QPanda::AbstractQuantumProgram<doxid-class_q_panda_1_1_abstract_quantum_program>

{ public: // methods

virtual void pushBackNode<doxid-class_q_panda_1_1_origin_program_1abbbaf3b4f6b866bc7cdf8f72191a3305>(std::shared_ptr<QNode<doxid-class_q_panda_1_1_q_node>> node); virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getFirstNodeIter<doxid-class_q_panda_1_1_origin_program_1ac76dc74aac5d82dced00905b8465e4ce>(); virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getLastNodeIter<doxid-class_q_panda_1_1_origin_program_1a539febf291fd142e10d00ef34fa42705>(); virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getEndNodeIter<doxid-class_q_panda_1_1_origin_program_1a3387d72885e4bb19f95e2cedb0f204d9>(); virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getHeadNodeIter<doxid-class_q_panda_1_1_origin_program_1a4b099fa404b6832a2ec3cc7f4f5ce105>(); virtual NodeIter<doxid-class_q_panda_1_1_node_iter> insertQNode<doxid-class_q_panda_1_1_origin_program_1aeb2ae2774001036b8e77aa999193aa8e>(const NodeIter<doxid-class_q_panda_1_1_node_iter>&, std::shared_ptr<QNode<doxid-class_q_panda_1_1_q_node>>); virtual NodeIter<doxid-class_q_panda_1_1_node_iter> deleteQNode<doxid-class_q_panda_1_1_origin_program_1acf553e4d734100f2f6444c9195cddfa7>(NodeIter<doxid-class_q_panda_1_1_node_iter>&); virtual NodeType<doxid-_q_global_variable_8h_1acac9cbaeea226ed297804c012dc12b16> getNodeType<doxid-class_q_panda_1_1_origin_program_1aae506f078e9dfd73c88679e323d4f4d7>() const; virtual void clear<doxid-class_q_panda_1_1_origin_program_1ae79ff7fae98c24945d49095394d26e2d>(); bool check_insert_node_type<doxid-class_q_panda_1_1_origin_program_1a612c7718151cb65149ed63c3dd839b4b>(std::shared_ptr<QNode<doxid-class_q_panda_1_1_q_node>> node); virtual size_t get_max_qubit_addr<doxid-class_q_panda_1_1_origin_program_1a53eb0f2d40f051d3ad01c09ebcdce0ee>(); virtual size_t get_used_qubits<doxid-class_q_panda_1_1_origin_program_1a747348ccc8edf978b319fe69c5b94135>(QVec<doxid-class_q_panda_1_1_q_vec>&); virtual size_t get_used_cbits<doxid-class_q_panda_1_1_origin_program_1a6585d6ef5c3cc53819347fb6209b58f6>(std::vector<ClassicalCondition<doxid-class_q_panda_1_1_classical_condition>>&); virtual size_t get_qgate_num<doxid-class_q_panda_1_1_origin_program_1a1163cc37848d8fb0205567d4b5dd3923>(); virtual std::map<Qubit<doxid-class_q_panda_1_1_qubit>, bool> :ref:`get_measure_pos<doxid-class_q_panda_1_1_origin_program_1aa36793a5104d177c5f1a2c72fe6f46e9>`(); virtual bool :ref:`is_measure_last_pos<doxid-class_q_panda_1_1_origin_program_1a215f1b4e46a4799f898c5f52911610e6>`(); 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_origin_program_1a1a2a8b67b5fcc7b4a23c096a3a7ae342>();

};

Inherited Members

cpp

public:

// methods

virtual NodeType<doxid-_q_global_variable_8h_1acac9cbaeea226ed297804c012dc12b16> getNodeType<doxid-class_q_panda_1_1_q_node_1a8e8793fe1aabcd13db3ed1f79892c011>() const = 0; 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; 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;

Detailed Documentation

Implementation class of QProg <doxid-class_q_panda_1_1_q_prog>.

Methods

pair: function; pushBackNode

cpp

virtual void pushBackNode(std::shared_ptr<QNode<doxid-class_q_panda_1_1_q_node>> node)

Insert new node at the end of current quantum program node.

Parameters:

Returns:

void

See also:

QNode <doxid-class_q_panda_1_1_q_node>

pair: function; getFirstNodeIter

cpp

virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getFirstNodeIter()

Get the first NodeIter <doxid-class_q_panda_1_1_node_iter>.

Returns:

NodeIter <doxid-class_q_panda_1_1_node_iter>

pair: function; getLastNodeIter

cpp

virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getLastNodeIter()

Get the last NodeIter <doxid-class_q_panda_1_1_node_iter>.

Returns:

NodeIter <doxid-class_q_panda_1_1_node_iter>

pair: function; getEndNodeIter

cpp

virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getEndNodeIter()

Get the end NodeIter <doxid-class_q_panda_1_1_node_iter>.

Returns:

NodeIter <doxid-class_q_panda_1_1_node_iter>

pair: function; getHeadNodeIter

cpp

virtual NodeIter<doxid-class_q_panda_1_1_node_iter> getHeadNodeIter()

Get the head NodeIter <doxid-class_q_panda_1_1_node_iter>.

Returns:

NodeIter <doxid-class_q_panda_1_1_node_iter>

pair: function; insertQNode

cpp

virtual NodeIter<doxid-class_q_panda_1_1_node_iter> insertQNode(const NodeIter<doxid-class_q_panda_1_1_node_iter>&, std::shared_ptr<QNode<doxid-class_q_panda_1_1_q_node>>)

Insert a new QNode <doxid-class_q_panda_1_1_q_node> at the location specified by NodeIter <doxid-class_q_panda_1_1_node_iter>.

Parameters:

Returns:

NodeIter <doxid-class_q_panda_1_1_node_iter>

pair: function; deleteQNode

cpp

virtual NodeIter<doxid-class_q_panda_1_1_node_iter> deleteQNode(NodeIter<doxid-class_q_panda_1_1_node_iter>&)

Delete a QNode <doxid-class_q_panda_1_1_q_node> at the location specified by NodeIter <doxid-class_q_panda_1_1_node_iter>.

Parameters:

Returns:

NodeIter <doxid-class_q_panda_1_1_node_iter> Deleted NodeIter <doxid-class_q_panda_1_1_node_iter>

pair: function; getNodeType

cpp

virtual NodeType<doxid-_q_global_variable_8h_1acac9cbaeea226ed297804c012dc12b16> getNodeType() const

Get current node type.

Returns:

NodeType current node type

See also:

NodeType <doxid-_q_global_variable_8h_1acac9cbaeea226ed297804c012dc12b16>

pair: function; clear

cpp

virtual void clear()

Clear all node in current quantum program node.

Returns:

void

pair: function; get_max_qubit_addr

cpp

virtual size_t get_max_qubit_addr()

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>&)

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>>&)

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()

Get current quantum program qgate number.

Returns:

size_t

pair: function; get_measure_pos

cpp

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

Get Measure operation position of the program.

Returns:

std::map<Qubit*, bool>

pair: function; is_measure_last_pos

cpp

virtual bool is_measure_last_pos()

Measure operation in the last position of the program.

Returns:

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()

Get Measure operation qubits and cbits vector.

Returns:

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