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 <m4ri/mzd.h>
34 #include <m4ri/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 
115 mzd_t *_mzd_ple_to_e(mzd_t *E, mzd_t const *A, rci_t r, rci_t c, int k, rci_t *offsets);
116 
132 void mzd_process_rows2_ple(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol,
133  int const k0, mzd_t const *T0, rci_t const *E0,
134  int const k1, mzd_t const *T1, rci_t const *E1);
135 
154 void mzd_process_rows3_ple(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol,
155  int const k0, mzd_t const *T0, rci_t const *E0,
156  int const k1, mzd_t const *T1, rci_t const *E1,
157  int const k2, mzd_t const *T2, rci_t const *E2);
158 
179 void mzd_process_rows4_ple(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol,
180  int const k0, mzd_t const *T0, rci_t const *E0,
181  int const k1, mzd_t const *T1, rci_t const *E1,
182  int const k2, mzd_t const *T2, rci_t const *E2,
183  int const k3, mzd_t const *T3, rci_t const *E3);
184 
185 #endif // M4RI_PLE_RUSSIAN