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