monolish  0.16.2
MONOlithic LInear 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 namespace monolish {
11 namespace blas {
12 
33 void copy(const vector<double> &x, vector<double> &y);
34 void copy(const vector<double> &x, view1D<vector<double>, double> &y);
35 void copy(const vector<double> &x, view1D<matrix::Dense<double>, double> &y);
36 void copy(const view1D<vector<double>, double> &x, vector<double> &y);
37 void copy(const view1D<vector<double>, double> &x,
38  view1D<vector<double>, double> &y);
39 void copy(const view1D<vector<double>, double> &x,
40  view1D<matrix::Dense<double>, double> &y);
41 void copy(const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
42 void copy(const view1D<matrix::Dense<double>, double> &x,
43  view1D<vector<double>, double> &y);
44 void copy(const view1D<matrix::Dense<double>, double> &x,
45  view1D<matrix::Dense<double>, double> &y);
46 void copy(const vector<float> &x, vector<float> &y);
47 void copy(const vector<float> &x, view1D<vector<float>, float> &y);
48 void copy(const vector<float> &x, view1D<matrix::Dense<float>, float> &y);
49 void copy(const view1D<vector<float>, float> &x, vector<float> &y);
50 void copy(const view1D<vector<float>, float> &x,
51  view1D<vector<float>, float> &y);
52 void copy(const view1D<vector<float>, float> &x,
53  view1D<matrix::Dense<float>, float> &y);
54 void copy(const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
55 void copy(const view1D<matrix::Dense<float>, float> &x,
56  view1D<vector<float>, float> &y);
57 void copy(const view1D<matrix::Dense<float>, float> &x,
58  view1D<matrix::Dense<float>, float> &y);
77 void vecadd(const vector<double> &a, const vector<double> &b,
78  vector<double> &y);
79 void vecadd(const vector<double> &a, const vector<double> &b,
80  view1D<vector<double>, double> &y);
81 void vecadd(const vector<double> &a, const vector<double> &b,
82  view1D<matrix::Dense<double>, double> &y);
83 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
84  vector<double> &y);
85 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
86  view1D<vector<double>, double> &y);
87 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
88  view1D<matrix::Dense<double>, double> &y);
89 void vecadd(const vector<double> &a,
90  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
91 void vecadd(const vector<double> &a,
92  const view1D<matrix::Dense<double>, double> &b,
93  view1D<vector<double>, double> &y);
94 void vecadd(const vector<double> &a,
95  const view1D<matrix::Dense<double>, double> &b,
96  view1D<matrix::Dense<double>, double> &y);
97 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
98  vector<double> &y);
99 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
100  view1D<vector<double>, double> &y);
101 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
102  view1D<matrix::Dense<double>, double> &y);
103 void vecadd(const view1D<vector<double>, double> &a,
104  const view1D<vector<double>, double> &b, vector<double> &y);
105 void vecadd(const view1D<vector<double>, double> &a,
106  const view1D<vector<double>, double> &b,
107  view1D<vector<double>, double> &y);
108 void vecadd(const view1D<vector<double>, double> &a,
109  const view1D<vector<double>, double> &b,
110  view1D<matrix::Dense<double>, double> &y);
111 void vecadd(const view1D<vector<double>, double> &a,
112  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
113 void vecadd(const view1D<vector<double>, double> &a,
114  const view1D<matrix::Dense<double>, double> &b,
115  view1D<vector<double>, double> &y);
116 void vecadd(const view1D<vector<double>, double> &a,
117  const view1D<matrix::Dense<double>, double> &b,
118  view1D<matrix::Dense<double>, double> &y);
119 void vecadd(const view1D<matrix::Dense<double>, double> &a,
120  const vector<double> &b, vector<double> &y);
121 void vecadd(const view1D<matrix::Dense<double>, double> &a,
122  const vector<double> &b, view1D<vector<double>, double> &y);
123 void vecadd(const view1D<matrix::Dense<double>, double> &a,
124  const vector<double> &b, view1D<matrix::Dense<double>, double> &y);
125 void vecadd(const view1D<matrix::Dense<double>, double> &a,
126  const view1D<vector<double>, double> &b, vector<double> &y);
127 void vecadd(const view1D<matrix::Dense<double>, double> &a,
128  const view1D<vector<double>, double> &b,
129  view1D<vector<double>, double> &y);
130 void vecadd(const view1D<matrix::Dense<double>, double> &a,
131  const view1D<vector<double>, double> &b,
132  view1D<matrix::Dense<double>, double> &y);
133 void vecadd(const view1D<matrix::Dense<double>, double> &a,
134  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
135 void vecadd(const view1D<matrix::Dense<double>, double> &a,
136  const view1D<matrix::Dense<double>, double> &b,
137  view1D<vector<double>, double> &y);
138 void vecadd(const view1D<matrix::Dense<double>, double> &a,
139  const view1D<matrix::Dense<double>, double> &b,
140  view1D<matrix::Dense<double>, double> &y);
141 void vecadd(const vector<float> &a, const vector<float> &b, vector<float> &y);
142 void vecadd(const vector<float> &a, const vector<float> &b,
143  view1D<vector<float>, float> &y);
144 void vecadd(const vector<float> &a, const vector<float> &b,
145  view1D<matrix::Dense<float>, float> &y);
146 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
147  vector<float> &y);
148 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
149  view1D<vector<float>, float> &y);
150 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
151  view1D<matrix::Dense<float>, float> &y);
152 void vecadd(const vector<float> &a,
153  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
154 void vecadd(const vector<float> &a,
155  const view1D<matrix::Dense<float>, float> &b,
156  view1D<vector<float>, float> &y);
157 void vecadd(const vector<float> &a,
158  const view1D<matrix::Dense<float>, float> &b,
159  view1D<matrix::Dense<float>, float> &y);
160 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
161  vector<float> &y);
162 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
163  view1D<vector<float>, float> &y);
164 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
165  view1D<matrix::Dense<float>, float> &y);
166 void vecadd(const view1D<vector<float>, float> &a,
167  const view1D<vector<float>, float> &b, vector<float> &y);
168 void vecadd(const view1D<vector<float>, float> &a,
169  const view1D<vector<float>, float> &b,
170  view1D<vector<float>, float> &y);
171 void vecadd(const view1D<vector<float>, float> &a,
172  const view1D<vector<float>, float> &b,
173  view1D<matrix::Dense<float>, float> &y);
174 void vecadd(const view1D<vector<float>, float> &a,
175  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
176 void vecadd(const view1D<vector<float>, float> &a,
177  const view1D<matrix::Dense<float>, float> &b,
178  view1D<vector<float>, float> &y);
179 void vecadd(const view1D<vector<float>, float> &a,
180  const view1D<matrix::Dense<float>, float> &b,
181  view1D<matrix::Dense<float>, float> &y);
182 void vecadd(const view1D<matrix::Dense<float>, float> &a,
183  const vector<float> &b, vector<float> &y);
184 void vecadd(const view1D<matrix::Dense<float>, float> &a,
185  const vector<float> &b, view1D<vector<float>, float> &y);
186 void vecadd(const view1D<matrix::Dense<float>, float> &a,
187  const vector<float> &b, view1D<matrix::Dense<float>, float> &y);
188 void vecadd(const view1D<matrix::Dense<float>, float> &a,
189  const view1D<vector<float>, float> &b, vector<float> &y);
190 void vecadd(const view1D<matrix::Dense<float>, float> &a,
191  const view1D<vector<float>, float> &b,
192  view1D<vector<float>, float> &y);
193 void vecadd(const view1D<matrix::Dense<float>, float> &a,
194  const view1D<vector<float>, float> &b,
195  view1D<matrix::Dense<float>, float> &y);
196 void vecadd(const view1D<matrix::Dense<float>, float> &a,
197  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
198 void vecadd(const view1D<matrix::Dense<float>, float> &a,
199  const view1D<matrix::Dense<float>, float> &b,
200  view1D<vector<float>, float> &y);
201 void vecadd(const view1D<matrix::Dense<float>, float> &a,
202  const view1D<matrix::Dense<float>, float> &b,
203  view1D<matrix::Dense<float>, float> &y);
222 void vecsub(const vector<double> &a, const vector<double> &b,
223  vector<double> &y);
224 void vecsub(const vector<double> &a, const vector<double> &b,
225  view1D<vector<double>, double> &y);
226 void vecsub(const vector<double> &a, const vector<double> &b,
227  view1D<matrix::Dense<double>, double> &y);
228 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
229  vector<double> &y);
230 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
231  view1D<vector<double>, double> &y);
232 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
233  view1D<matrix::Dense<double>, double> &y);
234 void vecsub(const vector<double> &a,
235  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
236 void vecsub(const vector<double> &a,
237  const view1D<matrix::Dense<double>, double> &b,
238  view1D<vector<double>, double> &y);
239 void vecsub(const vector<double> &a,
240  const view1D<matrix::Dense<double>, double> &b,
241  view1D<matrix::Dense<double>, double> &y);
242 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
243  vector<double> &y);
244 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
245  view1D<vector<double>, double> &y);
246 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
247  view1D<matrix::Dense<double>, double> &y);
248 void vecsub(const view1D<vector<double>, double> &a,
249  const view1D<vector<double>, double> &b, vector<double> &y);
250 void vecsub(const view1D<vector<double>, double> &a,
251  const view1D<vector<double>, double> &b,
252  view1D<vector<double>, double> &y);
253 void vecsub(const view1D<vector<double>, double> &a,
254  const view1D<vector<double>, double> &b,
255  view1D<matrix::Dense<double>, double> &y);
256 void vecsub(const view1D<vector<double>, double> &a,
257  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
258 void vecsub(const view1D<vector<double>, double> &a,
259  const view1D<matrix::Dense<double>, double> &b,
260  view1D<vector<double>, double> &y);
261 void vecsub(const view1D<vector<double>, double> &a,
262  const view1D<matrix::Dense<double>, double> &b,
263  view1D<matrix::Dense<double>, double> &y);
264 void vecsub(const view1D<matrix::Dense<double>, double> &a,
265  const vector<double> &b, vector<double> &y);
266 void vecsub(const view1D<matrix::Dense<double>, double> &a,
267  const vector<double> &b, view1D<vector<double>, double> &y);
268 void vecsub(const view1D<matrix::Dense<double>, double> &a,
269  const vector<double> &b, view1D<matrix::Dense<double>, double> &y);
270 void vecsub(const view1D<matrix::Dense<double>, double> &a,
271  const view1D<vector<double>, double> &b, vector<double> &y);
272 void vecsub(const view1D<matrix::Dense<double>, double> &a,
273  const view1D<vector<double>, double> &b,
274  view1D<vector<double>, double> &y);
275 void vecsub(const view1D<matrix::Dense<double>, double> &a,
276  const view1D<vector<double>, double> &b,
277  view1D<matrix::Dense<double>, double> &y);
278 void vecsub(const view1D<matrix::Dense<double>, double> &a,
279  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
280 void vecsub(const view1D<matrix::Dense<double>, double> &a,
281  const view1D<matrix::Dense<double>, double> &b,
282  view1D<vector<double>, double> &y);
283 void vecsub(const view1D<matrix::Dense<double>, double> &a,
284  const view1D<matrix::Dense<double>, double> &b,
285  view1D<matrix::Dense<double>, double> &y);
286 void vecsub(const vector<float> &a, const vector<float> &b, vector<float> &y);
287 void vecsub(const vector<float> &a, const vector<float> &b,
288  view1D<vector<float>, float> &y);
289 void vecsub(const vector<float> &a, const vector<float> &b,
290  view1D<matrix::Dense<float>, float> &y);
291 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
292  vector<float> &y);
293 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
294  view1D<vector<float>, float> &y);
295 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
296  view1D<matrix::Dense<float>, float> &y);
297 void vecsub(const vector<float> &a,
298  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
299 void vecsub(const vector<float> &a,
300  const view1D<matrix::Dense<float>, float> &b,
301  view1D<vector<float>, float> &y);
302 void vecsub(const vector<float> &a,
303  const view1D<matrix::Dense<float>, float> &b,
304  view1D<matrix::Dense<float>, float> &y);
305 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
306  vector<float> &y);
307 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
308  view1D<vector<float>, float> &y);
309 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
310  view1D<matrix::Dense<float>, float> &y);
311 void vecsub(const view1D<vector<float>, float> &a,
312  const view1D<vector<float>, float> &b, vector<float> &y);
313 void vecsub(const view1D<vector<float>, float> &a,
314  const view1D<vector<float>, float> &b,
315  view1D<vector<float>, float> &y);
316 void vecsub(const view1D<vector<float>, float> &a,
317  const view1D<vector<float>, float> &b,
318  view1D<matrix::Dense<float>, float> &y);
319 void vecsub(const view1D<vector<float>, float> &a,
320  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
321 void vecsub(const view1D<vector<float>, float> &a,
322  const view1D<matrix::Dense<float>, float> &b,
323  view1D<vector<float>, float> &y);
324 void vecsub(const view1D<vector<float>, float> &a,
325  const view1D<matrix::Dense<float>, float> &b,
326  view1D<matrix::Dense<float>, float> &y);
327 void vecsub(const view1D<matrix::Dense<float>, float> &a,
328  const vector<float> &b, vector<float> &y);
329 void vecsub(const view1D<matrix::Dense<float>, float> &a,
330  const vector<float> &b, view1D<vector<float>, float> &y);
331 void vecsub(const view1D<matrix::Dense<float>, float> &a,
332  const vector<float> &b, view1D<matrix::Dense<float>, float> &y);
333 void vecsub(const view1D<matrix::Dense<float>, float> &a,
334  const view1D<vector<float>, float> &b, vector<float> &y);
335 void vecsub(const view1D<matrix::Dense<float>, float> &a,
336  const view1D<vector<float>, float> &b,
337  view1D<vector<float>, float> &y);
338 void vecsub(const view1D<matrix::Dense<float>, float> &a,
339  const view1D<vector<float>, float> &b,
340  view1D<matrix::Dense<float>, float> &y);
341 void vecsub(const view1D<matrix::Dense<float>, float> &a,
342  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
343 void vecsub(const view1D<matrix::Dense<float>, float> &a,
344  const view1D<matrix::Dense<float>, float> &b,
345  view1D<vector<float>, float> &y);
346 void vecsub(const view1D<matrix::Dense<float>, float> &a,
347  const view1D<matrix::Dense<float>, float> &b,
348  view1D<matrix::Dense<float>, float> &y);
367 void times(const double alpha, const vector<double> &a, vector<double> &y);
368 void times(const double alpha, const vector<double> &a,
369  view1D<vector<double>, double> &y);
370 void times(const double alpha, const vector<double> &a,
371  view1D<matrix::Dense<double>, double> &y);
372 void times(const double alpha, const view1D<vector<double>, double> &a,
373  vector<double> &y);
374 void times(const double alpha, const view1D<vector<double>, double> &a,
375  view1D<vector<double>, double> &y);
376 void times(const double alpha, const view1D<vector<double>, double> &a,
377  view1D<matrix::Dense<double>, double> &y);
378 void times(const double alpha, const view1D<matrix::Dense<double>, double> &a,
379  vector<double> &y);
380 void times(const double alpha, const view1D<matrix::Dense<double>, double> &a,
381  view1D<vector<double>, double> &y);
382 void times(const double alpha, const view1D<matrix::Dense<double>, double> &a,
383  view1D<matrix::Dense<double>, double> &y);
384 void times(const float alpha, const vector<float> &a, vector<float> &y);
385 void times(const float alpha, const vector<float> &a,
386  view1D<vector<float>, float> &y);
387 void times(const float alpha, const vector<float> &a,
388  view1D<matrix::Dense<float>, float> &y);
389 void times(const float alpha, const view1D<vector<float>, float> &a,
390  vector<float> &y);
391 void times(const float alpha, const view1D<vector<float>, float> &a,
392  view1D<vector<float>, float> &y);
393 void times(const float alpha, const view1D<vector<float>, float> &a,
394  view1D<matrix::Dense<float>, float> &y);
395 void times(const float alpha, const view1D<matrix::Dense<float>, float> &a,
396  vector<float> &y);
397 void times(const float alpha, const view1D<matrix::Dense<float>, float> &a,
398  view1D<vector<float>, float> &y);
399 void times(const float alpha, const view1D<matrix::Dense<float>, float> &a,
400  view1D<matrix::Dense<float>, float> &y);
419 void times(const vector<double> &a, const vector<double> &b, vector<double> &y);
420 void times(const vector<double> &a, const vector<double> &b,
421  view1D<vector<double>, double> &y);
422 void times(const vector<double> &a, const vector<double> &b,
423  view1D<matrix::Dense<double>, double> &y);
424 void times(const vector<double> &a, const view1D<vector<double>, double> &b,
425  vector<double> &y);
426 void times(const vector<double> &a, const view1D<vector<double>, double> &b,
427  view1D<vector<double>, double> &y);
428 void times(const vector<double> &a, const view1D<vector<double>, double> &b,
429  view1D<matrix::Dense<double>, double> &y);
430 void times(const vector<double> &a,
431  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
432 void times(const vector<double> &a,
433  const view1D<matrix::Dense<double>, double> &b,
434  view1D<vector<double>, double> &y);
435 void times(const vector<double> &a,
436  const view1D<matrix::Dense<double>, double> &b,
437  view1D<matrix::Dense<double>, double> &y);
438 void times(const view1D<vector<double>, double> &a, const vector<double> &b,
439  vector<double> &y);
440 void times(const view1D<vector<double>, double> &a, const vector<double> &b,
441  view1D<vector<double>, double> &y);
442 void times(const view1D<vector<double>, double> &a, const vector<double> &b,
443  view1D<matrix::Dense<double>, double> &y);
444 void times(const view1D<vector<double>, double> &a,
445  const view1D<vector<double>, double> &b, vector<double> &y);
446 void times(const view1D<vector<double>, double> &a,
447  const view1D<vector<double>, double> &b,
448  view1D<vector<double>, double> &y);
449 void times(const view1D<vector<double>, double> &a,
450  const view1D<vector<double>, double> &b,
451  view1D<matrix::Dense<double>, double> &y);
452 void times(const view1D<vector<double>, double> &a,
453  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
454 void times(const view1D<vector<double>, double> &a,
455  const view1D<matrix::Dense<double>, double> &b,
456  view1D<vector<double>, double> &y);
457 void times(const view1D<vector<double>, double> &a,
458  const view1D<matrix::Dense<double>, double> &b,
459  view1D<matrix::Dense<double>, double> &y);
460 void times(const view1D<matrix::Dense<double>, double> &a,
461  const vector<double> &b, vector<double> &y);
462 void times(const view1D<matrix::Dense<double>, double> &a,
463  const vector<double> &b, view1D<vector<double>, double> &y);
464 void times(const view1D<matrix::Dense<double>, double> &a,
465  const vector<double> &b, view1D<matrix::Dense<double>, double> &y);
466 void times(const view1D<matrix::Dense<double>, double> &a,
467  const view1D<vector<double>, double> &b, vector<double> &y);
468 void times(const view1D<matrix::Dense<double>, double> &a,
469  const view1D<vector<double>, double> &b,
470  view1D<vector<double>, double> &y);
471 void times(const view1D<matrix::Dense<double>, double> &a,
472  const view1D<vector<double>, double> &b,
473  view1D<matrix::Dense<double>, double> &y);
474 void times(const view1D<matrix::Dense<double>, double> &a,
475  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
476 void times(const view1D<matrix::Dense<double>, double> &a,
477  const view1D<matrix::Dense<double>, double> &b,
478  view1D<vector<double>, double> &y);
479 void times(const view1D<matrix::Dense<double>, double> &a,
480  const view1D<matrix::Dense<double>, double> &b,
481  view1D<matrix::Dense<double>, double> &y);
482 void times(const vector<float> &a, const vector<float> &b, vector<float> &y);
483 void times(const vector<float> &a, const vector<float> &b,
484  view1D<vector<float>, float> &y);
485 void times(const vector<float> &a, const vector<float> &b,
486  view1D<matrix::Dense<float>, float> &y);
487 void times(const vector<float> &a, const view1D<vector<float>, float> &b,
488  vector<float> &y);
489 void times(const vector<float> &a, const view1D<vector<float>, float> &b,
490  view1D<vector<float>, float> &y);
491 void times(const vector<float> &a, const view1D<vector<float>, float> &b,
492  view1D<matrix::Dense<float>, float> &y);
493 void times(const vector<float> &a, const view1D<matrix::Dense<float>, float> &b,
494  vector<float> &y);
495 void times(const vector<float> &a, const view1D<matrix::Dense<float>, float> &b,
496  view1D<vector<float>, float> &y);
497 void times(const vector<float> &a, const view1D<matrix::Dense<float>, float> &b,
498  view1D<matrix::Dense<float>, float> &y);
499 void times(const view1D<vector<float>, float> &a, const vector<float> &b,
500  vector<float> &y);
501 void times(const view1D<vector<float>, float> &a, const vector<float> &b,
502  view1D<vector<float>, float> &y);
503 void times(const view1D<vector<float>, float> &a, const vector<float> &b,
504  view1D<matrix::Dense<float>, float> &y);
505 void times(const view1D<vector<float>, float> &a,
506  const view1D<vector<float>, float> &b, vector<float> &y);
507 void times(const view1D<vector<float>, float> &a,
508  const view1D<vector<float>, float> &b,
509  view1D<vector<float>, float> &y);
510 void times(const view1D<vector<float>, float> &a,
511  const view1D<vector<float>, float> &b,
512  view1D<matrix::Dense<float>, float> &y);
513 void times(const view1D<vector<float>, float> &a,
514  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
515 void times(const view1D<vector<float>, float> &a,
516  const view1D<matrix::Dense<float>, float> &b,
517  view1D<vector<float>, float> &y);
518 void times(const view1D<vector<float>, float> &a,
519  const view1D<matrix::Dense<float>, float> &b,
520  view1D<matrix::Dense<float>, float> &y);
521 void times(const view1D<matrix::Dense<float>, float> &a, const vector<float> &b,
522  vector<float> &y);
523 void times(const view1D<matrix::Dense<float>, float> &a, const vector<float> &b,
524  view1D<vector<float>, float> &y);
525 void times(const view1D<matrix::Dense<float>, float> &a, const vector<float> &b,
526  view1D<matrix::Dense<float>, float> &y);
527 void times(const view1D<matrix::Dense<float>, float> &a,
528  const view1D<vector<float>, float> &b, vector<float> &y);
529 void times(const view1D<matrix::Dense<float>, float> &a,
530  const view1D<vector<float>, float> &b,
531  view1D<vector<float>, float> &y);
532 void times(const view1D<matrix::Dense<float>, float> &a,
533  const view1D<vector<float>, float> &b,
534  view1D<matrix::Dense<float>, float> &y);
535 void times(const view1D<matrix::Dense<float>, float> &a,
536  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
537 void times(const view1D<matrix::Dense<float>, float> &a,
538  const view1D<matrix::Dense<float>, float> &b,
539  view1D<vector<float>, float> &y);
540 void times(const view1D<matrix::Dense<float>, float> &a,
541  const view1D<matrix::Dense<float>, float> &b,
542  view1D<matrix::Dense<float>, float> &y);
560 void asum(const vector<double> &x, double &ans);
561 void asum(const view1D<vector<double>, double> &x, double &ans);
562 void asum(const view1D<matrix::Dense<double>, double> &x, double &ans);
563 void asum(const vector<float> &x, float &ans);
564 void asum(const view1D<vector<float>, float> &x, float &ans);
565 void asum(const view1D<matrix::Dense<float>, float> &x, float &ans);
566 
577 [[nodiscard]] double asum(const vector<double> &x);
578 [[nodiscard]] double asum(const view1D<vector<double>, double> &x);
579 [[nodiscard]] double asum(const view1D<matrix::Dense<double>, double> &x);
580 [[nodiscard]] float asum(const vector<float> &x);
581 [[nodiscard]] float asum(const view1D<vector<float>, float> &x);
582 [[nodiscard]] float asum(const view1D<matrix::Dense<float>, float> &x);
600 void sum(const vector<double> &x, double &ans);
601 void sum(const view1D<vector<double>, double> &x, double &ans);
602 void sum(const view1D<matrix::Dense<double>, double> &x, double &ans);
603 void sum(const vector<float> &x, float &ans);
604 void sum(const view1D<vector<float>, float> &x, float &ans);
605 void sum(const view1D<matrix::Dense<float>, float> &x, float &ans);
606 
617 [[nodiscard]] double sum(const vector<double> &x);
618 [[nodiscard]] double sum(const view1D<vector<double>, double> &x);
619 [[nodiscard]] double sum(const view1D<matrix::Dense<double>, double> &x);
620 [[nodiscard]] float sum(const vector<float> &x);
621 [[nodiscard]] float sum(const view1D<vector<float>, float> &x);
622 [[nodiscard]] float sum(const view1D<matrix::Dense<float>, float> &x);
641 void axpy(const double alpha, const vector<double> &x, vector<double> &y);
642 void axpy(const double alpha, const vector<double> &x,
643  view1D<vector<double>, double> &y);
644 void axpy(const double alpha, const vector<double> &x,
645  view1D<matrix::Dense<double>, double> &y);
646 void axpy(const double alpha, const view1D<vector<double>, double> &x,
647  vector<double> &y);
648 void axpy(const double alpha, const view1D<vector<double>, double> &x,
649  view1D<vector<double>, double> &y);
650 void axpy(const double alpha, const view1D<vector<double>, double> &x,
651  view1D<matrix::Dense<double>, double> &y);
652 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
653  vector<double> &y);
654 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
655  view1D<vector<double>, double> &y);
656 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
657  view1D<matrix::Dense<double>, double> &y);
658 void axpy(const float alpha, const vector<float> &x, vector<float> &y);
659 void axpy(const float alpha, const vector<float> &x,
660  view1D<vector<float>, float> &y);
661 void axpy(const float alpha, const vector<float> &x,
662  view1D<matrix::Dense<float>, float> &y);
663 void axpy(const float alpha, const view1D<vector<float>, float> &x,
664  vector<float> &y);
665 void axpy(const float alpha, const view1D<vector<float>, float> &x,
666  view1D<vector<float>, float> &y);
667 void axpy(const float alpha, const view1D<vector<float>, float> &x,
668  view1D<matrix::Dense<float>, float> &y);
669 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
670  vector<float> &y);
671 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
672  view1D<vector<float>, float> &y);
673 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
674  view1D<matrix::Dense<float>, float> &y);
694 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
695  vector<double> &z);
696 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
697  view1D<vector<double>, double> &z);
698 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
699  view1D<matrix::Dense<double>, double> &z);
700 void axpyz(const double alpha, const vector<double> &x,
701  const view1D<vector<double>, double> &y, vector<double> &z);
702 void axpyz(const double alpha, const vector<double> &x,
703  const view1D<vector<double>, double> &y,
704  view1D<vector<double>, double> &z);
705 void axpyz(const double alpha, const vector<double> &x,
706  const view1D<vector<double>, double> &y,
707  view1D<matrix::Dense<double>, double> &z);
708 void axpyz(const double alpha, const vector<double> &x,
709  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
710 void axpyz(const double alpha, const vector<double> &x,
711  const view1D<matrix::Dense<double>, double> &y,
712  view1D<vector<double>, double> &z);
713 void axpyz(const double alpha, const vector<double> &x,
714  const view1D<matrix::Dense<double>, double> &y,
715  view1D<matrix::Dense<double>, double> &z);
716 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
717  const vector<double> &y, vector<double> &z);
718 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
719  const vector<double> &y, view1D<vector<double>, double> &z);
720 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
721  const vector<double> &y, view1D<matrix::Dense<double>, double> &z);
722 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
723  const view1D<vector<double>, double> &y, vector<double> &z);
724 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
725  const view1D<vector<double>, double> &y,
726  view1D<vector<double>, double> &z);
727 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
728  const view1D<vector<double>, double> &y,
729  view1D<matrix::Dense<double>, double> &z);
730 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
731  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
732 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
733  const view1D<matrix::Dense<double>, double> &y,
734  view1D<vector<double>, double> &z);
735 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
736  const view1D<matrix::Dense<double>, double> &y,
737  view1D<matrix::Dense<double>, double> &z);
738 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
739  const vector<double> &y, vector<double> &z);
740 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
741  const vector<double> &y, view1D<vector<double>, double> &z);
742 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
743  const vector<double> &y, view1D<matrix::Dense<double>, double> &z);
744 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
745  const view1D<vector<double>, double> &y, vector<double> &z);
746 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
747  const view1D<vector<double>, double> &y,
748  view1D<vector<double>, double> &z);
749 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
750  const view1D<vector<double>, double> &y,
751  view1D<matrix::Dense<double>, double> &z);
752 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
753  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
754 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
755  const view1D<matrix::Dense<double>, double> &y,
756  view1D<vector<double>, double> &z);
757 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
758  const view1D<matrix::Dense<double>, double> &y,
759  view1D<matrix::Dense<double>, double> &z);
760 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
761  vector<float> &z);
762 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
763  view1D<vector<float>, float> &z);
764 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
765  view1D<matrix::Dense<float>, float> &z);
766 void axpyz(const float alpha, const vector<float> &x,
767  const view1D<vector<float>, float> &y, vector<float> &z);
768 void axpyz(const float alpha, const vector<float> &x,
769  const view1D<vector<float>, float> &y,
770  view1D<vector<float>, float> &z);
771 void axpyz(const float alpha, const vector<float> &x,
772  const view1D<vector<float>, float> &y,
773  view1D<matrix::Dense<float>, float> &z);
774 void axpyz(const float alpha, const vector<float> &x,
775  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
776 void axpyz(const float alpha, const vector<float> &x,
777  const view1D<matrix::Dense<float>, float> &y,
778  view1D<vector<float>, float> &z);
779 void axpyz(const float alpha, const vector<float> &x,
780  const view1D<matrix::Dense<float>, float> &y,
781  view1D<matrix::Dense<float>, float> &z);
782 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
783  const vector<float> &y, vector<float> &z);
784 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
785  const vector<float> &y, view1D<vector<float>, float> &z);
786 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
787  const vector<float> &y, view1D<matrix::Dense<float>, float> &z);
788 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
789  const view1D<vector<float>, float> &y, vector<float> &z);
790 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
791  const view1D<vector<float>, float> &y,
792  view1D<vector<float>, float> &z);
793 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
794  const view1D<vector<float>, float> &y,
795  view1D<matrix::Dense<float>, float> &z);
796 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
797  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
798 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
799  const view1D<matrix::Dense<float>, float> &y,
800  view1D<vector<float>, float> &z);
801 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
802  const view1D<matrix::Dense<float>, float> &y,
803  view1D<matrix::Dense<float>, float> &z);
804 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
805  const vector<float> &y, vector<float> &z);
806 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
807  const vector<float> &y, view1D<vector<float>, float> &z);
808 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
809  const vector<float> &y, view1D<matrix::Dense<float>, float> &z);
810 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
811  const view1D<vector<float>, float> &y, vector<float> &z);
812 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
813  const view1D<vector<float>, float> &y,
814  view1D<vector<float>, float> &z);
815 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
816  const view1D<vector<float>, float> &y,
817  view1D<matrix::Dense<float>, float> &z);
818 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
819  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
820 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
821  const view1D<matrix::Dense<float>, float> &y,
822  view1D<vector<float>, float> &z);
823 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
824  const view1D<matrix::Dense<float>, float> &y,
825  view1D<matrix::Dense<float>, float> &z);
844 void dot(const vector<double> &x, const vector<double> &y, double &ans);
845 void dot(const vector<double> &x, const view1D<vector<double>, double> &y,
846  double &ans);
847 void dot(const vector<double> &x,
848  const view1D<matrix::Dense<double>, double> &y, double &ans);
849 void dot(const view1D<vector<double>, double> &x, const vector<double> &y,
850  double &ans);
851 void dot(const view1D<vector<double>, double> &x,
852  const view1D<vector<double>, double> &y, double &ans);
853 void dot(const view1D<vector<double>, double> &x,
854  const view1D<matrix::Dense<double>, double> &y, double &ans);
855 void dot(const view1D<matrix::Dense<double>, double> &x,
856  const vector<double> &y, double &ans);
857 void dot(const view1D<matrix::Dense<double>, double> &x,
858  const view1D<vector<double>, double> &y, double &ans);
859 void dot(const view1D<matrix::Dense<double>, double> &x,
860  const view1D<matrix::Dense<double>, double> &y, double &ans);
861 void dot(const vector<float> &x, const vector<float> &y, float &ans);
862 void dot(const vector<float> &x, const view1D<vector<float>, float> &y,
863  float &ans);
864 void dot(const vector<float> &x, const view1D<matrix::Dense<float>, float> &y,
865  float &ans);
866 void dot(const view1D<vector<float>, float> &x, const vector<float> &y,
867  float &ans);
868 void dot(const view1D<vector<float>, float> &x,
869  const view1D<vector<float>, float> &y, float &ans);
870 void dot(const view1D<vector<float>, float> &x,
871  const view1D<matrix::Dense<float>, float> &y, float &ans);
872 void dot(const view1D<matrix::Dense<float>, float> &x, const vector<float> &y,
873  float &ans);
874 void dot(const view1D<matrix::Dense<float>, float> &x,
875  const view1D<vector<float>, float> &y, float &ans);
876 void dot(const view1D<matrix::Dense<float>, float> &x,
877  const view1D<matrix::Dense<float>, float> &y, float &ans);
878 
890 [[nodiscard]] double dot(const vector<double> &x, const vector<double> &y);
891 [[nodiscard]] double dot(const vector<double> &x,
892  const view1D<vector<double>, double> &y);
893 [[nodiscard]] double dot(const vector<double> &x,
894  const view1D<matrix::Dense<double>, double> &y);
895 [[nodiscard]] double dot(const view1D<vector<double>, double> &x,
896  const vector<double> &y);
897 [[nodiscard]] double dot(const view1D<vector<double>, double> &x,
898  const view1D<vector<double>, double> &y);
899 [[nodiscard]] double dot(const view1D<vector<double>, double> &x,
900  const view1D<matrix::Dense<double>, double> &y);
901 [[nodiscard]] double dot(const view1D<matrix::Dense<double>, double> &x,
902  const vector<double> &y);
903 [[nodiscard]] double dot(const view1D<matrix::Dense<double>, double> &x,
904  const view1D<vector<double>, double> &y);
905 [[nodiscard]] double dot(const view1D<matrix::Dense<double>, double> &x,
906  const view1D<matrix::Dense<double>, double> &y);
907 [[nodiscard]] float dot(const vector<float> &x, const vector<float> &y);
908 [[nodiscard]] float dot(const vector<float> &x,
909  const view1D<vector<float>, float> &y);
910 [[nodiscard]] float dot(const vector<float> &x,
911  const view1D<matrix::Dense<float>, float> &y);
912 [[nodiscard]] float dot(const view1D<vector<float>, float> &x,
913  const vector<float> &y);
914 [[nodiscard]] float dot(const view1D<vector<float>, float> &x,
915  const view1D<vector<float>, float> &y);
916 [[nodiscard]] float dot(const view1D<vector<float>, float> &x,
917  const view1D<matrix::Dense<float>, float> &y);
918 [[nodiscard]] float dot(const view1D<matrix::Dense<float>, float> &x,
919  const vector<float> &y);
920 [[nodiscard]] float dot(const view1D<matrix::Dense<float>, float> &x,
921  const view1D<vector<float>, float> &y);
922 [[nodiscard]] float dot(const view1D<matrix::Dense<float>, float> &x,
923  const view1D<matrix::Dense<float>, float> &y);
941 void nrm1(const vector<double> &x, double &ans);
942 void nrm1(const view1D<vector<double>, double> &x, double &ans);
943 void nrm1(const view1D<matrix::Dense<double>, double> &x, double &ans);
944 void nrm1(const vector<float> &x, float &ans);
945 void nrm1(const view1D<vector<float>, float> &x, float &ans);
946 void nrm1(const view1D<matrix::Dense<float>, float> &x, float &ans);
947 
958 [[nodiscard]] double nrm1(const vector<double> &x);
959 [[nodiscard]] double nrm1(const view1D<vector<double>, double> &x);
960 [[nodiscard]] double nrm1(const view1D<matrix::Dense<double>, double> &x);
961 [[nodiscard]] float nrm1(const vector<float> &x);
962 [[nodiscard]] float nrm1(const view1D<vector<float>, float> &x);
963 [[nodiscard]] float nrm1(const view1D<matrix::Dense<float>, float> &x);
981 void nrm2(const vector<double> &x, double &ans);
982 void nrm2(const view1D<vector<double>, double> &x, double &ans);
983 void nrm2(const view1D<matrix::Dense<double>, double> &x, double &ans);
984 void nrm2(const vector<float> &x, float &ans);
985 void nrm2(const view1D<vector<float>, float> &x, float &ans);
986 void nrm2(const view1D<matrix::Dense<float>, float> &x, float &ans);
987 
998 [[nodiscard]] double nrm2(const vector<double> &x);
999 [[nodiscard]] double nrm2(const view1D<vector<double>, double> &x);
1000 [[nodiscard]] double nrm2(const view1D<matrix::Dense<double>, double> &x);
1001 [[nodiscard]] float nrm2(const vector<float> &x);
1002 [[nodiscard]] float nrm2(const view1D<vector<float>, float> &x);
1003 [[nodiscard]] float nrm2(const view1D<matrix::Dense<float>, float> &x);
1021 void scal(const double alpha, vector<double> &x);
1022 void scal(const double alpha, view1D<vector<double>, double> &x);
1023 void scal(const double alpha, view1D<matrix::Dense<double>, double> &x);
1024 void scal(const float alpha, vector<float> &x);
1025 void scal(const float alpha, view1D<vector<float>, float> &x);
1026 void scal(const float alpha, view1D<matrix::Dense<float>, float> &x);
1045 void xpay(const double alpha, const vector<double> &x, vector<double> &y);
1046 void xpay(const double alpha, const vector<double> &x,
1047  view1D<vector<double>, double> &y);
1048 void xpay(const double alpha, const vector<double> &x,
1049  view1D<matrix::Dense<double>, double> &y);
1050 void xpay(const double alpha, const view1D<vector<double>, double> &x,
1051  vector<double> &y);
1052 void xpay(const double alpha, const view1D<vector<double>, double> &x,
1053  view1D<vector<double>, double> &y);
1054 void xpay(const double alpha, const view1D<vector<double>, double> &x,
1055  view1D<matrix::Dense<double>, double> &y);
1056 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
1057  vector<double> &y);
1058 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
1059  view1D<vector<double>, double> &y);
1060 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
1061  view1D<matrix::Dense<double>, double> &y);
1062 void xpay(const float alpha, const vector<float> &x, vector<float> &y);
1063 void xpay(const float alpha, const vector<float> &x,
1064  view1D<vector<float>, float> &y);
1065 void xpay(const float alpha, const vector<float> &x,
1066  view1D<matrix::Dense<float>, float> &y);
1067 void xpay(const float alpha, const view1D<vector<float>, float> &x,
1068  vector<float> &y);
1069 void xpay(const float alpha, const view1D<vector<float>, float> &x,
1070  view1D<vector<float>, float> &y);
1071 void xpay(const float alpha, const view1D<vector<float>, float> &x,
1072  view1D<matrix::Dense<float>, float> &y);
1073 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
1074  vector<float> &y);
1075 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
1076  view1D<vector<float>, float> &y);
1077 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
1078  view1D<matrix::Dense<float>, float> &y);
1081 } // namespace blas
1082 } // namespace monolish
Dense format Matrix.
void asum(const vector< double > &x, double &ans)
vector absolute sum
void axpy(const double alpha, const vector< double > &x, vector< double > &y)
axpy: y = ax + y
void axpyz(const double alpha, const vector< double > &x, const vector< double > &y, vector< double > &z)
axpyz: z = ax + y
void dot(const vector< double > &x, const vector< double > &y, double &ans)
inner product (dot)
void copy(const matrix::Dense< double > &A, matrix::Dense< double > &C)
Dense matrix copy (C=A)
void nrm1(const vector< double > &x, double &ans)
nrm1: sum(abs(x[0:N]))
void nrm2(const vector< double > &x, double &ans)
nrm2: ||x||_2
void scal(const double alpha, vector< double > &x)
scal: x = alpha * x
void sum(const vector< double > &x, double &ans)
vector sum
void times(const double alpha, const matrix::Dense< double > &A, matrix::Dense< double > &C)
Dense matrix times: C = alpha * A.
void vecadd(const vector< double > &a, const vector< double > &b, vector< double > &y)
element by element addition of vector a and vector b.
void vecsub(const vector< double > &a, const vector< double > &b, vector< double > &y)
element by element subtract of vector a and vector b.
void xpay(const double alpha, const vector< double > &x, vector< double > &y)
xpay: y = x + ay
monolish namespaces