Quant-Iron
A high-performance, hardware-accelerated modular quantum computing library with a focus on physical applications.
Quant-Iron provides tools to represent quantum states, apply standard quantum gates, perform measurements, build quantum circuits, and implement quantum algorithms.
Table of Contents
Features
-
Quantum State Representation: Create and manipulate predefined or custom quantum states of arbitrary qubit count.
-
Standard Operations: Hadamard (H), Pauli (X, Y, Z), CNOT, SWAP, Toffoli, Phase shifts, Rotations, and custom unitary operations.
-
Parametric Gates: Support for parametrised gates allowing for dynamic adjustment of gate parameters.
-
Hardware Acceleration: Optimised for parallel execution (CPU and GPU) and low memory overhead, with OpenCL-accelerated operations for enhanced performance on compatible hardware. (Requires
gpufeature flag). -
Circuit Builder: High-level interface for constructing quantum circuits with a fluent API and the
circuit!macro with support for subroutines. -
Measurement: Collapse wavefunction in the measurement basis with single or repeated measurements in the
Computational,X,Y, and custom bases. -
Pauli String Algebra:
-
Represent products of Pauli operators with complex coefficients (
PauliString). -
Construct sums of Pauli strings (
SumOp) to define Hamiltonians and other observables. -
Apply Pauli strings and their sums to quantum states.
-
Calculate expectation values of
SumOpwith respect to a quantum state. -
Apply exponentials of
PauliStringinstances to states.
-
-
Predefined Quantum Models:
- Heisenberg Model: Generate Hamiltonians for 1D and 2D anisotropic Heisenberg models using
SumOp. - Ising Model: Generate Hamiltonians for 1D and 2D Ising models with configurable site-specific or uniform interactions and fields using
SumOp.
- Heisenberg Model: Generate Hamiltonians for 1D and 2D anisotropic Heisenberg models using
-
Predefined Quantum Algorithms:
- Quantum Fourier Transform (QFT): Efficiently compute the QFT for a given number of qubits.
- Inverse Quantum Fourier Transform (IQFT): Efficiently compute the inverse QFT for a given number of qubits.
-
OpenQASM 3.0 Support: Convert circuits to OpenQASM 3.0 for interoperability with other quantum computing platforms.
-
Extensibility: Easily extensible for custom gates and measurement bases.
-
Error Handling: Comprehensive error handling for invalid operations and state manipulations.
-
Quality of Life: Implementation of
stdand arithmetic traits for easy, intuitive usage.
Getting Started
Installation
Add quant-iron to your Cargo.toml:
[]
= "0.1.0"
Or via cargo:
Quickstart
Create a new quantum state, apply gates, and measure:
Build a quantum circuit with a QFT subroutine and execute it on a state:
Build a parametrised circuit and update its parameters:
Use the circuit! macro to build a circuit:
Define a Hamiltonian and compute its expectation value:
Create a Hamiltonian for the 1D Heisenberg model and execute it on a state:
Create a circuit and convert it to OpenQASM 3.0:
use PI;
The code examples above demonstrate common use cases of Quant-Iron, and can be run using the cargo run --example {example-name} command.
License
This project is licensed under the MIT License.
Future Plans
- Density Matrix Support: Extend to mixed states and density matrices for more complex quantum systems.
- Circuit Visualisation: Graphical representation of quantum circuits for better understanding and debugging.
- Quantum Arithmetic & Algorithms: Implement common subroutines (e.g. Grover's algorithm, Variational Quantum Eigensolver (VQE)).