#include <inttypes.h>
#include "matrix.h"
#include "x_array_list.h"
Go to the source code of this file.
Defines | |
#define | _TIFA_GAUSS_ELIM_H_ |
Functions | |
void | gaussian_elim (uint32_array_list_t *relations, binary_matrix_t *const matrix) |
Gaussian elimination on a binary_matrix_t . |
Definition in file gauss_elim.h.
#define _TIFA_GAUSS_ELIM_H_ |
Standard include guard.
Definition at line 43 of file gauss_elim.h.
void gaussian_elim | ( | uint32_array_list_t * | relations, | |
binary_matrix_t *const | matrix | |||
) |
Gaussian elimination on a binary_matrix_t
.
Performs a gaussian elimination on a binary_matrix_t
as described in the paper "A compact algorithm for Gaussian elimination over GF(2) implemented on highly parallel computers", by D. Parkinson and M. Wunderlich (Parallel Computing 1 (1984) 65-73).
Solutions (if any) of this linear system are stored in relations
where each entry is a uint32_array_t
containing the indexes of the rows (from the original matrix) composing a solution. In other words, for each entry, the sum of the indexed rows (from the original matrix) is a nul binary vector.
[in] | matrix | A pointer to the binary_matrix_t giving the linear system to solve. |
[out] | relations | A pointer to a uint32_array_list_t holding the solutions of the system, if any. |