liberasurecode 1.6.3
Erasure Code API library
Loading...
Searching...
No Matches
Functions
liberasurecode_rs_vand.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <rs_galois.h>
#include <liberasurecode_rs_vand.h>
#include <unistd.h>
#include <fcntl.h>

Go to the source code of this file.

Functions

void print_matrix (int *matrix, int rows, int cols)
 
void square_matrix_multiply (int *m1, int *m2, int *prod, int n)
 
int is_identity_matrix (int *matrix, int n)
 
int * get_matrix_row (int *matrix, int row_idx, int num_cols)
 
void copy_row (int *from_matrix, int *to_matrix, int from_row_idx, int to_row_idx, int num_cols)
 
int is_missing (int *missing_idxs, int index_to_check)
 
int create_decoding_matrix (int *gen_matrix, int *dec_matrix, int *missing_idxs, int k, int m)
 
void init_liberasurecode_rs_vand (int k, int m)
 
void deinit_liberasurecode_rs_vand ()
 
int * create_non_systematic_vand_matrix (int k, int m)
 
void swap_matrix_rows (int *r1, int *r2, int num_cols)
 
void col_mult (int *matrix, int elem, int col_idx, int num_rows, int num_cols)
 
void row_mult (int *matrix, int elem, int row_idx, int num_rows, int num_cols)
 
void col_mult_and_add (int *matrix, int elem, int from_col, int to_col, int num_rows, int num_cols)
 
void row_mult_and_add (int *matrix, int elem, int from_row, int to_row, int num_rows, int num_cols)
 
int get_non_zero_diagonal (int *matrix, int row, int num_rows, int num_cols)
 
int * make_systematic_matrix (int k, int m)
 
void free_systematic_matrix (int *matrix)
 
int gaussj_inversion (int *matrix, int *inverse, int n)
 
void region_xor (char *from_buf, char *to_buf, int blocksize)
 
void region_multiply (char *from_buf, char *to_buf, int mult, int xor, int blocksize)
 
void region_dot_product (char **from_bufs, char *to_buf, int *matrix_row, int num_entries, int blocksize)
 
int liberasurecode_rs_vand_encode (int *generator_matrix, char **data, char **parity, int k, int m, int blocksize)
 
char ** get_first_k_available (char **data, char **parity, int *missing, int k)
 
int liberasurecode_rs_vand_decode (int *generator_matrix, char **data, char **parity, int k, int m, int *missing, int blocksize, int rebuild_parity)
 
int liberasurecode_rs_vand_reconstruct (int *generator_matrix, char **data, char **parity, int k, int m, int *missing, int destination_idx, int blocksize)
 

Function Documentation

◆ col_mult()

void col_mult ( int *  matrix,
int  elem,
int  col_idx,
int  num_rows,
int  num_cols 
)

Definition at line 184 of file liberasurecode_rs_vand.c.

References rs_galois_mult().

Referenced by make_systematic_matrix().

◆ col_mult_and_add()

void col_mult_and_add ( int *  matrix,
int  elem,
int  from_col,
int  to_col,
int  num_rows,
int  num_cols 
)

Definition at line 204 of file liberasurecode_rs_vand.c.

References rs_galois_mult().

Referenced by make_systematic_matrix().

◆ copy_row()

void copy_row ( int *  from_matrix,
int *  to_matrix,
int  from_row_idx,
int  to_row_idx,
int  num_cols 
)

Definition at line 99 of file liberasurecode_rs_vand.c.

References get_matrix_row().

Referenced by create_decoding_matrix().

◆ create_decoding_matrix()

int create_decoding_matrix ( int *  gen_matrix,
int *  dec_matrix,
int *  missing_idxs,
int  k,
int  m 
)

◆ create_non_systematic_vand_matrix()

int * create_non_systematic_vand_matrix ( int  k,
int  m 
)

Definition at line 145 of file liberasurecode_rs_vand.c.

References rs_galois_mult().

Referenced by make_systematic_matrix().

◆ deinit_liberasurecode_rs_vand()

void deinit_liberasurecode_rs_vand ( )

Definition at line 140 of file liberasurecode_rs_vand.c.

References rs_galois_deinit_tables().

◆ free_systematic_matrix()

void free_systematic_matrix ( int *  matrix)

