quantum

Crates.ioquantum
lib.rsquantum
version0.1.2
sourcesrc
created_at2016-07-22 21:40:12.249065
updated_at2016-07-26 22:11:59.339475
descriptionAdvanced Rust quantum computer simulator.
homepagehttps://github.com/beneills/quantum/
repositoryhttps://github.com/beneills/quantum.git
max_upload_size
id5756
size39,116
Ben Eills (beneills)

documentation

http://beneills.github.io/quantum/

README

quantum Build Status License

Advanced Rust quantum computer simulator.

Motivation

Quantum is a quantum computer simulator written with the following design goals in mind:

  1. Utility: we can simulate a 5-qubit register, enough to run interesting algorithms.

  2. Efficiency: we implement all important operations from scratch using primitives

  3. Educational Value: the documentation is a prose description of how to implement a quantum computer in Rust.

  4. Correctness: it's entirely written in safe Rust with well-defined states.

A good place to start reading the theory behind this is the Wikipedia article, and you can follow the documentation for our implementations of gates, kets, common operations, and quantum registers.

Usage

# Cargo.toml

[dependencies]
quantum = "0.1.2"
// main.rs

use computer::QuantumComputer;
use gates;

// Let's do something simple of a 3-qubit system.
let mut c1 = QuantumComputer::new(3);
c1.initialize(5);
c1.apply(gates::identity(3));
c1.collapse();
assert_eq!(5, c1.value());

// Now let's perform a Hadamard transform.
let mut c2 = QuantumComputer::new(1);
c2.initialize(0);
c2.apply(gates::hadamard());
c2.collapse();
let result = if 1 == c2.value() { "heads" } else { "tails" };
println!("coin flip: {}", result);

Contributing

  • Create or take ownership of an issue
  • Fork development branch
  • Write code and tests
  • rust test
  • Commit with a reasonable message and push
  • Submit a pull request
Commit count: 46

cargo fmt