Skip to content

Commit 3768c62

Browse files
king-p3nguinKazuki Tsuoka
and
Kazuki Tsuoka
authored
Prepare release (#1)
* prepare release * change pr template * mod tests * change init * sort imports * rm CLIFFORD_CONJ * readme & requirements changed * fix tests * fix ubuntu test * fix ubuntu test * rename file * modify experiment --------- Co-authored-by: Kazuki Tsuoka <kazuki.tsuoka@fixstars.com>
1 parent b7bc0d9 commit 3768c62

17 files changed

+1055
-59
lines changed

.github/pull_request_template.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Before submitting, please check the following:
2-
- Make sure you have tests for the new code and that test passes (run `pytest`)
3-
- format added code and tests by `black -l 120 <filename>`
2+
- Make sure you have tests for the new code and that test passes (run `tox`)
3+
- format added code by `black -l 120 <filename>`
44
- If applicable, add a line to the [unreleased] part of CHANGELOG.md, following [keep-a-changelog](https://keepachangelog.com/en/1.0.0/).
5-
5+
66
Then, please fill in below:
77

88
**Context (if applicable):**

.github/workflows/ci.yml

+5-14
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,12 @@ jobs:
2525
- uses: actions/checkout@v3
2626

2727
- name: Set up Python ${{ matrix.python }}
28-
uses: actions/setup-python@v3
28+
uses: actions/setup-python@v4
2929
with:
3030
python-version: ${{ matrix.python }}
3131

32-
- name: Install dependencies
33-
run: |
34-
python -m pip install --upgrade pip
35-
pip install pytest
36-
pip install -r requirements.txt
37-
pip install -e .[test]
32+
- name: Install tox
33+
run: pip install tox tox-gh-actions
3834

39-
- name: Install graphix
40-
run: |
41-
python setup.py install
42-
43-
- name: Test with pytest
44-
run: |
45-
python -m pytest
35+
- name: Run tox
36+
run: tox

.github/workflows/lint.yml

-23
This file was deleted.

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@
66
**/build
77
dist/*
88
docs/source/gallery/**
9+
.tox/
10+
.vscode/

MANIFEST.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
include README.md
22
include MANIFEST.in
33
include LICENSE
4-
include graphix_ibmq/version.py
4+
include graphix_perceval/version.py
5+
include requirements.txt
56
prune docs/*

README.md

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Graphix Perceval interface
2+
<!--
3+
![PyPI](https://img.shields.io/pypi/v/graphix-perceval)
4+
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/graphix-perceval) -->
5+
6+
Provides an interface to run MBQC pattern (`graphix.Pattern`) on Quandela's optical quantum devices as well as Perceval's simulator backends.
7+
8+
Requires [graphix](https://github.com/TeamGraphix/graphix) to generate the measurement pattern.
9+
10+
## Installation
11+
12+
install with `pip`
13+
14+
```bash
15+
$ pip install graphix-perceval
16+
```
17+
18+
<!-- This can be installed as part of graphix, by
19+
```
20+
$ pip install graphix[extra]
21+
``` -->
22+
23+
## License
24+
25+
[Apache License 2.0](LICENSE)

graphix_perceval/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from .converter import to_perceval

graphix_perceval/clifford.py

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import numpy as np
2+
import perceval.components as comp
3+
import sympy as sp
4+
5+
# perceval representation of Clifford gates.
6+
# see graphix.clifford module for the definitions and details of Clifford operatos for each index.
7+
CLIFFORD_TO_PERCEVAL_BS = [
8+
[comp.BS(theta=0.0)],
9+
[comp.BS(theta=sp.pi, phi_bl=-sp.pi / 2, phi_br=-sp.pi / 2)],
10+
[comp.BS(theta=sp.pi, phi_tl=-sp.pi / 2, phi_bl=sp.pi / 2, phi_tr=sp.pi / 2, phi_br=sp.pi / 2)],
11+
[comp.BS(theta=0.0, phi_bl=sp.pi / 2, phi_br=sp.pi / 2)],
12+
[comp.BS(theta=0.0, phi_br=sp.pi / 2)],
13+
[comp.BS(theta=0.0, phi_br=-sp.pi / 2)],
14+
[comp.BS(theta=sp.pi / 2, phi_bl=3 * sp.pi / 2, phi_br=3 * sp.pi / 2)],
15+
[comp.BS(theta=sp.pi / 2, phi_tl=sp.pi / 2, phi_bl=-sp.pi / 2, phi_tr=-sp.pi / 2, phi_br=sp.pi / 2)],
16+
[comp.BS(theta=sp.pi / 2, phi_bl=sp.pi / 2, phi_br=3 * sp.pi / 2)],
17+
[comp.BS(theta=sp.pi, phi_tl=3 * sp.pi / 4, phi_tr=-3 * sp.pi / 4)],
18+
[comp.BS(theta=sp.pi, phi_tl=-3 * sp.pi / 4, phi_tr=3 * sp.pi / 4)],
19+
[comp.BS(theta=sp.pi / 2, phi_bl=sp.pi / 2, phi_br=sp.pi / 2)],
20+
[comp.BS(theta=sp.pi / 2, phi_tl=3 * sp.pi / 4, phi_bl=sp.pi / 4, phi_tr=sp.pi / 4, phi_br=3 * sp.pi / 4)],
21+
[comp.BS(theta=sp.pi / 2, phi_tr=sp.pi / 2, phi_br=3 * sp.pi / 2)],
22+
[comp.BS(theta=sp.pi / 2, phi_tl=sp.pi / 2, phi_bl=3 * sp.pi / 2)],
23+
[comp.BS(theta=sp.pi / 2, phi_tr=sp.pi, phi_br=3 * sp.pi)],
24+
[comp.BS(theta=sp.pi / 2, phi_bl=sp.pi, phi_tr=3 * sp.pi / 4, phi_br=sp.pi / 4)],
25+
[comp.BS(theta=sp.pi / 2, phi_tr=3 * sp.pi / 4, phi_br=5 * sp.pi / 4)],
26+
[comp.BS(theta=sp.pi / 2, phi_bl=sp.pi, phi_tr=sp.pi / 4, phi_br=3 * sp.pi / 4)],
27+
[comp.BS(theta=sp.pi / 2, phi_tr=5 * sp.pi / 4, phi_br=3 * sp.pi / 4)],
28+
[comp.BS(theta=sp.pi / 2, phi_tl=5 * sp.pi / 4, phi_bl=3 * sp.pi / 4)],
29+
[comp.BS(theta=sp.pi / 2, phi_tl=sp.pi / 2, phi_tr=sp.pi / 4, phi_br=5 * sp.pi / 4)],
30+
[comp.BS(theta=sp.pi / 2, phi_bl=sp.pi / 2, phi_tr=sp.pi / 4, phi_br=5 * sp.pi / 4)],
31+
[comp.BS(theta=sp.pi / 2, phi_tl=3 * sp.pi / 4, phi_bl=5 * sp.pi / 4)],
32+
]
33+
34+
CLIFFORD_TO_PERCEVAL_POLAR = [
35+
[comp.WP(delta=0.0, xsi=0.0)],
36+
[comp.WP(delta=sp.pi / 2, xsi=sp.pi / 4), comp.PS(-sp.pi / 2)],
37+
[comp.WP(delta=sp.pi / 2, xsi=0.0), comp.WP(delta=sp.pi / 2, xsi=sp.pi / 4), comp.PS(-sp.pi / 2)],
38+
[comp.WP(delta=sp.pi / 2, xsi=0.0), comp.PS(-sp.pi / 2)],
39+
[comp.WP(delta=-sp.pi / 4, xsi=0.0), comp.PS(sp.pi / 4)],
40+
[comp.WP(delta=sp.pi / 4, xsi=0.0), comp.PS(7 * sp.pi / 4)],
41+
[comp.WP(delta=sp.pi / 2, xsi=np.pi / 8), comp.PS(3 * sp.pi / 2)],
42+
[comp.WP(delta=3 * sp.pi / 4, xsi=np.pi / 4), comp.PS(sp.pi)],
43+
[comp.WP(delta=sp.pi / 2, xsi=sp.pi / 8), comp.WP(delta=sp.pi / 2, xsi=sp.pi / 4), comp.PS(sp.pi)],
44+
[comp.WP(delta=-sp.pi / 4, xsi=sp.pi), comp.WP(delta=sp.pi / 2, xsi=sp.pi / 4), comp.PS(sp.pi)],
45+
[comp.WP(delta=sp.pi / 4, xsi=sp.pi), comp.WP(delta=sp.pi / 2, xsi=sp.pi / 4), comp.PS(-sp.pi)],
46+
[comp.WP(delta=sp.pi / 2, xsi=3 * sp.pi / 8), comp.PS(sp.pi / 2)],
47+
[comp.WP(delta=sp.pi / 2, xsi=3 * sp.pi / 8), comp.WP(delta=sp.pi / 2, xsi=sp.pi / 4)],
48+
[comp.WP(delta=sp.pi / 4, xsi=sp.pi / 4), comp.WP(delta=sp.pi / 2, xsi=0.0)],
49+
[comp.WP(delta=sp.pi / 4, xsi=3 * sp.pi / 4), comp.WP(delta=sp.pi / 2, xsi=0.0)],
50+
[comp.WP(delta=sp.pi / 4, xsi=sp.pi / 4), comp.PS(sp.pi)],
51+
[comp.WP(delta=sp.pi / 4, xsi=0.0), comp.WP(delta=sp.pi / 2, xsi=sp.pi / 8)],
52+
[comp.WP(delta=sp.pi / 4, xsi=0.0), comp.WP(delta=sp.pi / 2, xsi=3 * sp.pi / 8), comp.PS(sp.pi)],
53+
[comp.WP(delta=sp.pi / 4, xsi=sp.pi / 2), comp.WP(delta=sp.pi / 2, xsi=3 * sp.pi / 8), comp.PS(sp.pi)],
54+
[comp.WP(delta=sp.pi / 4, xsi=sp.pi / 2), comp.WP(delta=sp.pi / 2, xsi=5 * sp.pi / 8)],
55+
[comp.WP(delta=sp.pi / 4, xsi=0.0), comp.WP(delta=sp.pi / 4, xsi=sp.pi / 4), comp.PS(sp.pi)],
56+
[comp.WP(delta=sp.pi / 4, xsi=sp.pi / 4), comp.WP(delta=sp.pi / 2, xsi=sp.pi / 8)],
57+
[comp.WP(delta=sp.pi / 4, xsi=0.0), comp.WP(delta=sp.pi / 4, xsi=3 * sp.pi / 4)],
58+
[comp.WP(delta=sp.pi / 4, xsi=sp.pi / 2), comp.WP(delta=sp.pi / 4, xsi=sp.pi / 4), comp.PS(sp.pi)],
59+
]

0 commit comments

Comments
 (0)