M4RI  20200125
m4ri.h
Go to the documentation of this file.
1 
8 /******************************************************************************
9 *
10 * M4RI: Linear Algebra over GF(2)
11 *
12 * Copyright (C) 2007 Gregory Bard <gregory.bard@ieee.org>
13 * Copyright (C) 2007,2008 Martin Albrecht <malb@informatik.uni-bremen.de>
14 *
15 * Distributed under the terms of the GNU General Public License (GPL)
16 * version 2 or higher.
17 *
18 * This code is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
22 *
23 * The full text of the GPL is available at:
24 *
25 * http://www.gnu.org/licenses/
26 ******************************************************************************/
27 
28 #ifndef M4RI_M4RI_H
29 #define M4RI_M4RI_H
30 
42 #include <stdio.h>
43 #include <stdlib.h>
44 #include <math.h>
45 
46 #if defined(__M4RI_HAVE_SSE2) && __M4RI_HAVE_SSE2
47 # if !defined(__SSE2__) || !__SSE2__
48 # error "Your current compiler and / or CFLAGS setting doesn't allow SSE2 code. Please change that or these to the setting(s) you used when compiling M4RI."
49 # endif
50 #endif
51 
52 #if defined(__cplusplus) && !defined (_MSC_VER)
53 extern "C" {
54 #endif
55 
56 #include <m4ri/mzp.h>
57 #include <m4ri/mzd.h>
58 #include <m4ri/brilliantrussian.h>
59 #include <m4ri/strassen.h>
60 #include <m4ri/mp.h>
61 #include <m4ri/graycode.h>
62 #include <m4ri/parity.h>
63 #include <m4ri/triangular.h>
65 #include <m4ri/ple.h>
66 #include <m4ri/ple_russian.h>
67 #include <m4ri/solve.h>
68 #include <m4ri/echelonform.h>
69 #include <m4ri/io.h>
70 #include <m4ri/djb.h>
71 
72 #if defined(__cplusplus) && !defined (_MSC_VER)
73 }
74 #endif
75 
76 #endif // M4RI_M4RI_H
M4RI and M4RM.
Dan Bernstein's "Optimizing linear maps mod 2".
Row echelon forms.
Gray code implementation.
Input/output routines for matrices.
multicore matrix operations
Dense matrices over GF(2) represented as a bit field.
Permutation matrices.
Compute the parity of 64 words in parallel.
PLE and PLUQ matrix decomposition routines.
PLE and PLUQ factorization using Gray codes.
System solving with matrix routines.
Matrix operations using Strassen's formulas including Winograd's improvements.
Triangular system solving with Matrix routines.
TRSM and TRTRI via Gray code tables.