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