88 个版本 (33 个稳定版)

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 日

#15 in #qoqo

Download history 213/week @ 2024-05-06 367/week @ 2024-05-13 1203/week @ 2024-05-20 646/week @ 2024-05-27 553/week @ 2024-06-03 902/week @ 2024-06-10 777/week @ 2024-06-17 647/week @ 2024-06-24 957/week @ 2024-07-01 698/week @ 2024-07-08 326/week @ 2024-07-15 1545/week @ 2024-07-22 1010/week @ 2024-07-29 693/week @ 2024-08-05 464/week @ 2024-08-12 302/week @ 2024-08-19

2,477 每月下载量
22 个 crate 中使用 (直接使用 2 个)

Apache-2.0

105KB
2K SLoC

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的序列化和反序列化。

此软件目前处于测试阶段。功能和文档尚不完整,可能会发生破坏性更改。

安装

要在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工具链和成熟度后,运行上面相同的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

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

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

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

示例

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

有关示例的更广泛集合,请参阅额外存储库中的jupyter笔记本

本项目部分由

支持,部分由支持。

贡献

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

依赖关系

~295–750KB
~18K SLoC