M4RIE  0.20111004
 All Data Structures Files Functions Variables Typedefs Macros Groups Pages
Functions
permutation.h File Reference

Permutation matrices. More...

#include <m4ri/mzp.h>
#include <m4rie/mzed.h>
#include <m4rie/mzd_slice.h>

Go to the source code of this file.

Functions

static void mzed_apply_p_left (mzed_t *A, mzp_t const *P)
 
static void mzed_apply_p_left_trans (mzed_t *A, mzp_t const *P)
 
static void mzed_apply_p_right (mzed_t *A, mzp_t const *P)
 
static void mzed_apply_p_right_trans (mzed_t *A, mzp_t const *P)
 
static void mzd_slice_apply_p_left (mzd_slice_t *A, mzp_t const *P)
 
static void mzd_slice_apply_p_left_trans (mzd_slice_t *A, mzp_t const *P)
 
static void mzd_slice_apply_p_right (mzd_slice_t *A, mzp_t const *P)
 
static void mzd_slice_apply_p_right_trans (mzd_slice_t *A, mzp_t const *P)
 
static void mzd_slice_apply_p_right_trans_tri (mzd_slice_t *A, mzp_t const *P)
 

Detailed Description

Permutation matrices.

Author
Martin Albrecht marti.nosp@m.nral.nosp@m.brech.nosp@m.t@go.nosp@m.oglem.nosp@m.ail..nosp@m.com

Function Documentation

static void mzd_slice_apply_p_left ( mzd_slice_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the left.

This is equivalent to row swaps walking from 0 to length-1.

Parameters
AMatrix.
PPermutation.
static void mzd_slice_apply_p_left_trans ( mzd_slice_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the left but transpose P before.

This is equivalent to row swaps walking from length-1 to 0.

Parameters
AMatrix.
PPermutation.
static void mzd_slice_apply_p_right ( mzd_slice_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the right.

This is equivalent to column swaps walking from length-1 to 0.

Parameters
AMatrix.
PPermutation.
static void mzd_slice_apply_p_right_trans ( mzd_slice_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the right but transpose P before.

This is equivalent to column swaps walking from 0 to length-1.

Parameters
AMatrix.
PPermutation.
static void mzd_slice_apply_p_right_trans_tri ( mzd_slice_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the right, but only on the upper the matrix A above the main diagonal.

This is equivalent to column swaps walking from 0 to length-1 and is used to compress PLE to PLUQ.

Parameters
AMatrix.
PPermutation.
static void mzed_apply_p_left ( mzed_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the left.

This is equivalent to row swaps walking from 0 to length-1.

Parameters
AMatrix.
PPermutation.
static void mzed_apply_p_left_trans ( mzed_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the left but transpose P before.

This is equivalent to row swaps walking from length-1 to 0.

Parameters
AMatrix.
PPermutation.
static void mzed_apply_p_right ( mzed_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the right.

This is equivalent to column swaps walking from length-1 to 0.

Parameters
AMatrix.
PPermutation.
static void mzed_apply_p_right_trans ( mzed_t A,
mzp_t const *  P 
)
inlinestatic

Apply the permutation P to A from the right but transpose P before.

This is equivalent to column swaps walking from 0 to length-1.

Parameters
AMatrix.
PPermutation.