3 #include "../common/monolish_common.hpp"
23 void vecadd(
const vector<double> &a,
const vector<double> &b,
25 void vecadd(
const vector<double> &a,
const vector<double> &b,
26 view1D<vector<double>,
double> &y);
27 void vecadd(
const vector<double> &a,
const vector<double> &b,
28 view1D<matrix::Dense<double>,
double> &y);
29 void vecadd(
const vector<double> &a,
const view1D<vector<double>,
double> &b,
31 void vecadd(
const vector<double> &a,
const view1D<vector<double>,
double> &b,
32 view1D<vector<double>,
double> &y);
33 void vecadd(
const vector<double> &a,
const view1D<vector<double>,
double> &b,
34 view1D<matrix::Dense<double>,
double> &y);
35 void vecadd(
const vector<double> &a,
36 const view1D<matrix::Dense<double>,
double> &b, vector<double> &y);
37 void vecadd(
const vector<double> &a,
38 const view1D<matrix::Dense<double>,
double> &b,
39 view1D<vector<double>,
double> &y);
40 void vecadd(
const vector<double> &a,
41 const view1D<matrix::Dense<double>,
double> &b,
42 view1D<matrix::Dense<double>,
double> &y);
43 void vecadd(
const view1D<vector<double>,
double> &a,
const vector<double> &b,
45 void vecadd(
const view1D<vector<double>,
double> &a,
const vector<double> &b,
46 view1D<vector<double>,
double> &y);
47 void vecadd(
const view1D<vector<double>,
double> &a,
const vector<double> &b,
48 view1D<matrix::Dense<double>,
double> &y);
49 void vecadd(
const view1D<vector<double>,
double> &a,
50 const view1D<vector<double>,
double> &b, vector<double> &y);
51 void vecadd(
const view1D<vector<double>,
double> &a,
52 const view1D<vector<double>,
double> &b,
53 view1D<vector<double>,
double> &y);
54 void vecadd(
const view1D<vector<double>,
double> &a,
55 const view1D<vector<double>,
double> &b,
56 view1D<matrix::Dense<double>,
double> &y);
57 void vecadd(
const view1D<vector<double>,
double> &a,
58 const view1D<matrix::Dense<double>,
double> &b, vector<double> &y);
59 void vecadd(
const view1D<vector<double>,
double> &a,
60 const view1D<matrix::Dense<double>,
double> &b,
61 view1D<vector<double>,
double> &y);
62 void vecadd(
const view1D<vector<double>,
double> &a,
63 const view1D<matrix::Dense<double>,
double> &b,
64 view1D<matrix::Dense<double>,
double> &y);
65 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
66 const vector<double> &b, vector<double> &y);
67 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
68 const vector<double> &b, view1D<vector<double>,
double> &y);
69 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
70 const vector<double> &b, view1D<matrix::Dense<double>,
double> &y);
71 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
72 const view1D<vector<double>,
double> &b, vector<double> &y);
73 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
74 const view1D<vector<double>,
double> &b,
75 view1D<vector<double>,
double> &y);
76 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
77 const view1D<vector<double>,
double> &b,
78 view1D<matrix::Dense<double>,
double> &y);
79 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
80 const view1D<matrix::Dense<double>,
double> &b, vector<double> &y);
81 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
82 const view1D<matrix::Dense<double>,
double> &b,
83 view1D<vector<double>,
double> &y);
84 void vecadd(
const view1D<matrix::Dense<double>,
double> &a,
85 const view1D<matrix::Dense<double>,
double> &b,
86 view1D<matrix::Dense<double>,
double> &y);
87 void vecadd(
const vector<float> &a,
const vector<float> &b, vector<float> &y);
88 void vecadd(
const vector<float> &a,
const vector<float> &b,
89 view1D<vector<float>,
float> &y);
90 void vecadd(
const vector<float> &a,
const vector<float> &b,
91 view1D<matrix::Dense<float>,
float> &y);
92 void vecadd(
const vector<float> &a,
const view1D<vector<float>,
float> &b,
94 void vecadd(
const vector<float> &a,
const view1D<vector<float>,
float> &b,
95 view1D<vector<float>,
float> &y);
96 void vecadd(
const vector<float> &a,
const view1D<vector<float>,
float> &b,
97 view1D<matrix::Dense<float>,
float> &y);
98 void vecadd(
const vector<float> &a,
99 const view1D<matrix::Dense<float>,
float> &b, vector<float> &y);
100 void vecadd(
const vector<float> &a,
101 const view1D<matrix::Dense<float>,
float> &b,
102 view1D<vector<float>,
float> &y);
103 void vecadd(
const vector<float> &a,
104 const view1D<matrix::Dense<float>,
float> &b,
105 view1D<matrix::Dense<float>,
float> &y);
106 void vecadd(
const view1D<vector<float>,
float> &a,
const vector<float> &b,
108 void vecadd(
const view1D<vector<float>,
float> &a,
const vector<float> &b,
109 view1D<vector<float>,
float> &y);
110 void vecadd(
const view1D<vector<float>,
float> &a,
const vector<float> &b,
111 view1D<matrix::Dense<float>,
float> &y);
112 void vecadd(
const view1D<vector<float>,
float> &a,
113 const view1D<vector<float>,
float> &b, vector<float> &y);
114 void vecadd(
const view1D<vector<float>,
float> &a,
115 const view1D<vector<float>,
float> &b,
116 view1D<vector<float>,
float> &y);
117 void vecadd(
const view1D<vector<float>,
float> &a,
118 const view1D<vector<float>,
float> &b,
119 view1D<matrix::Dense<float>,
float> &y);
120 void vecadd(
const view1D<vector<float>,
float> &a,
121 const view1D<matrix::Dense<float>,
float> &b, vector<float> &y);
122 void vecadd(
const view1D<vector<float>,
float> &a,
123 const view1D<matrix::Dense<float>,
float> &b,
124 view1D<vector<float>,
float> &y);
125 void vecadd(
const view1D<vector<float>,
float> &a,
126 const view1D<matrix::Dense<float>,
float> &b,
127 view1D<matrix::Dense<float>,
float> &y);
128 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
129 const vector<float> &b, vector<float> &y);
130 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
131 const vector<float> &b, view1D<vector<float>,
float> &y);
132 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
133 const vector<float> &b, view1D<matrix::Dense<float>,
float> &y);
134 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
135 const view1D<vector<float>,
float> &b, vector<float> &y);
136 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
137 const view1D<vector<float>,
float> &b,
138 view1D<vector<float>,
float> &y);
139 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
140 const view1D<vector<float>,
float> &b,
141 view1D<matrix::Dense<float>,
float> &y);
142 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
143 const view1D<matrix::Dense<float>,
float> &b, vector<float> &y);
144 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
145 const view1D<matrix::Dense<float>,
float> &b,
146 view1D<vector<float>,
float> &y);
147 void vecadd(
const view1D<matrix::Dense<float>,
float> &a,
148 const view1D<matrix::Dense<float>,
float> &b,
149 view1D<matrix::Dense<float>,
float> &y);
162 void vecsub(
const vector<double> &a,
const vector<double> &b,
164 void vecsub(
const vector<double> &a,
const vector<double> &b,
165 view1D<vector<double>,
double> &y);
166 void vecsub(
const vector<double> &a,
const vector<double> &b,
167 view1D<matrix::Dense<double>,
double> &y);
168 void vecsub(
const vector<double> &a,
const view1D<vector<double>,
double> &b,
170 void vecsub(
const vector<double> &a,
const view1D<vector<double>,
double> &b,
171 view1D<vector<double>,
double> &y);
172 void vecsub(
const vector<double> &a,
const view1D<vector<double>,
double> &b,
173 view1D<matrix::Dense<double>,
double> &y);
174 void vecsub(
const vector<double> &a,
175 const view1D<matrix::Dense<double>,
double> &b, vector<double> &y);
176 void vecsub(
const vector<double> &a,
177 const view1D<matrix::Dense<double>,
double> &b,
178 view1D<vector<double>,
double> &y);
179 void vecsub(
const vector<double> &a,
180 const view1D<matrix::Dense<double>,
double> &b,
181 view1D<matrix::Dense<double>,
double> &y);
182 void vecsub(
const view1D<vector<double>,
double> &a,
const vector<double> &b,
184 void vecsub(
const view1D<vector<double>,
double> &a,
const vector<double> &b,
185 view1D<vector<double>,
double> &y);
186 void vecsub(
const view1D<vector<double>,
double> &a,
const vector<double> &b,
187 view1D<matrix::Dense<double>,
double> &y);
188 void vecsub(
const view1D<vector<double>,
double> &a,
189 const view1D<vector<double>,
double> &b, vector<double> &y);
190 void vecsub(
const view1D<vector<double>,
double> &a,
191 const view1D<vector<double>,
double> &b,
192 view1D<vector<double>,
double> &y);
193 void vecsub(
const view1D<vector<double>,
double> &a,
194 const view1D<vector<double>,
double> &b,
195 view1D<matrix::Dense<double>,
double> &y);
196 void vecsub(
const view1D<vector<double>,
double> &a,
197 const view1D<matrix::Dense<double>,
double> &b, vector<double> &y);
198 void vecsub(
const view1D<vector<double>,
double> &a,
199 const view1D<matrix::Dense<double>,
double> &b,
200 view1D<vector<double>,
double> &y);
201 void vecsub(
const view1D<vector<double>,
double> &a,
202 const view1D<matrix::Dense<double>,
double> &b,
203 view1D<matrix::Dense<double>,
double> &y);
204 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
205 const vector<double> &b, vector<double> &y);
206 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
207 const vector<double> &b, view1D<vector<double>,
double> &y);
208 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
209 const vector<double> &b, view1D<matrix::Dense<double>,
double> &y);
210 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
211 const view1D<vector<double>,
double> &b, vector<double> &y);
212 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
213 const view1D<vector<double>,
double> &b,
214 view1D<vector<double>,
double> &y);
215 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
216 const view1D<vector<double>,
double> &b,
217 view1D<matrix::Dense<double>,
double> &y);
218 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
219 const view1D<matrix::Dense<double>,
double> &b, vector<double> &y);
220 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
221 const view1D<matrix::Dense<double>,
double> &b,
222 view1D<vector<double>,
double> &y);
223 void vecsub(
const view1D<matrix::Dense<double>,
double> &a,
224 const view1D<matrix::Dense<double>,
double> &b,
225 view1D<matrix::Dense<double>,
double> &y);
226 void vecsub(
const vector<float> &a,
const vector<float> &b, vector<float> &y);
227 void vecsub(
const vector<float> &a,
const vector<float> &b,
228 view1D<vector<float>,
float> &y);
229 void vecsub(
const vector<float> &a,
const vector<float> &b,
230 view1D<matrix::Dense<float>,
float> &y);
231 void vecsub(
const vector<float> &a,
const view1D<vector<float>,
float> &b,
233 void vecsub(
const vector<float> &a,
const view1D<vector<float>,
float> &b,
234 view1D<vector<float>,
float> &y);
235 void vecsub(
const vector<float> &a,
const view1D<vector<float>,
float> &b,
236 view1D<matrix::Dense<float>,
float> &y);
237 void vecsub(
const vector<float> &a,
238 const view1D<matrix::Dense<float>,
float> &b, vector<float> &y);
239 void vecsub(
const vector<float> &a,
240 const view1D<matrix::Dense<float>,
float> &b,
241 view1D<vector<float>,
float> &y);
242 void vecsub(
const vector<float> &a,
243 const view1D<matrix::Dense<float>,
float> &b,
244 view1D<matrix::Dense<float>,
float> &y);
245 void vecsub(
const view1D<vector<float>,
float> &a,
const vector<float> &b,
247 void vecsub(
const view1D<vector<float>,
float> &a,
const vector<float> &b,
248 view1D<vector<float>,
float> &y);
249 void vecsub(
const view1D<vector<float>,
float> &a,
const vector<float> &b,
250 view1D<matrix::Dense<float>,
float> &y);
251 void vecsub(
const view1D<vector<float>,
float> &a,
252 const view1D<vector<float>,
float> &b, vector<float> &y);
253 void vecsub(
const view1D<vector<float>,
float> &a,
254 const view1D<vector<float>,
float> &b,
255 view1D<vector<float>,
float> &y);
256 void vecsub(
const view1D<vector<float>,
float> &a,
257 const view1D<vector<float>,
float> &b,
258 view1D<matrix::Dense<float>,
float> &y);
259 void vecsub(
const view1D<vector<float>,
float> &a,
260 const view1D<matrix::Dense<float>,
float> &b, vector<float> &y);
261 void vecsub(
const view1D<vector<float>,
float> &a,
262 const view1D<matrix::Dense<float>,
float> &b,
263 view1D<vector<float>,
float> &y);
264 void vecsub(
const view1D<vector<float>,
float> &a,
265 const view1D<matrix::Dense<float>,
float> &b,
266 view1D<matrix::Dense<float>,
float> &y);
267 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
268 const vector<float> &b, vector<float> &y);
269 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
270 const vector<float> &b, view1D<vector<float>,
float> &y);
271 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
272 const vector<float> &b, view1D<matrix::Dense<float>,
float> &y);
273 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
274 const view1D<vector<float>,
float> &b, vector<float> &y);
275 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
276 const view1D<vector<float>,
float> &b,
277 view1D<vector<float>,
float> &y);
278 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
279 const view1D<vector<float>,
float> &b,
280 view1D<matrix::Dense<float>,
float> &y);
281 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
282 const view1D<matrix::Dense<float>,
float> &b, vector<float> &y);
283 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
284 const view1D<matrix::Dense<float>,
float> &b,
285 view1D<vector<float>,
float> &y);
286 void vecsub(
const view1D<matrix::Dense<float>,
float> &a,
287 const view1D<matrix::Dense<float>,
float> &b,
288 view1D<matrix::Dense<float>,
float> &y);
300 void copy(
const vector<double> &x, vector<double> &y);
301 void copy(
const vector<double> &x, view1D<vector<double>,
double> &y);
302 void copy(
const vector<double> &x, view1D<matrix::Dense<double>,
double> &y);
303 void copy(
const view1D<vector<double>,
double> &x, vector<double> &y);
304 void copy(
const view1D<vector<double>,
double> &x,
305 view1D<vector<double>,
double> &y);
306 void copy(
const view1D<vector<double>,
double> &x,
307 view1D<matrix::Dense<double>,
double> &y);
308 void copy(
const view1D<matrix::Dense<double>,
double> &x, vector<double> &y);
309 void copy(
const view1D<matrix::Dense<double>,
double> &x,
310 view1D<vector<double>,
double> &y);
311 void copy(
const view1D<matrix::Dense<double>,
double> &x,
312 view1D<matrix::Dense<double>,
double> &y);
313 void copy(
const vector<float> &x, vector<float> &y);
314 void copy(
const vector<float> &x, view1D<vector<float>,
float> &y);
315 void copy(
const vector<float> &x, view1D<matrix::Dense<float>,
float> &y);
316 void copy(
const view1D<vector<float>,
float> &x, vector<float> &y);
317 void copy(
const view1D<vector<float>,
float> &x,
318 view1D<vector<float>,
float> &y);
319 void copy(
const view1D<vector<float>,
float> &x,
320 view1D<matrix::Dense<float>,
float> &y);
321 void copy(
const view1D<matrix::Dense<float>,
float> &x, vector<float> &y);
322 void copy(
const view1D<matrix::Dense<float>,
float> &x,
323 view1D<vector<float>,
float> &y);
324 void copy(
const view1D<matrix::Dense<float>,
float> &x,
325 view1D<matrix::Dense<float>,
float> &y);
337 void asum(
const vector<double> &x,
double &ans);
338 void asum(
const view1D<vector<double>,
double> &x,
double &ans);
339 void asum(
const view1D<matrix::Dense<double>,
double> &x,
double &ans);
340 void asum(
const vector<float> &x,
float &ans);
341 void asum(
const view1D<vector<float>,
float> &x,
float &ans);
342 void asum(
const view1D<matrix::Dense<float>,
float> &x,
float &ans);
354 [[nodiscard]]
double asum(
const vector<double> &x);
355 [[nodiscard]]
double asum(
const view1D<vector<double>,
double> &x);
356 [[nodiscard]]
double asum(
const view1D<matrix::Dense<double>,
double> &x);
357 [[nodiscard]]
float asum(
const vector<float> &x);
358 [[nodiscard]]
float asum(
const view1D<vector<float>,
float> &x);
359 [[nodiscard]]
float asum(
const view1D<matrix::Dense<float>,
float> &x);
371 void sum(
const vector<double> &x,
double &ans);
372 void sum(
const view1D<vector<double>,
double> &x,
double &ans);
373 void sum(
const view1D<matrix::Dense<double>,
double> &x,
double &ans);
374 void sum(
const vector<float> &x,
float &ans);
375 void sum(
const view1D<vector<float>,
float> &x,
float &ans);
376 void sum(
const view1D<matrix::Dense<float>,
float> &x,
float &ans);
388 [[nodiscard]]
double sum(
const vector<double> &x);
389 [[nodiscard]]
double sum(
const view1D<vector<double>,
double> &x);
390 [[nodiscard]]
double sum(
const view1D<matrix::Dense<double>,
double> &x);
391 [[nodiscard]]
float sum(
const vector<float> &x);
392 [[nodiscard]]
float sum(
const view1D<vector<float>,
float> &x);
393 [[nodiscard]]
float sum(
const view1D<matrix::Dense<float>,
float> &x);
406 void axpy(
const double alpha,
const vector<double> &x, vector<double> &y);
407 void axpy(
const double alpha,
const vector<double> &x,
408 view1D<vector<double>,
double> &y);
409 void axpy(
const double alpha,
const vector<double> &x,
410 view1D<matrix::Dense<double>,
double> &y);
411 void axpy(
const double alpha,
const view1D<vector<double>,
double> &x,
413 void axpy(
const double alpha,
const view1D<vector<double>,
double> &x,
414 view1D<vector<double>,
double> &y);
415 void axpy(
const double alpha,
const view1D<vector<double>,
double> &x,
416 view1D<matrix::Dense<double>,
double> &y);
417 void axpy(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
419 void axpy(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
420 view1D<vector<double>,
double> &y);
421 void axpy(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
422 view1D<matrix::Dense<double>,
double> &y);
423 void axpy(
const float alpha,
const vector<float> &x, vector<float> &y);
424 void axpy(
const float alpha,
const vector<float> &x,
425 view1D<vector<float>,
float> &y);
426 void axpy(
const float alpha,
const vector<float> &x,
427 view1D<matrix::Dense<float>,
float> &y);
428 void axpy(
const float alpha,
const view1D<vector<float>,
float> &x,
430 void axpy(
const float alpha,
const view1D<vector<float>,
float> &x,
431 view1D<vector<float>,
float> &y);
432 void axpy(
const float alpha,
const view1D<vector<float>,
float> &x,
433 view1D<matrix::Dense<float>,
float> &y);
434 void axpy(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
436 void axpy(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
437 view1D<vector<float>,
float> &y);
438 void axpy(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
439 view1D<matrix::Dense<float>,
float> &y);
453 void axpyz(
const double alpha,
const vector<double> &x,
const vector<double> &y,
455 void axpyz(
const double alpha,
const vector<double> &x,
const vector<double> &y,
456 view1D<vector<double>,
double> &z);
457 void axpyz(
const double alpha,
const vector<double> &x,
const vector<double> &y,
458 view1D<matrix::Dense<double>,
double> &z);
459 void axpyz(
const double alpha,
const vector<double> &x,
460 const view1D<vector<double>,
double> &y, vector<double> &z);
461 void axpyz(
const double alpha,
const vector<double> &x,
462 const view1D<vector<double>,
double> &y,
463 view1D<vector<double>,
double> &z);
464 void axpyz(
const double alpha,
const vector<double> &x,
465 const view1D<vector<double>,
double> &y,
466 view1D<matrix::Dense<double>,
double> &z);
467 void axpyz(
const double alpha,
const vector<double> &x,
468 const view1D<matrix::Dense<double>,
double> &y, vector<double> &z);
469 void axpyz(
const double alpha,
const vector<double> &x,
470 const view1D<matrix::Dense<double>,
double> &y,
471 view1D<vector<double>,
double> &z);
472 void axpyz(
const double alpha,
const vector<double> &x,
473 const view1D<matrix::Dense<double>,
double> &y,
474 view1D<matrix::Dense<double>,
double> &z);
475 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
476 const vector<double> &y, vector<double> &z);
477 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
478 const vector<double> &y, view1D<vector<double>,
double> &z);
479 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
480 const vector<double> &y, view1D<matrix::Dense<double>,
double> &z);
481 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
482 const view1D<vector<double>,
double> &y, vector<double> &z);
483 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
484 const view1D<vector<double>,
double> &y,
485 view1D<vector<double>,
double> &z);
486 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
487 const view1D<vector<double>,
double> &y,
488 view1D<matrix::Dense<double>,
double> &z);
489 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
490 const view1D<matrix::Dense<double>,
double> &y, vector<double> &z);
491 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
492 const view1D<matrix::Dense<double>,
double> &y,
493 view1D<vector<double>,
double> &z);
494 void axpyz(
const double alpha,
const view1D<vector<double>,
double> &x,
495 const view1D<matrix::Dense<double>,
double> &y,
496 view1D<matrix::Dense<double>,
double> &z);
497 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
498 const vector<double> &y, vector<double> &z);
499 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
500 const vector<double> &y, view1D<vector<double>,
double> &z);
501 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
502 const vector<double> &y, view1D<matrix::Dense<double>,
double> &z);
503 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
504 const view1D<vector<double>,
double> &y, vector<double> &z);
505 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
506 const view1D<vector<double>,
double> &y,
507 view1D<vector<double>,
double> &z);
508 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
509 const view1D<vector<double>,
double> &y,
510 view1D<matrix::Dense<double>,
double> &z);
511 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
512 const view1D<matrix::Dense<double>,
double> &y, vector<double> &z);
513 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
514 const view1D<matrix::Dense<double>,
double> &y,
515 view1D<vector<double>,
double> &z);
516 void axpyz(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
517 const view1D<matrix::Dense<double>,
double> &y,
518 view1D<matrix::Dense<double>,
double> &z);
519 void axpyz(
const float alpha,
const vector<float> &x,
const vector<float> &y,
521 void axpyz(
const float alpha,
const vector<float> &x,
const vector<float> &y,
522 view1D<vector<float>,
float> &z);
523 void axpyz(
const float alpha,
const vector<float> &x,
const vector<float> &y,
524 view1D<matrix::Dense<float>,
float> &z);
525 void axpyz(
const float alpha,
const vector<float> &x,
526 const view1D<vector<float>,
float> &y, vector<float> &z);
527 void axpyz(
const float alpha,
const vector<float> &x,
528 const view1D<vector<float>,
float> &y,
529 view1D<vector<float>,
float> &z);
530 void axpyz(
const float alpha,
const vector<float> &x,
531 const view1D<vector<float>,
float> &y,
532 view1D<matrix::Dense<float>,
float> &z);
533 void axpyz(
const float alpha,
const vector<float> &x,
534 const view1D<matrix::Dense<float>,
float> &y, vector<float> &z);
535 void axpyz(
const float alpha,
const vector<float> &x,
536 const view1D<matrix::Dense<float>,
float> &y,
537 view1D<vector<float>,
float> &z);
538 void axpyz(
const float alpha,
const vector<float> &x,
539 const view1D<matrix::Dense<float>,
float> &y,
540 view1D<matrix::Dense<float>,
float> &z);
541 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
542 const vector<float> &y, vector<float> &z);
543 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
544 const vector<float> &y, view1D<vector<float>,
float> &z);
545 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
546 const vector<float> &y, view1D<matrix::Dense<float>,
float> &z);
547 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
548 const view1D<vector<float>,
float> &y, vector<float> &z);
549 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
550 const view1D<vector<float>,
float> &y,
551 view1D<vector<float>,
float> &z);
552 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
553 const view1D<vector<float>,
float> &y,
554 view1D<matrix::Dense<float>,
float> &z);
555 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
556 const view1D<matrix::Dense<float>,
float> &y, vector<float> &z);
557 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
558 const view1D<matrix::Dense<float>,
float> &y,
559 view1D<vector<float>,
float> &z);
560 void axpyz(
const float alpha,
const view1D<vector<float>,
float> &x,
561 const view1D<matrix::Dense<float>,
float> &y,
562 view1D<matrix::Dense<float>,
float> &z);
563 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
564 const vector<float> &y, vector<float> &z);
565 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
566 const vector<float> &y, view1D<vector<float>,
float> &z);
567 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
568 const vector<float> &y, view1D<matrix::Dense<float>,
float> &z);
569 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
570 const view1D<vector<float>,
float> &y, vector<float> &z);
571 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
572 const view1D<vector<float>,
float> &y,
573 view1D<vector<float>,
float> &z);
574 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
575 const view1D<vector<float>,
float> &y,
576 view1D<matrix::Dense<float>,
float> &z);
577 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
578 const view1D<matrix::Dense<float>,
float> &y, vector<float> &z);
579 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
580 const view1D<matrix::Dense<float>,
float> &y,
581 view1D<vector<float>,
float> &z);
582 void axpyz(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
583 const view1D<matrix::Dense<float>,
float> &y,
584 view1D<matrix::Dense<float>,
float> &z);
597 void dot(
const vector<double> &x,
const vector<double> &y,
double &ans);
598 void dot(
const vector<double> &x,
const view1D<vector<double>,
double> &y,
600 void dot(
const vector<double> &x,
601 const view1D<matrix::Dense<double>,
double> &y,
double &ans);
602 void dot(
const view1D<vector<double>,
double> &x,
const vector<double> &y,
604 void dot(
const view1D<vector<double>,
double> &x,
605 const view1D<vector<double>,
double> &y,
double &ans);
606 void dot(
const view1D<vector<double>,
double> &x,
607 const view1D<matrix::Dense<double>,
double> &y,
double &ans);
608 void dot(
const view1D<matrix::Dense<double>,
double> &x,
609 const vector<double> &y,
double &ans);
610 void dot(
const view1D<matrix::Dense<double>,
double> &x,
611 const view1D<vector<double>,
double> &y,
double &ans);
612 void dot(
const view1D<matrix::Dense<double>,
double> &x,
613 const view1D<matrix::Dense<double>,
double> &y,
double &ans);
614 void dot(
const vector<float> &x,
const vector<float> &y,
float &ans);
615 void dot(
const vector<float> &x,
const view1D<vector<float>,
float> &y,
617 void dot(
const vector<float> &x,
const view1D<matrix::Dense<float>,
float> &y,
619 void dot(
const view1D<vector<float>,
float> &x,
const vector<float> &y,
621 void dot(
const view1D<vector<float>,
float> &x,
622 const view1D<vector<float>,
float> &y,
float &ans);
623 void dot(
const view1D<vector<float>,
float> &x,
624 const view1D<matrix::Dense<float>,
float> &y,
float &ans);
625 void dot(
const view1D<matrix::Dense<float>,
float> &x,
const vector<float> &y,
627 void dot(
const view1D<matrix::Dense<float>,
float> &x,
628 const view1D<vector<float>,
float> &y,
float &ans);
629 void dot(
const view1D<matrix::Dense<float>,
float> &x,
630 const view1D<matrix::Dense<float>,
float> &y,
float &ans);
643 [[nodiscard]]
double dot(
const vector<double> &x,
const vector<double> &y);
644 [[nodiscard]]
double dot(
const vector<double> &x,
645 const view1D<vector<double>,
double> &y);
646 [[nodiscard]]
double dot(
const vector<double> &x,
647 const view1D<matrix::Dense<double>,
double> &y);
648 [[nodiscard]]
double dot(
const view1D<vector<double>,
double> &x,
649 const vector<double> &y);
650 [[nodiscard]]
double dot(
const view1D<vector<double>,
double> &x,
651 const view1D<vector<double>,
double> &y);
652 [[nodiscard]]
double dot(
const view1D<vector<double>,
double> &x,
653 const view1D<matrix::Dense<double>,
double> &y);
654 [[nodiscard]]
double dot(
const view1D<matrix::Dense<double>,
double> &x,
655 const vector<double> &y);
656 [[nodiscard]]
double dot(
const view1D<matrix::Dense<double>,
double> &x,
657 const view1D<vector<double>,
double> &y);
658 [[nodiscard]]
double dot(
const view1D<matrix::Dense<double>,
double> &x,
659 const view1D<matrix::Dense<double>,
double> &y);
660 [[nodiscard]]
float dot(
const vector<float> &x,
const vector<float> &y);
661 [[nodiscard]]
float dot(
const vector<float> &x,
662 const view1D<vector<float>,
float> &y);
663 [[nodiscard]]
float dot(
const vector<float> &x,
664 const view1D<matrix::Dense<float>,
float> &y);
665 [[nodiscard]]
float dot(
const view1D<vector<float>,
float> &x,
666 const vector<float> &y);
667 [[nodiscard]]
float dot(
const view1D<vector<float>,
float> &x,
668 const view1D<vector<float>,
float> &y);
669 [[nodiscard]]
float dot(
const view1D<vector<float>,
float> &x,
670 const view1D<matrix::Dense<float>,
float> &y);
671 [[nodiscard]]
float dot(
const view1D<matrix::Dense<float>,
float> &x,
672 const vector<float> &y);
673 [[nodiscard]]
float dot(
const view1D<matrix::Dense<float>,
float> &x,
674 const view1D<vector<float>,
float> &y);
675 [[nodiscard]]
float dot(
const view1D<matrix::Dense<float>,
float> &x,
676 const view1D<matrix::Dense<float>,
float> &y);
688 void nrm1(
const vector<double> &x,
double &ans);
689 void nrm1(
const view1D<vector<double>,
double> &x,
double &ans);
690 void nrm1(
const view1D<matrix::Dense<double>,
double> &x,
double &ans);
691 void nrm1(
const vector<float> &x,
float &ans);
692 void nrm1(
const view1D<vector<float>,
float> &x,
float &ans);
693 void nrm1(
const view1D<matrix::Dense<float>,
float> &x,
float &ans);
705 [[nodiscard]]
double nrm1(
const vector<double> &x);
706 [[nodiscard]]
double nrm1(
const view1D<vector<double>,
double> &x);
707 [[nodiscard]]
double nrm1(
const view1D<matrix::Dense<double>,
double> &x);
708 [[nodiscard]]
float nrm1(
const vector<float> &x);
709 [[nodiscard]]
float nrm1(
const view1D<vector<float>,
float> &x);
710 [[nodiscard]]
float nrm1(
const view1D<matrix::Dense<float>,
float> &x);
722 void nrm2(
const vector<double> &x,
double &ans);
723 void nrm2(
const view1D<vector<double>,
double> &x,
double &ans);
724 void nrm2(
const view1D<matrix::Dense<double>,
double> &x,
double &ans);
725 void nrm2(
const vector<float> &x,
float &ans);
726 void nrm2(
const view1D<vector<float>,
float> &x,
float &ans);
727 void nrm2(
const view1D<matrix::Dense<float>,
float> &x,
float &ans);
739 [[nodiscard]]
double nrm2(
const vector<double> &x);
740 [[nodiscard]]
double nrm2(
const view1D<vector<double>,
double> &x);
741 [[nodiscard]]
double nrm2(
const view1D<matrix::Dense<double>,
double> &x);
742 [[nodiscard]]
float nrm2(
const vector<float> &x);
743 [[nodiscard]]
float nrm2(
const view1D<vector<float>,
float> &x);
744 [[nodiscard]]
float nrm2(
const view1D<matrix::Dense<float>,
float> &x);
756 void scal(
const double alpha, vector<double> &x);
757 void scal(
const double alpha, view1D<vector<double>,
double> &x);
758 void scal(
const double alpha, view1D<matrix::Dense<double>,
double> &x);
759 void scal(
const float alpha, vector<float> &x);
760 void scal(
const float alpha, view1D<vector<float>,
float> &x);
761 void scal(
const float alpha, view1D<matrix::Dense<float>,
float> &x);
774 void xpay(
const double alpha,
const vector<double> &x, vector<double> &y);
775 void xpay(
const double alpha,
const vector<double> &x,
776 view1D<vector<double>,
double> &y);
777 void xpay(
const double alpha,
const vector<double> &x,
778 view1D<matrix::Dense<double>,
double> &y);
779 void xpay(
const double alpha,
const view1D<vector<double>,
double> &x,
781 void xpay(
const double alpha,
const view1D<vector<double>,
double> &x,
782 view1D<vector<double>,
double> &y);
783 void xpay(
const double alpha,
const view1D<vector<double>,
double> &x,
784 view1D<matrix::Dense<double>,
double> &y);
785 void xpay(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
787 void xpay(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
788 view1D<vector<double>,
double> &y);
789 void xpay(
const double alpha,
const view1D<matrix::Dense<double>,
double> &x,
790 view1D<matrix::Dense<double>,
double> &y);
791 void xpay(
const float alpha,
const vector<float> &x, vector<float> &y);
792 void xpay(
const float alpha,
const vector<float> &x,
793 view1D<vector<float>,
float> &y);
794 void xpay(
const float alpha,
const vector<float> &x,
795 view1D<matrix::Dense<float>,
float> &y);
796 void xpay(
const float alpha,
const view1D<vector<float>,
float> &x,
798 void xpay(
const float alpha,
const view1D<vector<float>,
float> &x,
799 view1D<vector<float>,
float> &y);
800 void xpay(
const float alpha,
const view1D<vector<float>,
float> &x,
801 view1D<matrix::Dense<float>,
float> &y);
802 void xpay(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
804 void xpay(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
805 view1D<vector<float>,
float> &y);
806 void xpay(
const float alpha,
const view1D<matrix::Dense<float>,
float> &x,
807 view1D<matrix::Dense<float>,
float> &y);