M4RI
1.0.1
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
brilliantrussian.h
Go to the documentation of this file.
1
13
#ifndef M4RI_BRILLIANTRUSSIAN_H
14
#define M4RI_BRILLIANTRUSSIAN_H
15
16
/*******************************************************************
17
*
18
* M4RI: Linear Algebra over GF(2)
19
*
20
* Copyright (C) 2007, 2008 Gregory Bard <bard@fordham.edu>
21
* Copyright (C) 2008-2010 Martin Albrecht <martinralbrecht@googlemail.com>
22
*
23
* Distributed under the terms of the GNU General Public License (GPL)
24
* version 2 or higher.
25
*
26
* This code is distributed in the hope that it will be useful,
27
* but WITHOUT ANY WARRANTY; without even the implied warranty of
28
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
29
* General Public License for more details.
30
*
31
* The full text of the GPL is available at:
32
*
33
* http://www.gnu.org/licenses/
34
*
35
********************************************************************/
36
37
#include <math.h>
38
#include <string.h>
39
#include <stdlib.h>
40
41
#include <
m4ri/mzd.h
>
42
#include <
m4ri/mzp.h
>
43
58
void
mzd_make_table(
mzd_t
const
*M,
rci_t
r,
rci_t
c,
int
k,
mzd_t
*T,
rci_t
*L);
59
78
void
mzd_process_rows(
mzd_t
*M,
rci_t
startrow,
rci_t
endrow,
rci_t
startcol,
int
k,
mzd_t
const
*T,
rci_t
const
*L);
79
97
void
mzd_process_rows2(
mzd_t
*M,
rci_t
startrow,
rci_t
endrow,
rci_t
startcol,
int
k,
mzd_t
const
*T0,
rci_t
const
*L0,
mzd_t
const
*T1,
rci_t
const
*L1);
98
118
void
mzd_process_rows3(
mzd_t
*M,
rci_t
startrow,
rci_t
endrow,
rci_t
startcol,
int
k,
119
mzd_t
const
*T0,
rci_t
const
*L0,
mzd_t
const
*T1,
rci_t
const
*L1,
120
mzd_t
const
*T2,
rci_t
const
*L2);
121
143
void
mzd_process_rows4(
mzd_t
*M,
rci_t
startrow,
rci_t
endrow,
rci_t
startcol,
int
k,
144
mzd_t
const
*T0,
rci_t
const
*L0,
mzd_t
const
*T1,
rci_t
const
*L1,
145
mzd_t
const
*T2,
rci_t
const
*L2,
mzd_t
const
*T3,
rci_t
const
*L3);
146
170
void
mzd_process_rows5(
mzd_t
*M,
rci_t
startrow,
rci_t
endrow,
rci_t
startcol,
int
k,
171
mzd_t
const
*T0,
rci_t
const
*L0,
mzd_t
const
*T1,
rci_t
const
*L1,
172
mzd_t
const
*T2,
rci_t
const
*L2,
mzd_t
const
*T3,
rci_t
const
*L3,
173
mzd_t
const
*T4,
rci_t
const
*L4);
174
200
void
mzd_process_rows6(
mzd_t
*M,
rci_t
startrow,
rci_t
endrow,
rci_t
startcol,
int
k,
201
mzd_t
const
*T0,
rci_t
const
*L0,
mzd_t
const
*T1,
rci_t
const
*L1,
202
mzd_t
const
*T2,
rci_t
const
*L2,
mzd_t
const
*T3,
rci_t
const
*L3,
203
mzd_t
const
*T4,
rci_t
const
*L4,
mzd_t
const
*T5,
rci_t
const
*L5);
204
229
rci_t
_mzd_echelonize_m4ri(
mzd_t
*A,
const
int
full,
int
k,
int
heuristic,
const
double
threshold);
230
242
void
mzd_top_echelonize_m4ri(
mzd_t
*M,
int
k);
243
259
rci_t
_mzd_top_echelonize_m4ri(
mzd_t
*A,
int
k,
rci_t
r,
rci_t
c,
rci_t
max_r);
260
273
mzd_t
*mzd_inv_m4ri(
mzd_t
*dst,
const
mzd_t
* src,
int
k);
274
292
mzd_t
*mzd_mul_m4rm(
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
k);
293
294
311
mzd_t
*mzd_addmul_m4rm(
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
k);
312
338
mzd_t
*_mzd_mul_m4rm(
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
k,
int
clear);
339
340
341
#endif // M4RI_BRILLIANTRUSSIAN_H
Generated on Mon Aug 19 2013 01:23:28 for M4RI by
1.8.4