ldpcstorage.jl

Utility Julia package for loading and saving LDPC codes to files

https://github.com/xqp-munich/ldpcstorage.jl

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.2%) to scientific vocabulary

Keywords

alist file-formats ldpc ldpc-codes quasi-cyclic
Last synced: 7 months ago · JSON representation ·

Repository

Utility Julia package for loading and saving LDPC codes to files

Basic Info
  • Host: GitHub
  • Owner: XQP-Munich
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 193 KB
Statistics
  • Stars: 4
  • Watchers: 0
  • Forks: 1
  • Open Issues: 1
  • Releases: 10
Topics
alist file-formats ldpc ldpc-codes quasi-cyclic
Created over 4 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

LDPCStorage.jl

CI codecov License Aqua QA DOI

Reads and writes file formats for storing sparse matrices containing only zeros and ones. Intended for use with low density parity check (LDPC) matrices. Also supports efficient storage for quasi-cyclic LDPC codes.

Installation

Run Julia, enter ] to bring up Julia's package manager, and add the package:

julia julia> ] (v1.9) pkg> add LDPCStorage

Supported File Formats

  • alist (by David MacKay et al., see http://www.inference.org.uk/mackay/codes/alist.html)
  • cscmat (our custom format) DEPRECATED
  • bincsc.json (Based on compressed sparse column (CSC). Valid json.)
  • qccsc.json (Based on compressed sparse column (CSC). Valid json. Store exponents of quasi-cyclic LDPC matrices)
  • hpp (C++ header) CSC of matrix as static data (write-only, reading not supported!)

How to use

```julia using SparseArrays using LDPCStorage

H = sparse(Int8[ 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 ])

savetoalist("./ldpc.alist", H) Halist = loadalist("./ldpc.alist") H == H_alist || warn("Failure")

savetobincscjson("./ldpc.bincsc.json", H) Hcsc = loadldpcfromjson("./ldpc.bincsc.json") H == H_csc || warn("Failure")

open("./autogenldpc.hpp", "w+") do io printcpp_header(io, H) end ```

There also are methods accepting an IO object: print_alist, print_bincscjson, etc.

Some methods support outputting quasi-cyclic exponents directly, e.g., print_cpp_header_QC outputs a C++ header.

Contributing

Contributions, feature requests and suggestions are welcome. Open an issue or contact us directly.

Owner

  • Login: XQP-Munich
  • Kind: user
  • Location: Munich, Germany

Experimental Quantum Physics group at Ludwig Maximilian University of Munich

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "LDPCStorage.jl: Utility functions for reading and writing files containing LDPC matrices."
doi: 10.5281/zenodo.5589595
publisher: Zenodo
url: https://doi.org/10.5281/zenodo.5589595
authors:
  - family-names: Baliuka
    given-names: Adomas
    orcid: "https://orcid.org/0000-0002-7064-8502"
license: MIT

GitHub Events

Total
Last Year

Dependencies

.github/workflows/CI.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite