M4RIE 0.20111004
echelonform.h
Go to the documentation of this file.
1
9#ifndef M4RIE_ECHELONFORM_H
10#define M4RIE_ECHELONFORM_H
11
12/******************************************************************************
13*
14* M4RIE: Linear Algebra over GF(2^e)
15*
16* Copyright (C) 2010,2011 Martin Albrecht <martinralbrecht@googlemail.com>
17*
18* Distributed under the terms of the GNU General Public License (GEL)
19* version 2 or higher.
20*
21* This code is distributed in the hope that it will be useful,
22* but WITHOUT ANY WARRANTY; without even the implied warranty of
23* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24* General Public License for more details.
25*
26* The full text of the GPL is available at:
27*
28* http://www.gnu.org/licenses/
29******************************************************************************/
30
31#include <m4rie/mzed.h>
32#include <m4rie/mzd_slice.h>
33#include <m4rie/conversion.h>
34
48rci_t mzd_slice_echelonize_ple(mzd_slice_t *A, int full);
49
67static inline rci_t mzed_echelonize_ple(mzed_t *A, int full) {
68 mzd_slice_t *a = mzed_slice(NULL, A);
69 rci_t r = mzd_slice_echelonize_ple(a, full);
70 mzed_cling(A, a);
72 return r;
73}
74
87#define mzd_slice_echelonize mzd_slice_echelonize_ple
88
101rci_t mzed_echelonize(mzed_t *A, int full);
102
103#endif //M4RIE_ECHELONFORM_H
Conversion between mzed_t and mzd_slice_t.
mzed_t * mzed_cling(mzed_t *A, const mzd_slice_t *Z)
Pack a bitslice matrix into a packed represenation.
Definition: conversion.c:88
static void mzd_slice_free(mzd_slice_t *A)
Free a matrix created with mzd_slice_init().
Definition: mzd_slice.h:145
mzd_slice_t * mzed_slice(mzd_slice_t *A, const mzed_t *Z)
Unpack the matrix Z into bitslice representation.
Definition: conversion.c:56
rci_t mzed_echelonize(mzed_t *A, int full)
Compute row echelon forms.
Definition: echelonform.c:26
rci_t mzd_slice_echelonize_ple(mzd_slice_t *A, int full)
Compute row echelon forms using PLE decomposition.
Definition: echelonform.c:36
static rci_t mzed_echelonize_ple(mzed_t *A, int full)
Compute row echelon forms using PLE decomposition.
Definition: echelonform.h:67
Matrices using a bitsliced representation.
Dense matrices over represented as packed matrices.
Dense matrices over represented as slices of matrices over .
Definition: mzd_slice.h:56
Dense matrices over represented as packed matrices.
Definition: mzed.h:59