monolish  0.14.0
MONOlithic LIner equation Solvers for Highly-parallel architecture
monolish_vector_blas.hpp
Go to the documentation of this file.
1 // this code is generated by gen_vector_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 vecadd(const vector<double> &a, const vector<double> &b,
29  vector<double> &y);
30 void vecadd(const vector<double> &a, const vector<double> &b,
31  view1D<vector<double>, double> &y);
32 void vecadd(const vector<double> &a, const vector<double> &b,
33  view1D<matrix::Dense<double>, double> &y);
34 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
35  vector<double> &y);
36 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
37  view1D<vector<double>, double> &y);
38 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
39  view1D<matrix::Dense<double>, double> &y);
40 void vecadd(const vector<double> &a,
41  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
42 void vecadd(const vector<double> &a,
43  const view1D<matrix::Dense<double>, double> &b,
44  view1D<vector<double>, double> &y);
45 void vecadd(const vector<double> &a,
46  const view1D<matrix::Dense<double>, double> &b,
47  view1D<matrix::Dense<double>, double> &y);
48 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
49  vector<double> &y);
50 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
51  view1D<vector<double>, double> &y);
52 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
53  view1D<matrix::Dense<double>, double> &y);
54 void vecadd(const view1D<vector<double>, double> &a,
55  const view1D<vector<double>, double> &b, vector<double> &y);
56 void vecadd(const view1D<vector<double>, double> &a,
57  const view1D<vector<double>, double> &b,
58  view1D<vector<double>, double> &y);
59 void vecadd(const view1D<vector<double>, double> &a,
60  const view1D<vector<double>, double> &b,
61  view1D<matrix::Dense<double>, double> &y);
62 void vecadd(const view1D<vector<double>, double> &a,
63  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
64 void vecadd(const view1D<vector<double>, double> &a,
65  const view1D<matrix::Dense<double>, double> &b,
66  view1D<vector<double>, double> &y);
67 void vecadd(const view1D<vector<double>, double> &a,
68  const view1D<matrix::Dense<double>, double> &b,
69  view1D<matrix::Dense<double>, double> &y);
70 void vecadd(const view1D<matrix::Dense<double>, double> &a,
71  const vector<double> &b, vector<double> &y);
72 void vecadd(const view1D<matrix::Dense<double>, double> &a,
73  const vector<double> &b, view1D<vector<double>, double> &y);
74 void vecadd(const view1D<matrix::Dense<double>, double> &a,
75  const vector<double> &b, view1D<matrix::Dense<double>, double> &y);
76 void vecadd(const view1D<matrix::Dense<double>, double> &a,
77  const view1D<vector<double>, double> &b, vector<double> &y);
78 void vecadd(const view1D<matrix::Dense<double>, double> &a,
79  const view1D<vector<double>, double> &b,
80  view1D<vector<double>, double> &y);
81 void vecadd(const view1D<matrix::Dense<double>, double> &a,
82  const view1D<vector<double>, double> &b,
83  view1D<matrix::Dense<double>, double> &y);
84 void vecadd(const view1D<matrix::Dense<double>, double> &a,
85  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
86 void vecadd(const view1D<matrix::Dense<double>, double> &a,
87  const view1D<matrix::Dense<double>, double> &b,
88  view1D<vector<double>, double> &y);
89 void vecadd(const view1D<matrix::Dense<double>, double> &a,
90  const view1D<matrix::Dense<double>, double> &b,
91  view1D<matrix::Dense<double>, double> &y);
92 void vecadd(const vector<float> &a, const vector<float> &b, vector<float> &y);
93 void vecadd(const vector<float> &a, const vector<float> &b,
94  view1D<vector<float>, float> &y);
95 void vecadd(const vector<float> &a, const vector<float> &b,
96  view1D<matrix::Dense<float>, float> &y);
97 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
98  vector<float> &y);
99 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
100  view1D<vector<float>, float> &y);
101 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
102  view1D<matrix::Dense<float>, float> &y);
103 void vecadd(const vector<float> &a,
104  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
105 void vecadd(const vector<float> &a,
106  const view1D<matrix::Dense<float>, float> &b,
107  view1D<vector<float>, float> &y);
108 void vecadd(const vector<float> &a,
109  const view1D<matrix::Dense<float>, float> &b,
110  view1D<matrix::Dense<float>, float> &y);
111 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
112  vector<float> &y);
113 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
114  view1D<vector<float>, float> &y);
115 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
116  view1D<matrix::Dense<float>, float> &y);
117 void vecadd(const view1D<vector<float>, float> &a,
118  const view1D<vector<float>, float> &b, vector<float> &y);
119 void vecadd(const view1D<vector<float>, float> &a,
120  const view1D<vector<float>, float> &b,
121  view1D<vector<float>, float> &y);
122 void vecadd(const view1D<vector<float>, float> &a,
123  const view1D<vector<float>, float> &b,
124  view1D<matrix::Dense<float>, float> &y);
125 void vecadd(const view1D<vector<float>, float> &a,
126  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
127 void vecadd(const view1D<vector<float>, float> &a,
128  const view1D<matrix::Dense<float>, float> &b,
129  view1D<vector<float>, float> &y);
130 void vecadd(const view1D<vector<float>, float> &a,
131  const view1D<matrix::Dense<float>, float> &b,
132  view1D<matrix::Dense<float>, float> &y);
133 void vecadd(const view1D<matrix::Dense<float>, float> &a,
134  const vector<float> &b, vector<float> &y);
135 void vecadd(const view1D<matrix::Dense<float>, float> &a,
136  const vector<float> &b, view1D<vector<float>, float> &y);
137 void vecadd(const view1D<matrix::Dense<float>, float> &a,
138  const vector<float> &b, view1D<matrix::Dense<float>, float> &y);
139 void vecadd(const view1D<matrix::Dense<float>, float> &a,
140  const view1D<vector<float>, float> &b, vector<float> &y);
141 void vecadd(const view1D<matrix::Dense<float>, float> &a,
142  const view1D<vector<float>, float> &b,
143  view1D<vector<float>, float> &y);
144 void vecadd(const view1D<matrix::Dense<float>, float> &a,
145  const view1D<vector<float>, float> &b,
146  view1D<matrix::Dense<float>, float> &y);
147 void vecadd(const view1D<matrix::Dense<float>, float> &a,
148  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
149 void vecadd(const view1D<matrix::Dense<float>, float> &a,
150  const view1D<matrix::Dense<float>, float> &b,
151  view1D<vector<float>, float> &y);
152 void vecadd(const view1D<matrix::Dense<float>, float> &a,
153  const view1D<matrix::Dense<float>, float> &b,
154  view1D<matrix::Dense<float>, float> &y);
155 
167 void vecsub(const vector<double> &a, const vector<double> &b,
168  vector<double> &y);
169 void vecsub(const vector<double> &a, const vector<double> &b,
170  view1D<vector<double>, double> &y);
171 void vecsub(const vector<double> &a, const vector<double> &b,
172  view1D<matrix::Dense<double>, double> &y);
173 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
174  vector<double> &y);
175 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
176  view1D<vector<double>, double> &y);
177 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
178  view1D<matrix::Dense<double>, double> &y);
179 void vecsub(const vector<double> &a,
180  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
181 void vecsub(const vector<double> &a,
182  const view1D<matrix::Dense<double>, double> &b,
183  view1D<vector<double>, double> &y);
184 void vecsub(const vector<double> &a,
185  const view1D<matrix::Dense<double>, double> &b,
186  view1D<matrix::Dense<double>, double> &y);
187 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
188  vector<double> &y);
189 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
190  view1D<vector<double>, double> &y);
191 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
192  view1D<matrix::Dense<double>, double> &y);
193 void vecsub(const view1D<vector<double>, double> &a,
194  const view1D<vector<double>, double> &b, vector<double> &y);
195 void vecsub(const view1D<vector<double>, double> &a,
196  const view1D<vector<double>, double> &b,
197  view1D<vector<double>, double> &y);
198 void vecsub(const view1D<vector<double>, double> &a,
199  const view1D<vector<double>, double> &b,
200  view1D<matrix::Dense<double>, double> &y);
201 void vecsub(const view1D<vector<double>, double> &a,
202  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
203 void vecsub(const view1D<vector<double>, double> &a,
204  const view1D<matrix::Dense<double>, double> &b,
205  view1D<vector<double>, double> &y);
206 void vecsub(const view1D<vector<double>, double> &a,
207  const view1D<matrix::Dense<double>, double> &b,
208  view1D<matrix::Dense<double>, double> &y);
209 void vecsub(const view1D<matrix::Dense<double>, double> &a,
210  const vector<double> &b, vector<double> &y);
211 void vecsub(const view1D<matrix::Dense<double>, double> &a,
212  const vector<double> &b, view1D<vector<double>, double> &y);
213 void vecsub(const view1D<matrix::Dense<double>, double> &a,
214  const vector<double> &b, view1D<matrix::Dense<double>, double> &y);
215 void vecsub(const view1D<matrix::Dense<double>, double> &a,
216  const view1D<vector<double>, double> &b, vector<double> &y);
217 void vecsub(const view1D<matrix::Dense<double>, double> &a,
218  const view1D<vector<double>, double> &b,
219  view1D<vector<double>, double> &y);
220 void vecsub(const view1D<matrix::Dense<double>, double> &a,
221  const view1D<vector<double>, double> &b,
222  view1D<matrix::Dense<double>, double> &y);
223 void vecsub(const view1D<matrix::Dense<double>, double> &a,
224  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
225 void vecsub(const view1D<matrix::Dense<double>, double> &a,
226  const view1D<matrix::Dense<double>, double> &b,
227  view1D<vector<double>, double> &y);
228 void vecsub(const view1D<matrix::Dense<double>, double> &a,
229  const view1D<matrix::Dense<double>, double> &b,
230  view1D<matrix::Dense<double>, double> &y);
231 void vecsub(const vector<float> &a, const vector<float> &b, vector<float> &y);
232 void vecsub(const vector<float> &a, const vector<float> &b,
233  view1D<vector<float>, float> &y);
234 void vecsub(const vector<float> &a, const vector<float> &b,
235  view1D<matrix::Dense<float>, float> &y);
236 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
237  vector<float> &y);
238 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
239  view1D<vector<float>, float> &y);
240 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
241  view1D<matrix::Dense<float>, float> &y);
242 void vecsub(const vector<float> &a,
243  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
244 void vecsub(const vector<float> &a,
245  const view1D<matrix::Dense<float>, float> &b,
246  view1D<vector<float>, float> &y);
247 void vecsub(const vector<float> &a,
248  const view1D<matrix::Dense<float>, float> &b,
249  view1D<matrix::Dense<float>, float> &y);
250 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
251  vector<float> &y);
252 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
253  view1D<vector<float>, float> &y);
254 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
255  view1D<matrix::Dense<float>, float> &y);
256 void vecsub(const view1D<vector<float>, float> &a,
257  const view1D<vector<float>, float> &b, vector<float> &y);
258 void vecsub(const view1D<vector<float>, float> &a,
259  const view1D<vector<float>, float> &b,
260  view1D<vector<float>, float> &y);
261 void vecsub(const view1D<vector<float>, float> &a,
262  const view1D<vector<float>, float> &b,
263  view1D<matrix::Dense<float>, float> &y);
264 void vecsub(const view1D<vector<float>, float> &a,
265  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
266 void vecsub(const view1D<vector<float>, float> &a,
267  const view1D<matrix::Dense<float>, float> &b,
268  view1D<vector<float>, float> &y);
269 void vecsub(const view1D<vector<float>, float> &a,
270  const view1D<matrix::Dense<float>, float> &b,
271  view1D<matrix::Dense<float>, float> &y);
272 void vecsub(const view1D<matrix::Dense<float>, float> &a,
273  const vector<float> &b, vector<float> &y);
274 void vecsub(const view1D<matrix::Dense<float>, float> &a,
275  const vector<float> &b, view1D<vector<float>, float> &y);
276 void vecsub(const view1D<matrix::Dense<float>, float> &a,
277  const vector<float> &b, view1D<matrix::Dense<float>, float> &y);
278 void vecsub(const view1D<matrix::Dense<float>, float> &a,
279  const view1D<vector<float>, float> &b, vector<float> &y);
280 void vecsub(const view1D<matrix::Dense<float>, float> &a,
281  const view1D<vector<float>, float> &b,
282  view1D<vector<float>, float> &y);
283 void vecsub(const view1D<matrix::Dense<float>, float> &a,
284  const view1D<vector<float>, float> &b,
285  view1D<matrix::Dense<float>, float> &y);
286 void vecsub(const view1D<matrix::Dense<float>, float> &a,
287  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
288 void vecsub(const view1D<matrix::Dense<float>, float> &a,
289  const view1D<matrix::Dense<float>, float> &b,
290  view1D<vector<float>, float> &y);
291 void vecsub(const view1D<matrix::Dense<float>, float> &a,
292  const view1D<matrix::Dense<float>, float> &b,
293  view1D<matrix::Dense<float>, float> &y);
294 
305 void copy(const vector<double> &x, vector<double> &y);
306 void copy(const vector<double> &x, view1D<vector<double>, double> &y);
307 void copy(const vector<double> &x, view1D<matrix::Dense<double>, double> &y);
308 void copy(const view1D<vector<double>, double> &x, vector<double> &y);
309 void copy(const view1D<vector<double>, double> &x,
310  view1D<vector<double>, double> &y);
311 void copy(const view1D<vector<double>, double> &x,
312  view1D<matrix::Dense<double>, double> &y);
313 void copy(const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
314 void copy(const view1D<matrix::Dense<double>, double> &x,
315  view1D<vector<double>, double> &y);
316 void copy(const view1D<matrix::Dense<double>, double> &x,
317  view1D<matrix::Dense<double>, double> &y);
318 void copy(const vector<float> &x, vector<float> &y);
319 void copy(const vector<float> &x, view1D<vector<float>, float> &y);
320 void copy(const vector<float> &x, view1D<matrix::Dense<float>, float> &y);
321 void copy(const view1D<vector<float>, float> &x, vector<float> &y);
322 void copy(const view1D<vector<float>, float> &x,
323  view1D<vector<float>, float> &y);
324 void copy(const view1D<vector<float>, float> &x,
325  view1D<matrix::Dense<float>, float> &y);
326 void copy(const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
327 void copy(const view1D<matrix::Dense<float>, float> &x,
328  view1D<vector<float>, float> &y);
329 void copy(const view1D<matrix::Dense<float>, float> &x,
330  view1D<matrix::Dense<float>, float> &y);
331 
342 void asum(const vector<double> &x, double &ans);
343 void asum(const view1D<vector<double>, double> &x, double &ans);
344 void asum(const view1D<matrix::Dense<double>, double> &x, double &ans);
345 void asum(const vector<float> &x, float &ans);
346 void asum(const view1D<vector<float>, float> &x, float &ans);
347 void asum(const view1D<matrix::Dense<float>, float> &x, float &ans);
348 
359 double asum(const vector<double> &x);
360 double asum(const view1D<vector<double>, double> &x);
361 double asum(const view1D<matrix::Dense<double>, double> &x);
362 float asum(const vector<float> &x);
363 float asum(const view1D<vector<float>, float> &x);
364 float asum(const view1D<matrix::Dense<float>, float> &x);
365 
376 void sum(const vector<double> &x, double &ans);
377 void sum(const view1D<vector<double>, double> &x, double &ans);
378 void sum(const view1D<matrix::Dense<double>, double> &x, double &ans);
379 void sum(const vector<float> &x, float &ans);
380 void sum(const view1D<vector<float>, float> &x, float &ans);
381 void sum(const view1D<matrix::Dense<float>, float> &x, float &ans);
382 
393 double sum(const vector<double> &x);
394 double sum(const view1D<vector<double>, double> &x);
395 double sum(const view1D<matrix::Dense<double>, double> &x);
396 float sum(const vector<float> &x);
397 float sum(const view1D<vector<float>, float> &x);
398 float sum(const view1D<matrix::Dense<float>, float> &x);
399 
411 void axpy(const double alpha, const vector<double> &x, vector<double> &y);
412 void axpy(const double alpha, const vector<double> &x,
413  view1D<vector<double>, double> &y);
414 void axpy(const double alpha, const vector<double> &x,
415  view1D<matrix::Dense<double>, double> &y);
416 void axpy(const double alpha, const view1D<vector<double>, double> &x,
417  vector<double> &y);
418 void axpy(const double alpha, const view1D<vector<double>, double> &x,
419  view1D<vector<double>, double> &y);
420 void axpy(const double alpha, const view1D<vector<double>, double> &x,
421  view1D<matrix::Dense<double>, double> &y);
422 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
423  vector<double> &y);
424 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
425  view1D<vector<double>, double> &y);
426 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
427  view1D<matrix::Dense<double>, double> &y);
428 void axpy(const float alpha, const vector<float> &x, vector<float> &y);
429 void axpy(const float alpha, const vector<float> &x,
430  view1D<vector<float>, float> &y);
431 void axpy(const float alpha, const vector<float> &x,
432  view1D<matrix::Dense<float>, float> &y);
433 void axpy(const float alpha, const view1D<vector<float>, float> &x,
434  vector<float> &y);
435 void axpy(const float alpha, const view1D<vector<float>, float> &x,
436  view1D<vector<float>, float> &y);
437 void axpy(const float alpha, const view1D<vector<float>, float> &x,
438  view1D<matrix::Dense<float>, float> &y);
439 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
440  vector<float> &y);
441 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
442  view1D<vector<float>, float> &y);
443 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
444  view1D<matrix::Dense<float>, float> &y);
445 
458 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
459  vector<double> &z);
460 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
461  view1D<vector<double>, double> &z);
462 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
463  view1D<matrix::Dense<double>, double> &z);
464 void axpyz(const double alpha, const vector<double> &x,
465  const view1D<vector<double>, double> &y, vector<double> &z);
466 void axpyz(const double alpha, const vector<double> &x,
467  const view1D<vector<double>, double> &y,
468  view1D<vector<double>, double> &z);
469 void axpyz(const double alpha, const vector<double> &x,
470  const view1D<vector<double>, double> &y,
471  view1D<matrix::Dense<double>, double> &z);
472 void axpyz(const double alpha, const vector<double> &x,
473  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
474 void axpyz(const double alpha, const vector<double> &x,
475  const view1D<matrix::Dense<double>, double> &y,
476  view1D<vector<double>, double> &z);
477 void axpyz(const double alpha, const vector<double> &x,
478  const view1D<matrix::Dense<double>, double> &y,
479  view1D<matrix::Dense<double>, double> &z);
480 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
481  const vector<double> &y, vector<double> &z);
482 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
483  const vector<double> &y, view1D<vector<double>, double> &z);
484 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
485  const vector<double> &y, view1D<matrix::Dense<double>, double> &z);
486 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
487  const view1D<vector<double>, double> &y, vector<double> &z);
488 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
489  const view1D<vector<double>, double> &y,
490  view1D<vector<double>, double> &z);
491 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
492  const view1D<vector<double>, double> &y,
493  view1D<matrix::Dense<double>, double> &z);
494 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
495  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
496 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
497  const view1D<matrix::Dense<double>, double> &y,
498  view1D<vector<double>, double> &z);
499 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
500  const view1D<matrix::Dense<double>, double> &y,
501  view1D<matrix::Dense<double>, double> &z);
502 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
503  const vector<double> &y, vector<double> &z);
504 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
505  const vector<double> &y, view1D<vector<double>, double> &z);
506 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
507  const vector<double> &y, view1D<matrix::Dense<double>, double> &z);
508 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
509  const view1D<vector<double>, double> &y, vector<double> &z);
510 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
511  const view1D<vector<double>, double> &y,
512  view1D<vector<double>, double> &z);
513 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
514  const view1D<vector<double>, double> &y,
515  view1D<matrix::Dense<double>, double> &z);
516 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
517  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
518 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
519  const view1D<matrix::Dense<double>, double> &y,
520  view1D<vector<double>, double> &z);
521 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
522  const view1D<matrix::Dense<double>, double> &y,
523  view1D<matrix::Dense<double>, double> &z);
524 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
525  vector<float> &z);
526 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
527  view1D<vector<float>, float> &z);
528 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
529  view1D<matrix::Dense<float>, float> &z);
530 void axpyz(const float alpha, const vector<float> &x,
531  const view1D<vector<float>, float> &y, vector<float> &z);
532 void axpyz(const float alpha, const vector<float> &x,
533  const view1D<vector<float>, float> &y,
534  view1D<vector<float>, float> &z);
535 void axpyz(const float alpha, const vector<float> &x,
536  const view1D<vector<float>, float> &y,
537  view1D<matrix::Dense<float>, float> &z);
538 void axpyz(const float alpha, const vector<float> &x,
539  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
540 void axpyz(const float alpha, const vector<float> &x,
541  const view1D<matrix::Dense<float>, float> &y,
542  view1D<vector<float>, float> &z);
543 void axpyz(const float alpha, const vector<float> &x,
544  const view1D<matrix::Dense<float>, float> &y,
545  view1D<matrix::Dense<float>, float> &z);
546 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
547  const vector<float> &y, vector<float> &z);
548 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
549  const vector<float> &y, view1D<vector<float>, float> &z);
550 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
551  const vector<float> &y, view1D<matrix::Dense<float>, float> &z);
552 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
553  const view1D<vector<float>, float> &y, vector<float> &z);
554 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
555  const view1D<vector<float>, float> &y,
556  view1D<vector<float>, float> &z);
557 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
558  const view1D<vector<float>, float> &y,
559  view1D<matrix::Dense<float>, float> &z);
560 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
561  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
562 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
563  const view1D<matrix::Dense<float>, float> &y,
564  view1D<vector<float>, float> &z);
565 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
566  const view1D<matrix::Dense<float>, float> &y,
567  view1D<matrix::Dense<float>, float> &z);
568 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
569  const vector<float> &y, vector<float> &z);
570 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
571  const vector<float> &y, view1D<vector<float>, float> &z);
572 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
573  const vector<float> &y, view1D<matrix::Dense<float>, float> &z);
574 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
575  const view1D<vector<float>, float> &y, vector<float> &z);
576 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
577  const view1D<vector<float>, float> &y,
578  view1D<vector<float>, float> &z);
579 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
580  const view1D<vector<float>, float> &y,
581  view1D<matrix::Dense<float>, float> &z);
582 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
583  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
584 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
585  const view1D<matrix::Dense<float>, float> &y,
586  view1D<vector<float>, float> &z);
587 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
588  const view1D<matrix::Dense<float>, float> &y,
589  view1D<matrix::Dense<float>, float> &z);
590 
602 void dot(const vector<double> &x, const vector<double> &y, double &ans);
603 void dot(const vector<double> &x, const view1D<vector<double>, double> &y,
604  double &ans);
605 void dot(const vector<double> &x,
606  const view1D<matrix::Dense<double>, double> &y, double &ans);
607 void dot(const view1D<vector<double>, double> &x, const vector<double> &y,
608  double &ans);
609 void dot(const view1D<vector<double>, double> &x,
610  const view1D<vector<double>, double> &y, double &ans);
611 void dot(const view1D<vector<double>, double> &x,
612  const view1D<matrix::Dense<double>, double> &y, double &ans);
613 void dot(const view1D<matrix::Dense<double>, double> &x,
614  const vector<double> &y, double &ans);
615 void dot(const view1D<matrix::Dense<double>, double> &x,
616  const view1D<vector<double>, double> &y, double &ans);
617 void dot(const view1D<matrix::Dense<double>, double> &x,
618  const view1D<matrix::Dense<double>, double> &y, double &ans);
619 void dot(const vector<float> &x, const vector<float> &y, float &ans);
620 void dot(const vector<float> &x, const view1D<vector<float>, float> &y,
621  float &ans);
622 void dot(const vector<float> &x, const view1D<matrix::Dense<float>, float> &y,
623  float &ans);
624 void dot(const view1D<vector<float>, float> &x, const vector<float> &y,
625  float &ans);
626 void dot(const view1D<vector<float>, float> &x,
627  const view1D<vector<float>, float> &y, float &ans);
628 void dot(const view1D<vector<float>, float> &x,
629  const view1D<matrix::Dense<float>, float> &y, float &ans);
630 void dot(const view1D<matrix::Dense<float>, float> &x, const vector<float> &y,
631  float &ans);
632 void dot(const view1D<matrix::Dense<float>, float> &x,
633  const view1D<vector<float>, float> &y, float &ans);
634 void dot(const view1D<matrix::Dense<float>, float> &x,
635  const view1D<matrix::Dense<float>, float> &y, float &ans);
636 
648 double dot(const vector<double> &x, const vector<double> &y);
649 double dot(const vector<double> &x, const view1D<vector<double>, double> &y);
650 double dot(const vector<double> &x,
651  const view1D<matrix::Dense<double>, double> &y);
652 double dot(const view1D<vector<double>, double> &x, const vector<double> &y);
653 double dot(const view1D<vector<double>, double> &x,
654  const view1D<vector<double>, double> &y);
655 double dot(const view1D<vector<double>, double> &x,
656  const view1D<matrix::Dense<double>, double> &y);
657 double dot(const view1D<matrix::Dense<double>, double> &x,
658  const vector<double> &y);
659 double dot(const view1D<matrix::Dense<double>, double> &x,
660  const view1D<vector<double>, double> &y);
661 double dot(const view1D<matrix::Dense<double>, double> &x,
662  const view1D<matrix::Dense<double>, double> &y);
663 float dot(const vector<float> &x, const vector<float> &y);
664 float dot(const vector<float> &x, const view1D<vector<float>, float> &y);
665 float dot(const vector<float> &x, const view1D<matrix::Dense<float>, float> &y);
666 float dot(const view1D<vector<float>, float> &x, const vector<float> &y);
667 float dot(const view1D<vector<float>, float> &x,
668  const view1D<vector<float>, float> &y);
669 float dot(const view1D<vector<float>, float> &x,
670  const view1D<matrix::Dense<float>, float> &y);
671 float dot(const view1D<matrix::Dense<float>, float> &x, const vector<float> &y);
672 float dot(const view1D<matrix::Dense<float>, float> &x,
673  const view1D<vector<float>, float> &y);
674 float dot(const view1D<matrix::Dense<float>, float> &x,
675  const view1D<matrix::Dense<float>, float> &y);
676 
687 void nrm1(const vector<double> &x, double &ans);
688 void nrm1(const view1D<vector<double>, double> &x, double &ans);
689 void nrm1(const view1D<matrix::Dense<double>, double> &x, double &ans);
690 void nrm1(const vector<float> &x, float &ans);
691 void nrm1(const view1D<vector<float>, float> &x, float &ans);
692 void nrm1(const view1D<matrix::Dense<float>, float> &x, float &ans);
693 
704 double nrm1(const vector<double> &x);
705 double nrm1(const view1D<vector<double>, double> &x);
706 double nrm1(const view1D<matrix::Dense<double>, double> &x);
707 float nrm1(const vector<float> &x);
708 float nrm1(const view1D<vector<float>, float> &x);
709 float nrm1(const view1D<matrix::Dense<float>, float> &x);
710 
721 void nrm2(const vector<double> &x, double &ans);
722 void nrm2(const view1D<vector<double>, double> &x, double &ans);
723 void nrm2(const view1D<matrix::Dense<double>, double> &x, double &ans);
724 void nrm2(const vector<float> &x, float &ans);
725 void nrm2(const view1D<vector<float>, float> &x, float &ans);
726 void nrm2(const view1D<matrix::Dense<float>, float> &x, float &ans);
727 
738 double nrm2(const vector<double> &x);
739 double nrm2(const view1D<vector<double>, double> &x);
740 double nrm2(const view1D<matrix::Dense<double>, double> &x);
741 float nrm2(const vector<float> &x);
742 float nrm2(const view1D<vector<float>, float> &x);
743 float nrm2(const view1D<matrix::Dense<float>, float> &x);
744 
755 void scal(const double alpha, vector<double> &x);
756 void scal(const double alpha, view1D<vector<double>, double> &x);
757 void scal(const double alpha, view1D<matrix::Dense<double>, double> &x);
758 void scal(const float alpha, vector<float> &x);
759 void scal(const float alpha, view1D<vector<float>, float> &x);
760 void scal(const float alpha, view1D<matrix::Dense<float>, float> &x);
761 
773 void xpay(const double alpha, const vector<double> &x, vector<double> &y);
774 void xpay(const double alpha, const vector<double> &x,
775  view1D<vector<double>, double> &y);
776 void xpay(const double alpha, const vector<double> &x,
777  view1D<matrix::Dense<double>, double> &y);
778 void xpay(const double alpha, const view1D<vector<double>, double> &x,
779  vector<double> &y);
780 void xpay(const double alpha, const view1D<vector<double>, double> &x,
781  view1D<vector<double>, double> &y);
782 void xpay(const double alpha, const view1D<vector<double>, double> &x,
783  view1D<matrix::Dense<double>, double> &y);
784 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
785  vector<double> &y);
786 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
787  view1D<vector<double>, double> &y);
788 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
789  view1D<matrix::Dense<double>, double> &y);
790 void xpay(const float alpha, const vector<float> &x, vector<float> &y);
791 void xpay(const float alpha, const vector<float> &x,
792  view1D<vector<float>, float> &y);
793 void xpay(const float alpha, const vector<float> &x,
794  view1D<matrix::Dense<float>, float> &y);
795 void xpay(const float alpha, const view1D<vector<float>, float> &x,
796  vector<float> &y);
797 void xpay(const float alpha, const view1D<vector<float>, float> &x,
798  view1D<vector<float>, float> &y);
799 void xpay(const float alpha, const view1D<vector<float>, float> &x,
800  view1D<matrix::Dense<float>, float> &y);
801 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
802  vector<float> &y);
803 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
804  view1D<vector<float>, float> &y);
805 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
806  view1D<matrix::Dense<float>, float> &y);
807 
808 } // namespace blas
809 } // namespace monolish
monolish::blas::vecadd
void vecadd(const vector< double > &a, const vector< double > &b, vector< double > &y)
element by element addition of vector a and vector b.
Definition: vector_blas.cpp:20
monolish::blas::nrm1
void nrm1(const vector< double > &x, double &ans)
nrm1: sum(abs(x[0:N]))
Definition: vector_blas.cpp:1056
monolish::blas::nrm2
void nrm2(const vector< double > &x, double &ans)
nrm2: ||x||_2
Definition: vector_blas.cpp:1080
monolish::blas::axpy
void axpy(const double alpha, const vector< double > &x, vector< double > &y)
axpy: y = ax + y
Definition: vector_blas.cpp:595
monolish::blas::sum
void sum(const vector< double > &x, double &ans)
vector<float> sum
Definition: vector_blas.cpp:584
monolish::blas::copy
void copy(const matrix::Dense< double > &A, matrix::Dense< double > &C)
Dense matrix copy (C=A)
Definition: dense_copy.cpp:25
monolish::blas::asum
void asum(const vector< double > &x, double &ans)
vector<float> asum (absolute sum)
Definition: vector_blas.cpp:562
monolish
Definition: monolish_matrix_blas.hpp:9
monolish::blas::dot
void dot(const vector< double > &x, const vector< double > &y, double &ans)
inner product (dot)
Definition: vector_blas.cpp:974
monolish::blas::xpay
void xpay(const double alpha, const vector< double > &x, vector< double > &y)
xpay: y = x + ay
Definition: vector_blas.cpp:1108
monolish::blas::scal
void scal(const double alpha, vector< double > &x)
scal: x = alpha * x
Definition: vector_blas.cpp:1093
monolish::blas::axpyz
void axpyz(const double alpha, const vector< double > &x, const vector< double > &y, vector< double > &z)
axpyz: z = ax + y
Definition: vector_blas.cpp:666
monolish::blas::vecsub
void vecsub(const vector< double > &a, const vector< double > &b, vector< double > &y)
element by element subtract of vector a and vector b.
Definition: vector_blas.cpp:256