monolish  0.16.0
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 
34 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
35  vector<double> &y);
36 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
37  view1D<vector<double>, double> &y);
38 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
39  view1D<matrix::Dense<double>, double> &y);
40 void matvec(const matrix::Dense<double> &A,
41  const view1D<vector<double>, double> &x, vector<double> &y);
42 void matvec(const matrix::Dense<double> &A,
43  const view1D<vector<double>, double> &x,
44  view1D<vector<double>, double> &y);
45 void matvec(const matrix::Dense<double> &A,
46  const view1D<vector<double>, double> &x,
47  view1D<matrix::Dense<double>, double> &y);
48 void matvec(const matrix::Dense<double> &A,
49  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
50 void matvec(const matrix::Dense<double> &A,
51  const view1D<matrix::Dense<double>, double> &x,
52  view1D<vector<double>, double> &y);
53 void matvec(const matrix::Dense<double> &A,
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);
62 void matvec(const matrix::Dense<float> &A,
63  const view1D<vector<float>, float> &x, vector<float> &y);
64 void matvec(const matrix::Dense<float> &A,
65  const view1D<vector<float>, float> &x,
66  view1D<vector<float>, float> &y);
67 void matvec(const matrix::Dense<float> &A,
68  const view1D<vector<float>, float> &x,
69  view1D<matrix::Dense<float>, float> &y);
70 void matvec(const matrix::Dense<float> &A,
71  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
72 void matvec(const matrix::Dense<float> &A,
73  const view1D<matrix::Dense<float>, float> &x,
74  view1D<vector<float>, float> &y);
75 void matvec(const matrix::Dense<float> &A,
76  const view1D<matrix::Dense<float>, float> &x,
77  view1D<matrix::Dense<float>, float> &y);
96 void matvec_N(const matrix::Dense<double> &A, const vector<double> &x,
97  vector<double> &y);
98 void matvec_N(const matrix::Dense<double> &A, const vector<double> &x,
99  view1D<vector<double>, double> &y);
100 void matvec_N(const matrix::Dense<double> &A, const vector<double> &x,
101  view1D<matrix::Dense<double>, double> &y);
102 void matvec_N(const matrix::Dense<double> &A,
103  const view1D<vector<double>, double> &x, vector<double> &y);
104 void matvec_N(const matrix::Dense<double> &A,
105  const view1D<vector<double>, double> &x,
106  view1D<vector<double>, double> &y);
107 void matvec_N(const matrix::Dense<double> &A,
108  const view1D<vector<double>, double> &x,
109  view1D<matrix::Dense<double>, double> &y);
110 void matvec_N(const matrix::Dense<double> &A,
111  const view1D<matrix::Dense<double>, double> &x,
112  vector<double> &y);
113 void matvec_N(const matrix::Dense<double> &A,
114  const view1D<matrix::Dense<double>, double> &x,
115  view1D<vector<double>, double> &y);
116 void matvec_N(const matrix::Dense<double> &A,
117  const view1D<matrix::Dense<double>, double> &x,
118  view1D<matrix::Dense<double>, double> &y);
119 void matvec_N(const matrix::Dense<float> &A, const vector<float> &x,
120  vector<float> &y);
121 void matvec_N(const matrix::Dense<float> &A, const vector<float> &x,
122  view1D<vector<float>, float> &y);
123 void matvec_N(const matrix::Dense<float> &A, const vector<float> &x,
124  view1D<matrix::Dense<float>, float> &y);
125 void matvec_N(const matrix::Dense<float> &A,
126  const view1D<vector<float>, float> &x, vector<float> &y);
127 void matvec_N(const matrix::Dense<float> &A,
128  const view1D<vector<float>, float> &x,
129  view1D<vector<float>, float> &y);
130 void matvec_N(const matrix::Dense<float> &A,
131  const view1D<vector<float>, float> &x,
132  view1D<matrix::Dense<float>, float> &y);
133 void matvec_N(const matrix::Dense<float> &A,
134  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
135 void matvec_N(const matrix::Dense<float> &A,
136  const view1D<matrix::Dense<float>, float> &x,
137  view1D<vector<float>, float> &y);
138 void matvec_N(const matrix::Dense<float> &A,
139  const view1D<matrix::Dense<float>, float> &x,
140  view1D<matrix::Dense<float>, float> &y);
159 void matvec_T(const matrix::Dense<double> &A, const vector<double> &x,
160  vector<double> &y);
161 void matvec_T(const matrix::Dense<double> &A, const vector<double> &x,
162  view1D<vector<double>, double> &y);
163 void matvec_T(const matrix::Dense<double> &A, const vector<double> &x,
164  view1D<matrix::Dense<double>, double> &y);
165 void matvec_T(const matrix::Dense<double> &A,
166  const view1D<vector<double>, double> &x, vector<double> &y);
167 void matvec_T(const matrix::Dense<double> &A,
168  const view1D<vector<double>, double> &x,
169  view1D<vector<double>, double> &y);
170 void matvec_T(const matrix::Dense<double> &A,
171  const view1D<vector<double>, double> &x,
172  view1D<matrix::Dense<double>, double> &y);
173 void matvec_T(const matrix::Dense<double> &A,
174  const view1D<matrix::Dense<double>, double> &x,
175  vector<double> &y);
176 void matvec_T(const matrix::Dense<double> &A,
177  const view1D<matrix::Dense<double>, double> &x,
178  view1D<vector<double>, double> &y);
179 void matvec_T(const matrix::Dense<double> &A,
180  const view1D<matrix::Dense<double>, double> &x,
181  view1D<matrix::Dense<double>, double> &y);
182 void matvec_T(const matrix::Dense<float> &A, const vector<float> &x,
183  vector<float> &y);
184 void matvec_T(const matrix::Dense<float> &A, const vector<float> &x,
185  view1D<vector<float>, float> &y);
186 void matvec_T(const matrix::Dense<float> &A, const vector<float> &x,
187  view1D<matrix::Dense<float>, float> &y);
188 void matvec_T(const matrix::Dense<float> &A,
189  const view1D<vector<float>, float> &x, vector<float> &y);
190 void matvec_T(const matrix::Dense<float> &A,
191  const view1D<vector<float>, float> &x,
192  view1D<vector<float>, float> &y);
193 void matvec_T(const matrix::Dense<float> &A,
194  const view1D<vector<float>, float> &x,
195  view1D<matrix::Dense<float>, float> &y);
196 void matvec_T(const matrix::Dense<float> &A,
197  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
198 void matvec_T(const matrix::Dense<float> &A,
199  const view1D<matrix::Dense<float>, float> &x,
200  view1D<vector<float>, float> &y);
201 void matvec_T(const matrix::Dense<float> &A,
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);
228 void matvec(const matrix::CRS<double> &A,
229  const view1D<vector<double>, double> &x, vector<double> &y);
230 void matvec(const matrix::CRS<double> &A,
231  const view1D<vector<double>, double> &x,
232  view1D<vector<double>, double> &y);
233 void matvec(const matrix::CRS<double> &A,
234  const view1D<vector<double>, double> &x,
235  view1D<matrix::Dense<double>, double> &y);
236 void matvec(const matrix::CRS<double> &A,
237  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
238 void matvec(const matrix::CRS<double> &A,
239  const view1D<matrix::Dense<double>, double> &x,
240  view1D<vector<double>, double> &y);
241 void matvec(const matrix::CRS<double> &A,
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);
256 void matvec(const matrix::CRS<float> &A,
257  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
258 void matvec(const matrix::CRS<float> &A,
259  const view1D<matrix::Dense<float>, float> &x,
260  view1D<vector<float>, float> &y);
261 void matvec(const matrix::CRS<float> &A,
262  const view1D<matrix::Dense<float>, float> &x,
263  view1D<matrix::Dense<float>, float> &y);
282 void matvec_N(const matrix::CRS<double> &A, const vector<double> &x,
283  vector<double> &y);
284 void matvec_N(const matrix::CRS<double> &A, const vector<double> &x,
285  view1D<vector<double>, double> &y);
286 void matvec_N(const matrix::CRS<double> &A, const vector<double> &x,
287  view1D<matrix::Dense<double>, double> &y);
288 void matvec_N(const matrix::CRS<double> &A,
289  const view1D<vector<double>, double> &x, vector<double> &y);
290 void matvec_N(const matrix::CRS<double> &A,
291  const view1D<vector<double>, double> &x,
292  view1D<vector<double>, double> &y);
293 void matvec_N(const matrix::CRS<double> &A,
294  const view1D<vector<double>, double> &x,
295  view1D<matrix::Dense<double>, double> &y);
296 void matvec_N(const matrix::CRS<double> &A,
297  const view1D<matrix::Dense<double>, double> &x,
298  vector<double> &y);
299 void matvec_N(const matrix::CRS<double> &A,
300  const view1D<matrix::Dense<double>, double> &x,
301  view1D<vector<double>, double> &y);
302 void matvec_N(const matrix::CRS<double> &A,
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);
311 void matvec_N(const matrix::CRS<float> &A,
312  const view1D<vector<float>, float> &x, vector<float> &y);
313 void matvec_N(const matrix::CRS<float> &A,
314  const view1D<vector<float>, float> &x,
315  view1D<vector<float>, float> &y);
316 void matvec_N(const matrix::CRS<float> &A,
317  const view1D<vector<float>, float> &x,
318  view1D<matrix::Dense<float>, float> &y);
319 void matvec_N(const matrix::CRS<float> &A,
320  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
321 void matvec_N(const matrix::CRS<float> &A,
322  const view1D<matrix::Dense<float>, float> &x,
323  view1D<vector<float>, float> &y);
324 void matvec_N(const matrix::CRS<float> &A,
325  const view1D<matrix::Dense<float>, float> &x,
326  view1D<matrix::Dense<float>, float> &y);
345 void matvec_T(const matrix::CRS<double> &A, const vector<double> &x,
346  vector<double> &y);
347 void matvec_T(const matrix::CRS<double> &A, const vector<double> &x,
348  view1D<vector<double>, double> &y);
349 void matvec_T(const matrix::CRS<double> &A, const vector<double> &x,
350  view1D<matrix::Dense<double>, double> &y);
351 void matvec_T(const matrix::CRS<double> &A,
352  const view1D<vector<double>, double> &x, vector<double> &y);
353 void matvec_T(const matrix::CRS<double> &A,
354  const view1D<vector<double>, double> &x,
355  view1D<vector<double>, double> &y);
356 void matvec_T(const matrix::CRS<double> &A,
357  const view1D<vector<double>, double> &x,
358  view1D<matrix::Dense<double>, double> &y);
359 void matvec_T(const matrix::CRS<double> &A,
360  const view1D<matrix::Dense<double>, double> &x,
361  vector<double> &y);
362 void matvec_T(const matrix::CRS<double> &A,
363  const view1D<matrix::Dense<double>, double> &x,
364  view1D<vector<double>, double> &y);
365 void matvec_T(const matrix::CRS<double> &A,
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);
374 void matvec_T(const matrix::CRS<float> &A,
375  const view1D<vector<float>, float> &x, vector<float> &y);
376 void matvec_T(const matrix::CRS<float> &A,
377  const view1D<vector<float>, float> &x,
378  view1D<vector<float>, float> &y);
379 void matvec_T(const matrix::CRS<float> &A,
380  const view1D<vector<float>, float> &x,
381  view1D<matrix::Dense<float>, float> &y);
382 void matvec_T(const matrix::CRS<float> &A,
383  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
384 void matvec_T(const matrix::CRS<float> &A,
385  const view1D<matrix::Dense<float>, float> &x,
386  view1D<vector<float>, float> &y);
387 void matvec_T(const matrix::CRS<float> &A,
388  const view1D<matrix::Dense<float>, float> &x,
389  view1D<matrix::Dense<float>, float> &y);
407 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
408  vector<double> &y);
409 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
410  view1D<vector<double>, double> &y);
411 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
412  view1D<matrix::Dense<double>, double> &y);
413 void matvec(const matrix::LinearOperator<double> &A,
414  const view1D<vector<double>, double> &x, vector<double> &y);
415 void matvec(const matrix::LinearOperator<double> &A,
416  const view1D<vector<double>, double> &x,
417  view1D<vector<double>, double> &y);
418 void matvec(const matrix::LinearOperator<double> &A,
419  const view1D<vector<double>, double> &x,
420  view1D<matrix::Dense<double>, double> &y);
421 void matvec(const matrix::LinearOperator<double> &A,
422  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
423 void matvec(const matrix::LinearOperator<double> &A,
424  const view1D<matrix::Dense<double>, double> &x,
425  view1D<vector<double>, double> &y);
426 void matvec(const matrix::LinearOperator<double> &A,
427  const view1D<matrix::Dense<double>, double> &x,
428  view1D<matrix::Dense<double>, double> &y);
429 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
430  vector<float> &y);
431 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
432  view1D<vector<float>, float> &y);
433 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
434  view1D<matrix::Dense<float>, float> &y);
435 void matvec(const matrix::LinearOperator<float> &A,
436  const view1D<vector<float>, float> &x, vector<float> &y);
437 void matvec(const matrix::LinearOperator<float> &A,
438  const view1D<vector<float>, float> &x,
439  view1D<vector<float>, float> &y);
440 void matvec(const matrix::LinearOperator<float> &A,
441  const view1D<vector<float>, float> &x,
442  view1D<matrix::Dense<float>, float> &y);
443 void matvec(const matrix::LinearOperator<float> &A,
444  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
445 void matvec(const matrix::LinearOperator<float> &A,
446  const view1D<matrix::Dense<float>, float> &x,
447  view1D<vector<float>, float> &y);
448 void matvec(const matrix::LinearOperator<float> &A,
449  const view1D<matrix::Dense<float>, float> &x,
450  view1D<matrix::Dense<float>, float> &y);
468 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
469  vector<double> &y);
470 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
471  view1D<vector<double>, double> &y);
472 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
473  view1D<matrix::Dense<double>, double> &y);
474 void rmatvec(const matrix::LinearOperator<double> &A,
475  const view1D<vector<double>, double> &x, vector<double> &y);
476 void rmatvec(const matrix::LinearOperator<double> &A,
477  const view1D<vector<double>, double> &x,
478  view1D<vector<double>, double> &y);
479 void rmatvec(const matrix::LinearOperator<double> &A,
480  const view1D<vector<double>, double> &x,
481  view1D<matrix::Dense<double>, double> &y);
482 void rmatvec(const matrix::LinearOperator<double> &A,
483  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
484 void rmatvec(const matrix::LinearOperator<double> &A,
485  const view1D<matrix::Dense<double>, double> &x,
486  view1D<vector<double>, double> &y);
487 void rmatvec(const matrix::LinearOperator<double> &A,
488  const view1D<matrix::Dense<double>, double> &x,
489  view1D<matrix::Dense<double>, double> &y);
490 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
491  vector<float> &y);
492 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
493  view1D<vector<float>, float> &y);
494 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
495  view1D<matrix::Dense<float>, float> &y);
496 void rmatvec(const matrix::LinearOperator<float> &A,
497  const view1D<vector<float>, float> &x, vector<float> &y);
498 void rmatvec(const matrix::LinearOperator<float> &A,
499  const view1D<vector<float>, float> &x,
500  view1D<vector<float>, float> &y);
501 void rmatvec(const matrix::LinearOperator<float> &A,
502  const view1D<vector<float>, float> &x,
503  view1D<matrix::Dense<float>, float> &y);
504 void rmatvec(const matrix::LinearOperator<float> &A,
505  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
506 void rmatvec(const matrix::LinearOperator<float> &A,
507  const view1D<matrix::Dense<float>, float> &x,
508  view1D<vector<float>, float> &y);
509 void rmatvec(const matrix::LinearOperator<float> &A,
510  const view1D<matrix::Dense<float>, float> &x,
511  view1D<matrix::Dense<float>, float> &y);
514 } // namespace blas
515 } // namespace monolish
monolish::blas::rmatvec
void rmatvec(const matrix::LinearOperator< double > &A, const vector< double > &x, vector< double > &y)
Adjoint LinearOperator matrix and vector multiplication: y = A^Hx.
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
monolish namespaces
Definition: monolish_matrix_blas.hpp:5
monolish::blas::matvec_T
void matvec_T(const matrix::Dense< double > &A, const vector< double > &x, vector< double > &y)
Dense matrix and vector multiplication: y = A^T x.
monolish::blas::matvec_N
void matvec_N(const matrix::Dense< double > &A, const vector< double > &x, vector< double > &y)
Dense matrix and vector multiplication: y = A^N x.