class QGATE_SPACE::U4

#include <QuantumGate.h>

class U4:
    public QGATE_SPACE::QuantumGate,
    public QGATE_SPACE::AbstractAngleParameter,
    public QGATE_SPACE::DynamicCreator,
    public QGATE_SPACE::DynamicCreator,
    public QGATE_SPACE::DynamicCreator
{
public:
    // construction

    U4();
    U4(U4&);

    U4(
        double,
        double,
        double,
        double
        );

    U4(QStat& matrix);
    U4(QuantumGate*);

    // methods

    virtual double getAlpha() const;
    virtual double getBeta() const;
    virtual double getGamma() const;
    virtual double getDelta() const;
    virtual int getOperationNum() const;
    virtual void getMatrix(QStat& matrix) const;
};

// direct descendants

class BARRIER;
class ECHO;
class H;
class I;
class RPhi;
class RX;
class RY;
class RZ;
class S;
class T;
class U1;
class U2;
class U3;
class X;
class X1;
class Y;
class Y1;
class Z;
class Z1;

Inherited Members

public:
    // structs

    struct Register;

    // fields

    static Register m_register;

    // methods

    virtual int getOperationNum() const = 0;
    virtual void getMatrix(QStat& matrix) const = 0;
    virtual int getGateType() const;
    virtual double getAlpha() const = 0;
    virtual double getBeta() const = 0;
    virtual double getGamma() const = 0;
    virtual double getDelta() const = 0;
    static T* CreateObject(Targs&&... args);