Skip to content

Commit

Permalink
Last fixes to README files (#332)
Browse files Browse the repository at this point in the history
* update dependencies

* updated dependencies

* Temporary change of qoqo_calculator

* Removed qoqo_calculator branch dependency

* Increased version numbers and updated changelog

* Fixed input type for DeviceTrait

* Fixed unittest

* Simplified two qubit gate matrix unittests

* Updated to pyo3 0.15.0

* Fixed typo in ci workflow

* Removed faulty 3.10 (python) support, will address later

* Started unittesting qoqo quantum program

* Increased unittest coverage for quantum program

* Increased coverage for quantum program and measurements in qoqo

* Added unittests for multi qubit gates in qoqo

* Increased coverage for multi qubit gate operations and pragma operations

* Fixed formatting

* fixing bug in MultiQubitZZ gate

* Update multi_qubit_gate_operations.rs

* Fixed whitespace

* Updated dependencies

* fixed formatting

* Updated dependencies serde

* Updated dependencies

* Fixed clippy for tests

* Fixed formatting

* Updated CHANGELOG and added to README

* Added python tests

* Updated dependencies

* Updated dependencies and file

* Updated to qoqo_calculator 0.8

* Added first README fixes from Florian

* Started updating to new clippy

* Fixed formatting

* Changed to (ro)qoqo provies x3

* Updated install instructions of the qoqo package

* Fixed typo

* Requested changes

Co-authored-by: Nicolas Vogt <[email protected]>
Co-authored-by: Nicolas Vogt <[email protected]>
  • Loading branch information
3 people authored Aug 18, 2022
1 parent b0cd297 commit d0b9a6c
Show file tree
Hide file tree
Showing 12 changed files with 977 additions and 981 deletions.
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 23 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,17 @@ This repository contains two components:

roqoqo provides:

* A circuit struct to represent quantum programs
* Single-Qubit, Two-Qubit and Multi-Qubit Operations that can be executed (decomposed) on any universal quantum computer
* PRAGMA Operations that only apply to certain hardware, simulators or annotate circuits with additional information
* Classical Registers and Measurement operations to use with a quantum program
* Measurement structs for evaluating observable measurements based on projective measurements from quantum hardware or simulator readouts
* A Backend trait defining a standard for interfacing from qoqo to other toolkits, hardware and simulators that can return measured values
* Serialize and deserialize support for circuits and measurement information via the serde crate.
* A `Circuit` struct to represent quantum circuits
* A `QuantumProgram` enum to represent quantum programs using different measurement methods
* Structs representing single-qubit, two-qubit, multi-qubit and measurement operations that can be executed (decomposed) on any universal quantum computer
* Structs representing so-called PRAGMA operations that only apply to certain hardware, simulators or annotate circuits with additional information
* Enums that group operations based on the properties of operations (*e.g.* `Operation` for all operations or `SingleQubitGateOperation` for all unitary operations acting on a single qubit)
* Support for symbolic variables
* Readout based on classical registers
* Measurement structs for evaluating observable measurements based on raw readout date returned by quantum computer backends
* An `EvaluatingBackend` trait defining a standard for interfacing from qoqo to hardware and simulators that can return measured values
* A `Device` trait defining a standard to obtain connectivity information and a noise model for quantum computing devices
* Serialize and deserialize support for `Circuit` and `QuantumProgram` via the serde crate.

This software is still in the beta stage. Functions and documentation are not yet complete and breaking changes can occur.

Expand All @@ -66,14 +70,15 @@ to the `[dependencies]` section of the project Cargo.toml.
[![Crates.io](https://img.shields.io/crates/v/roqoqo)](https://crates.io/crates/qoqo)
![Crates.io](https://img.shields.io/crates/l/qoqo)

qoqo provides a full python interface to the underlying roqoqo library, including:
qoqo provides the Python interface to the underlying roqoqo library, including:

* A circuit class to represent quantum programs
* Single-Qubit, Two-Qubit and Multi-Qubit Operations that can be executed (decomposed) on any universal quantum computer
* PRAGMA Operations that only apply to certain hardware, simulators or annotate circuits with additional information
* Classical Register and Measurement operations to use with a quantum program
* Measurement structs for evaluating observable measurements based on projective measurements from quantum hardware or simulator readouts
* A QuantumProgram class combining circuits and measurement information in complete quantum programms with a simple interface
* A `Circuit` class to represent quantum circuits
* A `QuantumProgram` class to represent quantum programs
* Classes representing single-qubit, two-qubit, multi-qubit and measurement operations that can be executed (decomposed) on any universal quantum computer
* Classes representing so-called PRAGMA operations that only apply to certain hardware, simulators or annotate circuits with additional information
* Support for symbolic variables
* Readout based on classical registers
* Measurement classes for evaluating observable measurements based on raw readout date returned by quantum computer backends
* Serialization to json and deserialization from json for circuits and measurement information. Serialization support can easily be expanded to other targets with the help of the serde crate.

### Installation
Expand All @@ -84,13 +89,11 @@ On Linux, macOS and Windows on x86 precompiled packages can be found on PyPi and
pip install qoqo
```

Alternatively, installing from the source distribution is possible. For this, a rust toolchain and the maturin Python package need to be already installed. A Rust toolchain can be installed using rustup.
With this Rust toolchain installed, qoqo can be installed using a pip command:
If no pre-built python wheel is available for your architecture you can install qoqo from the source distribution using a rust toolchain (for example available via rustup) and maturin (also available via pip). After installing the rust toolchain and maturing run the same pip install command as above. In some cases on macOS it can be necessary to provide specific linker arguments as shown below:

```bash
# After installing the Rust toolchain, execute the following:
pip install maturin
pip install qoqo
```shell
# can be necessary on mscOS
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" pip install qoqo
```

When using qoqo in a rust project providing a python interface add
Expand Down
27 changes: 13 additions & 14 deletions qoqo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ What roqoqo/qoqo is:
* A toolkit to represent quantum programs including circuits and measurement information
* A thin runtime to run quantum measurements
* A way to serialize quantum circuits and measurement information
* A set of optional interfaces to devices, simulators and toolkits (e.g. [qoqo_qest](https://github.com/HQSquantumsimulations/qoqo-quest), [qoqo_mock](https://github.com/HQSquantumsimulations/qoqo_mock), [qoqo_qasm](https://github.com/HQSquantumsimulations/qoqo_qasm))
* A set of optional interfaces to devices, simulators and toolkits (e.g. [qoqo_quest](https://github.com/HQSquantumsimulations/qoqo-quest), [qoqo_mock](https://github.com/HQSquantumsimulations/qoqo_mock), [qoqo_qasm](https://github.com/HQSquantumsimulations/qoqo_qasm))

What roqoqo/qoqo is **not**:

Expand All @@ -28,14 +28,15 @@ What roqoqo/qoqo is **not**:
[![Crates.io](https://img.shields.io/crates/v/roqoqo)](https://crates.io/crates/qoqo)
![Crates.io](https://img.shields.io/crates/l/qoqo)

qoqo provides a full python interface to the underlying roqoqo library, including:
qoqo provides the Python interface to the underlying roqoqo library, including:

* A circuit class to represent quantum programs
* Single-Qubit, Two-Qubit and Multi-Qubit Operations that can be executed (decomposed) on any universal quantum computer
* PRAGMA Operations that only apply to certain hardware, simulators or annotate circuits with additional information
* Classical Register and Measurement operations to use with a quantum program
* Measurement structs for evaluating observable measurements based on projective measurements from quantum hardware or simulator readouts
* A QuantumProgram class combining circuits and measurement information in complete quantum programms with a simple interface
* A `Circuit` class to represent quantum circuits
* A `QuantumProgram` class to represent quantum programs
* Classes representing single-qubit, two-qubit, multi-qubit and measurement operations that can be executed (decomposed) on any universal quantum computer
* Classes representing so-called PRAGMA operations that only apply to certain hardware, simulators or annotate circuits with additional information
* Support for symbolic variables
* Readout based on classical registers
* Measurement classes for evaluating observable measurements based on raw readout date returned by quantum computer backends
* Serialization to json and deserialization from json for circuits and measurement information. Serialization support can easily be expanded to other targets with the help of the serde crate.

### Installation
Expand All @@ -46,13 +47,11 @@ On Linux, macOS and Windows on x86 precompiled packages can be found on PyPi and
pip install qoqo
```

Alternatively, installing from the source distribution is possible. For this, a rust toolchain and the maturin Python package need to be already installed. A Rust toolchain can be installed using rustup.
With this Rust toolchain installed, qoqo can be installed using a pip command:
If no pre-built python wheel is available for your architecture you can install qoqo from the source distribution using a rust toolchain (for example available via rustup) and maturin (also available via pip). After installing the rust toolchain and maturing run the same pip install command as above. In some cases on macOS it can be necessary to provide specific linker arguments as shown below:

```bash
# After installing the Rust toolchain, execute the following:
pip install maturin
pip install qoqo
```shell
# can be necessary on macOS
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" pip install qoqo
```

When using qoqo in a rust project providing a python interface add
Expand Down
Loading

0 comments on commit d0b9a6c

Please sign in to comment.