class QPanda::DecomposeDoubleQGate¶
Overview¶
Decomposing double gates in qprog. More…
#include <TransformDecomposition.h> class DecomposeDoubleQGate: public QPanda::TraversalInterface { public: // construction DecomposeDoubleQGate(std::vector<std::vector<std::string>> valid_qgate_matrix); // methods 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¶
Decomposing double gates in qprog.
Decomposing control unitary single qgate in qprog.
Methods¶
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