class QPanda::OriginQGate

Overview

Implementation class of QGate. More…

#include <QGate.h>

class OriginQGate:
    public QPanda::QNode,
    public QPanda::AbstractQGateNode
{
public:
    // construction

    OriginQGate(
        QVec&,
        QuantumGate*
        );

    // methods

    virtual NodeType getNodeType() const;
    virtual size_t getQuBitVector(QVec&) const;
    virtual size_t getTargetQubitNum() const;
    virtual size_t getControlQubitNum() const;
    virtual Qubit* popBackQuBit();
    virtual QuantumGate* getQGate() const;
    virtual void setQGate(QuantumGate*);
    virtual bool setDagger(bool);
    virtual bool setControl(QVec);
    virtual bool isDagger() const;
    virtual size_t getControlVector(QVec&) const;
    virtual void PushBackQuBit(Qubit*);
    virtual void remap(QVec);
    virtual void clear_control();
};

Inherited Members

public:
    // methods

    virtual NodeType getNodeType() const = 0;
    virtual size_t getQuBitVector(QVec&) const = 0;
    virtual Qubit* popBackQuBit() = 0;
    virtual void PushBackQuBit(Qubit*) = 0;
    virtual size_t getTargetQubitNum() const = 0;
    virtual size_t getControlQubitNum() const = 0;
    virtual QuantumGate* getQGate() const = 0;
    virtual void setQGate(QuantumGate*) = 0;
    virtual bool isDagger() const = 0;
    virtual size_t getControlVector(QVec&) const = 0;
    virtual void clear_control() = 0;
    virtual bool setDagger(bool) = 0;
    virtual bool setControl(QVec) = 0;
    virtual void remap(QVec) = 0;

Detailed Documentation

Implementation class of QGate.

Methods

virtual NodeType getNodeType() const

Get current node type.

Returns:

NodeType current node type

See also:

NodeType

virtual size_t getQuBitVector(QVec&) const

Get qubit vector inside this quantum gate.

Parameters:

QVec&

qubit vector

Returns:

size_t

See also:

GateType

virtual size_t getTargetQubitNum() const

Get target qubit num inside this quantum gate.

Returns:

size_t qubit num

virtual size_t getControlQubitNum() const

Get control qubit num inside this quantum gate.

Returns:

size_t qubit num

virtual Qubit* popBackQuBit()

erase qubit vector element at end

Returns:

Qubit*

virtual QuantumGate* getQGate() const

Get Quantum Gate.

Returns:

QuantumGate *

virtual void setQGate(QuantumGate*)

Set Quantum Gate.

Parameters:

QuantumGate*

QuantumGate pointer

virtual bool setDagger(bool)

Set dagger to current quantum gate.

Parameters:

bool

is dagger

Returns:

bool

virtual bool setControl(QVec)

Set control qubits to current quantum gate.

Parameters:

QVec

control qubits vector

Returns:

bool

See also:

QVec

virtual bool isDagger() const

Judge current quantum gate is dagger.

Returns:

bool

virtual size_t getControlVector(QVec&) const

Get control vector fron current quantum gate node.

Parameters:

QVec&

qubits vector

Returns:

size_t

See also:

QVec

virtual void PushBackQuBit(Qubit*)

insert qubit vector element at end

Parameters:

Qubit*

Qubit pointer

virtual void remap(QVec)

remap qubit

Returns:

virtual void clear_control()

Clear the control qubits for current quantum gate.

See also:

QVec