GNU Radio Manual and C++ API Reference  3.8.1.0
The Free & Open Software Radio Ecosystem
GF2Mat Class Reference

#include <gnuradio/fec/gf2mat.h>

Public Member Functions

 GF2Mat ()
 Default constructor. More...
 
 GF2Mat (int m, int n)
 Construct an M x N matrix with all 0 entries. More...
 
 GF2Mat (alist _list)
 Loads the matrix from alist _list. More...
 
 GF2Mat (std::vector< std::vector< char >> X)
 Initializes the class from a 2-D vector X. More...
 
int get_M ()
 Returns the variable M. More...
 
int get_N ()
 Returns the variable N. More...
 
void set_element (int i, int j, char val)
 Set the element at (i, j) coordinate to val. More...
 
char get_element (int i, int j)
 Returns the element at coordinate (i, j) More...
 
GF2Vec get_row (int i)
 Returns the ith row. More...
 
GF2Vec get_col (int i)
 Returns the ith column. More...
 
GF2Vec operator[] (int i)
 Returns the ith row. More...
 
void print_matrix ()
 Prints the matrix H. More...
 
void set_col (int i, GF2Vec vec)
 Sets the ith column with the given vector. More...
 
void set_row (int i, GF2Vec vec)
 Sets the ith row with the given vector. More...
 
void swap_cols (int i, int j)
 Swaps columns i and j. More...
 
void add_cols (int i, int j)
 Adds column j to i and replace i with the sum. More...
 
void add_rows (int i, int j)
 Add row j to i and replace j with the sum. More...
 
std::vector< std::vector< char > > get_H ()
 Returns the variable H. More...
 
GF2Mat get_G (std::vector< int > &p, int &rank)
 Obtains an equivalent representation of H for encoding. More...
 

Constructor & Destructor Documentation

◆ GF2Mat() [1/4]

◆ GF2Mat() [2/4]

GF2Mat::GF2Mat ( int  m,
int  n 
)

Construct an M x N matrix with all 0 entries.

◆ GF2Mat() [3/4]

GF2Mat::GF2Mat ( alist  _list)

Loads the matrix from alist _list.

◆ GF2Mat() [4/4]

GF2Mat::GF2Mat ( std::vector< std::vector< char >>  X)

Initializes the class from a 2-D vector X.

Member Function Documentation

◆ add_cols()

void GF2Mat::add_cols ( int  i,
int  j 
)

Adds column j to i and replace i with the sum.

Referenced by GF2Mat().

◆ add_rows()

void GF2Mat::add_rows ( int  i,
int  j 
)

Add row j to i and replace j with the sum.

Referenced by GF2Mat().

◆ get_col()

GF2Vec GF2Mat::get_col ( int  i)

Returns the ith column.

Referenced by GF2Mat().

◆ get_element()

char GF2Mat::get_element ( int  i,
int  j 
)

Returns the element at coordinate (i, j)

Referenced by GF2Mat().

◆ get_G()

GF2Mat GF2Mat::get_G ( std::vector< int > &  p,
int &  rank 
)

Obtains an equivalent representation of H for encoding.

For encoding a G matrix in the form [I P] obtained from the parity matrix H, by (a) Column permutations, (b) Row additions and (c) Row permutations. Details of encoding is given in section A.1 of the reference:

  • "Modern Coding Theory", T Richardson and R Urbanke.
Parameters
pThe column permutation during this operation.
rankThe rank of the matrix.

Referenced by GF2Mat().

◆ get_H()

std::vector<std::vector<char> > GF2Mat::get_H ( )

Returns the variable H.

Referenced by GF2Mat().

◆ get_M()

int GF2Mat::get_M ( )

Returns the variable M.

Referenced by GF2Mat().

◆ get_N()

int GF2Mat::get_N ( )

Returns the variable N.

Referenced by GF2Mat().

◆ get_row()

GF2Vec GF2Mat::get_row ( int  i)

Returns the ith row.

Referenced by GF2Mat().

◆ operator[]()

GF2Vec GF2Mat::operator[] ( int  i)

Returns the ith row.

Referenced by GF2Mat().

◆ print_matrix()

void GF2Mat::print_matrix ( )

Prints the matrix H.

Referenced by GF2Mat().

◆ set_col()

void GF2Mat::set_col ( int  i,
GF2Vec  vec 
)

Sets the ith column with the given vector.

Referenced by GF2Mat().

◆ set_element()

void GF2Mat::set_element ( int  i,
int  j,
char  val 
)

Set the element at (i, j) coordinate to val.

Referenced by GF2Mat().

◆ set_row()

void GF2Mat::set_row ( int  i,
GF2Vec  vec 
)

Sets the ith row with the given vector.

Referenced by GF2Mat().

◆ swap_cols()

void GF2Mat::swap_cols ( int  i,
int  j 
)

Swaps columns i and j.

Referenced by GF2Mat().


The documentation for this class was generated from the following file: