diff options
author | Kevin Greenan <kmgreen2@gmail.com> | 2015-05-19 08:59:46 -0700 |
---|---|---|
committer | Kevin Greenan <kmgreen2@gmail.com> | 2015-06-18 12:31:17 -0700 |
commit | bf91980e29ff3ff9e898441dc5533d43c2abae34 (patch) | |
tree | ca4af71b06d1eee923730c37f62ccc0f0998a8cb /include/rs_vand/rs_vand_internal.h | |
parent | f3a99e81e997cf0d8db47056b36ca2c2e3beee8f (diff) | |
download | liberasurecode-bf91980e29ff3ff9e898441dc5533d43c2abae34.tar.gz |
Adding new built-in backend for RS Vandermonde
This is meant to be used in cases where ISA-L and Jerasure cannot be used.
Diffstat (limited to 'include/rs_vand/rs_vand_internal.h')
-rw-r--r-- | include/rs_vand/rs_vand_internal.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/rs_vand/rs_vand_internal.h b/include/rs_vand/rs_vand_internal.h new file mode 100644 index 0000000..c545333 --- /dev/null +++ b/include/rs_vand/rs_vand_internal.h @@ -0,0 +1,44 @@ +/* + * Copyright 2015 Kevin M Greenan + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY + * THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * vi: set noai tw=79 ts=4 sw=4: + */ + +int* create_non_systematic_vand_matrix(int k, int m); +void free_systematic_matrix(int *matrix); +int* make_systematic_matrix(int k, int m); +int is_missing(int *missing_idxs, int index_to_check); +int gaussj_inversion(int *matrix, int *inverse, int n); +int get_non_zero_diagonal(int *matrix, int row, int num_rows, int num_cols); +int rs_galois_div(int x, int y); +int rs_galois_inverse(int x); +int rs_galois_mult(int x, int y); +void init_rs_vand(int k, int m); +void deinit_rs_vand(); +void print_matrix(int *matrix, int rows, int cols); +void square_matrix_multiply(int *m1, int *m2, int *prod, int n); +int create_decoding_matrix(int *gen_matrix, int *dec_matrix, int *missing_idxs, int k, int m); +int is_identity_matrix(int *matrix, int n); +int internal_rs_vand_encode(int *generator_matrix, char **data, char **parity, int k, int m, int blocksize); +int internal_rs_vand_decode(int *generator_matrix, char **data, char **parity, int k, int m, int *missing, int blocksize, int rebuild_parity); +int internal_rs_vand_reconstruct(int *generator_matrix, char **data, char **parity, int k, int m, int *missing, int destination_idx, int blocksize); |