Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/glassnotes/ft_qram_circuits
Fault-tolerant resource estimation of circuits for quantum RAM
https://github.com/glassnotes/ft_qram_circuits
Last synced: about 2 months ago
JSON representation
Fault-tolerant resource estimation of circuits for quantum RAM
- Host: GitHub
- URL: https://github.com/glassnotes/ft_qram_circuits
- Owner: glassnotes
- License: mit
- Created: 2018-10-31T17:52:29.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-12-16T21:35:59.000Z (about 5 years ago)
- Last Synced: 2023-08-20T09:10:24.327Z (over 1 year ago)
- Language: Python
- Size: 40.2 MB
- Stars: 10
- Watchers: 7
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fault-tolerant resource estimation of qRAM circuits.
This package contains Python classes for each type of circuit (and various parallelized versions) we discuss in [our arXiv preprint](http://arxiv.org/abs/1902.01329).
* Bucket brigade circuits (`src/bucket_brigade_circuits.py`)
* Basic circuits (`src/basic_circuits.py`)
* Hybrid circuits (`src/hybrid_circuits.py`)
* Double qRAM circuits (`src/double_qram_circuits.py`)## Requirements
To run the data generation scripts:
* numpyTo run the analysis notebooks:
* Jupyter
* [Altair data visualization libraries](https://altair-viz.github.io)## Usage
Within each class are formulae for the computation of relevant resources such as number of logical qubits, T-gates, Clifford gates, etc. All circuits inherit from a parent class `qRAMCircuit`, which itself inherits from a more general Circuit base class (both found in `src/circuit.py`).
The file `src/surface_code.py` contains a surface code class that eats circuits and produces the resource estimates. Currently only defect-based estimates are implemented, with lattice surgery methods to be implemented at some point in the future.
Here is a simple example:
```python
from basic_circuits import LargeWidthSmallDepth
from surface_code import SurfaceCode# Instantiate a surface code with some physical assumptions (gate errors, cycle time)
surf_code = SurfaceCode(p_in=1e-4, p_g=1e-5, t_sc=200e-9)# Create a circuit
circ = LargeWidthSmallDepth(35, 33)# Compute resource estimates; returned as dictionaries of parameters
defect_est = surf_code.defect_compute_resources(circ)
```The script `scripts/generate_paper_data.py` will produce all the data as it appears in our paper. The relevant data is also included in `data/` and the analysis notebooks are in `analysis/`.
Contact odimatteo AT triumf DOT ca for questions/comments, or create an issue if you find any bugs.