mindquantum.algorithm.compiler#

MindQuantum compiler related modules.

Fixed decompose rules#

API Name

Description

ch_decompose(gate)

Decompose controlled HGate gate.

crx_decompose(gate)

Decompose controlled RX gate.

rxx_decompose(gate)

Decompose Rxx gate.

crxx_decompose(gate)

Decompose Rxx gate with control qubits.

cry_decompose(gate)

Decompose controlled RY gate.

cnry_decompose(gate)

Decompose controlled RY gate.

crz_decompose(gate)

Decompose controlled RZ gate.

cnrz_decompose(gate)

Decompose controlled RZ gate.

ryy_decompose(gate)

Decompose Ryy gate.

cryy_decompose(gate)

Decompose Ryy gate with control qubits.

rzz_decompose(gate)

Decompose Rzz gate.

cs_decompose(gate)

Decompose controlled SGate gate.

cswap_decompose(gate)

Decompose controlled SWAPGate gate.

swap_decompose(gate)

Decompose SWAPGate gate.

ct_decompose(gate)

Decompose controlled TGate gate.

ccx_decompose(gate)

Decompose a toffoli gate.

cy_decompose(gate)

Decompose controlled YGate gate.

cz_decompose(gate)

Decompose controlled ZGate gate.

Universal decompose rules#

API Name

Description

euler_decompose(gate)

One-qubit Euler decomposition.

u3_decompose(gate)

Decompose a U3 gate into a sequence of Z-X-Z-X-Z rotations.

cu_decompose(gate)

Decompose arbitrary-dimension controlled-U gate.

qs_decompose(gate)

Quantum Shannon decomposition for arbitrary-dimension unitary gate.

abc_decompose(gate)

Decompose two-qubit controlled gate via ABC decomposition.

kak_decompose(gate)

KAK decomposition (CNOT basis) of an arbitrary two-qubit gate.

tensor_product_decompose(gate)

Tensor product decomposition of a 2-qubit gate.

Compiler rules#

API Name

Description

BasicCompilerRule([...])

The basic compiler rule class.

KroneckerSeqCompiler(...)

Kronecker sequential compiler.

SequentialCompiler(...)

A sequential of compiler.

BasicDecompose([...])

Decompose gate into a simple gate set.

DecomposeU3([...])

Decompose U3 gate into a sequence of Z-X-Z-X-Z rotations.

CZBasedChipCompiler([...])

A compiler that suitable for chip that use cz gate.

CXToCZ()

Convert cx to cz gate.

CZToCX()

Convert cz to cx gate.

GateReplacer(...)

Replace given gate with given circuit.

FullyNeighborCanceler()

Merge neighbor gate until we cannot merge anymore gates.

SimpleNeighborCanceler()

Merge two nearby gate if possible.

U3Fusion([...])

Fuse consecutive single qubit gates into one U3 gate.

compile_circuit(...)

Directly compile a given circuit and return the result.

DAG circuit#

API Name

Description

DAGCircuit(circuit)

A Directed Acyclic Graph of a quantum circuit.

DAGNode()

Basic node in Directed Acyclic Graph.

GateNode(gate)

DAG node that work as quantum gate.

DAGQubitNode(qubit)

DAG node that work as quantum qubit.

connect_two_node(...)

Connect two DAG node through given local_index.

try_merge(...)

Try to merge two gate nodes.