74 个版本 (32 个稳定版)

1.15.2-alpha.3 2024 年 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 日

#136模拟

Download history 403/week @ 2024-04-21 106/week @ 2024-04-28 25/week @ 2024-05-05 233/week @ 2024-05-12 604/week @ 2024-05-19 98/week @ 2024-05-26 40/week @ 2024-06-02 156/week @ 2024-06-09 122/week @ 2024-06-16 70/week @ 2024-06-23 44/week @ 2024-06-30 128/week @ 2024-07-07 55/week @ 2024-07-14 196/week @ 2024-07-21 106/week @ 2024-07-28 269/week @ 2024-08-04

每月 632 次下载
用于 3 crate

Apache-2.0

740KB
12K 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表示作用于单个量子比特的所有单位操作)
  • 支持符号变量
  • 基于经典寄存器的读出
  • 用于评估基于量子计算机后端返回的原始读出数据的可观测量量的测量构体
  • EvaluatingBackend特质定义了从qoqo到可以返回测量值的硬件和模拟器的接口标准
  • 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和从json的反序列化。序列化支持可以通过serde crate轻松扩展到其他目标。

安装

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

pip install qoqo

如果您没有适用于您架构的预构建python wheel,您可以使用rust工具链(例如通过rustup获得)和maturin(也通过pip获得)从源分布安装qoqo。安装rust工具链和maturin后,运行上述相同的pip install命令。在某些情况下,在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用户的示例。

有关示例的更广泛集合,请参阅额外存储库中的jupyter notebooks qoqo_examples。qoqo示例需要qoqo_quest和qoqo_mock接口。

本项目部分由 PlanQK 支持,并部分由 QSolidPhoQuant 支持。

贡献

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

依赖项

~7MB
~146K SLoC