monolish  0.16.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 
5 namespace monolish {
11 namespace blas {
12 
35  vector<double> &y);
37  view1D<vector<double>, double> &y);
39  view1D<matrix::Dense<double>, double> &y);
41  const view1D<vector<double>, double> &x, vector<double> &y);
43  const view1D<vector<double>, double> &x,
44  view1D<vector<double>, double> &y);
46  const view1D<vector<double>, double> &x,
47  view1D<matrix::Dense<double>, double> &y);
49  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
51  const view1D<matrix::Dense<double>, double> &x,
52  view1D<vector<double>, double> &y);
54  const view1D<matrix::Dense<double>, double> &x,
55  view1D<matrix::Dense<double>, double> &y);
56 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
57  vector<float> &y);
58 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
59  view1D<vector<float>, float> &y);
60 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
61  view1D<matrix::Dense<float>, float> &y);
63  const view1D<vector<float>, float> &x, vector<float> &y);
65  const view1D<vector<float>, float> &x,
66  view1D<vector<float>, float> &y);
68  const view1D<vector<float>, float> &x,
69  view1D<matrix::Dense<float>, float> &y);
71  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
73  const view1D<matrix::Dense<float>, float> &x,
74  view1D<vector<float>, float> &y);
76  const view1D<matrix::Dense<float>, float> &x,
77  view1D<matrix::Dense<float>, float> &y);
97  vector<double> &y);
99  view1D<vector<double>, double> &y);
101  view1D<matrix::Dense<double>, double> &y);
103  const view1D<vector<double>, double> &x, vector<double> &y);
105  const view1D<vector<double>, double> &x,
106  view1D<vector<double>, double> &y);
108  const view1D<vector<double>, double> &x,
109  view1D<matrix::Dense<double>, double> &y);
111  const view1D<matrix::Dense<double>, double> &x,
112  vector<double> &y);
114  const view1D<matrix::Dense<double>, double> &x,
115  view1D<vector<double>, double> &y);
117  const view1D<matrix::Dense<double>, double> &x,
118  view1D<matrix::Dense<double>, double> &y);
120  vector<float> &y);
122  view1D<vector<float>, float> &y);
124  view1D<matrix::Dense<float>, float> &y);
126  const view1D<vector<float>, float> &x, vector<float> &y);
128  const view1D<vector<float>, float> &x,
129  view1D<vector<float>, float> &y);
131  const view1D<vector<float>, float> &x,
132  view1D<matrix::Dense<float>, float> &y);
134  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
136  const view1D<matrix::Dense<float>, float> &x,
137  view1D<vector<float>, float> &y);
139  const view1D<matrix::Dense<float>, float> &x,
140  view1D<matrix::Dense<float>, float> &y);
160  vector<double> &y);
162  view1D<vector<double>, double> &y);
164  view1D<matrix::Dense<double>, double> &y);
166  const view1D<vector<double>, double> &x, vector<double> &y);
168  const view1D<vector<double>, double> &x,
169  view1D<vector<double>, double> &y);
171  const view1D<vector<double>, double> &x,
172  view1D<matrix::Dense<double>, double> &y);
174  const view1D<matrix::Dense<double>, double> &x,
175  vector<double> &y);
177  const view1D<matrix::Dense<double>, double> &x,
178  view1D<vector<double>, double> &y);
180  const view1D<matrix::Dense<double>, double> &x,
181  view1D<matrix::Dense<double>, double> &y);
183  vector<float> &y);
185  view1D<vector<float>, float> &y);
187  view1D<matrix::Dense<float>, float> &y);
189  const view1D<vector<float>, float> &x, vector<float> &y);
191  const view1D<vector<float>, float> &x,
192  view1D<vector<float>, float> &y);
194  const view1D<vector<float>, float> &x,
195  view1D<matrix::Dense<float>, float> &y);
197  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
199  const view1D<matrix::Dense<float>, float> &x,
200  view1D<vector<float>, float> &y);
202  const view1D<matrix::Dense<float>, float> &x,
203  view1D<matrix::Dense<float>, float> &y);
222 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
223  vector<double> &y);
224 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
225  view1D<vector<double>, double> &y);
226 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
227  view1D<matrix::Dense<double>, double> &y);
229  const view1D<vector<double>, double> &x, vector<double> &y);
231  const view1D<vector<double>, double> &x,
232  view1D<vector<double>, double> &y);
234  const view1D<vector<double>, double> &x,
235  view1D<matrix::Dense<double>, double> &y);
237  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
239  const view1D<matrix::Dense<double>, double> &x,
240  view1D<vector<double>, double> &y);
242  const view1D<matrix::Dense<double>, double> &x,
243  view1D<matrix::Dense<double>, double> &y);
244 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
245  vector<float> &y);
246 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
247  view1D<vector<float>, float> &y);
248 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
249  view1D<matrix::Dense<float>, float> &y);
250 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
251  vector<float> &y);
252 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
253  view1D<vector<float>, float> &y);
254 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
255  view1D<matrix::Dense<float>, float> &y);
257  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
259  const view1D<matrix::Dense<float>, float> &x,
260  view1D<vector<float>, float> &y);
262  const view1D<matrix::Dense<float>, float> &x,
263  view1D<matrix::Dense<float>, float> &y);
283  vector<double> &y);
285  view1D<vector<double>, double> &y);
287  view1D<matrix::Dense<double>, double> &y);
289  const view1D<vector<double>, double> &x, vector<double> &y);
291  const view1D<vector<double>, double> &x,
292  view1D<vector<double>, double> &y);
294  const view1D<vector<double>, double> &x,
295  view1D<matrix::Dense<double>, double> &y);
297  const view1D<matrix::Dense<double>, double> &x,
298  vector<double> &y);
300  const view1D<matrix::Dense<double>, double> &x,
301  view1D<vector<double>, double> &y);
303  const view1D<matrix::Dense<double>, double> &x,
304  view1D<matrix::Dense<double>, double> &y);
305 void matvec_N(const matrix::CRS<float> &A, const vector<float> &x,
306  vector<float> &y);
307 void matvec_N(const matrix::CRS<float> &A, const vector<float> &x,
308  view1D<vector<float>, float> &y);
309 void matvec_N(const matrix::CRS<float> &A, const vector<float> &x,
310  view1D<matrix::Dense<float>, float> &y);
312  const view1D<vector<float>, float> &x, vector<float> &y);
314  const view1D<vector<float>, float> &x,
315  view1D<vector<float>, float> &y);
317  const view1D<vector<float>, float> &x,
318  view1D<matrix::Dense<float>, float> &y);
320  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
322  const view1D<matrix::Dense<float>, float> &x,
323  view1D<vector<float>, float> &y);
325  const view1D<matrix::Dense<float>, float> &x,
326  view1D<matrix::Dense<float>, float> &y);
346  vector<double> &y);
348  view1D<vector<double>, double> &y);
350  view1D<matrix::Dense<double>, double> &y);
352  const view1D<vector<double>, double> &x, vector<double> &y);
354  const view1D<vector<double>, double> &x,
355  view1D<vector<double>, double> &y);
357  const view1D<vector<double>, double> &x,
358  view1D<matrix::Dense<double>, double> &y);
360  const view1D<matrix::Dense<double>, double> &x,
361  vector<double> &y);
363  const view1D<matrix::Dense<double>, double> &x,
364  view1D<vector<double>, double> &y);
366  const view1D<matrix::Dense<double>, double> &x,
367  view1D<matrix::Dense<double>, double> &y);
368 void matvec_T(const matrix::CRS<float> &A, const vector<float> &x,
369  vector<float> &y);
370 void matvec_T(const matrix::CRS<float> &A, const vector<float> &x,
371  view1D<vector<float>, float> &y);
372 void matvec_T(const matrix::CRS<float> &A, const vector<float> &x,
373  view1D<matrix::Dense<float>, float> &y);
375  const view1D<vector<float>, float> &x, vector<float> &y);
377  const view1D<vector<float>, float> &x,
378  view1D<vector<float>, float> &y);
380  const view1D<vector<float>, float> &x,
381  view1D<matrix::Dense<float>, float> &y);
383  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
385  const view1D<matrix::Dense<float>, float> &x,
386  view1D<vector<float>, float> &y);
388  const view1D<matrix::Dense<float>, float> &x,
389  view1D<matrix::Dense<float>, float> &y);
408  vector<double> &y);
410  view1D<vector<double>, double> &y);
412  view1D<matrix::Dense<double>, double> &y);
414  const view1D<vector<double>, double> &x, vector<double> &y);
416  const view1D<vector<double>, double> &x,
417  view1D<vector<double>, double> &y);
419  const view1D<vector<double>, double> &x,
420  view1D<matrix::Dense<double>, double> &y);
422  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
424  const view1D<matrix::Dense<double>, double> &x,
425  view1D<vector<double>, double> &y);
427  const view1D<matrix::Dense<double>, double> &x,
428  view1D<matrix::Dense<double>, double> &y);
430  vector<float> &y);
432  view1D<vector<float>, float> &y);
434  view1D<matrix::Dense<float>, float> &y);
436  const view1D<vector<float>, float> &x, vector<float> &y);
438  const view1D<vector<float>, float> &x,
439  view1D<vector<float>, float> &y);
441  const view1D<vector<float>, float> &x,
442  view1D<matrix::Dense<float>, float> &y);
444  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
446  const view1D<matrix::Dense<float>, float> &x,
447  view1D<vector<float>, float> &y);
449  const view1D<matrix::Dense<float>, float> &x,
450  view1D<matrix::Dense<float>, float> &y);
469  vector<double> &y);
471  view1D<vector<double>, double> &y);
473  view1D<matrix::Dense<double>, double> &y);
475  const view1D<vector<double>, double> &x, vector<double> &y);
477  const view1D<vector<double>, double> &x,
478  view1D<vector<double>, double> &y);
480  const view1D<vector<double>, double> &x,
481  view1D<matrix::Dense<double>, double> &y);
483  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
485  const view1D<matrix::Dense<double>, double> &x,
486  view1D<vector<double>, double> &y);
488  const view1D<matrix::Dense<double>, double> &x,
489  view1D<matrix::Dense<double>, double> &y);
491  vector<float> &y);
493  view1D<vector<float>, float> &y);
495  view1D<matrix::Dense<float>, float> &y);
497  const view1D<vector<float>, float> &x, vector<float> &y);
499  const view1D<vector<float>, float> &x,
500  view1D<vector<float>, float> &y);
502  const view1D<vector<float>, float> &x,
503  view1D<matrix::Dense<float>, float> &y);
505  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
507  const view1D<matrix::Dense<float>, float> &x,
508  view1D<vector<float>, float> &y);
510  const view1D<matrix::Dense<float>, float> &x,
511  view1D<matrix::Dense<float>, float> &y);
514 } // namespace blas
515 } // namespace monolish
Compressed Row Storage (CRS) format Matrix.
Dense 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.
monolish namespaces