class QPanda::AbstractQuantumCircuit

Overview

Quantum circuit basic abstract class. More…

#include <QCircuit.h>

class AbstractQuantumCircuit: public QPanda::AbstractNodeManager
{
public:
    // methods

    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;
};

// direct descendants

class OriginCircuit;
class QCircuit;

Inherited Members

public:
    // methods

    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;

Detailed Documentation

Quantum circuit basic abstract class.

Methods

virtual bool isDagger() const = 0

Judge current quantum circuit is dagger.

Returns:

bool

virtual bool getControlVector(QVec&) = 0

Get control vector fron current quantum circuit node.

Parameters:

QVec&

qubits vector

Returns:

bool

See also:

QVec

virtual void setDagger(bool isDagger) = 0

Set dagger to current quantum circuit.

Parameters:

bool

is dagger

virtual void setControl(QVec) = 0

Set control qubits to current quantum circuit.

Parameters:

QVec

control qubits vector

See also:

QVec

virtual void clearControl() = 0

Clear the control qubits for current quantum circuit.

See also:

QVec

virtual size_t get_used_qubits(QVec&) const = 0

Get the used qubits for current quantum circuit.

Parameters:

QVec

used qubits vector

Returns:

size_t

virtual size_t get_qgate_num() = 0

Get current quantum circuit qgate number.

Returns:

size_t