class QGATE_SPACE::CU

#include <QuantumGate.h>

class CU:
    public QGATE_SPACE::QDoubleGate,
    public QGATE_SPACE::AbstractAngleParameter,
    public QGATE_SPACE::DynamicCreator,
    public QGATE_SPACE::DynamicCreator,
    public QGATE_SPACE::DynamicCreator
{
public:
    // construction

    CU(QuantumGate* gate_old);
    CU();
    CU(const CU&);

    CU(
        double,
        double,
        double,
        double
        );

    CU(QStat& matrix);

    // methods

    virtual double getAlpha() const;
    virtual double getBeta() const;
    virtual double getGamma() const;
    virtual double getDelta() const;
    virtual int getOperationNum() const;
};

// direct descendants

class CNOT;
class CPHASE;
class CZ;

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;
    static T* CreateObject(Targs&&... args);
    virtual int getOperationNum() const;
    virtual void getMatrix(QStat&) const;
    virtual double getAlpha() const = 0;
    virtual double getBeta() const = 0;
    virtual double getGamma() const = 0;
    virtual double getDelta() const = 0;