mindquantum.io.QCIS
- class mindquantum.io.QCIS[源代码]
将电路转换为qcis格式的模块。
样例:
>>> circ = Circuit() >>> circ.x(0).z(1,0).rx({"a":-2*np.sqrt(2)}, 0).sx(0).barrier() >>> circ.ry(ParameterResolver(data={'theta':-np.pi}, const=np.pi), 1) >>> string= QCIS().to_string(circ) >>> print(string) X Q0 CZ Q0 Q1 RX Q0 -2√2*a X2P Q0 B Q0 B Q1 RY Q1 -π*theta + π >>> circ1 = QCIS().from_string(string) >>> print(circ1) ┏━━━┓ ┏━━━━━━━━━━━━┓ ┏━━━━┓ q0: ──┨╺╋╸┠───■───┨ RX(-2√2*a) ┠─┨ SX ┠─▓──────────────────────── ┗━━━┛ ┃ ┗━━━━━━━━━━━━┛ ┗━━━━┛ ▓ ┏━┻━┓ ▓ ┏━━━━━━━━━━━━━━━━━━┓ q1: ────────┨ Z ┠───────────────────────▓─┨ RY(-π*theta + π) ┠─── ┗━━━┛ ┗━━━━━━━━━━━━━━━━━━┛
- from_file(file_name: str)[源代码]
读取qcis文件。
- 参数:
file_name (str) - 以qcis格式存储量子线路的文件路径。
- 返回:
Circuit,从qcis文件翻译过来的量子线路。
- from_string(string: str)[源代码]
读取 QCIS 字符串。
- 参数:
string (str) - 量子线路的 QCIS 字符串表示。
- 返回:
Circuit
,QCIS 字符串表示的量子线路。
样例:
>>> string = "X Q0 \nCZ Q0 Q1 \nRX Q0 -2√2*a\nX2P Q0 \nB Q0\nB Q1\nRY Q1 -π*theta + π" >>> circ = QCIS().from_string(string) >>> print(circ) ┏━━━┓ ┏━━━━━━━━━━━━┓ ┏━━━━┓ q0: ──┨╺╋╸┠───■───┨ RX(-2√2*a) ┠─┨ SX ┠─▓──────────────────────── ┗━━━┛ ┃ ┗━━━━━━━━━━━━┛ ┗━━━━┛ ▓ ┏━┻━┓ ▓ ┏━━━━━━━━━━━━━━━━━━┓ q1: ────────┨ Z ┠───────────────────────▓─┨ RY(-π*theta + π) ┠─── ┗━━━┛ ┗━━━━━━━━━━━━━━━━━━┛
- to_file(file_name: str, circuit, parametric: bool = True)[源代码]
将量子线路转换为qcis格式并保存在文件中。
- 参数:
file_name (str) - 要保存qcis文件的文件名。
circuit (Circuit) - 要转换的电路。
parametric (bool) - 是否保留参数。如果为
False
,则会丢弃所有参数,以及参数值为 0 的参数门,参数门的角度也会被限制在区间 [-pi, pi]。默认值:True
。
- 异常:
TypeError - 如果 file_name 不是 str 。
TypeError - 如果 circuit 不是 Circuit 。
NotImplementedError - 如果 circuit 中包含QCIS不支持的量子门。
- to_string(circuit, parametric: bool = True)[源代码]
将电路转换为qcis。
- 参数:
circuit (Circuit) - 要转换为qcis的量子线路。
parametric (bool) - 是否保留参数。如果为
False
,则会丢弃所有参数,以及参数值为 0 的参数门,参数门的角度也会被限制在区间 [-pi, pi]。默认值:True
。
- 返回:
str,输入电路的qcis格式。
- 异常:
TypeError - 如果电路不是 Circuit 。
NotImplementedError - 如果 circuit 中包含QCIS不支持的量子门。
样例:
>>> circ = Circuit() >>> circ.x(0).z(1,0).rx({"a":-2*np.sqrt(2)}, 0).sx(0).barrier() >>> circ.ry(ParameterResolver(data={'theta':-np.pi}, const=np.pi), 1) >>> string= QCIS().to_string(circ) >>> print(string) X Q0 CZ Q0 Q1 RX Q0 -2√2*a X2P Q0 B Q0 B Q1 RY Q1 -π*theta + π