M4RIE
20250128
Toggle main menu visibility
Loading...
Searching...
No Matches
trsm.h
Go to the documentation of this file.
1
7
8
#ifndef TRSM_H
9
#define TRSM_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 <m4rie/mzed.h>
31
#include <m4rie/mzd_slice.h>
32
33
#define MZED_TRSM_CUTOFF 512
34
44
45
void
_mzed_trsm_upper_left
(
const
mzed_t
*U,
mzed_t
*B,
const
rci_t cutoff);
46
55
56
void
mzed_trsm_upper_left_naive
(
const
mzed_t
*U,
mzed_t
*B);
57
66
67
static
inline
void
mzed_trsm_upper_left
(
const
mzed_t
*U,
mzed_t
*B) {
68
_mzed_trsm_upper_left
(U, B,
MZED_TRSM_CUTOFF
);
69
}
70
80
81
void
_mzd_slice_trsm_upper_left
(
const
mzd_slice_t
*U,
mzd_slice_t
*B,
const
rci_t cutoff);
82
91
92
void
mzd_slice_trsm_upper_left_naive
(
const
mzd_slice_t
*U,
mzd_slice_t
*B);
93
102
103
static
inline
void
mzd_slice_trsm_upper_left
(
const
mzd_slice_t
*U,
mzd_slice_t
*B) {
104
_mzd_slice_trsm_upper_left
(U, B,
MZED_TRSM_CUTOFF
);
105
}
106
116
117
void
_mzed_trsm_lower_left
(
const
mzed_t
*L,
mzed_t
*B,
const
rci_t cutoff);
118
127
128
void
mzed_trsm_lower_left_naive
(
const
mzed_t
*L,
mzed_t
*B);
129
138
139
static
inline
void
mzed_trsm_lower_left
(
const
mzed_t
*L,
mzed_t
*B) {
140
_mzed_trsm_lower_left
(L, B,
MZED_TRSM_CUTOFF
);
141
}
142
152
153
void
_mzd_slice_trsm_lower_left
(
const
mzd_slice_t
*L,
mzd_slice_t
*B,
const
rci_t cutoff);
154
163
164
void
mzd_slice_trsm_lower_left_naive
(
const
mzd_slice_t
*L,
mzd_slice_t
*B);
165
174
175
static
inline
void
mzd_slice_trsm_lower_left
(
const
mzd_slice_t
*L,
mzd_slice_t
*B) {
176
_mzd_slice_trsm_lower_left
(L, B,
MZED_TRSM_CUTOFF
);
177
}
178
179
180
181
182
#endif
//TRSM_H
mzd_slice_trsm_lower_left
static void mzd_slice_trsm_lower_left(const mzd_slice_t *L, mzd_slice_t *B)
Definition
trsm.h:175
_mzed_trsm_lower_left
void _mzed_trsm_lower_left(const mzed_t *L, mzed_t *B, const rci_t cutoff)
mzed_trsm_lower_left_naive
void mzed_trsm_lower_left_naive(const mzed_t *L, mzed_t *B)
Definition
trsm.c:19
_mzed_trsm_upper_left
void _mzed_trsm_upper_left(const mzed_t *U, mzed_t *B, const rci_t cutoff)
mzed_trsm_upper_left
static void mzed_trsm_upper_left(const mzed_t *U, mzed_t *B)
Definition
trsm.h:67
mzed_trsm_upper_left_naive
void mzed_trsm_upper_left_naive(const mzed_t *U, mzed_t *B)
Definition
trsm.c:5
mzd_slice_trsm_upper_left
static void mzd_slice_trsm_upper_left(const mzd_slice_t *U, mzd_slice_t *B)
Definition
trsm.h:103
_mzd_slice_trsm_upper_left
void _mzd_slice_trsm_upper_left(const mzd_slice_t *U, mzd_slice_t *B, const rci_t cutoff)
mzd_slice_trsm_lower_left_naive
void mzd_slice_trsm_lower_left_naive(const mzd_slice_t *L, mzd_slice_t *B)
Definition
trsm.c:47
mzd_slice_trsm_upper_left_naive
void mzd_slice_trsm_upper_left_naive(const mzd_slice_t *U, mzd_slice_t *B)
Definition
trsm.c:33
mzed_trsm_lower_left
static void mzed_trsm_lower_left(const mzed_t *L, mzed_t *B)
Definition
trsm.h:139
_mzd_slice_trsm_lower_left
void _mzd_slice_trsm_lower_left(const mzd_slice_t *L, mzd_slice_t *B, const rci_t cutoff)
mzd_slice_t
Dense matrices over represented as slices of matrices over .
Definition
mzd_slice.h:56
mzed_t
Dense matrices over represented as packed matrices.
Definition
mzed.h:59
MZED_TRSM_CUTOFF
#define MZED_TRSM_CUTOFF
Definition
trsm.h:33
Generated on
for M4RIE by
1.17.0