# 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_get_state   rand_uniopen   rand_pickd        rand_logistic
>     rand_use_state                  rand_pickf        rand_cauchy
>                                     rand_poisson      rand_gamma
>                                     rand_permutation  rand_exp
>                                                       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