mindquantum.algorithm.compiler#

MindQuantum 量子线路编译模块。

Fixed decompose rules#

接口名

概述

ch_decompose(gate)

分解一个受控的 HGate 门。

crx_decompose(gate)

分解一个受控的 RX 门。

crxx_decompose(gate)

分解一个受控的 Rxx 门。

cry_decompose(gate)

分解一个受控的 RY 门。

cnry_decompose(gate)

分解一个受控的 RY 门。

crz_decompose(gate)

分解一个受控的 RZ 门。

cnrz_decompose(gate)

分解一个受控的 RZ 门。

cryy_decompose(gate)

分解一个受控的 Ryy 门。

cswap_decompose(gate)

分解一个受控的 SWAPGate 门。

ct_decompose(gate)

分解一个受控的 TGate 门。

cy_decompose(gate)

分解一个受控的 YGate 门。

cz_decompose(gate)

分解一个受控的 ZGate 门。

rxx_decompose(gate)

分解一个的 Rxx 门。

ryy_decompose(gate)

分解一个的 Ryy 门。

rzz_decompose(gate)

分解一个的 Rzz 门。

cs_decompose(gate)

分解一个受控的 SGate 门。

swap_decompose(gate)

分解一个 SWAPGate 门。

ccx_decompose(gate)

分解一个 toffoli 门。

Universal decompose rules#

接口名

概述

euler_decompose(gate)

单比特门欧拉分解。

u3_decompose(gate)

将U3门分解为Z-X-Z-X-Z旋转序列。

cu_decompose(gate)

对任意维度的受控幺正门进行分解。

qs_decompose(gate)

任意维幺正量子门的矩阵的香农分解。

abc_decompose(gate)

通过abc分解来分解量子门。

kak_decompose(gate)

通过kak分解来分解任意的两量子比特门。

tensor_product_decompose(gate)

量比特量子门的张量直积分解。

Compiler rules#

接口名

概述

BasicCompilerRule([...])

编译规则的基类。

KroneckerSeqCompiler(...)

正交化编译规则。

SequentialCompiler(...)

序列化编译规则。

BasicDecompose([...])

将量子线路编译成简单的量子门。

DecomposeU3([...])

将U3门分解为Z-X-Z-X-Z旋转序列。

CZBasedChipCompiler([...])

适用于支持 cz 量子门的量子芯片的编译规则。

CXToCZ()

cx 门编译为 cz 门。

CZToCX()

cz 门编译为 cx 门。

GateReplacer(...)

将给定的量子门替换成给定的量子线路。

FullyNeighborCanceler()

全量线路融合规则,会融合可能的临近量子门,直到不能融合为止。

SimpleNeighborCanceler()

如果可能,该编译规则会融合临近的量子门。

U3Fusion([...])

将连续的单量子比特门融合成一个U3门。

compile_circuit(...)

直接根据给定的编译规则,编译一个量子线路。

DAG circuit#

接口名

概述

DAGCircuit(circuit)

量子线路的有向无环图表示(Directed acyclic graph, DAG)。

DAGNode()

DAG 图中的节点。

GateNode(gate)

DAG 图中作为量子门的节点。

DAGQubitNode(qubit)

DAG 图中作为量子比特的节点。

connect_two_node(...)

通过局域的腿编号,将两个节点连接起来。

try_merge(...)

尝试将两个节点融合起来。