class QPanda::MPSImplQPU¶
Detailed Documentation¶
QPU implementation by MPS model.
Methods¶
init state from matrix
Parameters:
size_t | number of qubits |
cmatrix_t | matrix |
unitary single qubit gate
Parameters:
size_t | qubit address |
QStat& | matrix |
bool | state of conjugate |
GateType | gate type |
Returns:
QError
controlunitary single qubit gate
Parameters:
size_t | qubit address |
Qnum& | control qubit addresses |
QStat | & matrix |
bool | state of conjugate |
GateType | gate type |
Returns:
QError
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
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
get quantum states
Returns:
QStat quantum states
reset qubit
Parameters:
size_t | qubit address |
gets the position of the qubits in MPS form
Parameters:
size_t | qubits index |
Returns:
size_t the position on m_qubits_location
change two qubits
Parameters:
size_t | src qubit location |
size_t | dst qubit location |
execute SWAP gate, the state of swapping two qubits
Parameters:
size_t | A qubit index |
size_t | B qubit index |
measure one qubit collapsing
Parameters:
size_t | the qubit position of the measurement |
Returns:
bool the measurement results
measure all qubits collapsing
Parameters:
size_t | the qubit position of the measurement |
Returns:
std::vector<std::vector<size_t>> the measurement results
after the SVD decomposition , The product of S and V
Parameters:
cmatrix_t | V matrix |
rvector_t | S vector |
Returns:
cmatrix_t product
convert to MPS form
Parameters:
size_t | starting position |
size_t | end position |
Returns:
MPS_Tensor MPS form tensor
sort qubits location, and centralize qubits locations
Parameters:
Qnum | original qubits location |
Qnum | sorted indices |
Qnum | centralized qubits location |
move all qubits to sorted ordering
move qubits to right_end location
Parameters:
Qnum | original qubits location |
Qnum | target qubits location |
actual | indices |
execute one qubit gate
Parameters:
size_t | target qubit |
cmatrix_t | gate matrix |
execute two qubits gate
Parameters:
size_t | control qubit |
size_t | target qubit |
cmatrix_t | gate matrix |
execute multi qubits gate
Parameters:
size_t | control and target qubits, target qubit in the tail |
cmatrix_t | gate matrix |