Releases: XQP-Munich/LDPC4QKD
Rate Adaptive LDPC Codes for Distributed Source Coding
Header-only library for distributed source coding.
Includes
- 6 LDPC codes including rate adaption, stored in a custom memory-efficient JSON-based format. The format has two versions, one for storing general LDPC matrices (same use-case as alist format), the other is used explicitly to store quasi-cyclic exponents for very space-efficient storage of large quasi-cyclic LDPC matrices.
- Julia utilities to handle these file formats and generate C++ code that allows embedding LDPC codes into an executable as constant static data (both as binary matrix in CSC-storage, as well as QC-exponents directly).
- Separate C++ implementation of syndrome encoding (binary sparse-matrix-dense-vector multiplication)
- Ability to group and the CSC-stored QC-exponents into constexpr objects (requires C+++20)
- Example implementation of a general Belief Propagation decoder suited for Slepian-Wolf setting. This is a single C++ header, that should be easy to use.
- Frame error rate and critical rate simulations. These benchmarks are not yet automated and no plots are yet generated from the simulation results.
Changes from last release:
LDPC Codec that can now be directly initialized from compressed-sparse-column storage of QC-exponents
Breaking changes:
- removes
RateAdaptiveCode
template parameter Bit. This is now a template parameter of underlying functions, which is more flexible (and hopefully not too much more complicated/prone to errors...) - (ABI-breaking) reworks underlying data representation for
RateAdaptiveCode
.
Non-breaking changes:
- New header
encoder_advanced.hpp
. Enables constexpr storage of QC-exponents for a code in a grouped manner. For how to use, see unit test in test_encoder_advanced.cpp. Requires C++20! - Enable construction of
RateAdaptiveCode
from avector<vector<idx_t>> mother_pos_varn
- Together, these also enable creating
RateAdaptiveCode
from QC-exponents stored statically in C++.
(see #19)
Rate Adaptive LDPC Codes for Distributed Source Coding
Includes
- 6 LDPC codes including rate adaption, stored in a custom memory-efficient JSON-based format. The format has two versions, one for storing general LDPC matrices (same use-case as
alist
format), the other is used explicitly to store quasi-cyclic exponents for very space-efficient storage of large quasi-cyclic LDPC matrices. - Julia utilities to handle these file formats and generate C++ code that allows embedding LDPC codes into an executable as constant static data.
- Separate C++ implementation of syndrome encoding (binary sparse-matrix-dense-vector multiplication)
- Example implementation of a general Belief Propagation decoder suited for Slepian-Wolf setting. This is a single C++ header, that should be easy to use.
- Frame error rate and critical rate simulations . These benchmarks are not yet automated and no plots are yet generated from the simulation results.
Changes since last version
Changes default file format to JSON-based formats. Deprecates old formats.
Citable Repository of Rate Adaptive LDPC Codes for Distributed Source Coding
Includes
- 6 LDPC codes including rate adaption, stored in a custom memory-efficient text-based format.
- Julia utilities to deal with these file formats and generate C++ code that allows embedding LDPC codes into executables as constant static data.
- Separate C++ implementation of syndrome encoding (binary sparse-matrix-dense-vector multiplication)
- Example implementation of a Belief Propagation decoder suited for Slepian-Wolf setting. This is a single C++ header file, that should be easy to use.
- Frame error rate and critical rate simulations . These benchmarks are not yet automated and no plots are yet generated from the simulation results.
Changes since last version
Adds author names in CITATION.cff file
Adds Zenodo badge to README
Adds descriptions to command line interfaces of simulator programs
v1.0.0
Frame error rate and critical rate simulations now have command line interfaces. Benchmarks are not yet automated.
Contains 6 LDPC codes including rate adaption.
Improved encoder runtime performance.
Full set of usable rate adapted LDPC codes
Includes 6 LDPC codes with rate adaption. Includes basic documentation how to use them.
Needs more documentation about how to use rate adaption. Missing automatic generation of benchmarks and plots showing performance.