#include <assert.h>
#include <oski/config.h>
#include <oski/common.h>
#include <oski/blas.h>
#include <oski/matmult.h>
#include <oski/CSR/format.h>
#include <oski/CSR/module.h>
#include "MatMult/CSR_MatMult.h"
#include "SymmMatMult/CSR_SymmMatMult.h"
#include "SymmMatMult/CSR_SymmMatHermMult.h"
#include "SymmMatMult/CSR_HermMatMult.h"
#include "SymmMatMult/CSR_HermMatTransMult.h"
Defines | |
#define | CSR_MatConjMult_v1 CSR_MatMult_v1 |
Base-adjusted, matrix times single-vector multiply. | |
#define | MatReprMult_Conj MatReprMult_Normal |
Functions | |
static void | CSR_MatMult_v1 (oski_index_t m, oski_index_t n, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, const oski_value_t *x, oski_index_t incx, oski_value_t *y, oski_index_t incy) |
Base-adjusted, matrix times single-vector multiply. | |
static int | MatReprMult_Normal (const oski_matCSR_t *A, const oski_matcommon_t *props, oski_value_t alpha, const oski_vecview_t x_view, oski_vecview_t y_view) |
CSR-specific matrix-vector multiply operation, . | |
static void | CSR_MatTransMult_v1 (oski_index_t m, oski_index_t n, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, const oski_value_t *x, oski_index_t incx, oski_value_t *y, oski_index_t incy) |
Base-adjusted, matrix-transpose times single-vector multiply. | |
static int | MatReprMult_Trans (const oski_matCSR_t *A, const oski_matcommon_t *props, oski_value_t alpha, const oski_vecview_t x_view, oski_vecview_t y_view) |
CSR-specific matrix-vector multiply operation, . | |
static void | SymmMatMult_v1 (oski_index_t m, oski_index_t n, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_index_t base, oski_value_t alpha, const oski_value_t *x, oski_index_t incx, oski_value_t *y, oski_index_t incy) |
Single-vector implementation of symmetric CSR SpMV. | |
static int | SymmMatMult (const oski_matCSR_t *A, const oski_matcommon_t *props, oski_matop_t opA, oski_value_t alpha, const oski_vecview_t x_view, oski_vecview_t y_view) |
Symmetric matrix-vector multiply, , where and . | |
int | oski_MatReprMult (const void *pA, const oski_matcommon_t *props, oski_matop_t opA, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, oski_vecview_t y_view) |
Matrix type-specific implementation of sparse matrix-vector multiply. |
|
CSR-specific matrix-vector multiply operation, . At present, this implementation does not handle the multiple vector case specially.
|
|
CSR-specific matrix-vector multiply operation, . At present, this implementation does not handle the multiple vector case specially.
|
|
Symmetric matrix-vector multiply, , where and .
At present, the multiple-vector implementation just repeatedly calls the single-vector implementation. |