class DistributedFullAmplitudeEngine¶
Overview¶
Distributed full amplitude engine. More…
#include <AbstractFullAmplitudeEngine.h> class DistributedFullAmplitudeEngine: public QPUImpl { public: // methods virtual bool qubitMeasure(size_t qn); virtual QError pMeasure( Qnum& qnum, prob_vec& mResult ); virtual QError initState( size_t head_rank, size_t rank_size, size_t qubit_num ); virtual QError unitarySingleQubitGate(size_t qn, QStat& matrix, bool isConjugate, GateType); virtual QError controlunitarySingleQubitGate(size_t qn, Qnum& qnum, QStat& matrix, bool isConjugate, GateType); virtual QError unitaryDoubleQubitGate(size_t qn_0, size_t qn_1, QStat& matrix, bool isConjugate, GateType); virtual QError controlunitaryDoubleQubitGate(size_t qn_0, size_t qn_1, Qnum& qnum, QStat& matrix, bool isConjugate, GateType); virtual QStat getQState(); virtual QError Reset(size_t qn); };
Inherited Members¶
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;
Detailed Documentation¶
Distributed full amplitude engine.
Methods¶
virtual QError unitarySingleQubitGate(size_t qn, QStat& matrix, bool isConjugate, GateType)
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 )
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 )
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 )
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()
get quantum states
virtual QError Reset(size_t qn)
reset qubit
Parameters:
size_t |
qubit address |