M4RI 20200125
triangular.h
Go to the documentation of this file.
1
9#ifndef M4RI_TRSM_H
10#define M4RI_TRSM_H
11
12/*******************************************************************
13*
14* M4RI: Linear Algebra over GF(2)
15*
16* Copyright (C) 2008 Clement Pernet <clement.pernet@gmail.com>
17*
18* Distributed under the terms of the GNU General Public License (GPL)
19* version 2 or higher.
20*
21* This code is distributed in the hope that it will be useful,
22* but WITHOUT ANY WARRANTY; without even the implied warranty of
23* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24* General Public License for more details.
25*
26* The full text of the GPL is available at:
27*
28* http://www.gnu.org/licenses/
29*
30********************************************************************/
31
32#include <m4ri/mzd.h>
33
50void mzd_trsm_upper_right(mzd_t const *U, mzd_t *B, const int cutoff);
51
64void _mzd_trsm_upper_right(mzd_t const *U, mzd_t *B, const int cutoff);
65
82void mzd_trsm_lower_right(mzd_t const *L, mzd_t *B, const int cutoff);
83
100void _mzd_trsm_lower_right(mzd_t const *L, mzd_t *B, const int cutoff);
101
115void mzd_trsm_lower_left(mzd_t const *L, mzd_t *B, const int cutoff);
116
127void _mzd_trsm_lower_left(mzd_t const *L, mzd_t *B, const int cutoff);
128
142void mzd_trsm_upper_left(mzd_t const *U, mzd_t *B, const int cutoff);
143
153void _mzd_trsm_upper_left (mzd_t const *U, mzd_t *B, const int cutoff);
154
164
165#endif // M4RI_TRSM_H
Dense matrices over GF(2) represented as a bit field.
Dense matrices over GF(2).
Definition: mzd.h:86
void _mzd_trsm_upper_right(mzd_t const *U, mzd_t *B, const int cutoff)
Solves X U = B with X and B matrices and U upper triangular.
Definition: triangular.c:60
void _mzd_trsm_upper_left(mzd_t const *U, mzd_t *B, const int cutoff)
Solves U X = B with X and B matrices and U upper triangular.
Definition: triangular.c:408
void mzd_trsm_lower_right(mzd_t const *L, mzd_t *B, const int cutoff)
Solves X L = B with X and B matrices and L lower triangular.
Definition: triangular.c:197
void _mzd_trsm_lower_right(mzd_t const *L, mzd_t *B, const int cutoff)
Solves X L = B with X and B with matrices and L lower triangular.
Definition: triangular.c:206
mzd_t * mzd_trtri_upper(mzd_t *A)
Invert the upper triangular matrix A by reduction to matrix multiplication.
Definition: triangular.c:460
void mzd_trsm_upper_left(mzd_t const *U, mzd_t *B, const int cutoff)
Solves U X = B with X and B matrices and U upper triangular.
Definition: triangular.c:399
void mzd_trsm_upper_right(mzd_t const *U, mzd_t *B, const int cutoff)
Solves X U = B with X and B matrices and U upper triangular.
Definition: triangular.c:42
void _mzd_trsm_lower_left(mzd_t const *L, mzd_t *B, const int cutoff)
Solves L X = B with X and B matrices and L lower triangular.
Definition: triangular.c:347
void mzd_trsm_lower_left(mzd_t const *L, mzd_t *B, const int cutoff)
Solves L X = B with X and B matrices and L lower triangular.
Definition: triangular.c:338