X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=fec.c;h=d097b77de836248d79142348f254dd4c3ef57817;hp=043a1f21869617869d2c6d0573bf71777611e2a3;hb=df6606e438a34c7bfc325e5f320843d1e97d3f7a;hpb=c19a0921ea3a8cd9d0e35cb2b09748c3f9f607ef diff --git a/fec.c b/fec.c index 043a1f21..d097b77d 100644 --- a/fec.c +++ b/fec.c @@ -1,5 +1,6 @@ +/** \file fec.c Forward error correction based on Vandermonde matrices. */ + /* - * fec.c -- forward error correction based on Vandermonde matrices * 980624 * (C) 1997-98 Luigi Rizzo (luigi@iet.unipi.it) * @@ -32,6 +33,8 @@ * OF SUCH DAMAGE. */ +#include + #include "para.h" #include "error.h" #include "portable_io.h" @@ -214,7 +217,7 @@ static void matmul(unsigned char *a, unsigned char *b, unsigned char *c, * Compute the inverse of a matrix. * * k is the size of the matrix 'src' (Gauss-Jordan, adapted from Numerical - * Recipes in C). Returns -1 if 'src' is singular. + * Recipes in C). Returns negative on errors. */ static int invert_mat(unsigned char *src, int k) { @@ -394,8 +397,13 @@ static void init_fec(void) fec_initialized = 1; } +/** Internal FEC parameters. */ struct fec_parms { - int k, n; /* parameters of the code */ + /** Number of data slices. */ + int k; + /** Number of slices (including redundant slices). */ + int n; + /** The encoding matrix, computed by init_fec(). */ unsigned char *enc_matrix; };