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