1x2.c File Reference


Detailed Description

The $1\times 2$ GCSR implementation of simultaneous multiplication by $A$ and $\mathrm{op}(A)$.

Automatically generated by ./gen.sh on Sun Jun 12 21:42:56 PDT 2005.

#include <assert.h>
#include <oski/config.h>
#include <oski/common.h>
#include <oski/mangle.h>
#include <oski/vecview.h>
#include <oski/GCSR/format.h>
#include <oski/GCSR/module.h>

Defines

#define REGISTER   register
 Real-valued, so use explicit 'register' keyword.
#define GCSR_MatMult_v1_aX_b1_xs1_ysX   MANGLE_MOD_(GCSR_MatMult_v1_aX_b1_xs1_ysX_1x2)
 Mangled name for GCSR_MatMult_v1_aX_b1_xs1_ysX.
#define GCSR_MatMult_v1_aX_b1_xsX_ysX   MANGLE_MOD_(GCSR_MatMult_v1_aX_b1_xsX_ysX_1x2)
 Mangled name for GCSR_MatMult_v1_aX_b1_xsX_ysX.
#define GCSR_MatTransMult_v1_aX_b1_xsX_ys1   MANGLE_MOD_(GCSR_MatTransMult_v1_aX_b1_xsX_ys1_1x2)
 Mangled name for GCSR_MatTransMult_v1_aX_b1_xsX_ys1.
#define GCSR_MatTransMult_v1_aX_b1_xsX_ysX   MANGLE_MOD_(GCSR_MatTransMult_v1_aX_b1_xsX_ysX_1x2)
 Mangled name for GCSR_MatTransMult_v1_aX_b1_xsX_ysX.
#define MatReprMult   MANGLE_MOD_(MatReprMult_1x2)
 Mangled name for primary exportable symbol.

Functions

void GCSR_MatMult_v1_aX_b1_xs1_ysX (oski_index_t M, const oski_index_t *restrict ptr, const oski_index_t *restrict rind, const oski_index_t *restrict cind, const oski_value_t *restrict val, oski_value_t alpha, const oski_value_t *restrict x, oski_value_t *restrict y, oski_index_t incy)
 The $1\times 2$ GCSR implementation of $A\cdot x$, where x and y vectors have unit-stride and general-stride, respectively.
void GCSR_MatMult_v1_aX_b1_xsX_ysX (oski_index_t M, const oski_index_t *restrict ptr, const oski_index_t *restrict rind, const oski_index_t *restrict cind, const oski_value_t *restrict val, oski_value_t alpha, const oski_value_t *restrict x, oski_index_t incx, oski_value_t *restrict y, oski_index_t incy)
 The $1\times 2$ GCSR implementation of $A\cdot x$, where x and y vectors have general-stride and general-stride, respectively.
static int MatMult (const oski_matGCSR_t *A, oski_value_t alpha, const oski_vecview_t x, oski_vecview_t y)
 Exported module wrapper for the $1\times 2$ implementation of $A\cdot x$.
static int MatConjMult (const oski_matGCSR_t *A, oski_value_t alpha, const oski_vecview_t x, oski_vecview_t y)
 Exported module wrapper for the $1\times 2$ implementation of $\bar{A}\cdot x$.
void GCSR_MatTransMult_v1_aX_b1_xsX_ys1 (oski_index_t M, const oski_index_t *restrict ptr, const oski_index_t *restrict rind, const oski_index_t *restrict cind, const oski_value_t *restrict val, oski_value_t alpha, const oski_value_t *restrict x, oski_index_t incx, oski_value_t *restrict y)
 The $1\times 2$ GCSR implementation of $A^T\cdot x$, where x and y vectors have general-stride and unit-stride, respectively.
void GCSR_MatTransMult_v1_aX_b1_xsX_ysX (oski_index_t M, const oski_index_t *restrict ptr, const oski_index_t *restrict rind, const oski_index_t *restrict cind, const oski_value_t *restrict val, oski_value_t alpha, const oski_value_t *restrict x, oski_index_t incx, oski_value_t *restrict y, oski_index_t incy)
 The $1\times 2$ GCSR implementation of $A^T\cdot x$, where x and y vectors have general-stride and general-stride, respectively.
static int MatTransMult (const oski_matGCSR_t *A, oski_value_t alpha, const oski_vecview_t x, oski_vecview_t y)
 Exported module wrapper for the $1\times 2$ implementation of $A^T\cdot x$.
static int MatHermMult (const oski_matGCSR_t *A, oski_value_t alpha, const oski_vecview_t x, oski_vecview_t y)
 Exported module wrapper for the $1\times 2$ implementation of $\bar{A}^T\cdot x$.
int MatReprMult (const oski_matGCSR_t *A, oski_matop_t opA, oski_value_t alpha, const oski_vecview_t x, oski_vecview_t y)
 Entry point to the 1x2 kernel that implements simultaneous multiplication by sparse $A$ and $\mathrm{op}(A)$.


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