M4RI
1.0.1
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
strassen.h
Go to the documentation of this file.
1
11
#ifndef M4RI_STRASSEN_H
12
#define M4RI_STRASSEN_H
13
14
/*******************************************************************
15
*
16
* M4RI: Linear Algebra over GF(2)
17
*
18
* Copyright (C) 2008 Martin Albrecht <M.R.Albrecht@rhul.ac.uk>
19
* Copyright (C) 2008 Clement Pernet <pernet@math.washington.edu>
20
*
21
* Distributed under the terms of the GNU General Public License (GPL)
22
* version 2 or higher.
23
*
24
* This code is distributed in the hope that it will be useful,
25
* but WITHOUT ANY WARRANTY; without even the implied warranty of
26
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27
* General Public License for more details.
28
*
29
* The full text of the GPL is available at:
30
*
31
* http://www.gnu.org/licenses/
32
*
33
********************************************************************/
34
35
#include <math.h>
36
#include <
m4ri/mzd.h
>
37
#include <
m4ri/brilliantrussian.h
>
38
52
mzd_t
*mzd_mul(
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
cutoff);
53
68
mzd_t
*mzd_addmul(
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
cutoff);
69
88
mzd_t
*_mzd_mul_even(
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
cutoff);
89
109
mzd_t
*_mzd_addmul_even(
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
cutoff);
110
126
mzd_t
*_mzd_addmul (
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
cutoff);
127
136
mzd_t
*_mzd_addmul_weird_weird (
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B);
137
146
mzd_t
*_mzd_addmul_weird_even (
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
cutoff);
147
156
mzd_t
*_mzd_addmul_even_weird (
mzd_t
*C,
mzd_t
const
*A,
mzd_t
const
*B,
int
cutoff);
157
163
#ifndef __M4RI_STRASSEN_MUL_CUTOFF
164
#define __M4RI_STRASSEN_MUL_CUTOFF MIN(((int)sqrt((double)(4 * __M4RI_CPU_L3_CACHE))), 4096)
165
#endif
166
167
#endif // M4RI_STRASSEN_H
Generated on Wed Jan 2 2013 04:35:37 for M4RI by
1.8.1.2