perm.c File Reference


Detailed Description

Permutations.

#include <assert.h>
#include <oski/perm.h>

Functions

int oski_IsMatPermuted (const oski_matrix_t A_tunable)
 Checks whether a matrix has been tuned by reordering.
const_oski_matrix_t oski_ViewPermutedMat (const oski_matrix_t A_tunable)
 Given a matrix $A$, possibly reordered during tuning to the form $\hat{A} = P_r\cdot A\cdot P_c^T$, returns a read-only object corresponding to $\hat{A}$.
const_oski_perm_t oski_ViewPermutedMatRowPerm (const oski_matrix_t A_tunable)
 Given a matrix $A$, possible reordered during tuning to the form $\hat{A} = P_r\cdot A\cdot P_c^T$, returns a read-only object corresponding to $P_r$.
const_oski_perm_t oski_ViewPermutedMatColPerm (const oski_matrix_t A_tunable)
 Given a matrix $A$, possible reordered during tuning to the form $\hat{A} = P_r\cdot A\cdot P_c^T$, returns a read-only object corresponding to $P_c$ (and NOT $P_c^T$).
static int CheckValidPerm (const oski_perm_t P)
 Returns an error code if P is an invalid permutation matrix, i.e., if P is NULL, has length < 0, or has any element out of range.
static void Permute (const oski_index_t *P, oski_matop_t opP, oski_index_t len, const oski_value_t *x, oski_index_t incx, oski_value_t *y, oski_index_t incy)
 Compute $y \leftarrow \mathrm{op}(P)\cdot x$, where $x, y$ are single dense strided vectors.
int oski_PermuteVecView (const oski_perm_t P, oski_matop_t opP, oski_vecview_t x_view)
 Permute a vector view object, i.e., computes $x \leftarrow \mathrm{op}(P)x$, where $\matrm{op}(A) \in \{A, A^T\}$.

Variables

static oski_permstruct_t OBJ_PERM_IDENTITY = MAKE_PERMSTRUCT_INIT (0, NULL)
 Statically declared symbolic identity permutation.
const oski_perm_t PERM_IDENTITY = &OBJ_PERM_IDENTITY
 Alias for OBJ_PERM_IDENTITY.


Function Documentation

static void Permute const oski_index_t *  P,
oski_matop_t  opP,
oski_index_t  len,
const oski_value_t *  x,
oski_index_t  incx,
oski_value_t *  y,
oski_index_t  incy
[static]
 

Compute $y \leftarrow \mathrm{op}(P)\cdot x$, where $x, y$ are single dense strided vectors.

Precondition:
All input arguments are valid.


Generated on Wed Sep 19 16:41:23 2007 for BeBOP Optimized Sparse Kernel Interface Library by  doxygen 1.4.6