class QPanda::AbstractQGateNode

Overview

Quantum gate basic abstract class. More…

#include <QGate.h>

class AbstractQGateNode
{
public:
    // methods

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

// direct descendants

class OriginQGate;
class QGate;

Detailed Documentation

Quantum gate basic abstract class.

Methods

virtual size_t getQuBitVector(QVec&) const = 0

Get qubit vector inside this quantum gate.

Parameters:

QVec&

qubit vector

Returns:

size_t

See also:

GateType

virtual Qubit* popBackQuBit() = 0

erase qubit vector element at end

Returns:

Qubit*

virtual void PushBackQuBit(Qubit*) = 0

insert qubit vector element at end

Parameters:

Qubit*

Qubit pointer

virtual size_t getTargetQubitNum() const = 0

Get target qubit num inside this quantum gate.

Returns:

size_t qubit num

virtual size_t getControlQubitNum() const = 0

Get control qubit num inside this quantum gate.

Returns:

size_t qubit num

virtual QuantumGate* getQGate() const = 0

Get Quantum Gate.

Returns:

QuantumGate *

virtual void setQGate(QuantumGate*) = 0

Set Quantum Gate.

Parameters:

QuantumGate*

QuantumGate pointer

virtual bool isDagger() const = 0

Judge current quantum gate is dagger.

Returns:

bool

virtual size_t getControlVector(QVec&) const = 0

Get control vector fron current quantum gate node.

Parameters:

QVec&

qubits vector

Returns:

size_t

See also:

QVec

virtual void clear_control() = 0

Clear the control qubits for current quantum gate.

See also:

QVec

virtual bool setDagger(bool) = 0

Set dagger to current quantum gate.

Parameters:

bool

is dagger

Returns:

bool

virtual bool setControl(QVec) = 0

Set control qubits to current quantum gate.

Parameters:

QVec

control qubits vector

Returns:

bool

See also:

QVec

virtual void remap(QVec) = 0

remap qubit

Returns: