M4RI 1.0.1
|
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