3 #include "../common/monolish_common.hpp" 
Compressed Row Storage (CRS) format Matrix.
 
Linear Operator imitating Matrix.
 
void matvec_N(const matrix::Dense< double > &A, const vector< double > &x, vector< double > &y)
Dense matrix and vector multiplication: y = A^N x.
 
void matvec_T(const matrix::Dense< double > &A, const vector< double > &x, vector< double > &y)
Dense matrix and vector multiplication: y = A^T x.
 
void matvec(const matrix::Dense< double > &A, const vector< double > &x, vector< double > &y)
Dense matrix and vector multiplication: y = Ax.
 
void rmatvec(const matrix::LinearOperator< double > &A, const vector< double > &x, vector< double > &y)
Adjoint LinearOperator matrix and vector multiplication: y = A^Hx.
 
void adds_col(const matrix::Dense< double > &A, const vector< double > &x, matrix::Dense< double > &C)
Row-wise Dense matrix and vector adds: C[i][j] = A[i][j] + x[i].
 
void times_col(const matrix::Dense< double > &A, const vector< double > &x, matrix::Dense< double > &C)
Column-wise Dense matrix and vector times: C[i][j] = A[i][j] * x[i].
 
void adds_row(const matrix::Dense< double > &A, const vector< double > &x, matrix::Dense< double > &C)
Row-wise Dense matrix and vector adds: C[i][j] = A[i][j] + x[j].
 
void times_row(const matrix::Dense< double > &A, const vector< double > &x, matrix::Dense< double > &C)
Row-wise Dense matrix and vector times: C[i][j] = A[i][j] * x[j].