M4RIE
20250128
Toggle main menu visibility
Loading...
Searching...
No Matches
ple.h
Go to the documentation of this file.
1
7
8
#ifndef M4RIE_PLE_H
9
#define M4RIE_PLE_H
10
11
/******************************************************************************
12
*
13
* M4RIE: Linear Algebra over GF(2^e)
14
*
15
* Copyright (C) 2011 Martin Albrecht <martinralbrecht@googlemail.com>
16
*
17
* Distributed under the terms of the GNU General Public License (GEL)
18
* version 2 or higher.
19
*
20
* This code is distributed in the hope that it will be useful,
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23
* General Public License for more details.
24
*
25
* The full text of the GPL is available at:
26
*
27
* http://www.gnu.org/licenses/
28
******************************************************************************/
29
30
#include <m4ri/m4ri.h>
31
#include <m4rie/mzed.h>
32
#include <m4rie/mzd_slice.h>
33
#include <m4rie/conversion.h>
34
54
55
rci_t
mzed_ple_naive
(
mzed_t
*A, mzp_t *P, mzp_t *Q);
56
81
82
rci_t
_mzd_slice_ple
(
mzd_slice_t
*A, mzp_t *P, mzp_t *Q, rci_t cutoff);
83
103
104
static
inline
rci_t
mzd_slice_ple
(
mzd_slice_t
*A, mzp_t *P, mzp_t *Q) {
105
assert(P->length == A->
nrows
);
106
assert(Q->length == A->
ncols
);
107
return
_mzd_slice_ple
(A, P, Q, 0);
108
}
109
124
125
rci_t
_mzd_slice_pluq
(
mzd_slice_t
*A, mzp_t *P, mzp_t *Q, rci_t cutoff);
126
140
141
static
inline
rci_t
mzd_slice_pluq
(
mzd_slice_t
*A, mzp_t *P, mzp_t *Q) {
142
assert(P->length == A->
nrows
);
143
assert(Q->length == A->
ncols
);
144
return
_mzd_slice_pluq
(A, P, Q, 0);
145
}
146
147
172
173
rci_t
_mzed_ple
(
mzed_t
*A, mzp_t *P, mzp_t *Q, rci_t cutoff);
174
178
179
#define __M4RIE_PLE_CUTOFF (__M4RI_CPU_L2_CACHE<<2)
180
202
203
static
inline
rci_t
mzed_ple
(
mzed_t
*A, mzp_t *P, mzp_t *Q) {
204
return
_mzed_ple
(A, P, Q,
__M4RIE_PLE_CUTOFF
);
205
}
206
207
#endif
//M4RIE_PLE_H
mzd_slice_pluq
static rci_t mzd_slice_pluq(mzd_slice_t *A, mzp_t *P, mzp_t *Q)
PLUQ decomposition: .
Definition
ple.h:141
_mzed_ple
rci_t _mzed_ple(mzed_t *A, mzp_t *P, mzp_t *Q, rci_t cutoff)
PLE decomposition: .
Definition
ple.c:74
_mzd_slice_ple
rci_t _mzd_slice_ple(mzd_slice_t *A, mzp_t *P, mzp_t *Q, rci_t cutoff)
PLE decomposition: .
Definition
ple.c:89
mzd_slice_ple
static rci_t mzd_slice_ple(mzd_slice_t *A, mzp_t *P, mzp_t *Q)
PLE decomposition: .
Definition
ple.h:104
_mzd_slice_pluq
rci_t _mzd_slice_pluq(mzd_slice_t *A, mzp_t *P, mzp_t *Q, rci_t cutoff)
PLUQ decomposition: .
Definition
ple.c:183
mzed_ple
static rci_t mzed_ple(mzed_t *A, mzp_t *P, mzp_t *Q)
PLE decomposition: .
Definition
ple.h:203
mzed_ple_naive
rci_t mzed_ple_naive(mzed_t *A, mzp_t *P, mzp_t *Q)
PLE decomposition: .
Definition
ple.c:25
__M4RIE_PLE_CUTOFF
#define __M4RIE_PLE_CUTOFF
Definition
ple.h:179
mzd_slice_t
Dense matrices over represented as slices of matrices over .
Definition
mzd_slice.h:56
mzd_slice_t::nrows
rci_t nrows
Definition
mzd_slice.h:58
mzd_slice_t::ncols
rci_t ncols
Definition
mzd_slice.h:59
mzed_t
Dense matrices over represented as packed matrices.
Definition
mzed.h:59
Generated on
for M4RIE by
1.17.0