CodingTheory

Pure Julia implementation of tools used in Coding Theory

https://github.com/jakewilliami/codingtheory.jl

Science Score: 44.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
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.4%) to scientific vocabulary

Keywords

algorithms codewords coding coding-theory julia julia-language julia-package julialang math mathematics maths

Keywords from Contributors

interpretability standardization algorithm hack
Last synced: 4 months ago · JSON representation ·

Repository

Pure Julia implementation of tools used in Coding Theory

Basic Info
  • Host: GitHub
  • Owner: jakewilliami
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 664 KB
Statistics
  • Stars: 5
  • Watchers: 2
  • Forks: 1
  • Open Issues: 2
  • Releases: 4
Topics
algorithms codewords coding coding-theory julia julia-language julia-package julialang math mathematics maths
Created over 5 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

CodingTheory.jl

Dev CI Code Style: Blue Project Status

This is a minimal package for a pure Julia implementation of tools used in Coding Theory. This is the science of accurately transmitting information through a noisy channel.

Background

We assume that Alice and Bob communicate by sending sequences of symbols from a finite set Σ, which we call the alphabet. We always use q to stand for the size of the set of symbols, |Σ|. A word is a sequence of symbols from the alphabet Σ. If w1w2...wn is such a word, then n is its length. We use Σn to denote the set of words with length n using symbols in Σ. In general, the number of words in Σn is

n| = qn.

Block codes are codes in which Alice transmits words of a preditermined and fixed length. A code is a subset C ⊆ Σn. The words in C are called code words. We say that n is the block length. We use M to stand for |C|, the number of code words. Alice has a set , some of which she wants to send to Bob, so she has the bijective encoding function

E : ℳ ⟶ C.

Similarly, Bob has a decoding function

D : Σn ⟶ C ∪ {?},

Where Bob uses the ? symbol when he cannot confidently decode. So if Alice wishes to communicate a message, she transmits a code word w = E(M). w may be corrupted to w' ≠ w. Then Bob can decode w' as E-1(D(w)). If Bob is not certain how to decode, then D(w') may be '?', which means that Bob can tell an error has occurred but is not certain what that error is.

If ℳ ⊆ Σk is the set of messages, then k is the message length.

A note on the number of codewords in a code

We have some algorithms brute-force searching for the codewords in a [q, n, d]-code. These algorithms are brute-force as they do not assume that q is a prime power. Therefore, they go through all possible codewords of a [q, n]-code, and narrow down the code based on d. There algorithms are namely get_codewords_greedy and get_codewords_random, both of which using get_all_codewords. The get_codewords function iterates through possibilities of get_codeword_random and chooses the maximum of those iterations or the get_codeword_greedy length. Despite the name, get_codewords is only a probably candidate. Increate the keyword argument m to decrease the likelihood that there is a code with more codewords while maintaining the bound of the distance. Furthermore, there is a get_codewords method that lists all linear combinations of rows of a generator matrix.

Similar Projects

Citation

If your research depends on CodingTheory.jl, please consider giving us a formal citation: citation.bib.

Owner

  • Name: Jake Ireland
  • Login: jakewilliami
  • Kind: user
  • Location: ///scary.zealous.twin

Citation (citation.bib)

@software{ireland2021codingtheory,
  title={{CodingTheory.jl}: Pure {Julia} implementation of tools used in Coding Theory},
  author={Ireland, Jake W},
  year={2021},
  howpublished={\url{https://github.com/jakewilliami/CodingTheory.jl}},
  note={{Julia} package version 0.2.2}
}

GitHub Events

Total
  • Push event: 45
Last Year
  • Push event: 45

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 205
  • Total Committers: 3
  • Avg Commits per committer: 68.333
  • Development Distribution Score (DDS): 0.034
Past Year
  • Commits: 15
  • Committers: 1
  • Avg Commits per committer: 15.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jake W. Ireland j****i@i****m 198
github-actions[bot] 4****] 5
David Peck d****k@g****m 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 7
  • Total pull requests: 57
  • Average time to close issues: 4 days
  • Average time to close pull requests: 3 days
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 1.43
  • Average comments per pull request: 0.02
  • Merged pull requests: 54
  • Bot issues: 0
  • Bot pull requests: 7
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jakewilliami (6)
  • JuliaTagBot (1)
Pull Request Authors
  • jakewilliami (48)
  • github-actions[bot] (7)
  • dmipeck (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
juliahub.com: CodingTheory

Pure Julia implementation of tools used in Coding Theory

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 9.9%
Average: 33.6%
Dependent packages count: 38.9%
Forks count: 40.4%
Stargazers count: 45.1%
Last synced: 5 months ago

Dependencies

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