Skip to content

Commit

Permalink
[rename] htcircuits -> htstabilizer
Browse files Browse the repository at this point in the history
Also:
ht_stabilizer -> stabilizer_circuits
  • Loading branch information
Mc-Zen committed May 5, 2023
1 parent 6014262 commit 32cef86
Show file tree
Hide file tree
Showing 39 changed files with 55 additions and 36 deletions.
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# MANIFEST.in
include src/htcircuits/data/*.txt
include src/htstabilizer/data/*.txt
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Short Quantum Circuits Python library
# Hardware-Tailored Stabilizer Circuits Python library

This library provides
- *hardware-tailored* quantum Clifford circuits for **stabilizer state preparation** or **measurement** as well as
Expand Down Expand Up @@ -38,7 +38,7 @@ The following graphics show all available connectivities.
## Usage

```
from shortcircuits import stabilizer
from htstabilizer import stabilizer
...
```

Expand Down
6 changes: 3 additions & 3 deletions example.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from collections import defaultdict
from src.htcircuits import ht_stabilizer
from src.htcircuits.lc_classes import *
from src.htcircuits.circuit_lookup import circuit_lookup
from src.htstabilizer import stabilizer_circuits
from src.htstabilizer.lc_classes import *
from src.htstabilizer.circuit_lookup import circuit_lookup
import matplotlib.pyplot as plt


Expand Down
5 changes: 1 addition & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,8 @@
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

shortcircuits
shortcliffords

[project]
name = "shortcircuits"
name = "htstabilizer"
version = "1.0.0"
description = "Hardware-tailored quantum Clifford circuits for stabilizer state preparation or readout as well as mutually unbiased bases in order to perform efficient full-state tomography on small qubit systems."
readme = "README.md"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def rref(A: np.ndarray) -> Tuple[np.ndarray, List[int]]:
A[i, :] = (A[i, :] + A[i, k]*A[h, :]) % 2
h += 1
k += 1
return [A, pivot_cols]
return (A, pivot_cols)


def trf_swap_rows(i: int, j: int, m: int, dtype=np.int8) -> np.ndarray:
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions tests/random_stabilizer.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import numpy as np
from src.htcircuits import f2_algebra as f2
from src.htcircuits.find_local_clifford_layer import generate_local_clifford_symplectic_from_id
from src.htcircuits.graph import Graph
from src.htcircuits.stabilizer import Stabilizer
from src.htstabilizer import f2_algebra as f2
from src.htstabilizer.find_local_clifford_layer import generate_local_clifford_symplectic_from_id
from src.htstabilizer.graph import Graph
from src.htstabilizer.stabilizer import Stabilizer


def random_stabilizer(graph: Graph):
Expand Down
2 changes: 1 addition & 1 deletion tests/test_binary.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from src.htcircuits.binary import Binary
from src.htstabilizer.binary import Binary


import unittest
Expand Down
8 changes: 4 additions & 4 deletions tests/test_circuit_lookup.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import unittest

from src.htcircuits.circuit_lookup import *
from src.htcircuits.ht_stabilizer import get_connectivity_graph
from src.htcircuits.lc_classes import *
from src.htcircuits.graph import Graph
from src.htstabilizer.circuit_lookup import *
from src.htstabilizer.ht_stabilizer import get_connectivity_graph
from src.htstabilizer.lc_classes import *
from src.htstabilizer.graph import Graph
from qiskit import transpile
from qiskit.circuit.library import GraphState
from qiskit.quantum_info import Statevector, StabilizerState
Expand Down
4 changes: 2 additions & 2 deletions tests/test_find_local_clifford_layer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from src.htcircuits.find_local_clifford_layer import *
from src.htcircuits.stabilizer import Stabilizer
from src.htstabilizer.find_local_clifford_layer import *
from src.htstabilizer.stabilizer import Stabilizer

from tests.random_stabilizer import random_stabilizer

Expand Down
3 changes: 2 additions & 1 deletion tests/test_graph.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from src.htcircuits.graph import Graph
from src.htstabilizer.graph import Graph


import unittest
Expand Down Expand Up @@ -47,6 +47,7 @@ def test_add_path(self):
self.assertTrue(g.has_edge(1, 0))
self.assertEqual(g.edge_count(), 4)

@unittest.skip("Need to be checked manually")
def test_draw(self):
g = Graph(5)
self.assertTrue(g.draw() != None)
Expand Down
10 changes: 5 additions & 5 deletions tests/test_lc_classes.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from src.htcircuits.lc_classes import *
from src.htcircuits.graph import Graph
from src.htstabilizer.lc_classes import *
from src.htstabilizer.graph import Graph

import unittest
import numpy as np
Expand Down Expand Up @@ -36,7 +36,7 @@ def test_determine_lc_class3(self):
self.assertEqual(lc_class.type, LCClass3.EntanglementStructure.Separable)
self.assertEqual(lc_class.id(), 0)
self.assertEqual(lc_class, LCClass3(lc_class.id()))
lc_class.get_graph().draw(show=True)
lc_class.get_graph().draw()

lc_class = determine_lc_class3(Stabilizer(["YII", "IYX", "IXY"]))
self.assertEqual(lc_class.type, LCClass3.EntanglementStructure.Pair)
Expand All @@ -48,7 +48,7 @@ def test_determine_lc_class3(self):
self.assertEqual(lc_class.type, LCClass3.EntanglementStructure.Triple)
self.assertEqual(lc_class.id(), 4)
self.assertEqual(lc_class, LCClass3(lc_class.id()))
lc_class.get_graph().draw(show=True)
lc_class.get_graph().draw()

def test_determine_lc_class4(self):
lc_class = determine_lc_class4(Stabilizer(["XYIY", "XIZY", "IYZI", "IYII"]))
Expand All @@ -58,7 +58,7 @@ def test_determine_lc_class4(self):

lc_class = determine_lc_class4(Stabilizer(["YIIY", "IYXY", "IXYI", "YXYI"]))
self.assertEqual(lc_class.type, LCClass4.EntanglementStructure.Pair)
self.assertEqual(lc_class.data, linear_index.Repr([[0],[3], [1,2]]))
self.assertEqual(lc_class.data, linear_index.Repr([[0], [3], [1, 2]]))
self.assertEqual(lc_class.id(), 4)
self.assertEqual(lc_class.data, LCClass4(lc_class.id()).data)

Expand Down
2 changes: 1 addition & 1 deletion tests/test_linear_index.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from src.htcircuits.linear_index import *
from src.htstabilizer.linear_index import *
import unittest


Expand Down
4 changes: 2 additions & 2 deletions tests/test_stabilizer.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from qiskit import QuantumCircuit
from src.htcircuits.stabilizer import Stabilizer
from src.htcircuits.graph import Graph
from src.htstabilizer.stabilizer import Stabilizer
from src.htstabilizer.graph import Graph

import unittest
import numpy as np
Expand Down
31 changes: 26 additions & 5 deletions tests/test_htstabilizer.py → tests/test_stabilizer_circuits.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from src.htcircuits.lc_classes import *
from src.htcircuits.ht_stabilizer import *
from src.htstabilizer.lc_classes import *
from src.htstabilizer.stabilizer_circuits import *

from tests.random_stabilizer import random_stabilizer

Expand Down Expand Up @@ -49,10 +49,31 @@ def test_random_stabilizers_3_linear(self):
self.verify_random_stabilizers(3, "linear", num=500)

def test_random_stabilizers_4_all(self):
self.verify_random_stabilizers(4, "all", num=500)
self.verify_random_stabilizers(4, "all", num=100)

def test_random_stabilizers_4_linear(self):
self.verify_random_stabilizers(4, "linear", num=100)

def test_random_stabilizers_4_star(self):
self.verify_random_stabilizers(4, "star", num=100)

def test_random_stabilizers_4_cycle(self):
self.verify_random_stabilizers(4, "cycle", num=100)

def test_random_stabilizers_5_all(self):
self.verify_random_stabilizers(5, "all", num=500)
self.verify_random_stabilizers(5, "all", num=20)

def test_random_stabilizers_5_linear(self):
self.verify_random_stabilizers(5, "linear", num=500)
self.verify_random_stabilizers(5, "linear", num=20)

def test_random_stabilizers_5_star(self):
self.verify_random_stabilizers(5, "star", num=20)

def test_random_stabilizers_5_cycle(self):
self.verify_random_stabilizers(5, "cycle", num=20)

def test_random_stabilizers_5_T(self):
self.verify_random_stabilizers(5, "T", num=20)

def test_random_stabilizers_5_Q(self):
self.verify_random_stabilizers(5, "Q", num=20)

0 comments on commit 32cef86

Please sign in to comment.