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 + π