monolish  0.15.1
MONOlithic LInear equation Solvers for Highly-parallel architecture
monolish_matvec_blas.hpp
Go to the documentation of this file.
1 // this code is generated by gen_matvec_blas.sh
2 #pragma once
3 #include "../common/monolish_common.hpp"
4 
10 namespace monolish::blas {
11 
23 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
24  vector<double> &y);
25 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
26  view1D<vector<double>, double> &y);
27 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
28  view1D<matrix::Dense<double>, double> &y);
29 void matvec(const matrix::Dense<double> &A,
30  const view1D<vector<double>, double> &x, vector<double> &y);
31 void matvec(const matrix::Dense<double> &A,
32  const view1D<vector<double>, double> &x,
33  view1D<vector<double>, double> &y);
34 void matvec(const matrix::Dense<double> &A,
35  const view1D<vector<double>, double> &x,
36  view1D<matrix::Dense<double>, double> &y);
37 void matvec(const matrix::Dense<double> &A,
38  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
39 void matvec(const matrix::Dense<double> &A,
40  const view1D<matrix::Dense<double>, double> &x,
41  view1D<vector<double>, double> &y);
42 void matvec(const matrix::Dense<double> &A,
43  const view1D<matrix::Dense<double>, double> &x,
44  view1D<matrix::Dense<double>, double> &y);
45 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
46  vector<float> &y);
47 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
48  view1D<vector<float>, float> &y);
49 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
50  view1D<matrix::Dense<float>, float> &y);
51 void matvec(const matrix::Dense<float> &A,
52  const view1D<vector<float>, float> &x, vector<float> &y);
53 void matvec(const matrix::Dense<float> &A,
54  const view1D<vector<float>, float> &x,
55  view1D<vector<float>, float> &y);
56 void matvec(const matrix::Dense<float> &A,
57  const view1D<vector<float>, float> &x,
58  view1D<matrix::Dense<float>, float> &y);
59 void matvec(const matrix::Dense<float> &A,
60  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
61 void matvec(const matrix::Dense<float> &A,
62  const view1D<matrix::Dense<float>, float> &x,
63  view1D<vector<float>, float> &y);
64 void matvec(const matrix::Dense<float> &A,
65  const view1D<matrix::Dense<float>, float> &x,
66  view1D<matrix::Dense<float>, float> &y);
67 
79 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
80  vector<double> &y);
81 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
82  view1D<vector<double>, double> &y);
83 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
84  view1D<matrix::Dense<double>, double> &y);
85 void matvec(const matrix::CRS<double> &A,
86  const view1D<vector<double>, double> &x, vector<double> &y);
87 void matvec(const matrix::CRS<double> &A,
88  const view1D<vector<double>, double> &x,
89  view1D<vector<double>, double> &y);
90 void matvec(const matrix::CRS<double> &A,
91  const view1D<vector<double>, double> &x,
92  view1D<matrix::Dense<double>, double> &y);
93 void matvec(const matrix::CRS<double> &A,
94  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
95 void matvec(const matrix::CRS<double> &A,
96  const view1D<matrix::Dense<double>, double> &x,
97  view1D<vector<double>, double> &y);
98 void matvec(const matrix::CRS<double> &A,
99  const view1D<matrix::Dense<double>, double> &x,
100  view1D<matrix::Dense<double>, double> &y);
101 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
102  vector<float> &y);
103 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
104  view1D<vector<float>, float> &y);
105 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
106  view1D<matrix::Dense<float>, float> &y);
107 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
108  vector<float> &y);
109 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
110  view1D<vector<float>, float> &y);
111 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
112  view1D<matrix::Dense<float>, float> &y);
113 void matvec(const matrix::CRS<float> &A,
114  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
115 void matvec(const matrix::CRS<float> &A,
116  const view1D<matrix::Dense<float>, float> &x,
117  view1D<vector<float>, float> &y);
118 void matvec(const matrix::CRS<float> &A,
119  const view1D<matrix::Dense<float>, float> &x,
120  view1D<matrix::Dense<float>, float> &y);
121 
132 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
133  vector<double> &y);
134 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
135  view1D<vector<double>, double> &y);
136 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
137  view1D<matrix::Dense<double>, double> &y);
138 void matvec(const matrix::LinearOperator<double> &A,
139  const view1D<vector<double>, double> &x, vector<double> &y);
140 void matvec(const matrix::LinearOperator<double> &A,
141  const view1D<vector<double>, double> &x,
142  view1D<vector<double>, double> &y);
143 void matvec(const matrix::LinearOperator<double> &A,
144  const view1D<vector<double>, double> &x,
145  view1D<matrix::Dense<double>, double> &y);
146 void matvec(const matrix::LinearOperator<double> &A,
147  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
148 void matvec(const matrix::LinearOperator<double> &A,
149  const view1D<matrix::Dense<double>, double> &x,
150  view1D<vector<double>, double> &y);
151 void matvec(const matrix::LinearOperator<double> &A,
152  const view1D<matrix::Dense<double>, double> &x,
153  view1D<matrix::Dense<double>, double> &y);
154 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
155  vector<float> &y);
156 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
157  view1D<vector<float>, float> &y);
158 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
159  view1D<matrix::Dense<float>, float> &y);
160 void matvec(const matrix::LinearOperator<float> &A,
161  const view1D<vector<float>, float> &x, vector<float> &y);
162 void matvec(const matrix::LinearOperator<float> &A,
163  const view1D<vector<float>, float> &x,
164  view1D<vector<float>, float> &y);
165 void matvec(const matrix::LinearOperator<float> &A,
166  const view1D<vector<float>, float> &x,
167  view1D<matrix::Dense<float>, float> &y);
168 void matvec(const matrix::LinearOperator<float> &A,
169  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
170 void matvec(const matrix::LinearOperator<float> &A,
171  const view1D<matrix::Dense<float>, float> &x,
172  view1D<vector<float>, float> &y);
173 void matvec(const matrix::LinearOperator<float> &A,
174  const view1D<matrix::Dense<float>, float> &x,
175  view1D<matrix::Dense<float>, float> &y);
176 
187 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
188  vector<double> &y);
189 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
190  view1D<vector<double>, double> &y);
191 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
192  view1D<matrix::Dense<double>, double> &y);
193 void rmatvec(const matrix::LinearOperator<double> &A,
194  const view1D<vector<double>, double> &x, vector<double> &y);
195 void rmatvec(const matrix::LinearOperator<double> &A,
196  const view1D<vector<double>, double> &x,
197  view1D<vector<double>, double> &y);
198 void rmatvec(const matrix::LinearOperator<double> &A,
199  const view1D<vector<double>, double> &x,
200  view1D<matrix::Dense<double>, double> &y);
201 void rmatvec(const matrix::LinearOperator<double> &A,
202  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
203 void rmatvec(const matrix::LinearOperator<double> &A,
204  const view1D<matrix::Dense<double>, double> &x,
205  view1D<vector<double>, double> &y);
206 void rmatvec(const matrix::LinearOperator<double> &A,
207  const view1D<matrix::Dense<double>, double> &x,
208  view1D<matrix::Dense<double>, double> &y);
209 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
210  vector<float> &y);
211 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
212  view1D<vector<float>, float> &y);
213 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
214  view1D<matrix::Dense<float>, float> &y);
215 void rmatvec(const matrix::LinearOperator<float> &A,
216  const view1D<vector<float>, float> &x, vector<float> &y);
217 void rmatvec(const matrix::LinearOperator<float> &A,
218  const view1D<vector<float>, float> &x,
219  view1D<vector<float>, float> &y);
220 void rmatvec(const matrix::LinearOperator<float> &A,
221  const view1D<vector<float>, float> &x,
222  view1D<matrix::Dense<float>, float> &y);
223 void rmatvec(const matrix::LinearOperator<float> &A,
224  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
225 void rmatvec(const matrix::LinearOperator<float> &A,
226  const view1D<matrix::Dense<float>, float> &x,
227  view1D<vector<float>, float> &y);
228 void rmatvec(const matrix::LinearOperator<float> &A,
229  const view1D<matrix::Dense<float>, float> &x,
230  view1D<matrix::Dense<float>, float> &y);
231 } // namespace monolish::blas
monolish::blas::rmatvec
void rmatvec(const matrix::LinearOperator< double > &A, const vector< double > &x, vector< double > &y)
matrix (LinearOperator) and vector multiplication: y = Ax
monolish::blas::matvec
void matvec(const matrix::Dense< double > &A, const vector< double > &x, vector< double > &y)
Dense matrix and vector multiplication: y = Ax.
monolish::blas
Basic Linear Algebra Subprograms for Dense Matrix, Sparse Matrix, Vector and Scalar.
Definition: monolish_matrix_blas.hpp:10