class QPanda::QProgCheck

Overview

Qunatum QProgCheck. More…

#include <QProgCheck.h>

class QProgCheck
{
public:
    // methods

    virtual void execute(
        std::shared_ptr<AbstractQGateNode> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& param
        );

    virtual void execute(
        std::shared_ptr<AbstractQuantumMeasure> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& param
        );

    virtual void execute(
        std::shared_ptr<AbstractQuantumReset> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& param
        );

    virtual void execute(
        std::shared_ptr<AbstractControlFlowNode> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& param
        );

    virtual void execute(
        std::shared_ptr<AbstractQuantumCircuit> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& param
        );

    virtual void execute(
        std::shared_ptr<AbstractQuantumProgram> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& paramu
        );

    virtual void execute(
        std::shared_ptr<AbstractClassicalProg> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& param
        );
};

Detailed Documentation

Qunatum QProgCheck.

Methods

virtual void execute(
    std::shared_ptr<AbstractQGateNode> cur_node,
    std::shared_ptr<QNode> parent_node,
    TraversalConfig& param
    )

Execution traversal qgatenode.

Parameters:

AbstractQGateNode*

quantum gate

AbstractQGateNode*

quantum gate

TraversalConfig

traversal config

QPUImpl*

virtual quantum processor

Returns:

void

virtual void execute(
    std::shared_ptr<AbstractQuantumMeasure> cur_node,
    std::shared_ptr<QNode> parent_node,
    TraversalConfig& param
    )

Execution traversal measure node.

Parameters:

AbstractQuantumMeasure*

measure node

AbstractQGateNode*

quantum gate

TraversalConfig

traversal config

QPUImpl*

virtual quantum processor

Returns:

void

virtual void execute(
    std::shared_ptr<AbstractQuantumReset> cur_node,
    std::shared_ptr<QNode> parent_node,
    TraversalConfig& param
    )

Execution traversal reset node.

Parameters:

AbstractQuantumReset*

reset node

QNode*

parent node

TraversalConfig

traversal config

QPUImpl*

virtual quantum processor

Returns:

void

virtual void execute(
    std::shared_ptr<AbstractControlFlowNode> cur_node,
    std::shared_ptr<QNode> parent_node,
    TraversalConfig& param
    )

Execution traversal control flow node.

Parameters:

AbstractControlFlowNode*

control flow node

AbstractQGateNode*

quantum gate

TraversalConfig

traversal config

QPUImpl*

virtual quantum processor

Returns:

void

virtual void execute(
    std::shared_ptr<AbstractQuantumCircuit> cur_node,
    std::shared_ptr<QNode> parent_node,
    TraversalConfig& param
    )

Execution traversal qcircuit.

Parameters:

AbstractQuantumCircuit*

quantum circuit

AbstractQGateNode*

quantum gate

TraversalConfig

traversal config

QPUImpl*

virtual quantum processor

Returns:

void

virtual void execute(
    std::shared_ptr<AbstractQuantumProgram> cur_node,
    std::shared_ptr<QNode> parent_node,
    TraversalConfig& paramu
    )

Execution traversal qprog.

Parameters:

AbstractQuantumProgram*

quantum prog

AbstractQGateNode*

quantum gate

TraversalConfig

traversal config

QPUImpl*

virtual quantum processor

Returns:

void

virtual void execute(
    std::shared_ptr<AbstractClassicalProg> cur_node,
    std::shared_ptr<QNode> parent_node,
    TraversalConfig& param
    )

Execution traversal qprog.

Parameters:

AbstractClassicalProg*

quantum prog

AbstractQGateNode*

quantum gate

TraversalConfig

traversal config

QPUImpl*

virtual quantum processor

Returns:

void