Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ pkg> add https://github.com/QuantumSavory/QuantumExpanders.jl.git

To update, just type `up` in the package mode.

The library provides the following methods to construct explicit instances of *Quantum Tanner codes*.
The library provides the following methods to construct explicit instances of *quantum Tanner codes*.
```mermaid
graph TD
QuantumTannerCodes["Quantum Tanner Codes"] --> RandomMethods["Random Methods"]
Expand Down
1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"
DocumenterMermaid = "a078cd44-4d9c-4618-b545-3ab9d77f9177"
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
Hecke = "3e1990a7-5d81-5526-99ce-9ba3ff248f21"
HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b"
Expand Down
17 changes: 17 additions & 0 deletions docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

A Julia library for constructing quantum Tanner codes and related expander-based quantum LDPC codes, built on top of [Oscar](https://www.oscar-system.org/), [QECCore](https://github.com/QuantumSavory/QECCore.jl), and [QuantumClifford](https://github.com/QuantumSavory/QuantumClifford.jl).

The library provides the following methods to construct explicit instances of *quantum Tanner codes*.

```mermaid
graph TD
QuantumTannerCodes["Quantum Tanner Codes"] --> RandomMethods["Random Methods"]
QuantumTannerCodes --> DeterministicMethods["Deterministic Methods"]

subgraph "Random construction"
RandomMethods --> RandomQuantumTannerCode["`random_quantum_Tanner_code`"]
end

subgraph "Deterministic construction"
DeterministicMethods --> QuantumTannerCode["`QuantumTannerCode`"]
DeterministicMethods --> GeneralizedQuantumTannerCode["`GeneralizedQuantumTannerCode`"]
end
```

## Quick Example

Constructing a random quantum Tanner code from Morgenstern generators of ``SL_2(\mathbb{F}_4)``:
Expand Down
4 changes: 2 additions & 2 deletions src/morgenstern.jl
Original file line number Diff line number Diff line change
Expand Up @@ -243,11 +243,11 @@ specific set of ``q+1`` generators. These generators are ``2 \\times 2`` matrice
where q = 2^l is an *even* prime power, and d is an even integer extension degree. The field ``\\mathbb{F}_{q^d}`` is
constructed as ``\\mathbb{F}_q[x]/g(x)\\mathbb{F}_q[x]`` where g(x) is an irreducible polynomial of degree d. Within
this field, ``\\mathbb{i}`` denotes a root of the irreducible polynomial ``x^2 + x + \\varepsilon = 0``. The pairs
``(\\gamma_k, \\delta_k)`` are the q+1 solutions in `\\mathbb{F}_q^2`` to the ``\\gamma_k^2 + \\gamma_k\\delta_k + \\delta_k^2\\varepsilon = 1``.
``(\\gamma_k, \\delta_k)`` are the q+1 solutions in ``\\mathbb{F}_q^2`` to the ``\\gamma_k^2 + \\gamma_k\\delta_k + \\delta_k^2\\varepsilon = 1``.
And x is the polynomial variable that represents an element of ``\\mathbb{F}_{q^d}`` in the construction.

The same theorem states that the resulting Cayley graph ``\\Gamma_g`` has the following properties: it is
a (q+1)-regular Ramanujan graph of order ``|\\Gamma_g| = q^{3d} - q^d`` and is non-bipartite. The graph has
a (``q+1``)-regular Ramanujan graph of order ``|\\Gamma_g| = q^{3d} - q^d`` and is non-bipartite. The graph has
girth at least ``\\frac{2}{3}\\log_q|\\Gamma_g|`` and diameter at most ``2\\log_q|\\Gamma_g| + 2``. Furthermore,
as per Theorem *5.11*, all eigenvalues ``\\mu`` of the adjacency matrix satisfy ``|\\mu| \\leq 2\\sqrt{q}`` for ``\\mu \\neq ``\\pm(q+1)``.

Expand Down
4 changes: 2 additions & 2 deletions src/quantum_tanner_codes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -427,8 +427,8 @@ julia> code_n(c), code_k(c), distance(c, DistanceMIPAlgorithm(solver=HiGHS, logi
```

!!! note
This is a newer version of the less well designed function `gen_code`(G, A, B, bipartite=true, use_same_local_code=false)`.
It constructs the quantum Tanner code given a finite group G equipped with two *symmetric* generating sets A and B,
This is a newer version of the less well designed function `gen_code(G, A, B, bipartite=true, use_same_local_code=false)`.
It constructs the quantum Tanner code given a finite group ``G`` equipped with two *symmetric* generating sets ``A`` and ``B``,
alongside pairs of classical codes — comprising parity check and generator matrices — that are utilized in the
construction of classical Tanner codes. To illustrate its application, the implementation can employ generating
sets computed from the Morgenstern's explicit construction of Ramanujan graphs for odd prime power `q` generating sets.
Expand Down
Loading