8 #ifndef M4RIE_PERMUTATION_H
9 #define M4RIE_PERMUTATION_H
31 #include <m4rie/mzed.h>
32 #include <m4rie/mzd_slice.h>
44 mzd_apply_p_left(A->
x, P);
57 mzd_apply_p_left_trans(A->
x, P);
72 rci_t
const length = MIN(P->length, A->
ncols);
73 for (rci_t i = length-1; i >= 0; --i) {
90 rci_t
const length = MIN(P->length, A->
ncols);
91 for (rci_t i = 0; i < length; ++i) {
106 for(
int i=0; i<A->
depth; i++) {
107 mzd_apply_p_left(A->
x[i], P);
121 for(
int i=0; i<A->
depth; i++) {
122 mzd_apply_p_left_trans(A->
x[i], P);
136 for(
int i=0; i<A->
depth; i++) {
137 mzd_apply_p_right(A->
x[i], P);
151 for(
int i=0; i<A->
depth; i++) {
152 mzd_apply_p_right_trans(A->
x[i], P);
168 for(
int i=0; i<A->
depth; i++) {
169 mzd_apply_p_right_trans_tri(A->
x[i], P);
174 #endif // M4RIE_PERMUTATION_H
Dense matrices over represented as packed matrices.
Definition: mzed.h:59
unsigned int depth
Definition: mzd_slice.h:60
static void mzd_slice_apply_p_right_trans_tri(mzd_slice_t *A, mzp_t const *P)
Definition: permutation.h:167
mzd_t * x
Definition: mzed.h:60
rci_t nrows
Definition: mzed.h:62
static void mzed_apply_p_left_trans(mzed_t *A, mzp_t const *P)
Definition: permutation.h:56
static void mzed_apply_p_right_trans(mzed_t *A, mzp_t const *P)
Definition: permutation.h:87
static void mzd_slice_apply_p_right(mzd_slice_t *A, mzp_t const *P)
Definition: permutation.h:135
rci_t ncols
Definition: mzed.h:63
mzd_t * x[16]
Definition: mzd_slice.h:57
static void mzd_slice_apply_p_left_trans(mzd_slice_t *A, mzp_t const *P)
Definition: permutation.h:120
static void mzed_apply_p_right(mzed_t *A, mzp_t const *P)
Definition: permutation.h:69
Dense matrices over represented as slices of matrices over .
Definition: mzd_slice.h:56
static void mzed_apply_p_left(mzed_t *A, mzp_t const *P)
Definition: permutation.h:43
static void mzed_col_swap(mzed_t *M, const rci_t cola, const rci_t colb)
Swap the two columns cola and colb.
Definition: mzed.h:940
static void mzd_slice_apply_p_right_trans(mzd_slice_t *A, mzp_t const *P)
Definition: permutation.h:150
static void mzd_slice_apply_p_left(mzd_slice_t *A, mzp_t const *P)
Definition: permutation.h:105