Definition at line 292 of file liberasurecode_rs_vand.c.

◆ gaussj_inversion()

int gaussj_inversion ( int *  matrix,
int *  inverse,
int  n 
)

◆ get_first_k_available()

char ** get_first_k_available ( char **  data,
char **  parity,
int *  missing,
int  k 
)

◆ get_matrix_row()

int * get_matrix_row ( int *  matrix,
int  row_idx,
int  num_cols 
)

Definition at line 94 of file liberasurecode_rs_vand.c.

Referenced by copy_row().

◆ get_non_zero_diagonal()

int get_non_zero_diagonal ( int *  matrix,
int  row,
int  num_rows,
int  num_cols 
)

Definition at line 227 of file liberasurecode_rs_vand.c.

Referenced by gaussj_inversion(), and make_systematic_matrix().

◆ init_liberasurecode_rs_vand()

void init_liberasurecode_rs_vand ( int  k,
int  m 
)

Definition at line 135 of file liberasurecode_rs_vand.c.

References rs_galois_init_tables().

◆ is_identity_matrix()

int is_identity_matrix ( int *  matrix,
int  n 
)

Definition at line 73 of file liberasurecode_rs_vand.c.

◆ is_missing()

int is_missing ( int *  missing_idxs,
int  index_to_check 
)

Definition at line 107 of file liberasurecode_rs_vand.c.

Referenced by create_decoding_matrix(), and index_of_connected_parity().

◆ liberasurecode_rs_vand_decode()

int liberasurecode_rs_vand_decode ( int *  generator_matrix,
char **  data,
char **  parity,
int  k,
int  m,
int *  missing,
int  blocksize,
int  rebuild_parity 
)

◆ liberasurecode_rs_vand_encode()

int liberasurecode_rs_vand_encode ( int *  generator_matrix,
char **  data,
char **  parity,
int  k,
int  m,
int  blocksize 
)

Definition at line 401 of file liberasurecode_rs_vand.c.

References region_dot_product().

◆ liberasurecode_rs_vand_reconstruct()

int liberasurecode_rs_vand_reconstruct ( int *  generator_matrix,
char **  data,
char **  parity,
int  k,
int  m,
int *  missing,
int  destination_idx,
int  blocksize 
)

◆ make_systematic_matrix()

int * make_systematic_matrix ( int  k,
int  m 
)

◆ print_matrix()

void print_matrix ( int *  matrix,
int  rows,
int  cols 
)

Definition at line 44 of file liberasurecode_rs_vand.c.

◆ region_dot_product()

void region_dot_product ( char **  from_bufs,
char *  to_buf,
int *  matrix_row,
int  num_entries,
int  blocksize 
)

◆ region_multiply()

void region_multiply ( char *  from_buf,
char *  to_buf,
int  mult,
int  xor,
int  blocksize 
)

Definition at line 358 of file liberasurecode_rs_vand.c.

References rs_galois_mult().

Referenced by region_dot_product().

◆ region_xor()

void region_xor ( char *  from_buf,
char *  to_buf,
int  blocksize 
)

Definition at line 340 of file liberasurecode_rs_vand.c.

Referenced by region_dot_product().

◆ row_mult()

void row_mult ( int *  matrix,
int  elem,
int  row_idx,
int  num_rows,
int  num_cols 
)

Definition at line 194 of file liberasurecode_rs_vand.c.

References rs_galois_mult().

Referenced by gaussj_inversion().

◆ row_mult_and_add()

void row_mult_and_add ( int *  matrix,
int  elem,
int  from_row,
int  to_row,
int  num_rows,
int  num_cols 
)

Definition at line 215 of file liberasurecode_rs_vand.c.

References rs_galois_mult().

Referenced by gaussj_inversion().

◆ square_matrix_multiply()

void square_matrix_multiply ( int *  m1,
int *  m2,
int *  prod,
int  n 
)

Definition at line 58 of file liberasurecode_rs_vand.c.

References rs_galois_mult().

◆ swap_matrix_rows()

void swap_matrix_rows ( int *  r1,
int *  r2,
int  num_cols 
)

Definition at line 172 of file liberasurecode_rs_vand.c.

Referenced by gaussj_inversion(), and make_systematic_matrix().