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)[源代码]
- 读取qcis文件。 - 参数:
- file_name (str) - 以qcis格式存储量子线路的文件路径。 
 
- 返回:
- Circuit,从qcis文件翻译过来的量子线路。 
 
 - from_string(string)[源代码]
- 读取 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, circuit, parametric=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=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 + π