-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathLICENSE_LDPC
46 lines (41 loc) · 2.23 KB
/
LICENSE_LDPC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Except as otherwise specified, all program code and documentation in this
directory is copyright (c) 1995-2012 by Radford M. Neal and danimoh 2017.
LDPC.js and the compiled code is licensed under MIT license.
Original license for the .c and .h files and the Makefile:
Permission is granted for anyone to copy, use, modify, and distribute
these programs and accompanying documents for any purpose, provided
this copyright notice is retained and prominently displayed, and note
is made of any changes made to these programs. These programs and
documents are distributed without any warranty, express or implied.
As the programs were written for research purposes only, they have not
been tested to the degree that would be advisable in any important
application. All use of these programs is entirely at the user's own
risk.
Changes to the original version of Neal 2012:
- rearrangement of some code
- Free memory that's not needed anymore. Note that freeing the memory is
important even if the execution terminates as the instance is kept alive
(emcc option NO_EXIT_RUNTIME=1). In case of error however, still memory
can leak as in this case the method only frees it's own memory, arguments
and globals but not the memory of parent methods.
- change the programs in a way that they don't input and output files
but work on buffers.
- replace make_method enums by ints
- replace channel enum by ints
- strip away all the code that doesn't have to do with matrix
representation, matrix creation, encoding, decoding and helper files
- adapt the make file for compilation to webassembly and asm.js
- removed abandon_number and abandon_when from LU decomposition
- added include guards
- remove support for dense and mixed matrix representation
- remove support for decoding by enumerating all possible codewords
- remove support for printing decode steps to the console
- remove support for encoding / decoding multiple blocks at once.
- remove global variables in dec.h
- replace the random generator by xorshift64*
- removed support for irregular column weight distribution
- add a RELEASE flag to print less debug info in release mode
TODO:
- reduce buffer size used by emcc Module and autogrow
- cache H and G
- maybe use RA LDPC matrices or use almost linear encoding