monolish  0.17.1
MONOlithic LInear equation Solvers for Highly-parallel architecture
Functions
monolish::blas::matmul (CRS, Dense, Dense)

CRS and Dense matrix multiplication: C = AB. More...

Functions

void monolish::blas::matmul (const double &a, const matrix::CRS< double > &A, const matrix::Dense< double > &B, const double &b, matrix::Dense< double > &C)
 CRS and Dense matrix multiplication: C = aAB+bC. More...
 
void monolish::blas::matmul (const float &a, const matrix::CRS< float > &A, const matrix::Dense< float > &B, const float &b, matrix::Dense< float > &C)
 
void monolish::blas::matmul (const matrix::CRS< double > &A, const matrix::Dense< double > &B, matrix::Dense< double > &C)
 CRS and Dense matrix multiplication: C = AB. More...
 
void monolish::blas::matmul (const matrix::CRS< float > &A, const matrix::Dense< float > &B, matrix::Dense< float > &C)
 

Detailed Description

CRS and Dense matrix multiplication: C = AB.

CRS and Dense matrix multiplication: C = aAB+bC.

Dense)

Function Documentation

◆ matmul() [1/4]

void monolish::blas::matmul ( const double &  a,
const matrix::CRS< double > &  A,
const matrix::Dense< double > &  B,
const double &  b,
matrix::Dense< double > &  C 
)

CRS and Dense matrix multiplication: C = aAB+bC.

Parameters
aFloat
ACRS matrix (size M x K)
BDense matrix (size K x N)
bFloat
CDense matrix (size M x N)
Note
  • # of computation: 2*N*nnz
  • Multi-threading: true
  • GPU acceleration: true
    • # of data transfer: 0

◆ matmul() [2/4]

void monolish::blas::matmul ( const float &  a,
const matrix::CRS< float > &  A,
const matrix::Dense< float > &  B,
const float &  b,
matrix::Dense< float > &  C 
)

◆ matmul() [3/4]

void monolish::blas::matmul ( const matrix::CRS< double > &  A,
const matrix::Dense< double > &  B,
matrix::Dense< double > &  C 
)

CRS and Dense matrix multiplication: C = AB.

Parameters
ACRS matrix (size M x K)
BDense matrix (size K x N)
CDense matrix (size M x N)
Note
  • # of computation: 2*N*nnz
  • Multi-threading: true
  • GPU acceleration: true
    • # of data transfer: 0

◆ matmul() [4/4]

void monolish::blas::matmul ( const matrix::CRS< float > &  A,
const matrix::Dense< float > &  B,
matrix::Dense< float > &  C 
)