BeBOP Optimized Sparse Kernel Interface Library  1.0.1h
Functions

MBCSR implementation of the sparse $A^TA\cdot x$ kernel. More...

#include <assert.h>
#include <oski/config.h>
#include <oski/common.h>
#include <oski/blas.h>
#include <oski/blas_names.h>
#include <oski/modloader.h>
#include <oski/matrix.h>
#include <oski/MBCSR/module.h>
#include <oski/matmodexport.h>

Functions

static int CanBeExecuted (const oski_matMBCSR_t *A, const oski_matcommon_t *props, oski_ataop_t opA, MBCSR_SubmatReprTransSubmatReprMult_funcpt *p_func_ATA_1, MBCSR_SubmatReprTransSubmatReprMult_funcpt *p_func_ATA_2, oski_MatReprTransMatReprMult_funcpt *p_func_ATA_3)
 Returns a non-zero value if and only if all of the necessary dynamically loadable subroutines exist to execute a cache-optimized A'*A*x in MBCSR format.
int oski_MatReprTransMatReprMult (const void *pA, const oski_matcommon_t *props, oski_ataop_t opA, oski_value_t alpha, const oski_vecview_t x_view, oski_value_t beta, oski_vecview_t y_view, oski_vecview_t t_view)
 Matrix type specific implementation of oski_MatTransMatMult().

Detailed Description

MBCSR implementation of the sparse $A^TA\cdot x$ kernel.


Function Documentation

static int CanBeExecuted ( const oski_matMBCSR_t A,
const oski_matcommon_t props,
oski_ataop_t  opA,
MBCSR_SubmatReprTransSubmatReprMult_funcpt p_func_ATA_1,
MBCSR_SubmatReprTransSubmatReprMult_funcpt p_func_ATA_2,
oski_MatReprTransMatReprMult_funcpt p_func_ATA_3 
) [static]

Returns a non-zero value if and only if all of the necessary dynamically loadable subroutines exist to execute a cache-optimized A'*A*x in MBCSR format.

Note:
'props' is only required if the matrix A is stored using symmetric or Hermitian half-storage; otherwise, the caller may set props to NULL.

References tagBebop_matMBCSR_t::A1, tagBebop_matMBCSR_t::A2, tagBebop_matMBCSR_t::enabled, oski_matcommon_t::is_herm, oski_matcommon_t::is_symm, tagBebop_matMBCSR_t::MatTransMatMult, tagOski_submatMBCSR_t::num_block_rows, OP_A_AH, OP_A_AT, OP_AT_A, OSKI_MATTYPE_METHOD, tagBebop_matMBCSR_t::p_A3, oski_matcommon_t::pattern, and tagBebop_matMBCSR_t::stored.

Referenced by oski_MatReprMultAndMatReprTransMult(), oski_MatReprTransMatReprMult(), and oski_MatReprTrisolve().