monolish  0.15.1
MONOlithic LInear equation Solvers for Highly-parallel architecture
monolish_matrix_blas.hpp
Go to the documentation of this file.
1 // this code is generated by gen_matrix_blas.sh
2 #pragma once
3 #include "../common/monolish_common.hpp"
4 
10 namespace monolish::blas {
11 
24 
39 
53 void copy(const matrix::CRS<float> &A, matrix::CRS<float> &C);
54 
65 void mscal(const double alpha, matrix::Dense<double> &A);
66 void mscal(const float alpha, matrix::Dense<float> &A);
67 
78 void mscal(const double alpha, matrix::CRS<double> &A);
79 void mscal(const float alpha, matrix::CRS<float> &A);
80 
92 void matadd(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
94 void matadd(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
96 
113 
128 void matadd(const matrix::CRS<double> &A, const matrix::CRS<double> &B,
130 void matadd(const matrix::CRS<float> &A, const matrix::CRS<float> &B,
131  matrix::CRS<float> &C);
132 
144 void matsub(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
146 void matsub(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
148 
165 
180 void matsub(const matrix::CRS<double> &A, const matrix::CRS<double> &B,
182 void matsub(const matrix::CRS<float> &A, const matrix::CRS<float> &B,
183  matrix::CRS<float> &C);
184 
196 void matmul(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
198 void matmul(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
200 
217 
232 
244 void matmul(const matrix::CRS<double> &A, const matrix::Dense<double> &B,
246 void matmul(const matrix::CRS<float> &A, const matrix::Dense<float> &B,
248 
263 } // namespace monolish::blas
monolish::matrix::LinearOperator
Linear Operator imitating Matrix.
Definition: monolish_coo.hpp:30
monolish::matrix::Dense
Dense format Matrix.
Definition: monolish_coo.hpp:28
monolish::blas::mscal
void mscal(const double alpha, matrix::Dense< double > &A)
Densematrix scal: A = alpha * A.
monolish::blas::copy
void copy(const matrix::Dense< double > &A, matrix::Dense< double > &C)
Dense matrix copy (C=A)
monolish::blas::matsub
void matsub(const matrix::Dense< double > &A, const matrix::Dense< double > &B, matrix::Dense< double > &C)
Dense matrix subtract: C = A - B.
monolish::blas::rmatmul
void rmatmul(const matrix::LinearOperator< double > &A, const matrix::Dense< double > &B, matrix::Dense< double > &C)
LinearOperator multiplication: C = A^t B.
monolish::blas
Basic Linear Algebra Subprograms for Dense Matrix, Sparse Matrix, Vector and Scalar.
Definition: monolish_matrix_blas.hpp:10
monolish::blas::matadd
void matadd(const matrix::Dense< double > &A, const matrix::Dense< double > &B, matrix::Dense< double > &C)
Dense matrix addition: C = A + B.
monolish::blas::matmul
void matmul(const matrix::Dense< double > &A, const matrix::Dense< double > &B, matrix::Dense< double > &C)
Dense matrix multiplication: C = AB.
monolish::matrix::CRS
Compressed Row Storage (CRS) format Matrix.
Definition: monolish_coo.hpp:29