Modules Used in LDPC Programs

You may need to familiarize yourself with the modules documented here in order to modify the LDPC programs. These modules may also be useful for other purposes.

Click on the title of a module below for general information, or on specific routines for detailed documentation.

Dense modulo-2 matrix routines:

Dimension macros:    mod2dense_rows  mod2dense_cols

Allocation:          Copy/Clear:         Input/Output:    Elementary ops:

mod2dense_allocate   mod2dense_clear     mod2dense_print  mod2dense_get
mod2dense_free       mod2dense_copy      mod2dense_write  mod2dense_set
                     mod2dense_copyrows  mod2dense_read   mod2dense_flip
                     mod2dense_copycols

Matrix arithmetic:   Matrix inversion:

mod2dense_transpose  mod2dense_invert
mod2dense_add        mod2dense_forcibly_invert
mod2dense_multiply   mod2dense_invert_selected
mod2dense_equal

Sparse modulo-2 matrix routines:

Dimension macros:    mod2sparse_rows  mod2sparse_cols

Traversal macros:    mod2sparse_first_in_row  mod2sparse_next_in_row  ...

Allocation:          Copy/Clear:         Input/Output:     Elementary ops:

mod2sparse_allocate  mod2sparse_clear    mod2sparse_print  mod2sparse_find
mod2sparse_free      mod2sparse_copy     mod2sparse_write  mod2sparse_insert
                     mod2sparse_copyrows mod2sparse_read   mod2sparse_delete
                     mod2sparse_copycols

Matrix arithmetic:   Row/Column ops:       LU decomposition:

mod2sparse_transpose mod2sparse_count_row  mod2sparse_decomp
mod2sparse_add       mod2sparse_count_col  mod2sparse_forward_sub
mod2sparse_multiply  mod2sparse_add_row    mod2sparse_backward_sub
mod2sparse_mulvec    mod2sparse_add_col
mod2sparse_equal
Discussion of sparse LU decomposition methods.

Modulo-2 matrix sparse/dense conversion:

mod2sparse_to_dense
mod2dense_to_sparse

Random variate generation routines:

Set/Get state:   Uniform:       Discrete:    Continuous:

rand_seed        rand_uniform   rand_int     rand_gaussian  rand_gamma
rand_get_state   rand_uniopen   rand_pickd   rand_logistic  rand_exp
rand_use_state                  rand_pickf   rand_cauchy    rand_beta

Each of the modules above has a test program, called module-test. These programs are compiled by the command

make tests 
See the source files for these test programs for further information.
Back to index for LDPC software