Permutation matrices. More...
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) |
Permutation matrices.
static void mzd_slice_apply_p_left | ( | mzd_slice_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
Apply the permutation P to A from the left.
This is equivalent to row swaps walking from 0 to length-1.
A | Matrix. |
P | Permutation. |
static void mzd_slice_apply_p_left_trans | ( | mzd_slice_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
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.
A | Matrix. |
P | Permutation. |
static void mzd_slice_apply_p_right | ( | mzd_slice_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
Apply the permutation P to A from the right.
This is equivalent to column swaps walking from length-1 to 0.
A | Matrix. |
P | Permutation. |
static void mzd_slice_apply_p_right_trans | ( | mzd_slice_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
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.
A | Matrix. |
P | Permutation. |
static void mzd_slice_apply_p_right_trans_tri | ( | mzd_slice_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
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.
A | Matrix. |
P | Permutation. |
static void mzed_apply_p_left | ( | mzed_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
Apply the permutation P to A from the left.
This is equivalent to row swaps walking from 0 to length-1.
A | Matrix. |
P | Permutation. |
static void mzed_apply_p_left_trans | ( | mzed_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
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.
A | Matrix. |
P | Permutation. |
static void mzed_apply_p_right | ( | mzed_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
Apply the permutation P to A from the right.
This is equivalent to column swaps walking from length-1 to 0.
A | Matrix. |
P | Permutation. |
static void mzed_apply_p_right_trans | ( | mzed_t * | A, |
mzp_t const * | P | ||
) | [inline, static] |
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.
A | Matrix. |
P | Permutation. |