class QPanda::MPSImplQPU

Overview

QPU implementation by MPS model. More…

Inherited Members

Detailed Documentation

QPU implementation by MPS model.

Fields

the tensor of qubits.

lambdas between tensors.

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