class QPanda::QProgExecution

Overview

Qunatum Execution. More…

#include <QProgExecution.h>

class QProgExecution
{
public:
    // methods

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

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

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

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

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

    virtual void execute(
        std::shared_ptr<AbstractQuantumProgram> cur_node,
        std::shared_ptr<QNode> parent_node,
        TraversalConfig& param,
        QPUImpl* qpu
        );

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

    void get_return_value(std::map<std::string, bool>& result);
};

Detailed Documentation

Qunatum Execution.

Methods

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

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,
    QPUImpl* qpu
    )

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,
    QPUImpl* qpu
    )

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,
    QPUImpl* qpu
    )

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,
    QPUImpl* qpu
    )

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& param,
    QPUImpl* qpu
    )

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,
    QPUImpl* qpu
    )

Execution traversal qprog.

Parameters:

AbstractClassicalProg* quantum prog
AbstractQGateNode* quantum gate
TraversalConfig traversal config
QPUImpl* virtual quantum processor

Returns:

void

void get_return_value(std::map<std::string, bool>& result)

get result value

Parameters:

std::map<std::string  
bool> & result map