class AbstractQuantumGates¶
Quantum Gates Abstract Class.
#include <QPUImpl.h> class AbstractQuantumGates { public: // methods virtual QError DiagonalGate( Qnum& vQubit, QStat& matrix, bool isConjugate, double error_rate ) = 0; virtual QError controlDiagonalGate( Qnum& vQubit, QStat& matrix, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError Reset(size_t qn) = 0; virtual QError Hadamard( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError Hadamard( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError X( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError X( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError P0( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError P0( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError P1( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError P1( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError Y( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError Y( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError Z( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError Z( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError T( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError T( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError S( size_t qn, bool isConjugate, double error_rate ) = 0; virtual QError S( size_t qn, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError U1_GATE( size_t qn, double theta, bool isConjugate, double error_rate ) = 0; virtual QError RX_GATE( size_t qn, double theta, bool isConjugate, double error_rate ) = 0; virtual QError RX_GATE( size_t qn, double theta, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError RY_GATE( size_t qn, double theta, bool isConjugate, double error_rate ) = 0; virtual QError RY_GATE( size_t qn, double theta, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError RZ_GATE( size_t qn, double theta, bool isConjugate, double error_rate ) = 0; virtual QError RZ_GATE( size_t qn, double theta, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError CNOT( size_t qn_0, size_t qn_1, bool isConjugate, double error_rate ) = 0; virtual QError CNOT( size_t qn_0, size_t qn_1, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError CR( size_t qn_0, size_t qn_1, double theta, bool isConjugate, double error_rate ) = 0; virtual QError CR( size_t qn_0, size_t qn_1, Qnum& vControlBit, double theta, bool isConjugate, double error_rate ) = 0; virtual QError CZ( size_t qn_0, size_t qn_1, bool isConjugate, double error_rate ) = 0; virtual QError CZ( size_t qn_0, size_t qn_1, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError iSWAP( size_t qn_0, size_t qn_1, double theta, bool isConjugate, double error_rate ) = 0; virtual QError iSWAP( size_t qn_0, size_t qn_1, Qnum& vControlBit, double theta, bool isConjugate, double error_rate ) = 0; virtual QError iSWAP( size_t qn_0, size_t qn_1, bool isConjugate, double error_rate ) = 0; virtual QError iSWAP( size_t qn_0, size_t qn_1, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; virtual QError SqiSWAP( size_t qn_0, size_t qn_1, bool isConjugate, double error_rate ) = 0; virtual QError SqiSWAP( size_t qn_0, size_t qn_1, Qnum& vControlBit, bool isConjugate, double error_rate ) = 0; };