monolish  0.16.1
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 
34 void vecadd(const vector<double> &a, const vector<double> &b,
35  vector<double> &y);
36 void vecadd(const vector<double> &a, const vector<double> &b,
37  view1D<vector<double>, double> &y);
38 void vecadd(const vector<double> &a, const vector<double> &b,
39  view1D<matrix::Dense<double>, double> &y);
40 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
41  vector<double> &y);
42 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
43  view1D<vector<double>, double> &y);
44 void vecadd(const vector<double> &a, const view1D<vector<double>, double> &b,
45  view1D<matrix::Dense<double>, double> &y);
46 void vecadd(const vector<double> &a,
47  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
48 void vecadd(const vector<double> &a,
49  const view1D<matrix::Dense<double>, double> &b,
50  view1D<vector<double>, double> &y);
51 void vecadd(const vector<double> &a,
52  const view1D<matrix::Dense<double>, double> &b,
53  view1D<matrix::Dense<double>, double> &y);
54 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
55  vector<double> &y);
56 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
57  view1D<vector<double>, double> &y);
58 void vecadd(const view1D<vector<double>, double> &a, const vector<double> &b,
59  view1D<matrix::Dense<double>, double> &y);
60 void vecadd(const view1D<vector<double>, double> &a,
61  const view1D<vector<double>, double> &b, vector<double> &y);
62 void vecadd(const view1D<vector<double>, double> &a,
63  const view1D<vector<double>, double> &b,
64  view1D<vector<double>, double> &y);
65 void vecadd(const view1D<vector<double>, double> &a,
66  const view1D<vector<double>, double> &b,
67  view1D<matrix::Dense<double>, double> &y);
68 void vecadd(const view1D<vector<double>, double> &a,
69  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
70 void vecadd(const view1D<vector<double>, double> &a,
71  const view1D<matrix::Dense<double>, double> &b,
72  view1D<vector<double>, double> &y);
73 void vecadd(const view1D<vector<double>, double> &a,
74  const view1D<matrix::Dense<double>, double> &b,
75  view1D<matrix::Dense<double>, double> &y);
76 void vecadd(const view1D<matrix::Dense<double>, double> &a,
77  const vector<double> &b, vector<double> &y);
78 void vecadd(const view1D<matrix::Dense<double>, double> &a,
79  const vector<double> &b, view1D<vector<double>, double> &y);
80 void vecadd(const view1D<matrix::Dense<double>, double> &a,
81  const vector<double> &b, view1D<matrix::Dense<double>, double> &y);
82 void vecadd(const view1D<matrix::Dense<double>, double> &a,
83  const view1D<vector<double>, double> &b, vector<double> &y);
84 void vecadd(const view1D<matrix::Dense<double>, double> &a,
85  const view1D<vector<double>, double> &b,
86  view1D<vector<double>, double> &y);
87 void vecadd(const view1D<matrix::Dense<double>, double> &a,
88  const view1D<vector<double>, double> &b,
89  view1D<matrix::Dense<double>, double> &y);
90 void vecadd(const view1D<matrix::Dense<double>, double> &a,
91  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
92 void vecadd(const view1D<matrix::Dense<double>, double> &a,
93  const view1D<matrix::Dense<double>, double> &b,
94  view1D<vector<double>, double> &y);
95 void vecadd(const view1D<matrix::Dense<double>, double> &a,
96  const view1D<matrix::Dense<double>, double> &b,
97  view1D<matrix::Dense<double>, double> &y);
98 void vecadd(const vector<float> &a, const vector<float> &b, vector<float> &y);
99 void vecadd(const vector<float> &a, const vector<float> &b,
100  view1D<vector<float>, float> &y);
101 void vecadd(const vector<float> &a, const vector<float> &b,
102  view1D<matrix::Dense<float>, float> &y);
103 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
104  vector<float> &y);
105 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
106  view1D<vector<float>, float> &y);
107 void vecadd(const vector<float> &a, const view1D<vector<float>, float> &b,
108  view1D<matrix::Dense<float>, float> &y);
109 void vecadd(const vector<float> &a,
110  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
111 void vecadd(const vector<float> &a,
112  const view1D<matrix::Dense<float>, float> &b,
113  view1D<vector<float>, float> &y);
114 void vecadd(const vector<float> &a,
115  const view1D<matrix::Dense<float>, float> &b,
116  view1D<matrix::Dense<float>, float> &y);
117 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
118  vector<float> &y);
119 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
120  view1D<vector<float>, float> &y);
121 void vecadd(const view1D<vector<float>, float> &a, const vector<float> &b,
122  view1D<matrix::Dense<float>, float> &y);
123 void vecadd(const view1D<vector<float>, float> &a,
124  const view1D<vector<float>, float> &b, vector<float> &y);
125 void vecadd(const view1D<vector<float>, float> &a,
126  const view1D<vector<float>, float> &b,
127  view1D<vector<float>, float> &y);
128 void vecadd(const view1D<vector<float>, float> &a,
129  const view1D<vector<float>, float> &b,
130  view1D<matrix::Dense<float>, float> &y);
131 void vecadd(const view1D<vector<float>, float> &a,
132  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
133 void vecadd(const view1D<vector<float>, float> &a,
134  const view1D<matrix::Dense<float>, float> &b,
135  view1D<vector<float>, float> &y);
136 void vecadd(const view1D<vector<float>, float> &a,
137  const view1D<matrix::Dense<float>, float> &b,
138  view1D<matrix::Dense<float>, float> &y);
139 void vecadd(const view1D<matrix::Dense<float>, float> &a,
140  const vector<float> &b, vector<float> &y);
141 void vecadd(const view1D<matrix::Dense<float>, float> &a,
142  const vector<float> &b, view1D<vector<float>, float> &y);
143 void vecadd(const view1D<matrix::Dense<float>, float> &a,
144  const vector<float> &b, view1D<matrix::Dense<float>, float> &y);
145 void vecadd(const view1D<matrix::Dense<float>, float> &a,
146  const view1D<vector<float>, float> &b, vector<float> &y);
147 void vecadd(const view1D<matrix::Dense<float>, float> &a,
148  const view1D<vector<float>, float> &b,
149  view1D<vector<float>, float> &y);
150 void vecadd(const view1D<matrix::Dense<float>, float> &a,
151  const view1D<vector<float>, float> &b,
152  view1D<matrix::Dense<float>, float> &y);
153 void vecadd(const view1D<matrix::Dense<float>, float> &a,
154  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
155 void vecadd(const view1D<matrix::Dense<float>, float> &a,
156  const view1D<matrix::Dense<float>, float> &b,
157  view1D<vector<float>, float> &y);
158 void vecadd(const view1D<matrix::Dense<float>, float> &a,
159  const view1D<matrix::Dense<float>, float> &b,
160  view1D<matrix::Dense<float>, float> &y);
179 void vecsub(const vector<double> &a, const vector<double> &b,
180  vector<double> &y);
181 void vecsub(const vector<double> &a, const vector<double> &b,
182  view1D<vector<double>, double> &y);
183 void vecsub(const vector<double> &a, const vector<double> &b,
184  view1D<matrix::Dense<double>, double> &y);
185 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
186  vector<double> &y);
187 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
188  view1D<vector<double>, double> &y);
189 void vecsub(const vector<double> &a, const view1D<vector<double>, double> &b,
190  view1D<matrix::Dense<double>, double> &y);
191 void vecsub(const vector<double> &a,
192  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
193 void vecsub(const vector<double> &a,
194  const view1D<matrix::Dense<double>, double> &b,
195  view1D<vector<double>, double> &y);
196 void vecsub(const vector<double> &a,
197  const view1D<matrix::Dense<double>, double> &b,
198  view1D<matrix::Dense<double>, double> &y);
199 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
200  vector<double> &y);
201 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
202  view1D<vector<double>, double> &y);
203 void vecsub(const view1D<vector<double>, double> &a, const vector<double> &b,
204  view1D<matrix::Dense<double>, double> &y);
205 void vecsub(const view1D<vector<double>, double> &a,
206  const view1D<vector<double>, double> &b, vector<double> &y);
207 void vecsub(const view1D<vector<double>, double> &a,
208  const view1D<vector<double>, double> &b,
209  view1D<vector<double>, double> &y);
210 void vecsub(const view1D<vector<double>, double> &a,
211  const view1D<vector<double>, double> &b,
212  view1D<matrix::Dense<double>, double> &y);
213 void vecsub(const view1D<vector<double>, double> &a,
214  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
215 void vecsub(const view1D<vector<double>, double> &a,
216  const view1D<matrix::Dense<double>, double> &b,
217  view1D<vector<double>, double> &y);
218 void vecsub(const view1D<vector<double>, double> &a,
219  const view1D<matrix::Dense<double>, double> &b,
220  view1D<matrix::Dense<double>, double> &y);
221 void vecsub(const view1D<matrix::Dense<double>, double> &a,
222  const vector<double> &b, vector<double> &y);
223 void vecsub(const view1D<matrix::Dense<double>, double> &a,
224  const vector<double> &b, view1D<vector<double>, double> &y);
225 void vecsub(const view1D<matrix::Dense<double>, double> &a,
226  const vector<double> &b, view1D<matrix::Dense<double>, double> &y);
227 void vecsub(const view1D<matrix::Dense<double>, double> &a,
228  const view1D<vector<double>, double> &b, vector<double> &y);
229 void vecsub(const view1D<matrix::Dense<double>, double> &a,
230  const view1D<vector<double>, double> &b,
231  view1D<vector<double>, double> &y);
232 void vecsub(const view1D<matrix::Dense<double>, double> &a,
233  const view1D<vector<double>, double> &b,
234  view1D<matrix::Dense<double>, double> &y);
235 void vecsub(const view1D<matrix::Dense<double>, double> &a,
236  const view1D<matrix::Dense<double>, double> &b, vector<double> &y);
237 void vecsub(const view1D<matrix::Dense<double>, double> &a,
238  const view1D<matrix::Dense<double>, double> &b,
239  view1D<vector<double>, double> &y);
240 void vecsub(const view1D<matrix::Dense<double>, double> &a,
241  const view1D<matrix::Dense<double>, double> &b,
242  view1D<matrix::Dense<double>, double> &y);
243 void vecsub(const vector<float> &a, const vector<float> &b, vector<float> &y);
244 void vecsub(const vector<float> &a, const vector<float> &b,
245  view1D<vector<float>, float> &y);
246 void vecsub(const vector<float> &a, const vector<float> &b,
247  view1D<matrix::Dense<float>, float> &y);
248 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
249  vector<float> &y);
250 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
251  view1D<vector<float>, float> &y);
252 void vecsub(const vector<float> &a, const view1D<vector<float>, float> &b,
253  view1D<matrix::Dense<float>, float> &y);
254 void vecsub(const vector<float> &a,
255  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
256 void vecsub(const vector<float> &a,
257  const view1D<matrix::Dense<float>, float> &b,
258  view1D<vector<float>, float> &y);
259 void vecsub(const vector<float> &a,
260  const view1D<matrix::Dense<float>, float> &b,
261  view1D<matrix::Dense<float>, float> &y);
262 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
263  vector<float> &y);
264 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
265  view1D<vector<float>, float> &y);
266 void vecsub(const view1D<vector<float>, float> &a, const vector<float> &b,
267  view1D<matrix::Dense<float>, float> &y);
268 void vecsub(const view1D<vector<float>, float> &a,
269  const view1D<vector<float>, float> &b, vector<float> &y);
270 void vecsub(const view1D<vector<float>, float> &a,
271  const view1D<vector<float>, float> &b,
272  view1D<vector<float>, float> &y);
273 void vecsub(const view1D<vector<float>, float> &a,
274  const view1D<vector<float>, float> &b,
275  view1D<matrix::Dense<float>, float> &y);
276 void vecsub(const view1D<vector<float>, float> &a,
277  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
278 void vecsub(const view1D<vector<float>, float> &a,
279  const view1D<matrix::Dense<float>, float> &b,
280  view1D<vector<float>, float> &y);
281 void vecsub(const view1D<vector<float>, float> &a,
282  const view1D<matrix::Dense<float>, float> &b,
283  view1D<matrix::Dense<float>, float> &y);
284 void vecsub(const view1D<matrix::Dense<float>, float> &a,
285  const vector<float> &b, vector<float> &y);
286 void vecsub(const view1D<matrix::Dense<float>, float> &a,
287  const vector<float> &b, view1D<vector<float>, float> &y);
288 void vecsub(const view1D<matrix::Dense<float>, float> &a,
289  const vector<float> &b, view1D<matrix::Dense<float>, float> &y);
290 void vecsub(const view1D<matrix::Dense<float>, float> &a,
291  const view1D<vector<float>, float> &b, vector<float> &y);
292 void vecsub(const view1D<matrix::Dense<float>, float> &a,
293  const view1D<vector<float>, float> &b,
294  view1D<vector<float>, float> &y);
295 void vecsub(const view1D<matrix::Dense<float>, float> &a,
296  const view1D<vector<float>, float> &b,
297  view1D<matrix::Dense<float>, float> &y);
298 void vecsub(const view1D<matrix::Dense<float>, float> &a,
299  const view1D<matrix::Dense<float>, float> &b, vector<float> &y);
300 void vecsub(const view1D<matrix::Dense<float>, float> &a,
301  const view1D<matrix::Dense<float>, float> &b,
302  view1D<vector<float>, float> &y);
303 void vecsub(const view1D<matrix::Dense<float>, float> &a,
304  const view1D<matrix::Dense<float>, float> &b,
305  view1D<matrix::Dense<float>, float> &y);
323 void copy(const vector<double> &x, vector<double> &y);
324 void copy(const vector<double> &x, view1D<vector<double>, double> &y);
325 void copy(const vector<double> &x, view1D<matrix::Dense<double>, double> &y);
326 void copy(const view1D<vector<double>, double> &x, vector<double> &y);
327 void copy(const view1D<vector<double>, double> &x,
328  view1D<vector<double>, double> &y);
329 void copy(const view1D<vector<double>, double> &x,
330  view1D<matrix::Dense<double>, double> &y);
331 void copy(const view1D<matrix::Dense<double>, double> &x, vector<double> &y);
332 void copy(const view1D<matrix::Dense<double>, double> &x,
333  view1D<vector<double>, double> &y);
334 void copy(const view1D<matrix::Dense<double>, double> &x,
335  view1D<matrix::Dense<double>, double> &y);
336 void copy(const vector<float> &x, vector<float> &y);
337 void copy(const vector<float> &x, view1D<vector<float>, float> &y);
338 void copy(const vector<float> &x, view1D<matrix::Dense<float>, float> &y);
339 void copy(const view1D<vector<float>, float> &x, vector<float> &y);
340 void copy(const view1D<vector<float>, float> &x,
341  view1D<vector<float>, float> &y);
342 void copy(const view1D<vector<float>, float> &x,
343  view1D<matrix::Dense<float>, float> &y);
344 void copy(const view1D<matrix::Dense<float>, float> &x, vector<float> &y);
345 void copy(const view1D<matrix::Dense<float>, float> &x,
346  view1D<vector<float>, float> &y);
347 void copy(const view1D<matrix::Dense<float>, float> &x,
348  view1D<matrix::Dense<float>, float> &y);
366 void asum(const vector<double> &x, double &ans);
367 void asum(const view1D<vector<double>, double> &x, double &ans);
368 void asum(const view1D<matrix::Dense<double>, double> &x, double &ans);
369 void asum(const vector<float> &x, float &ans);
370 void asum(const view1D<vector<float>, float> &x, float &ans);
371 void asum(const view1D<matrix::Dense<float>, float> &x, float &ans);
372 
383 [[nodiscard]] double asum(const vector<double> &x);
384 [[nodiscard]] double asum(const view1D<vector<double>, double> &x);
385 [[nodiscard]] double asum(const view1D<matrix::Dense<double>, double> &x);
386 [[nodiscard]] float asum(const vector<float> &x);
387 [[nodiscard]] float asum(const view1D<vector<float>, float> &x);
388 [[nodiscard]] float asum(const view1D<matrix::Dense<float>, float> &x);
406 void sum(const vector<double> &x, double &ans);
407 void sum(const view1D<vector<double>, double> &x, double &ans);
408 void sum(const view1D<matrix::Dense<double>, double> &x, double &ans);
409 void sum(const vector<float> &x, float &ans);
410 void sum(const view1D<vector<float>, float> &x, float &ans);
411 void sum(const view1D<matrix::Dense<float>, float> &x, float &ans);
412 
423 [[nodiscard]] double sum(const vector<double> &x);
424 [[nodiscard]] double sum(const view1D<vector<double>, double> &x);
425 [[nodiscard]] double sum(const view1D<matrix::Dense<double>, double> &x);
426 [[nodiscard]] float sum(const vector<float> &x);
427 [[nodiscard]] float sum(const view1D<vector<float>, float> &x);
428 [[nodiscard]] float sum(const view1D<matrix::Dense<float>, float> &x);
447 void axpy(const double alpha, const vector<double> &x, vector<double> &y);
448 void axpy(const double alpha, const vector<double> &x,
449  view1D<vector<double>, double> &y);
450 void axpy(const double alpha, const vector<double> &x,
451  view1D<matrix::Dense<double>, double> &y);
452 void axpy(const double alpha, const view1D<vector<double>, double> &x,
453  vector<double> &y);
454 void axpy(const double alpha, const view1D<vector<double>, double> &x,
455  view1D<vector<double>, double> &y);
456 void axpy(const double alpha, const view1D<vector<double>, double> &x,
457  view1D<matrix::Dense<double>, double> &y);
458 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
459  vector<double> &y);
460 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
461  view1D<vector<double>, double> &y);
462 void axpy(const double alpha, const view1D<matrix::Dense<double>, double> &x,
463  view1D<matrix::Dense<double>, double> &y);
464 void axpy(const float alpha, const vector<float> &x, vector<float> &y);
465 void axpy(const float alpha, const vector<float> &x,
466  view1D<vector<float>, float> &y);
467 void axpy(const float alpha, const vector<float> &x,
468  view1D<matrix::Dense<float>, float> &y);
469 void axpy(const float alpha, const view1D<vector<float>, float> &x,
470  vector<float> &y);
471 void axpy(const float alpha, const view1D<vector<float>, float> &x,
472  view1D<vector<float>, float> &y);
473 void axpy(const float alpha, const view1D<vector<float>, float> &x,
474  view1D<matrix::Dense<float>, float> &y);
475 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
476  vector<float> &y);
477 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
478  view1D<vector<float>, float> &y);
479 void axpy(const float alpha, const view1D<matrix::Dense<float>, float> &x,
480  view1D<matrix::Dense<float>, float> &y);
500 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
501  vector<double> &z);
502 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
503  view1D<vector<double>, double> &z);
504 void axpyz(const double alpha, const vector<double> &x, const vector<double> &y,
505  view1D<matrix::Dense<double>, double> &z);
506 void axpyz(const double alpha, const vector<double> &x,
507  const view1D<vector<double>, double> &y, vector<double> &z);
508 void axpyz(const double alpha, const vector<double> &x,
509  const view1D<vector<double>, double> &y,
510  view1D<vector<double>, double> &z);
511 void axpyz(const double alpha, const vector<double> &x,
512  const view1D<vector<double>, double> &y,
513  view1D<matrix::Dense<double>, double> &z);
514 void axpyz(const double alpha, const vector<double> &x,
515  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
516 void axpyz(const double alpha, const vector<double> &x,
517  const view1D<matrix::Dense<double>, double> &y,
518  view1D<vector<double>, double> &z);
519 void axpyz(const double alpha, const vector<double> &x,
520  const view1D<matrix::Dense<double>, double> &y,
521  view1D<matrix::Dense<double>, double> &z);
522 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
523  const vector<double> &y, vector<double> &z);
524 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
525  const vector<double> &y, view1D<vector<double>, double> &z);
526 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
527  const vector<double> &y, view1D<matrix::Dense<double>, double> &z);
528 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
529  const view1D<vector<double>, double> &y, vector<double> &z);
530 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
531  const view1D<vector<double>, double> &y,
532  view1D<vector<double>, double> &z);
533 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
534  const view1D<vector<double>, double> &y,
535  view1D<matrix::Dense<double>, double> &z);
536 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
537  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
538 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
539  const view1D<matrix::Dense<double>, double> &y,
540  view1D<vector<double>, double> &z);
541 void axpyz(const double alpha, const view1D<vector<double>, double> &x,
542  const view1D<matrix::Dense<double>, double> &y,
543  view1D<matrix::Dense<double>, double> &z);
544 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
545  const vector<double> &y, vector<double> &z);
546 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
547  const vector<double> &y, view1D<vector<double>, double> &z);
548 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
549  const vector<double> &y, view1D<matrix::Dense<double>, double> &z);
550 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
551  const view1D<vector<double>, double> &y, vector<double> &z);
552 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
553  const view1D<vector<double>, double> &y,
554  view1D<vector<double>, double> &z);
555 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
556  const view1D<vector<double>, double> &y,
557  view1D<matrix::Dense<double>, double> &z);
558 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
559  const view1D<matrix::Dense<double>, double> &y, vector<double> &z);
560 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
561  const view1D<matrix::Dense<double>, double> &y,
562  view1D<vector<double>, double> &z);
563 void axpyz(const double alpha, const view1D<matrix::Dense<double>, double> &x,
564  const view1D<matrix::Dense<double>, double> &y,
565  view1D<matrix::Dense<double>, double> &z);
566 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
567  vector<float> &z);
568 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
569  view1D<vector<float>, float> &z);
570 void axpyz(const float alpha, const vector<float> &x, const vector<float> &y,
571  view1D<matrix::Dense<float>, float> &z);
572 void axpyz(const float alpha, const vector<float> &x,
573  const view1D<vector<float>, float> &y, vector<float> &z);
574 void axpyz(const float alpha, const vector<float> &x,
575  const view1D<vector<float>, float> &y,
576  view1D<vector<float>, float> &z);
577 void axpyz(const float alpha, const vector<float> &x,
578  const view1D<vector<float>, float> &y,
579  view1D<matrix::Dense<float>, float> &z);
580 void axpyz(const float alpha, const vector<float> &x,
581  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
582 void axpyz(const float alpha, const vector<float> &x,
583  const view1D<matrix::Dense<float>, float> &y,
584  view1D<vector<float>, float> &z);
585 void axpyz(const float alpha, const vector<float> &x,
586  const view1D<matrix::Dense<float>, float> &y,
587  view1D<matrix::Dense<float>, float> &z);
588 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
589  const vector<float> &y, vector<float> &z);
590 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
591  const vector<float> &y, view1D<vector<float>, float> &z);
592 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
593  const vector<float> &y, view1D<matrix::Dense<float>, float> &z);
594 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
595  const view1D<vector<float>, float> &y, vector<float> &z);
596 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
597  const view1D<vector<float>, float> &y,
598  view1D<vector<float>, float> &z);
599 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
600  const view1D<vector<float>, float> &y,
601  view1D<matrix::Dense<float>, float> &z);
602 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
603  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
604 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
605  const view1D<matrix::Dense<float>, float> &y,
606  view1D<vector<float>, float> &z);
607 void axpyz(const float alpha, const view1D<vector<float>, float> &x,
608  const view1D<matrix::Dense<float>, float> &y,
609  view1D<matrix::Dense<float>, float> &z);
610 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
611  const vector<float> &y, vector<float> &z);
612 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
613  const vector<float> &y, view1D<vector<float>, float> &z);
614 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
615  const vector<float> &y, view1D<matrix::Dense<float>, float> &z);
616 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
617  const view1D<vector<float>, float> &y, vector<float> &z);
618 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
619  const view1D<vector<float>, float> &y,
620  view1D<vector<float>, float> &z);
621 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
622  const view1D<vector<float>, float> &y,
623  view1D<matrix::Dense<float>, float> &z);
624 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
625  const view1D<matrix::Dense<float>, float> &y, vector<float> &z);
626 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
627  const view1D<matrix::Dense<float>, float> &y,
628  view1D<vector<float>, float> &z);
629 void axpyz(const float alpha, const view1D<matrix::Dense<float>, float> &x,
630  const view1D<matrix::Dense<float>, float> &y,
631  view1D<matrix::Dense<float>, float> &z);
650 void dot(const vector<double> &x, const vector<double> &y, double &ans);
651 void dot(const vector<double> &x, const view1D<vector<double>, double> &y,
652  double &ans);
653 void dot(const vector<double> &x,
654  const view1D<matrix::Dense<double>, double> &y, double &ans);
655 void dot(const view1D<vector<double>, double> &x, const vector<double> &y,
656  double &ans);
657 void dot(const view1D<vector<double>, double> &x,
658  const view1D<vector<double>, double> &y, double &ans);
659 void dot(const view1D<vector<double>, double> &x,
660  const view1D<matrix::Dense<double>, double> &y, double &ans);
661 void dot(const view1D<matrix::Dense<double>, double> &x,
662  const vector<double> &y, double &ans);
663 void dot(const view1D<matrix::Dense<double>, double> &x,
664  const view1D<vector<double>, double> &y, double &ans);
665 void dot(const view1D<matrix::Dense<double>, double> &x,
666  const view1D<matrix::Dense<double>, double> &y, double &ans);
667 void dot(const vector<float> &x, const vector<float> &y, float &ans);
668 void dot(const vector<float> &x, const view1D<vector<float>, float> &y,
669  float &ans);
670 void dot(const vector<float> &x, const view1D<matrix::Dense<float>, float> &y,
671  float &ans);
672 void dot(const view1D<vector<float>, float> &x, const vector<float> &y,
673  float &ans);
674 void dot(const view1D<vector<float>, float> &x,
675  const view1D<vector<float>, float> &y, float &ans);
676 void dot(const view1D<vector<float>, float> &x,
677  const view1D<matrix::Dense<float>, float> &y, float &ans);
678 void dot(const view1D<matrix::Dense<float>, float> &x, const vector<float> &y,
679  float &ans);
680 void dot(const view1D<matrix::Dense<float>, float> &x,
681  const view1D<vector<float>, float> &y, float &ans);
682 void dot(const view1D<matrix::Dense<float>, float> &x,
683  const view1D<matrix::Dense<float>, float> &y, float &ans);
684 
696 [[nodiscard]] double dot(const vector<double> &x, const vector<double> &y);
697 [[nodiscard]] double dot(const vector<double> &x,
698  const view1D<vector<double>, double> &y);
699 [[nodiscard]] double dot(const vector<double> &x,
700  const view1D<matrix::Dense<double>, double> &y);
701 [[nodiscard]] double dot(const view1D<vector<double>, double> &x,
702  const vector<double> &y);
703 [[nodiscard]] double dot(const view1D<vector<double>, double> &x,
704  const view1D<vector<double>, double> &y);
705 [[nodiscard]] double dot(const view1D<vector<double>, double> &x,
706  const view1D<matrix::Dense<double>, double> &y);
707 [[nodiscard]] double dot(const view1D<matrix::Dense<double>, double> &x,
708  const vector<double> &y);
709 [[nodiscard]] double dot(const view1D<matrix::Dense<double>, double> &x,
710  const view1D<vector<double>, double> &y);
711 [[nodiscard]] double dot(const view1D<matrix::Dense<double>, double> &x,
712  const view1D<matrix::Dense<double>, double> &y);
713 [[nodiscard]] float dot(const vector<float> &x, const vector<float> &y);
714 [[nodiscard]] float dot(const vector<float> &x,
715  const view1D<vector<float>, float> &y);
716 [[nodiscard]] float dot(const vector<float> &x,
717  const view1D<matrix::Dense<float>, float> &y);
718 [[nodiscard]] float dot(const view1D<vector<float>, float> &x,
719  const vector<float> &y);
720 [[nodiscard]] float dot(const view1D<vector<float>, float> &x,
721  const view1D<vector<float>, float> &y);
722 [[nodiscard]] float dot(const view1D<vector<float>, float> &x,
723  const view1D<matrix::Dense<float>, float> &y);
724 [[nodiscard]] float dot(const view1D<matrix::Dense<float>, float> &x,
725  const vector<float> &y);
726 [[nodiscard]] float dot(const view1D<matrix::Dense<float>, float> &x,
727  const view1D<vector<float>, float> &y);
728 [[nodiscard]] float dot(const view1D<matrix::Dense<float>, float> &x,
729  const view1D<matrix::Dense<float>, float> &y);
747 void nrm1(const vector<double> &x, double &ans);
748 void nrm1(const view1D<vector<double>, double> &x, double &ans);
749 void nrm1(const view1D<matrix::Dense<double>, double> &x, double &ans);
750 void nrm1(const vector<float> &x, float &ans);
751 void nrm1(const view1D<vector<float>, float> &x, float &ans);
752 void nrm1(const view1D<matrix::Dense<float>, float> &x, float &ans);
753 
764 [[nodiscard]] double nrm1(const vector<double> &x);
765 [[nodiscard]] double nrm1(const view1D<vector<double>, double> &x);
766 [[nodiscard]] double nrm1(const view1D<matrix::Dense<double>, double> &x);
767 [[nodiscard]] float nrm1(const vector<float> &x);
768 [[nodiscard]] float nrm1(const view1D<vector<float>, float> &x);
769 [[nodiscard]] float nrm1(const view1D<matrix::Dense<float>, float> &x);
787 void nrm2(const vector<double> &x, double &ans);
788 void nrm2(const view1D<vector<double>, double> &x, double &ans);
789 void nrm2(const view1D<matrix::Dense<double>, double> &x, double &ans);
790 void nrm2(const vector<float> &x, float &ans);
791 void nrm2(const view1D<vector<float>, float> &x, float &ans);
792 void nrm2(const view1D<matrix::Dense<float>, float> &x, float &ans);
793 
804 [[nodiscard]] double nrm2(const vector<double> &x);
805 [[nodiscard]] double nrm2(const view1D<vector<double>, double> &x);
806 [[nodiscard]] double nrm2(const view1D<matrix::Dense<double>, double> &x);
807 [[nodiscard]] float nrm2(const vector<float> &x);
808 [[nodiscard]] float nrm2(const view1D<vector<float>, float> &x);
809 [[nodiscard]] float nrm2(const view1D<matrix::Dense<float>, float> &x);
827 void scal(const double alpha, vector<double> &x);
828 void scal(const double alpha, view1D<vector<double>, double> &x);
829 void scal(const double alpha, view1D<matrix::Dense<double>, double> &x);
830 void scal(const float alpha, vector<float> &x);
831 void scal(const float alpha, view1D<vector<float>, float> &x);
832 void scal(const float alpha, view1D<matrix::Dense<float>, float> &x);
851 void xpay(const double alpha, const vector<double> &x, vector<double> &y);
852 void xpay(const double alpha, const vector<double> &x,
853  view1D<vector<double>, double> &y);
854 void xpay(const double alpha, const vector<double> &x,
855  view1D<matrix::Dense<double>, double> &y);
856 void xpay(const double alpha, const view1D<vector<double>, double> &x,
857  vector<double> &y);
858 void xpay(const double alpha, const view1D<vector<double>, double> &x,
859  view1D<vector<double>, double> &y);
860 void xpay(const double alpha, const view1D<vector<double>, double> &x,
861  view1D<matrix::Dense<double>, double> &y);
862 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
863  vector<double> &y);
864 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
865  view1D<vector<double>, double> &y);
866 void xpay(const double alpha, const view1D<matrix::Dense<double>, double> &x,
867  view1D<matrix::Dense<double>, double> &y);
868 void xpay(const float alpha, const vector<float> &x, vector<float> &y);
869 void xpay(const float alpha, const vector<float> &x,
870  view1D<vector<float>, float> &y);
871 void xpay(const float alpha, const vector<float> &x,
872  view1D<matrix::Dense<float>, float> &y);
873 void xpay(const float alpha, const view1D<vector<float>, float> &x,
874  vector<float> &y);
875 void xpay(const float alpha, const view1D<vector<float>, float> &x,
876  view1D<vector<float>, float> &y);
877 void xpay(const float alpha, const view1D<vector<float>, float> &x,
878  view1D<matrix::Dense<float>, float> &y);
879 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
880  vector<float> &y);
881 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
882  view1D<vector<float>, float> &y);
883 void xpay(const float alpha, const view1D<matrix::Dense<float>, float> &x,
884  view1D<matrix::Dense<float>, float> &y);
887 } // namespace blas
888 } // 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 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