Skip to content

Commit

Permalink
Merge pull request #40 from a-barlow/release-0.4.1
Browse files Browse the repository at this point in the history
Release 0.4.1
  • Loading branch information
a-barlow committed Jan 11, 2024
2 parents a84cb25 + 70ffb29 commit 74f851f
Show file tree
Hide file tree
Showing 14 changed files with 387 additions and 423 deletions.
26 changes: 26 additions & 0 deletions CHANGELOG.md
Expand Up @@ -2,6 +2,32 @@

This file logs the versions of quantr.

## 0.4.1 - More optimisations

Edited the README to include "No parallelisation" to limitations, and
reduced the tractable number of qubit simulations to 18. There has also
been a large overhaul of the code to increase maintainability. Some
common mistakes were also fixed with the help of `cargo clippy`.

Change of dependency:

- The `rand` crate has been swapped with `fastrand` which decreases
compilation time.

Optimisations:

- The definition of the gates in `standard_gate_ops.rs` have had there
arguments changed so that the `kronecker_prod` is not used; increasing
speed for multi gate processing.
- The main simulating algorithm has been updated to increase it's speed,
mostly bypassing computations that are uneeded, for instance product
state qubits are flipped only if they are indeed different.

Deprecated features:

- The public fields of `Circuit` are to be made private (specifically
updated to `pub(crate)` status in the next breaking update).

## 0.4.0 - Optimisations of speed and memory allocation

The optimisations and breaking changes that this update induces greatly
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "quantr"
version = "0.4.0"
version = "0.4.1"
edition = "2021"
license = "EUPL-1.2"
readme = "README.md"
Expand All @@ -13,4 +13,4 @@ description = "Readily create, simulate and print quantum circuits."
publish = false

[dependencies]
rand = "0.8.5"
fastrand = "^2.0.1"
11 changes: 6 additions & 5 deletions README.md
@@ -1,7 +1,7 @@
# quantr

[![Crates.io](https://img.shields.io/crates/v/quantr?style=flat-square&color=%23B94700)](https://crates.io/crates/quantr)
[![Static Badge](https://img.shields.io/badge/version%20-%201.74.1%20-%20white?style=flat-square&logo=rust&color=%23B94700)](https://releases.rs/)
[![Static Badge](https://img.shields.io/badge/version%20-%201.75.0%20-%20white?style=flat-square&logo=rust&color=%23B94700)](https://releases.rs/)
[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/a-barlow/quantr/rust.yml?style=flat-square&label=tests&color=%2349881B)](https://github.com/a-barlow/quantr/actions/workflows/rust.yml)
[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/a-barlow/quantr/rust_dev.yml?style=flat-square&label=tests%20(dev)&color=%2349881B)](https://github.com/a-barlow/quantr/actions/workflows/rust_dev.yml)
[![docs.rs](https://img.shields.io/docsrs/quantr?style=flat-square&color=%2349881B)](https://crates.io/crates/quantr)
Expand Down Expand Up @@ -46,9 +46,9 @@ implementation of Grover's algorithm.
when `n >= 16` is approximately the size of the state vector itself in
Rust, `2**(n-6) KiB`. For `n < 16`, the memory required is less than
`1 MiB`.
- Can simulate circuits up to ~20 qubits within a reasonable time.
- Can simulate circuits up to ~18 qubits within a reasonable time.
- Only safe Rust code is used, and the only dependency is the
[rand](https://docs.rs/rand/latest/rand/) crate and its
[fastrand](https://crates.io/crates/fastrand) crate and its
sub-dependencies.

### Usage
Expand Down Expand Up @@ -97,8 +97,9 @@ guide](QUICK_START.md).

### Limitations (currently)

- There is **no noise** consideration, or ability to introduce noise.
- There is **no ability to add classical wires** nor gates that measure a
- **No noise** consideration, or ability to introduce noise.
- **No parallelisation** option.
- **No ability to add classical wires** nor gates that measure a
single wire of a quantum circuit.

### Conventions
Expand Down

0 comments on commit 74f851f

Please sign in to comment.