M4RI  1.0.1
pls.h
Go to the documentation of this file.
00001 
00010 #ifndef M4RI_PLUQ_H
00011 #define M4RI_PLUQ_H
00012 
00013 /*******************************************************************
00014 *
00015 *                 M4RI: Linear Algebra over GF(2)
00016 *
00017 *    Copyright (C) 2008, 2009 Clement Pernet <clement.pernet@gmail.com>
00018 *
00019 *  Distributed under the terms of the GNU General Public License (GPL)
00020 *  version 2 or higher.
00021 *
00022 *    This code is distributed in the hope that it will be useful,
00023 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00024 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00025 *    General Public License for more details.
00026 *
00027 *  The full text of the GPL is available at:
00028 *
00029 *                  http://www.gnu.org/licenses/
00030 *
00031 ********************************************************************/
00032 
00033 #include "packedmatrix.h"
00034 #include "permutation.h"
00035 
00040 #define __M4RI_PLS_CUTOFF MIN(524288, __M4RI_CPU_L2_CACHE >> 3)
00041 
00072 rci_t mzd_pluq(mzd_t *A, mzp_t *P, mzp_t *Q, const int cutoff);
00073 
00074 
00108 rci_t mzd_pls(mzd_t *A, mzp_t *P, mzp_t *Q, const int cutoff);
00109 
00126 rci_t _mzd_pluq(mzd_t *A, mzp_t *P, mzp_t *Q, const int cutoff);
00127 
00144 rci_t _mzd_pls(mzd_t *A, mzp_t *P, mzp_t *Qt, const int cutoff);
00145 
00161 rci_t _mzd_pluq_naive(mzd_t *A, mzp_t *P, mzp_t *Q);
00162 
00178 rci_t _mzd_pls_naive(mzd_t *A, mzp_t *P, mzp_t *Qt);
00179 
00180 #endif // M4RI_PLUQ_H