#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(). |
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.
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().