单比特固定符号
算术线路里出现频率最高的是 与 :它们是 Clifford 之外的”最便宜”资源,因此任何非 Clifford 的算术都最终归结为 T 门的计数(见gate-cost-models)。 用于制造叠加, 用于翻转经典控制的辅助位。
旋转门:算术线路的主角
第 4 列的 与第 5 列的 只差符号,在 Clifford+T 门集里是一对可互换的 。渲染器无法从 与 自动判断这一点,所以用分组框显式标注——这类”看起来不一样但门集里等价”的约定,正是算术线路图最容易被误读的地方。
受控门
四种目标符号的区别在于目标端画什么:CNOT 是 ⊕,CZ 是实心点,CY 是圆圈里的 Y,CSWAP 是 ✕。符号本身没有信息量——CNOT 与 CZ 作为酉算子只差一个 Hadamard 门,习惯上用 CNOT 是因为它在做条件翻转。用错符号不会让线路算错,但会让读者以为在做另一件事。
多控制门
淡色的 ⊕ 是相对相位 Toffoli(rccx),刻意与普通 Toffoli 区分。两者只差一个全局相位,作用在计算基上完全相同,但相对相位版本在算术线路里常常能省掉一整层 门——Gidney 的”临时逻辑与”思路(见modular-addition)正是靠这一点把加法器的 T 数减半。如果图上不区分,读者就无法判断”这里用的是哪个”,也就无法解释资源账本上的差异。
四控制 X 用 ["x", t, q, [c0,c1,c2,c3]] 表达;多控制门在算术线路里主要出现在比较器与阈值函数中。
交换与条件交换
无条件 SWAP 是三对 CNOT;在算术线路里它还有更便宜的实现——乘以 2 在线路层面就是把线重新接一下,Karatsuba 乘法器的交叉项正是靠这一点做到零门开销(见karatsuba-multiplier)。
测量与经典寄存器
经典线画成双线,测量连线是虚线。在 Shor 类线路里经典线承载的是”要不要做条件修正”的一位信息;把两条量子线写进同一个经典比特,表示后写的那次测量会覆盖前一次——这一点在算术语境下需要特别小心,通常正确做法是异或进同一比特。
隔断与自由文本块
- 隔断线(虚线)只表达”这几个操作并行”,没有语义约束,但读图时非常有用;
- 寄存器括号把多根线归成一个逻辑寄存器(这里是
a),这是理解”操作数宽度”的前提; - 模块框(虚线带标签)是本 wiki 强制要求的——算术线路图的语义几乎全在模块边界上。
重复块:{×n} 记号
同样的结构写成 "repeat": 3 并只画一列,渲染器会画出左侧的 ×3 括号。两种写法等价,但前者适合展示”这是通用构造”,后者适合展示”3 比特时具体长什么样”。本站词条通常两种都给:先给 ×n 的通用图,再在讨论具体位宽时展开。
对应关系速查
| 符号 | 含义 | 常用 op |
|---|---|---|
| ⊕ | 受控翻转目标 | cx、x(带 c)、ccx |
| ● | 受控相位目标 | cz、ccz |
| Ⓨ | 受控 Y 目标 | cy |
| ✕ | 交换 | swap、cswap |
| 实心小圆 | 控制位 | 任何带 c 的门 |
| 虚线竖线 | 隔断 | barrier |
| 虚线带标签框 | 模块边界 | box |
| 双横线 | 经典寄存器 | nc + m |
| 淡化 ⊕ | 相对相位 Toffoli | rccx、rc3x |
延伸阅读
- circuits-gallery:按功能归类的实际算术线路(加法、模运算、乘法、QFT、测量)
- circuit-representation:这套表示的完整定义与取舍
- qubit-ordering-conventions:IR 里
q的编号与比特序、寄存器约定如何对应 - resource-accounting:怎么在 IR 上程序化地数门
- index:这些门在真实加法器里怎么排布