3 #include "../common/monolish_common.hpp"
34 void vecadd(
const vector<double> &a,
const vector<double> &b,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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);
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);
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,
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,
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,
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,
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,
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,
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,
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,
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,
670 void dot(
const vector<float> &x,
const view1D<matrix::Dense<float>,
float> &y,
672 void dot(
const view1D<vector<float>,
float> &x,
const vector<float> &y,
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,
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);
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);
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);
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,
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,
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,
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,
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);