An open API service indexing awesome lists of open source software.

https://github.com/quantumsavory/ldpcdecoders.jl

LDPC Belief Propogation decoders
https://github.com/quantumsavory/ldpcdecoders.jl

belief-propagation ldpc ldpc-codes quantum-computing quantum-error-correction stablizer-code syndrome syndrome-decoding

Last synced: 3 months ago
JSON representation

LDPC Belief Propogation decoders

Awesome Lists containing this project

README

          

# LDPCDecoders.jl

GitHub Workflow Status
Test coverage from codecov

A package of LDPC decoders for decoding certain LDPC Quantum Error Correcting Codes using Julia. It currently has a simple iterative decoder and belief propagation (BP) decoder, which also has variation with post processing using Ordered Statistics Decoding (BP+OSD).

# Setting up

To use decoders and structs from LDPCDecoders.jl in your project, add it to your `Project.toml`, and automatically to `Manifest.toml`

Inside your project folder (which contains the `Project.toml` and `Manifest.toml`), run Julia in package mode (enabled by pressing `]` in Julia REPL)

```bash
pkg> activate .
(YourProject) pkg> add LDPCDecoders.jl
```

When prompted, press `Y/y` for yes.

# Usage

Using each of the decoders is discussed below

## Belief Propagation
The code and user interface for the belief propagation decoder lies in `src/decoders/belief_propagation.jl`. First step is to set up the decoder, with your parity check matrix `H`, physical error rate `per` and max number of decoding iterations for belief propagation algorithm.

```julia
julia> using LDPCDecoders
julia> decoder = BeliefPropagationDecoder(H, per, max_iters)
```

There are two available methods for decoding - `decode!` which takes a syndrome and `batchdecode!`, which takes a batch of syndromes at once. See code for more docs.

```julia
julia> decode!(decoder, syndrome, error)
```

```julia
julia> batchdecode!(decoder, syndromes, errors)
```