M4RI 20250128
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 <math.h>
43#include <stdio.h>
44#include <stdlib.h>
45
46#if defined(__M4RI_HAVE_SSE2) && __M4RI_HAVE_SSE2
47#if !defined(__SSE2__) || !__SSE2__
48#error \
49 "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."
50#endif
51#endif
52
53#if defined(__cplusplus) && !defined(_MSC_VER)
54extern "C" {
55#endif
56
58#include <m4ri/djb.h>
59#include <m4ri/echelonform.h>
60#include <m4ri/graycode.h>
61#include <m4ri/io.h>
62#include <m4ri/mp.h>
63#include <m4ri/mzd.h>
64#include <m4ri/mzp.h>
65#include <m4ri/parity.h>
66#include <m4ri/ple.h>
67#include <m4ri/ple_russian.h>
68#include <m4ri/solve.h>
69#include <m4ri/strassen.h>
70#include <m4ri/triangular.h>
72
73#if defined(__cplusplus) && !defined(_MSC_VER)
74}
75#endif
76
77#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.