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
- Host: GitHub
- URL: https://github.com/quantumsavory/ldpcdecoders.jl
- Owner: QuantumSavory
- License: mit
- Created: 2023-06-05T03:31:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-18T16:18:56.000Z (5 months ago)
- Last Synced: 2025-09-05T22:53:45.496Z (5 months ago)
- Topics: belief-propagation, ldpc, ldpc-codes, quantum-computing, quantum-error-correction, stablizer-code, syndrome, syndrome-decoding
- Language: Julia
- Size: 87.9 KB
- Stars: 7
- Watchers: 3
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# LDPCDecoders.jl
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)
```