Skip to content

Commit

Permalink
docs: mention generalizedReedSolomon alternative project + NTT
Browse files Browse the repository at this point in the history
Signed-off-by: Stephen L. <LRQ3000@gmail.com>
  • Loading branch information
lrq3000 committed Jul 15, 2023
1 parent 84f9ba5 commit c9ed990
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,7 @@ Similar projects

Here is a non-exhaustive list of similar projects (ie, projects implementing a Reed-Solomon codec):
* `galois <https://github.com/mhostetter/galois>`_, a Numba JIT-optimized extension module for Numpy, which implements a Reed-Solomon codec and NTT transforms.
* `generalizedReedSolomon <https://github.com/raeudigerRaeffi/generalizedReedSolomon>`__, a variant of an implementation of Reed-Solomon that is more parallelizable and interestingly can encode messages of arbitrary length without chunking (the chunking is kind of integrated in the parallelization). Internally uses numpy’s fft and ifft. Maybe translatable to use `Number Theoretic Transform (NTT) <https://github.com/Bulat-Ziganshin/FastECC>`__ instead of FFT.

Authors
-------
Expand Down
3 changes: 3 additions & 0 deletions TODO.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ Other TODO apart from Cython:
* Optimize pure python implementation by using _bytearray() instead of [] whenever possible (compare with changes done on the cython implementation)
* Pre-allocate bytearrays whenever possible in the pure-python implementation (like the cython implementation)
* Test and fix issues with galois fields smaller than 2^8.
* Try to implement NTT, especially using https://github.com/raeudigerRaeffi/generalizedReedSolomon which uses fft/ifft:
* BEST NTT tuto for RS with examples! https://tmo.jpl.nasa.gov/progress_report2/42-35/35K.PDF - The fast decoding of reed-solomon codes with number theoretic transform by Reed et al
* Implement a fast algorithm for large data encoding (and decoding), see [https://github.com/catid/leopard leopard-RS] for a FFT approach and compare with https://github.com/raeudigerRaeffi/generalizedReedSolomon or [https://github.com/Bulat-Ziganshin/FastECC FastECC] for a NTT approach and try to translate https://github.com/raeudigerRaeffi/generalizedReedSolomon to use NTT instead.

* Try to reproduce encoding and decoding using an external library, potentially faster and supporting both polynomials and matrices modulo n, such as flint: https://fredrikj.net/python-flint/nmod_poly.html and https://pypi.org/project/flint-py/#description

Expand Down

0 comments on commit c9ed990

Please sign in to comment.