75个版本 (32个稳定版)

1.15.2-alpha.32024年8月8日
1.15.2-alpha.12024年7月25日
1.11.0-alpha.22024年3月28日
1.8.0 2023年12月8日
0.5.1 2021年7月29日

#13 in 科学

Download history 280/week @ 2024-04-27 114/week @ 2024-05-04 267/week @ 2024-05-11 985/week @ 2024-05-18 579/week @ 2024-05-25 465/week @ 2024-06-01 763/week @ 2024-06-08 686/week @ 2024-06-15 536/week @ 2024-06-22 802/week @ 2024-06-29 449/week @ 2024-07-06 172/week @ 2024-07-13 1127/week @ 2024-07-20 830/week @ 2024-07-27 550/week @ 2024-08-03 318/week @ 2024-08-10

2,848 每月下载量
用于 9 crates

Apache-2.0

1MB
18K SLoC

qoqo logo

qoqo

量子操作量子操作
是的,我们使用了重复

qoqo/roqoqo 是由 HQS Quantum Simulations 开发的一个工具包,用于通过表示量子电路。

有关详细介绍,请参阅用户文档qoqo 示例仓库

roqoqo/qoqo 是什么

  • 一个表示量子程序的工具包,包括电路和测量信息
  • 一个轻量级的运行时,用于运行量子测量
  • 一种序列化量子电路和测量信息的方式
  • 一组可选的设备、模拟器和工具包接口(例如 qoqo_questqoqo_mockqoqo_qasm

roqoqo/qoqo 不是什么

  • 将电路转换为特定门集的分解器
  • 量子电路优化器
  • 量子算法集合

此仓库包含两个组件

  • roqoqo:核心Rust库
  • qoqo:roqoqo的Python接口

roqoqo

Crates.io GitHub Workflow Status docs.rs Crates.io codecov

roqoqo提供

  • 一个用于表示量子电路的Circuit结构体
  • 一个用于表示不同测量方法量子程序的QuantumProgram枚举
  • 表示可以在任何通用量子计算机上执行的(分解)单量子比特、双量子比特、多量子比特和测量操作的结构体
  • 表示仅适用于某些硬件、模拟器或为电路添加额外信息的所谓PRAGMA操作的结构体
  • 根据操作的性质(例如Operation表示所有操作或SingleQubitGateOperation表示所有作用于单个量子比特的单位操作)对操作进行分组的枚举
  • 支持符号变量
  • 基于经典寄存器的读出
  • 用于评估基于量子计算机后端返回的原始读出数据的可观测测量操作的测量结构体
  • 一个定义从qoqo到可以返回测量值的硬件和模拟器的接口标准的EvaluatingBackend特质
  • 一个定义获取量子计算设备连接信息和噪声模型的标准的Device特质
  • 通过serde crate支持CircuitQuantumProgram的序列化和反序列化。

此软件仍处于beta阶段。功能和文档尚未完成,可能会发生破坏性更改。

安装

要在Rust项目中使用roqoqo,只需将以下内容添加到项目的Cargo.toml的[dependencies]部分:

roqoqo = {version="1.0"}

qoqo

Documentation Status GitHub Workflow Status PyPI PyPI - Format Crates.io Crates.io

qoqo提供了对底层roqoqo库的Python接口,包括

  • 用于表示量子电路的Circuit
  • 用于表示量子程序的QuantumProgram
  • 表示可以在任何通用量子计算机上执行的(分解)单量子比特、双量子比特、多量子比特和测量操作的类
  • 表示仅适用于某些硬件、模拟器或为电路添加额外信息的所谓PRAGMA操作的类
  • 支持符号变量
  • 基于经典寄存器的读出
  • 用于评估基于量子计算机后端返回的原始读出数据的可观测测量操作的测量类
  • 电路和测量信息的json序列化和反序列化。通过serde crate的帮助,序列化支持可以轻松扩展到其他目标。

安装

在Linux、macOS和Windows x86上,可以在PyPi上找到预编译包,并通过以下方式安装:

pip install qoqo

如果您的架构没有可用的预构建python wheel,您可以使用rust工具链(例如通过rustup可用)和maturin(也通过pip可用)从源分布安装qoqo。在安装rust工具链和maturin之后,运行上面的相同pip安装命令。在某些情况下,在macOS上可能需要提供特定的链接器参数,如下所示:

# can be necessary on mscOS
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" pip install qoqo
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" maturin build -m qoqo/Cargo.toml  --release
pip install target/wheels/$NAME_OF_WHEEL

当在Rust项目中使用提供Python接口的qoqo时,请添加

qoqo = {version="1.0", default-features=false}

现在存在一个源分布,但需要安装Rust(版本> 1.47)和maturin(版本{ > = 0.12, < 0.13})才能构建。

示例

由于qoqo提供了对底层roqoqo库的完整Python接口,因此提供了针对Python用户和Rust用户的示例。

有关示例的扩展集合,请参阅extra存储库中的jupyter笔记本qoqo_examples。qoqo示例需要qoqo_quest和qoqo_mock接口。

本项目部分得到 PlanQK 的支持,并部分得到 QSolidPhoQuant 的支持。

贡献

我们欢迎对该项目的贡献。如果您想贡献代码,请查阅 CONTRIBUTE.md 以了解我们的代码贡献指南。

依赖项

~15–23MB
~363K SLoC