monolish  0.14.0
MONOlithic LIner 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 #if defined USE_MPI
6 #include <mpi.h>
7 #endif
8 
9 namespace monolish {
15 namespace blas {
16 
28 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
29  vector<double> &y);
30 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
31  view1D<vector<double>, double> &y);
32 void matvec(const matrix::Dense<double> &A, const vector<double> &x,
33  view1D<matrix::Dense<double>, double> &y);
34 void matvec(const matrix::Dense<double> &A,
35  const view1D<vector<double>, double> &x, vector<double> &y);
36 void matvec(const matrix::Dense<double> &A,
37  const view1D<vector<double>, double> &x,
38  view1D<vector<double>, double> &y);
39 void matvec(const matrix::Dense<double> &A,
40  const view1D<vector<double>, double> &x,
41  view1D<matrix::Dense<double>, double> &y);
42 void matvec(const matrix::Dense<double> &A,
43  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
44 void matvec(const matrix::Dense<double> &A,
45  const view1D<matrix::Dense<double>, double> &x,
46  view1D<vector<double>, double> &y);
47 void matvec(const matrix::Dense<double> &A,
48  const view1D<matrix::Dense<double>, double> &x,
49  view1D<matrix::Dense<double>, double> &y);
50 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
51  vector<float> &y);
52 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
53  view1D<vector<float>, float> &y);
54 void matvec(const matrix::Dense<float> &A, const vector<float> &x,
55  view1D<matrix::Dense<float>, float> &y);
56 void matvec(const matrix::Dense<float> &A,
57  const view1D<vector<float>, float> &x, vector<float> &y);
58 void matvec(const matrix::Dense<float> &A,
59  const view1D<vector<float>, float> &x,
60  view1D<vector<float>, float> &y);
61 void matvec(const matrix::Dense<float> &A,
62  const view1D<vector<float>, float> &x,
63  view1D<matrix::Dense<float>, float> &y);
64 void matvec(const matrix::Dense<float> &A,
65  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
66 void matvec(const matrix::Dense<float> &A,
67  const view1D<matrix::Dense<float>, float> &x,
68  view1D<vector<float>, float> &y);
69 void matvec(const matrix::Dense<float> &A,
70  const view1D<matrix::Dense<float>, float> &x,
71  view1D<matrix::Dense<float>, float> &y);
72 
84 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
85  vector<double> &y);
86 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
87  view1D<vector<double>, double> &y);
88 void matvec(const matrix::CRS<double> &A, const vector<double> &x,
89  view1D<matrix::Dense<double>, double> &y);
90 void matvec(const matrix::CRS<double> &A,
91  const view1D<vector<double>, double> &x, vector<double> &y);
92 void matvec(const matrix::CRS<double> &A,
93  const view1D<vector<double>, double> &x,
94  view1D<vector<double>, double> &y);
95 void matvec(const matrix::CRS<double> &A,
96  const view1D<vector<double>, double> &x,
97  view1D<matrix::Dense<double>, double> &y);
98 void matvec(const matrix::CRS<double> &A,
99  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
100 void matvec(const matrix::CRS<double> &A,
101  const view1D<matrix::Dense<double>, double> &x,
102  view1D<vector<double>, double> &y);
103 void matvec(const matrix::CRS<double> &A,
104  const view1D<matrix::Dense<double>, double> &x,
105  view1D<matrix::Dense<double>, double> &y);
106 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
107  vector<float> &y);
108 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
109  view1D<vector<float>, float> &y);
110 void matvec(const matrix::CRS<float> &A, const vector<float> &x,
111  view1D<matrix::Dense<float>, float> &y);
112 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
113  vector<float> &y);
114 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
115  view1D<vector<float>, float> &y);
116 void matvec(const matrix::CRS<float> &A, const view1D<vector<float>, float> &x,
117  view1D<matrix::Dense<float>, float> &y);
118 void matvec(const matrix::CRS<float> &A,
119  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
120 void matvec(const matrix::CRS<float> &A,
121  const view1D<matrix::Dense<float>, float> &x,
122  view1D<vector<float>, float> &y);
123 void matvec(const matrix::CRS<float> &A,
124  const view1D<matrix::Dense<float>, float> &x,
125  view1D<matrix::Dense<float>, float> &y);
126 
137 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
138  vector<double> &y);
139 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
140  view1D<vector<double>, double> &y);
141 void matvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
142  view1D<matrix::Dense<double>, double> &y);
143 void matvec(const matrix::LinearOperator<double> &A,
144  const view1D<vector<double>, double> &x, vector<double> &y);
145 void matvec(const matrix::LinearOperator<double> &A,
146  const view1D<vector<double>, double> &x,
147  view1D<vector<double>, double> &y);
148 void matvec(const matrix::LinearOperator<double> &A,
149  const view1D<vector<double>, double> &x,
150  view1D<matrix::Dense<double>, double> &y);
151 void matvec(const matrix::LinearOperator<double> &A,
152  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
153 void matvec(const matrix::LinearOperator<double> &A,
154  const view1D<matrix::Dense<double>, double> &x,
155  view1D<vector<double>, double> &y);
156 void matvec(const matrix::LinearOperator<double> &A,
157  const view1D<matrix::Dense<double>, double> &x,
158  view1D<matrix::Dense<double>, double> &y);
159 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
160  vector<float> &y);
161 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
162  view1D<vector<float>, float> &y);
163 void matvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
164  view1D<matrix::Dense<float>, float> &y);
165 void matvec(const matrix::LinearOperator<float> &A,
166  const view1D<vector<float>, float> &x, vector<float> &y);
167 void matvec(const matrix::LinearOperator<float> &A,
168  const view1D<vector<float>, float> &x,
169  view1D<vector<float>, float> &y);
170 void matvec(const matrix::LinearOperator<float> &A,
171  const view1D<vector<float>, float> &x,
172  view1D<matrix::Dense<float>, float> &y);
173 void matvec(const matrix::LinearOperator<float> &A,
174  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
175 void matvec(const matrix::LinearOperator<float> &A,
176  const view1D<matrix::Dense<float>, float> &x,
177  view1D<vector<float>, float> &y);
178 void matvec(const matrix::LinearOperator<float> &A,
179  const view1D<matrix::Dense<float>, float> &x,
180  view1D<matrix::Dense<float>, float> &y);
181 
192 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
193  vector<double> &y);
194 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
195  view1D<vector<double>, double> &y);
196 void rmatvec(const matrix::LinearOperator<double> &A, const vector<double> &x,
197  view1D<matrix::Dense<double>, double> &y);
198 void rmatvec(const matrix::LinearOperator<double> &A,
199  const view1D<vector<double>, double> &x, vector<double> &y);
200 void rmatvec(const matrix::LinearOperator<double> &A,
201  const view1D<vector<double>, double> &x,
202  view1D<vector<double>, double> &y);
203 void rmatvec(const matrix::LinearOperator<double> &A,
204  const view1D<vector<double>, double> &x,
205  view1D<matrix::Dense<double>, double> &y);
206 void rmatvec(const matrix::LinearOperator<double> &A,
207  const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
208 void rmatvec(const matrix::LinearOperator<double> &A,
209  const view1D<matrix::Dense<double>, double> &x,
210  view1D<vector<double>, double> &y);
211 void rmatvec(const matrix::LinearOperator<double> &A,
212  const view1D<matrix::Dense<double>, double> &x,
213  view1D<matrix::Dense<double>, double> &y);
214 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
215  vector<float> &y);
216 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
217  view1D<vector<float>, float> &y);
218 void rmatvec(const matrix::LinearOperator<float> &A, const vector<float> &x,
219  view1D<matrix::Dense<float>, float> &y);
220 void rmatvec(const matrix::LinearOperator<float> &A,
221  const view1D<vector<float>, float> &x, vector<float> &y);
222 void rmatvec(const matrix::LinearOperator<float> &A,
223  const view1D<vector<float>, float> &x,
224  view1D<vector<float>, float> &y);
225 void rmatvec(const matrix::LinearOperator<float> &A,
226  const view1D<vector<float>, float> &x,
227  view1D<matrix::Dense<float>, float> &y);
228 void rmatvec(const matrix::LinearOperator<float> &A,
229  const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
230 void rmatvec(const matrix::LinearOperator<float> &A,
231  const view1D<matrix::Dense<float>, float> &x,
232  view1D<vector<float>, float> &y);
233 void rmatvec(const matrix::LinearOperator<float> &A,
234  const view1D<matrix::Dense<float>, float> &x,
235  view1D<matrix::Dense<float>, float> &y);
236 
237 } // namespace blas
238 } // namespace monolish
monolish::blas::rmatvec
void rmatvec(const matrix::LinearOperator< double > &A, const vector< double > &x, vector< double > &y)
matrix (LinearOperator) and vector multiplication: y = Ax
Definition: matvec_blas.cpp:251
monolish
Definition: monolish_matrix_blas.hpp:9
monolish::blas::matvec
void matvec(const matrix::Dense< double > &A, const vector< double > &x, vector< double > &y)
Dense matrix and vector multiplication: y = Ax.
Definition: matvec_blas.cpp:11