forked from barak/LDPC-codes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrcode.h
57 lines (45 loc) · 2.14 KB
/
rcode.h
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
47
48
49
50
51
52
53
54
55
56
57
/* RCODE.H - Parity chk and gen matrix storage, and procedures to read them.*/
/* Copyright (c) 1995-2012 by Radford M. Neal.
*
* 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.
*/
typedef struct
{
int M; /* Number of rows in parity check matrix */
int N; /* Number of columns in parity check matrix */
} pchk_dimensions;
typedef struct
{
pchk_dimensions dim;
char type; /* Type of generator matrix representation (s/d/m) */
int *cols; /* Ordering of columns in generator matrix */
union {
struct {
mod2sparse *L; /* Sparse LU decomposition, if type=='s' */
mod2sparse *U; /* Sparse LU decomposition, if type=='s' */
int *rows; /* Ordering of rows in generator matrix (type 's') */
} sparse;
mod2dense *G; /* Dense or mixed represenation of generator matrix, if type=='d' or type=='m' */
} data;
} gen_matrix;
/* VARIABLES HOLDING DATA READ. These are declared for real in rcode.c. */
// extern mod2sparse *H; /* Parity check matrix */
// extern int M; /* Number of rows in parity check matrix */
// extern int N; /* Number of columns in parity check matrix */
// extern char type; /* Type of generator matrix representation */
// extern int *cols; /* Ordering of columns in generator matrix */
// extern mod2sparse *L, *U; /* Sparse LU decomposition, if type=='s' */
// extern int *rows; /* Ordering of rows in generator matrix (type 's') */
// extern mod2dense *G; /* Dense or mixed representation of generator matrix,
// if type=='d' or type=='m' */
/* PROCEDURES FOR READING DATA. */
mod2sparse *read_pchk (char *, pchk_dimensions *dim);
void read_gen (char *, int, int, gen_matrix *gm);