基本使用
1. 创建isQ代码
这段代码命名为use_isqc.isq
,并且放在同一个目录。
import std;
qbit q[2];
unit main(int int_[], double double_[]) {
H(q[0]);
H(q[1]);
Ry(double_[0], q[0]);
Rz(double_[1], q[1]);
M(q[int_[0]]);
}
2. 使用isqtools
调用isqc
isqtools
对isqc
进行了封装,可以直接在isqtools
中调用isqc
进行编译或者模拟。
2.1 compile
和simulate
的使用
from isqtools import compile, simulate
compile("use_isqc.isq", target="qir", additional_args="") # default
# compile("compile_test.isq", target="qcis", int_param=[0, 1], double_param=[1.1, 1.2])
res = simulate(
"use_isqc.isq",
shots=100,
int_param=1,
double_param=[1.1, 1.2],
additional_args="--debug",
)
print("Result:", res)
Result: {'1': 43, '0': 57}
- 通过
int_param
和double_param
传入main
函数的参数。 - 通过
additional_args
以字符串的形式指定其他参数。 - 编译或者模拟的一些(错误)输出会以stdout和stderr的形式打印到终端。
simulate
模拟返回类型为python的dict
。
2.2 run
方法
run
方法集成了complie
和simulate
,将两步合成一步进行。
from isqtools import run
direct_res = run(
"use_isqc.isq",
target="qir",
shots=100,
int_param=[0], # same as `int_param=0`
double_param=[2.5, -0.5],
)
print("Result:", direct_res)
Result: {'1': 85, '0': 15}
2.3 设置isqc
所在目录
默认目录为空,即在系统环境变量中寻找isqc
命令。
from isqtools.utils import get_isqc_path, set_isqc_path
get_isqc_path()
''
可以自定义isqc
的安装路,实现isqc
的灵活调用。
set_isqc_path("~/xxx")
get_isqc_path()
'/home/yangys/xxx'
此时再次调用编译命令,将无法找到isqc
。
compile("use_isqc.isq", target="qir")
/bin/sh: 1: /home/yangys/xxx/isqc: not found