class QPanda::QGate

Overview

QPanda2 quantum gate basic classs. More…

#include <QGate.h>

class QGate: public QPanda::AbstractQGateNode
{
public:
    // construction

    QGate(const QGate&);

    QGate(
        QVec&,
        QuantumGate*
        );

    QGate(std::shared_ptr<AbstractQGateNode> node);

    // methods

    NodeType getNodeType() const;
    virtual size_t getQuBitVector(QVec&) const;
    virtual size_t getTargetQubitNum() const;
    virtual size_t getControlQubitNum() const;
    virtual QuantumGate* getQGate() const;
    virtual bool setDagger(bool);
    virtual bool setControl(QVec);
    std::shared_ptr<AbstractQGateNode> getImplementationPtr();
    QGate dagger();
    QGate control(QVec);
    virtual void clear_control();
    virtual void remap(QVec);
    virtual bool isDagger() const;
    virtual size_t getControlVector(QVec&) const;
};

Inherited Members

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;

Detailed Documentation

QPanda2 quantum gate basic classs.

Methods

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 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 QuantumGate* getQGate() const

Get Quantum Gate.

Returns:

QuantumGate *

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

QGate dagger()

Get a dagger quantumgate base on current quantum gate node.

Returns:

QPanda::QGate quantum gate

QGate control(QVec)

Get a control quantumgate base on current quantum gate node.

Parameters:

QVec

control qubits vector

Returns:

QPanda::QGate quantum gate

See also:

QVec

virtual void clear_control()

Clear the control qubits for current quantum gate.

Returns:

virtual void remap(QVec)

remap qubit

Returns:

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