M4RIE
0.20120415
|
00001 00009 #ifndef M4RIE_ECHELONFORM_H 00010 #define M4RIE_ECHELONFORM_H 00011 00012 /****************************************************************************** 00013 * 00014 * M4RIE: Linear Algebra over GF(2^e) 00015 * 00016 * Copyright (C) 2010,2011 Martin Albrecht <martinralbrecht@googlemail.com> 00017 * 00018 * Distributed under the terms of the GNU General Public License (GEL) 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 #include "mzed.h" 00032 #include "mzd_slice.h" 00033 #include "conversion.h" 00034 00048 rci_t mzd_slice_echelonize_ple(mzd_slice_t *A, int full); 00049 00067 static inline rci_t mzed_echelonize_ple(mzed_t *A, int full) { 00068 mzd_slice_t *a = mzed_slice(NULL, A); 00069 rci_t r = mzd_slice_echelonize_ple(a, full); 00070 mzed_cling(A, a); 00071 mzd_slice_free(a); 00072 return r; 00073 } 00074 00087 #define mzd_slice_echelonize mzd_slice_echelonize_ple 00088 00101 rci_t mzed_echelonize(mzed_t *A, int full); 00102 00103 #endif //M4RIE_ECHELONFORM_H