class QPanda::QGateCompare¶
Overview¶
Qunatum Gate Compare. More…
#include <QGateCompare.h> class QGateCompare: public QPanda::TraversalInterface { public: // construction QGateCompare(const std::vector<std::vector<std::string>>&); // methods template <typename _Ty> void traversal(_Ty node); template <typename _Ty> void traversal(std::shared_ptr<_Ty> node); size_t count(); virtual void execute(std::shared_ptr<AbstractQGateNode> cur_node, std::shared_ptr<QNode> parent_node); virtual void execute(std::shared_ptr<AbstractQuantumMeasure> cur_node, std::shared_ptr<QNode> parent_node); virtual void execute(std::shared_ptr<AbstractQuantumReset> cur_node, std::shared_ptr<QNode> parent_node); virtual void execute(std::shared_ptr<AbstractControlFlowNode> cur_node, std::shared_ptr<QNode> parent_node); virtual void execute(std::shared_ptr<AbstractQuantumCircuit> cur_node, std::shared_ptr<QNode> parent_node); virtual void execute(std::shared_ptr<AbstractQuantumProgram> cur_node, std::shared_ptr<QNode> parent_node); virtual void execute(std::shared_ptr<AbstractClassicalProg> cur_node, std::shared_ptr<QNode> parent_node); };
Inherited Members¶
public: // methods virtual void execute( std::shared_ptr<AbstractQGateNode> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumMeasure> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumReset> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractControlFlowNode> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumCircuit> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractQuantumProgram> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args ); virtual void execute( std::shared_ptr<AbstractClassicalProg> cur_node, std::shared_ptr<QNode> parent_node, Args&&... func_args );
Detailed Documentation¶
Qunatum Gate Compare.
Methods¶
template <typename _Ty> void traversal(_Ty node)
traversal quantum program, quantum circuit, quantum while or quantum if
Parameters:
_Ty& |
quantum program, quantum circuit, quantum while or quantum if |
Returns:
void
size_t count()
get unsupported gate numner
Returns:
size_t Unsupported QGate number
virtual void execute(std::shared_ptr<AbstractQGateNode> cur_node, std::shared_ptr<QNode> parent_node)
Execution traversal qgatenode.
Parameters:
AbstractQGateNode* |
quantum gate |
AbstractQGateNode* |
quantum gate |
Returns:
void
virtual void execute(std::shared_ptr<AbstractQuantumMeasure> cur_node, std::shared_ptr<QNode> parent_node)
Execution traversal measure node.
Parameters:
AbstractQuantumMeasure* |
measure node |
AbstractQGateNode* |
quantum gate |
Returns:
void
virtual void execute(std::shared_ptr<AbstractQuantumReset> cur_node, std::shared_ptr<QNode> parent_node)
Execution traversal reset node.
Parameters:
AbstractQuantumReset* |
reset node |
AbstractQGateNode* |
quantum gate |
Returns:
void
virtual void execute(std::shared_ptr<AbstractControlFlowNode> cur_node, std::shared_ptr<QNode> parent_node)
Execution traversal control flow node.
Parameters:
AbstractControlFlowNode* |
control flow node |
AbstractQGateNode* |
quantum gate |
Returns:
void
virtual void execute(std::shared_ptr<AbstractQuantumCircuit> cur_node, std::shared_ptr<QNode> parent_node)
Execution traversal qcircuit.
Parameters:
AbstractQuantumCircuit* |
quantum circuit |
AbstractQGateNode* |
quantum gate |
Returns:
void
virtual void execute(std::shared_ptr<AbstractQuantumProgram> cur_node, std::shared_ptr<QNode> parent_node)
Execution traversal qprog.
Parameters:
AbstractQuantumProgram* |
quantum prog |
AbstractQGateNode* |
quantum gate |
Returns:
void
virtual void execute(std::shared_ptr<AbstractClassicalProg> cur_node, std::shared_ptr<QNode> parent_node)
Execution traversal qprog.
Parameters:
AbstractClassicalProg* |
quantum prog |
AbstractQGateNode* |
quantum gate |
Returns:
void