2x2.c File Reference


Detailed Description

The $2\times 2$ MBCSR implementation of sparse triangular solve.

Automatically generated by ./gen_trisolve.sh on Wed Jun 8 15:58:13 PDT 2005.

#include <assert.h>
#include <oski/config.h>
#include <oski/common.h>
#include <oski/matrix.h>
#include <oski/blas_names.h>
#include <oski/MBCSR/format.h>
#include <oski/MBCSR/module.h>

Defines

#define REGISTER   register
 Real-valued, so use explicit 'register' keyword.
#define MBCSR_MatTrisolve_Lower_v1_aX_xs1   MANGLE_MOD_(MBCSR_MatTrisolve_Lower_v1_aX_xs1_2x2)
 Mangled name for MBCSR_MatTrisolve_Lower_v1_aX_xs1.
#define MBCSR_MatTrisolve_Lower_v1_aX_xsX   MANGLE_MOD_(MBCSR_MatTrisolve_Lower_v1_aX_xsX_2x2)
 Mangled name for MBCSR_MatTrisolve_Lower_v1_aX_xsX.
#define MBCSR_MatConjTrisolve_Lower_v1_aX_xs1   MBCSR_MatTrisolve_Lower_v1_aX_xs1
 Synonym for pure real version.
#define MBCSR_MatConjTrisolve_Lower_v1_aX_xsX   MBCSR_MatTrisolve_Lower_v1_aX_xsX
 Synonym for pure real version.
#define MBCSR_MatTransTrisolve_Lower_v1_aX_xs1   MANGLE_MOD_(MBCSR_MatTransTrisolve_Lower_v1_aX_xs1_2x2)
 Mangled name for MBCSR_MatTransTrisolve_Lower_v1_aX_xs1.
#define MBCSR_MatTransTrisolve_Lower_v1_aX_xsX   MANGLE_MOD_(MBCSR_MatTransTrisolve_Lower_v1_aX_xsX_2x2)
 Mangled name for MBCSR_MatTransTrisolve_Lower_v1_aX_xsX.
#define MBCSR_MatHermTrisolve_Lower_v1_aX_xs1   MBCSR_MatTransTrisolve_Lower_v1_aX_xs1
 Synonym for pure real version.
#define MBCSR_MatHermTrisolve_Lower_v1_aX_xsX   MBCSR_MatTransTrisolve_Lower_v1_aX_xsX
 Synonym for pure real version.
#define MBCSR_MatTrisolve_Upper_v1_aX_xs1   MANGLE_MOD_(MBCSR_MatTrisolve_Upper_v1_aX_xs1_2x2)
 Mangled name for MBCSR_MatTrisolve_Upper_v1_aX_xs1.
#define MBCSR_MatTrisolve_Upper_v1_aX_xsX   MANGLE_MOD_(MBCSR_MatTrisolve_Upper_v1_aX_xsX_2x2)
 Mangled name for MBCSR_MatTrisolve_Upper_v1_aX_xsX.
#define MBCSR_MatConjTrisolve_Upper_v1_aX_xs1   MBCSR_MatTrisolve_Upper_v1_aX_xs1
 Synonym for pure real version.
#define MBCSR_MatConjTrisolve_Upper_v1_aX_xsX   MBCSR_MatTrisolve_Upper_v1_aX_xsX
 Synonym for pure real version.
#define MBCSR_MatTransTrisolve_Upper_v1_aX_xs1   MANGLE_MOD_(MBCSR_MatTransTrisolve_Upper_v1_aX_xs1_2x2)
 Mangled name for MBCSR_MatTransTrisolve_Upper_v1_aX_xs1.
#define MBCSR_MatTransTrisolve_Upper_v1_aX_xsX   MANGLE_MOD_(MBCSR_MatTransTrisolve_Upper_v1_aX_xsX_2x2)
 Mangled name for MBCSR_MatTransTrisolve_Upper_v1_aX_xsX.
#define MBCSR_MatHermTrisolve_Upper_v1_aX_xs1   MBCSR_MatTransTrisolve_Upper_v1_aX_xs1
 Synonym for pure real version.
#define MBCSR_MatHermTrisolve_Upper_v1_aX_xsX   MBCSR_MatTransTrisolve_Upper_v1_aX_xsX
 Synonym for pure real version.
#define SubmatReprTrisolve   MANGLE_MOD_(SubmatReprTrisolve_2x2)
 Mangled name for primary exportable symbol.

Functions

void MBCSR_MatTrisolve_Lower_v1_aX_xs1 (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x)
 The $2\times 2$ MBCSR implementation of $L^{-1}\cdot b$, where x has unit-stride.
void MBCSR_MatTrisolve_Lower_v1_aX_xsX (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x, oski_index_t incx)
 The $2\times 2$ MBCSR implementation of $L^{-1}\cdot b$, where x has general-stride.
static void MatTrisolve_Lower (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is lower triangular.
static void MatConjTrisolve_Lower (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is lower triangular.
void MBCSR_MatTransTrisolve_Lower_v1_aX_xs1 (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x)
 The $2\times 2$ MBCSR implementation of $L^{-T}\cdot b$, where x has unit-stride.
void MBCSR_MatTransTrisolve_Lower_v1_aX_xsX (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x, oski_index_t incx)
 The $2\times 2$ MBCSR implementation of $L^{-T}\cdot b$, where x has general-stride.
static void MatTransTrisolve_Lower (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is lower triangular.
static void MatHermTrisolve_Lower (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is lower triangular.
void MBCSR_MatTrisolve_Upper_v1_aX_xs1 (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x)
 The $2\times 2$ MBCSR implementation of $U^{-1}\cdot b$, where x has unit-stride.
void MBCSR_MatTrisolve_Upper_v1_aX_xsX (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x, oski_index_t incx)
 The $2\times 2$ MBCSR implementation of $U^{-1}\cdot b$, where x has general-stride.
static void MatTrisolve_Upper (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is upper triangular.
static void MatConjTrisolve_Upper (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is upper triangular.
void MBCSR_MatTransTrisolve_Upper_v1_aX_xs1 (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x)
 The $2\times 2$ MBCSR implementation of $U^{-T}\cdot b$, where x has unit-stride.
void MBCSR_MatTransTrisolve_Upper_v1_aX_xsX (oski_index_t M, oski_index_t d0, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, const oski_value_t *restrict diag, oski_value_t alpha, oski_value_t *restrict x, oski_index_t incx)
 The $2\times 2$ MBCSR implementation of $U^{-T}\cdot b$, where x has general-stride.
static void MatTransTrisolve_Upper (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is upper triangular.
static void MatHermTrisolve_Upper (const oski_submatMBCSR_t *T, oski_value_t alpha, oski_vecview_t x)
 Exported module wrapper for the $2\times 2$ implementation of the sparse triangular solve operation, where the matrix is upper triangular.
int SubmatReprTrisolve (const oski_submatMBCSR_t *T, int is_lower, oski_matop_t opT, oski_value_t alpha, oski_vecview_t x)
 Entry point to the 2x2 kernel that implements simultaneous multiplication by sparse $A$ and $\mathrm{op}(A)$.


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