4个版本
新 0.1.1 | 2024年8月15日 |
---|---|
0.1.0 | 2024年8月1日 |
0.1.0-alpha.2 | 2024年6月11日 |
0.1.0-alpha.1 | 2024年5月24日 |
#97 in 编程语言
每月 158 次下载
用于 tket2-hseries
415KB
9K SLoC
tket2:硬件无关量子编译器
TKET2是由Quantinuum开发的开源量子编译器。TKET2设计的核心是其硬件无关性,这使得研究人员和量子软件开发者能够利用其强大的编译功能,为多种不同的量子架构提供支持。
电路使用hugr crate中定义的HUGR IR进行表示。TKET2通过以下方式增强Hugr:
Circuit
trait,提供用于操作表示量子电路的HUGRs的高级接口- 带有量子操作的HUGR扩展
- 一个可组合的电路优化传递系统
- 一些内置的重写实用工具和传递,用于常见的优化
此crate通过其序列编码与tket1
电路互操作。
使用TKET2
在TKET2中定义电路目前是通过使用低级的hugr Builder API或从JSON文件加载tket1电路来完成的。
use tket2::{Circuit, Hugr};
// Load a tket1 circuit.
let mut circ: Hugr = tket2::json::load_tk1_json_file("test_files/barenco_tof_5.json").unwrap();
assert_eq!(circ.qubit_count(), 9);
assert_eq!(circ.num_gates(), 170);
// Traverse the circuit and print the gates.
for command in circ.commands() {
println!("{:?}", command.optype());
}
// Render the circuit as a mermaid diagram.
println!("{}", circ.mermaid_string());
// Optimise the circuit.
tket2::passes::apply_greedy_commutation(&mut circ);
请在此处阅读API文档。
特性
-
portmatching
通过portmatching
crate启用模式匹配。 -
rewrite-tracing
添加了对电路重写应用的跟踪。
最近更改
请参阅CHANGELOG以获取更改列表。最低支持的rust版本只有在主要版本发布时才会更改。
开发TKET2
请参阅DEVELOPMENT.md以获取设置开发环境的说明。
许可
本项目采用Apache License 2.0许可(LICENSE 或 https://apache.ac.cn/licenses/LICENSE-2.0)。
依赖项
约17MB
约296K SLoC