M4RI  1.0.1
ple_russian.h
1 
10 #ifndef M4RI_PLE_RUSSIAN
11 #define M4RI_PLE_RUSSIAN
12 
13  /*******************************************************************
14  *
15  * M4RI: Linear Algebra over GF(2)
16  *
17  * Copyright (C) 2008-2011 Martin Albrecht <M.R.Albrecht@rhul.ac.uk>
18  *
19  * Distributed under the terms of the GNU General Public License (GPL)
20  * version 2 or higher.
21  *
22  * This code is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25  * General Public License for more details.
26  *
27  * The full text of the GPL is available at:
28  *
29  * http://www.gnu.org/licenses/
30  *
31  ********************************************************************/
32 
33 #include "mzd.h"
34 #include "mzp.h"
35 
56 rci_t _mzd_ple_russian(mzd_t *A, mzp_t *P, mzp_t *Q, int k);
57 
75 rci_t _mzd_pluq_russian(mzd_t *A, mzp_t *P, mzp_t *Q, int k);
76 
99 int _mzd_ple_submatrix(mzd_t *A,
100  rci_t const start_row, rci_t const stop_row,
101  rci_t const start_col, int const k,
102  mzp_t *P, mzp_t *Q, rci_t *pivots, rci_t *done, rci_t *done_row,
103  wi_t const splitblock);
104 
125 void mzd_process_rows2_ple(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol,
126  int const k0, mzd_t const *T0, rci_t const *E0,
127  int const k1, mzd_t const *T1, rci_t const *E1);
128 
129 void mzd_process_rows3_ple(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol,
130  int const k0, mzd_t const *T0, rci_t const *E0,
131  int const k1, mzd_t const *T1, rci_t const *E1,
132  int const k2, mzd_t const *T2, rci_t const *E2);
133 
134 void mzd_process_rows4_ple(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol,
135  int const k0, mzd_t const *T0, rci_t const *E0,
136  int const k1, mzd_t const *T1, rci_t const *E1,
137  int const k2, mzd_t const *T2, rci_t const *E2,
138  int const k3, mzd_t const *T3, rci_t const *E3);
139 
150 mzd_t *_mzd_ple_to_e(mzd_t *E, mzd_t const *A, rci_t r, rci_t c, int k, rci_t *offsets);
151 
152 #endif // M4RI_PLE_RUSSIAN