class QPanda::OriginCircuit

Overview

Implementation class of QCircuit. More…

#include <QCircuit.h>

class OriginCircuit:
    public QPanda::QNode,
    public QPanda::AbstractQuantumCircuit
{
public:
    // methods

    virtual void pushBackNode(std::shared_ptr<QNode>);
    virtual void setDagger(bool isDagger);
    virtual void setControl(QVec);
    virtual NodeType getNodeType() const;
    virtual bool isDagger() const;
    virtual bool getControlVector(QVec&);
    virtual NodeIter getFirstNodeIter();
    virtual NodeIter getLastNodeIter();
    virtual NodeIter getEndNodeIter();
    virtual NodeIter getHeadNodeIter();
    virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>);
    virtual NodeIter deleteQNode(NodeIter&);
    void clear();
    virtual void clearControl();
    virtual size_t get_used_qubits(QVec&) const;
    virtual size_t get_qgate_num();
    bool check_insert_node_type(std::shared_ptr<QNode> node);
};

Inherited Members

public:
    // methods

    virtual NodeType getNodeType() const = 0;
    virtual NodeIter getFirstNodeIter() = 0;
    virtual NodeIter getLastNodeIter() = 0;
    virtual NodeIter getEndNodeIter() = 0;
    virtual NodeIter getHeadNodeIter() = 0;
    virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>) = 0;
    virtual NodeIter deleteQNode(NodeIter&) = 0;
    virtual void pushBackNode(std::shared_ptr<QNode>) = 0;
    virtual bool isDagger() const = 0;
    virtual bool getControlVector(QVec&) = 0;
    virtual void setDagger(bool isDagger) = 0;
    virtual void setControl(QVec) = 0;
    virtual void clearControl() = 0;
    virtual size_t get_used_qubits(QVec&) const = 0;
    virtual size_t get_qgate_num() = 0;

Detailed Documentation

Implementation class of QCircuit.

Methods

virtual void pushBackNode(std::shared_ptr<QNode>)

Insert a new Node at the end of current quantum circuit.

Parameters:

QNode*

quantum node

Returns:

void

See also:

QNode

virtual void setDagger(bool isDagger)

Set dagger to current quantum circuit.

Parameters:

bool

is dagger

virtual void setControl(QVec)

Set control qubits to current quantum circuit.

Parameters:

QVec

control qubits vector

See also:

QVec

virtual NodeType getNodeType() const

Get current node type.

Returns:

NodeType current node type

See also:

NodeType

virtual bool isDagger() const

Judge current quantum circuit is dagger.

Returns:

bool

virtual bool getControlVector(QVec&)

Get control vector fron current quantum circuit node.

Parameters:

QVec&

qubits vector

Returns:

bool

See also:

QVec

virtual NodeIter getFirstNodeIter()

Get the first NodeIter.

Returns:

NodeIter

virtual NodeIter getLastNodeIter()

Get the last NodeIter.

Returns:

NodeIter

virtual NodeIter getEndNodeIter()

Get the end NodeIter.

Returns:

NodeIter

virtual NodeIter getHeadNodeIter()

Get the head NodeIter.

Returns:

NodeIter

virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>)

Insert a new QNode at the location specified by NodeIter.

Parameters:

NodeIter&

specified location

std::shared_ptr<QNode>

Inserted QNode

Returns:

NodeIter

virtual NodeIter deleteQNode(NodeIter&)

Delete a QNode at the location specified by NodeIter.

Parameters:

NodeIter&

specified location

Returns:

NodeIter Deleted NodeIter

void clear()

Clear all node in current quantum program node.

Returns:

void

virtual void clearControl()

Clear the control qubits for current quantum circuit.

See also:

QVec

virtual size_t get_used_qubits(QVec&) const

Get the used qubits for current quantum circuit.

Parameters:

QVec

used qubits vector

Returns:

size_t

virtual size_t get_qgate_num()

Get current quantum circuit qgate number.

Returns:

size_t