/spinoza

A High Performance Quantum State Simulator implemented in pure Rust

Primary LanguageRustApache License 2.0Apache-2.0

Spinoza is a fast and flexible quantum simulator written exclusively in Rust, with bindings available for Python users. Spinoza simulates the evolution of a quantum system’s state by applying quantum gates, with the core design principle being that a single-qubit gate applied to a target qubit preserves the probability of pairs of amplitudes corresponding to measurement outcomes that differ only in the target qubit. Spinoza is intended to enable the development of quantum computing solutions by offering researchers and quantum developers a simple, flexible, and fast tool for classical simulation. For more information, please see the accompanying paper.

Quickstart with Python

pip install git+https://github.com/QuState/spinoza#subdirectory=spynoza

Getting Started

Prerequisites

rustup toolchain install nightly
rustup default nightly

Building on *nix

Note

before building on macOS, please see the install guide.

Production

cargo build --release

Try it out!

examples can be run using:

cargo run --release --example <example-name> -- -q <num-qubits> -t <num-threads>

Contributing

Everyone is welcomed to contribute to Spinoza! Please see the contributing guideline for more information. If you encounter any issues, please feel free to open a new issue.


References

@misc{yusufov2023designing,
      title={Designing a Fast and Flexible Quantum State Simulator},
      author={Saveliy Yusufov and Charlee Stefanski and Constantin Gonciulea},
      year={2023},
      eprint={2303.01493},
      archivePrefix={arXiv},
      primaryClass={quant-ph}
}