class QPUImpl¶
Overview¶
QPU implementation base class. More…
#include <QPUImpl.h> class QPUImpl { public: // methods virtual bool qubitMeasure(size_t qn) = 0; virtual QError pMeasure( Qnum& qnum, prob_vec& mResult ) = 0; virtual QError initState( size_t head_rank, size_t rank_size, size_t qubit_num ) = 0; virtual QError initState( size_t qubit_num, const QStat& state = {} ) = 0; virtual QError unitarySingleQubitGate(size_t qn, QStat& matrix, bool isConjugate, GateType) = 0; virtual QError controlunitarySingleQubitGate(size_t qn, Qnum& qnum, QStat& matrix, bool isConjugate, GateType) = 0; virtual QError unitaryDoubleQubitGate(size_t qn_0, size_t qn_1, QStat& matrix, bool isConjugate, GateType) = 0; virtual QError controlunitaryDoubleQubitGate(size_t qn_0, size_t qn_1, Qnum& qnum, QStat& matrix, bool isConjugate, GateType) = 0; virtual QStat getQState() = 0; virtual void set_random_engine(RandomEngine* rng); virtual double get_random_double(); virtual QError Reset(size_t qn) = 0; }; // direct descendants class CPUImplQPU; class CPUImplQPUSingleThread; class DistributedFullAmplitudeEngine; class NoisyCPUImplQPU; class MPSImplQPU;
Detailed Documentation¶
QPU implementation base class.
Methods¶
virtual QError unitarySingleQubitGate(size_t qn, QStat& matrix, bool isConjugate, GateType) = 0
unitary single qubit gate
Parameters:
size_t |
qubit address |
QStat& |
matrix |
bool |
state of conjugate |
GateType |
gate type |
Returns:
QError
virtual QError controlunitarySingleQubitGate( size_t qn, Qnum& qnum, QStat& matrix, bool isConjugate, GateType ) = 0
controlunitary single qubit gate
Parameters:
size_t |
qubit address |
Qnum& |
control qubit addresses |
QStat |
& matrix |
bool |
state of conjugate |
GateType |
gate type |
Returns:
QError
virtual QError unitaryDoubleQubitGate( size_t qn_0, size_t qn_1, QStat& matrix, bool isConjugate, GateType ) = 0
unitary double qubit gate
Parameters:
size_t |
first qubit address |
size_t |
second qubit address |
QStat& |
matrix |
bool |
state of conjugate |
GateType |
gate type |
Returns:
QError
virtual QError controlunitaryDoubleQubitGate( size_t qn_0, size_t qn_1, Qnum& qnum, QStat& matrix, bool isConjugate, GateType ) = 0
controlunitary double qubit gate
Parameters:
size_t |
first qubit address |
size_t |
second qubit address |
Qnum& |
control qubit addresses |
QStat& |
quantum states |
bool |
state of conjugate |
GateType |
gate type |
Returns:
QError
virtual QStat getQState() = 0
get quantum states
virtual QError Reset(size_t qn) = 0
reset qubit
Parameters:
size_t |
qubit address |