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).
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)
pkg> activate .
(YourProject) pkg> add LDPCDecoders.jlWhen prompted, press Y/y for yes.
Using each of the decoders is discussed below
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> 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> decode!(decoder, syndrome, error)julia> batchdecode!(decoder, syndromes, errors)