C-XSC - A C++ Class Library for Extended Scientific Computing 2.5.4
vector_friend_declarations.inl
1/*
2** CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4)
3**
4** Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik,
5** Universitaet Karlsruhe, Germany
6** (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie
7** Universitaet Wuppertal, Germany
8**
9** This library is free software; you can redistribute it and/or
10** modify it under the terms of the GNU Library General Public
11** License as published by the Free Software Foundation; either
12** version 2 of the License, or (at your option) any later version.
13**
14** This library is distributed in the hope that it will be useful,
15** but WITHOUT ANY WARRANTY; without even the implied warranty of
16** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17** Library General Public License for more details.
18**
19** You should have received a copy of the GNU Library General Public
20** License along with this library; if not, write to the Free
21** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*/
23
24/* CVS $Id: vector_friend_declarations.inl,v 1.10 2014/01/30 17:23:49 cxsc Exp $ */
25
26
27#if(CXSC_INDEX_CHECK)
28template<class Tx, class Ty, class Tres, class TDot>
29friend inline Tres spsp_vv_mult(const Tx&, const Ty&);
30#else
31template<class Tx, class Ty, class Tres, class TDot>
32friend inline Tres spsp_vv_mult(const Tx&, const Ty&) noexcept;
33#endif
34
35
36#if(CXSC_INDEX_CHECK)
37template<class Tx, class Ty, class Tres, class TDot>
38friend inline Tres slsp_vv_mult(const Tx&, const Ty&);
39#else
40template<class Tx, class Ty, class Tres, class TDot>
41friend inline Tres slsp_vv_mult(const Tx&, const Ty&) noexcept;
42#endif
43
44#if(CXSC_INDEX_CHECK)
45template<class Tx, class Ty, class Tres, class TDot>
46friend inline Tres spsl_vv_mult(const Tx&, const Ty&);
47#else
48template<class Tx, class Ty, class Tres, class TDot>
49friend inline Tres spsl_vv_mult(const Tx&, const Ty&) noexcept;
50#endif
51
52#if(CXSC_INDEX_CHECK)
53template<class Tx, class Ty, class Tres, class TDot>
54friend inline Tres spf_vv_mult(const Tx&, const Ty&);
55#else
56template<class Tx, class Ty, class Tres, class TDot>
57friend inline Tres spf_vv_mult(const Tx&, const Ty&) noexcept;
58#endif
59
60#if(CXSC_INDEX_CHECK)
61template<class Tx, class Ty, class Tres, class TDot>
62friend inline Tres fsp_vv_mult(const Tx&, const Ty&);
63#else
64template<class Tx, class Ty, class Tres, class TDot>
65friend inline Tres fsp_vv_mult(const Tx&, const Ty&) noexcept;
66#endif
67
68#if(CXSC_INDEX_CHECK)
69template<class Tx, class Ty, class Tres, class TDot>
70friend inline Tres slf_vv_mult(const Tx&, const Ty&);
71#else
72template<class Tx, class Ty, class Tres, class TDot>
73friend inline Tres slf_vv_mult(const Tx&, const Ty&) noexcept;
74#endif
75
76#if(CXSC_INDEX_CHECK)
77template<class Tx, class Ty, class Tres, class TDot>
78friend inline Tres fsl_vv_mult(const Tx&, const Ty&);
79#else
80template<class Tx, class Ty, class Tres, class TDot>
81friend inline Tres fsl_vv_mult(const Tx&, const Ty&) noexcept;
82#endif
83
84#if(CXSC_INDEX_CHECK)
85template<class Tx, class Ty, class Tres, class TDot>
86friend inline Tres slsl_vv_mult(const Tx&, const Ty&);
87#else
88template<class Tx, class Ty, class Tres, class TDot>
89friend inline Tres slsl_vv_mult(const Tx&, const Ty&) noexcept;
90#endif
91
92template<class Tv, class Ts, class Tres>
93friend inline Tres sp_vs_div(const Tv&, const Ts&);
94
95template<class Tv, class Ts, class Tres>
96friend inline Tres sp_vs_mult(const Tv&, const Ts&);
97
98template<class Ts, class Tv, class Tres>
99friend inline Tres sp_sv_mult(const Ts&, const Tv&);
100
101#if(CXSC_INDEX_CHECK)
102template<class Tx, class Ty, class Tres, class TType>
103friend inline Tres spsp_vv_add(const Tx&, const Ty&);
104#else
105template<class Tx, class Ty, class Tres, class TType>
106friend inline Tres spsp_vv_add(const Tx&, const Ty&) noexcept;
107#endif
108
109#if(CXSC_INDEX_CHECK)
110template<class Tx, class Ty, class Tres, class TType>
111friend inline Tres slsp_vv_add(const Tx&, const Ty&);
112#else
113template<class Tx, class Ty, class Tres, class TType>
114friend inline Tres slsp_vv_add(const Tx&, const Ty&) noexcept;
115#endif
116
117#if(CXSC_INDEX_CHECK)
118template<class Tx, class Ty, class Tres, class TType>
119friend inline Tres spsl_vv_add(const Tx&, const Ty&);
120#else
121template<class Tx, class Ty, class Tres, class TType>
122friend inline Tres spsl_vv_add(const Tx&, const Ty&) noexcept;
123#endif
124
125#if(CXSC_INDEX_CHECK)
126template<class Tx, class Ty, class Tres>
127friend inline Tres spf_vv_add(const Tx&, const Ty&);
128#else
129template<class Tx, class Ty, class Tres>
130friend inline Tres spf_vv_add(const Tx&, const Ty&) noexcept;
131#endif
132
133#if(CXSC_INDEX_CHECK)
134template<class Tx, class Ty, class Tres>
135friend inline Tres fsp_vv_add(const Tx&, const Ty&);
136#else
137template<class Tx, class Ty, class Tres>
138friend inline Tres fsp_vv_add(const Tx&, const Ty&) noexcept;
139#endif
140
141#if(CXSC_INDEX_CHECK)
142template<class Tx, class Ty, class Tres>
143friend inline Tres slf_vv_add(const Tx&, const Ty&);
144#else
145template<class Tx, class Ty, class Tres>
146friend inline Tres slf_vv_add(const Tx&, const Ty&) noexcept;
147#endif
148
149#if(CXSC_INDEX_CHECK)
150template<class Tx, class Ty, class Tres>
151friend inline Tres fsl_vv_add(const Tx&, const Ty&);
152#else
153template<class Tx, class Ty, class Tres>
154friend inline Tres fsl_vv_add(const Tx&, const Ty&) noexcept;
155#endif
156
157#if(CXSC_INDEX_CHECK)
158template<class Tx, class Ty, class Tres, class TType>
159friend inline Tres slsl_vv_add(const Tx&, const Ty&);
160#else
161template<class Tx, class Ty, class Tres, class TType>
162friend inline Tres slsl_vv_add(const Tx&, const Ty&) noexcept;
163#endif
164
165#if(CXSC_INDEX_CHECK)
166template<class Tx, class Ty, class Tres, class TType>
167friend inline Tres spsp_vv_sub(const Tx&, const Ty&);
168#else
169template<class Tx, class Ty, class Tres, class TType>
170friend inline Tres spsp_vv_sub(const Tx&, const Ty&) noexcept;
171#endif
172
173#if(CXSC_INDEX_CHECK)
174template<class Tx, class Ty, class Tres, class TType>
175friend inline Tres slsp_vv_sub(const Tx&, const Ty&);
176#else
177template<class Tx, class Ty, class Tres, class TType>
178friend inline Tres slsp_vv_sub(const Tx&, const Ty&) noexcept;
179#endif
180
181#if(CXSC_INDEX_CHECK)
182template<class Tx, class Ty, class Tres, class TType>
183friend inline Tres spsl_vv_sub(const Tx&, const Ty&);
184#else
185template<class Tx, class Ty, class Tres, class TType>
186friend inline Tres spsl_vv_sub(const Tx&, const Ty&) noexcept;
187#endif
188
189#if(CXSC_INDEX_CHECK)
190template<class Tx, class Ty, class Tres>
191friend inline Tres spf_vv_sub(const Tx&, const Ty&);
192#else
193template<class Tx, class Ty, class Tres>
194friend inline Tres spf_vv_sub(const Tx&, const Ty&) noexcept;
195#endif
196
197#if(CXSC_INDEX_CHECK)
198template<class Tx, class Ty, class Tres>
199friend inline Tres fsp_vv_sub(const Tx&, const Ty&);
200#else
201template<class Tx, class Ty, class Tres>
202friend inline Tres fsp_vv_sub(const Tx&, const Ty&) noexcept;
203#endif
204
205#if(CXSC_INDEX_CHECK)
206template<class Tx, class Ty, class Tres>
207friend inline Tres slf_vv_sub(const Tx&, const Ty&);
208#else
209template<class Tx, class Ty, class Tres>
210friend inline Tres slf_vv_sub(const Tx&, const Ty&) noexcept;
211#endif
212
213#if(CXSC_INDEX_CHECK)
214template<class Tx, class Ty, class Tres>
215friend inline Tres fsl_vv_sub(const Tx&, const Ty&);
216#else
217template<class Tx, class Ty, class Tres>
218friend inline Tres fsl_vv_sub(const Tx&, const Ty&) noexcept;
219#endif
220
221#if(CXSC_INDEX_CHECK)
222template<class Tx, class Ty, class Tres, class TType>
223friend inline Tres slsl_vv_sub(const Tx&, const Ty&);
224#else
225template<class Tx, class Ty, class Tres, class TType>
226friend inline Tres slsl_vv_sub(const Tx&, const Ty&) noexcept;
227#endif
228
229#if(CXSC_INDEX_CHECK)
230template<class Tx, class Ty, class Tres, class TType>
231friend inline Tres spsp_vv_hull(const Tx&, const Ty&);
232#else
233template<class Tx, class Ty, class Tres, class TType>
234friend inline Tres spsp_vv_hull(const Tx&, const Ty&) noexcept;
235#endif
236
237#if(CXSC_INDEX_CHECK)
238template<class Tx, class Ty, class Tres, class TType>
239friend inline Tres slsp_vv_hull(const Tx&, const Ty&);
240#else
241template<class Tx, class Ty, class Tres, class TType>
242friend inline Tres slsp_vv_hull(const Tx&, const Ty&) noexcept;
243#endif
244
245#if(CXSC_INDEX_CHECK)
246template<class Tx, class Ty, class Tres, class TType>
247friend inline Tres spsl_vv_hull(const Tx&, const Ty&);
248#else
249template<class Tx, class Ty, class Tres, class TType>
250friend inline Tres spsl_vv_hull(const Tx&, const Ty&) noexcept;
251#endif
252
253#if(CXSC_INDEX_CHECK)
254template<class Tx, class Ty, class Tres>
255friend inline Tres spf_vv_hull(const Tx&, const Ty&);
256#else
257template<class Tx, class Ty, class Tres>
258friend inline Tres spf_vv_hull(const Tx&, const Ty&) noexcept;
259#endif
260
261#if(CXSC_INDEX_CHECK)
262template<class Tx, class Ty, class Tres>
263friend inline Tres fsp_vv_hull(const Tx&, const Ty&);
264#else
265template<class Tx, class Ty, class Tres>
266friend inline Tres fsp_vv_hull(const Tx&, const Ty&) noexcept;
267#endif
268
269#if(CXSC_INDEX_CHECK)
270template<class Tx, class Ty, class Tres>
271friend inline Tres slf_vv_hull(const Tx&, const Ty&);
272#else
273template<class Tx, class Ty, class Tres>
274friend inline Tres slf_vv_hull(const Tx&, const Ty&) noexcept;
275#endif
276
277#if(CXSC_INDEX_CHECK)
278template<class Tx, class Ty, class Tres>
279friend inline Tres fsl_vv_hull(const Tx&, const Ty&);
280#else
281template<class Tx, class Ty, class Tres>
282friend inline Tres fsl_vv_hull(const Tx&, const Ty&) noexcept;
283#endif
284
285#if(CXSC_INDEX_CHECK)
286template<class Tx, class Ty, class Tres, class TType>
287friend inline Tres slsl_vv_hull(const Tx&, const Ty&);
288#else
289template<class Tx, class Ty, class Tres, class TType>
290friend inline Tres slsl_vv_hull(const Tx&, const Ty&) noexcept;
291#endif
292
293#if(CXSC_INDEX_CHECK)
294template<class Tx, class Ty, class Tres, class TType>
295friend inline Tres spsp_vv_intersect(const Tx&, const Ty&);
296#else
297template<class Tx, class Ty, class Tres, class TType>
298friend inline Tres spsp_vv_intersect(const Tx&, const Ty&) noexcept;
299#endif
300
301#if(CXSC_INDEX_CHECK)
302template<class Tx, class Ty, class Tres, class TType>
303friend inline Tres slsp_vv_intersect(const Tx&, const Ty&);
304#else
305template<class Tx, class Ty, class Tres, class TType>
306friend inline Tres slsp_vv_intersect(const Tx&, const Ty&) noexcept;
307#endif
308
309#if(CXSC_INDEX_CHECK)
310template<class Tx, class Ty, class Tres, class TType>
311friend inline Tres spsl_vv_intersect(const Tx&, const Ty&);
312#else
313template<class Tx, class Ty, class Tres, class TType>
314friend inline Tres spsl_vv_intersect(const Tx&, const Ty&) noexcept;
315#endif
316
317#if(CXSC_INDEX_CHECK)
318template<class Tx, class Ty, class Tres>
319friend inline Tres spf_vv_intersect(const Tx&, const Ty&);
320#else
321template<class Tx, class Ty, class Tres>
322friend inline Tres spf_vv_intersect(const Tx&, const Ty&) noexcept;
323#endif
324
325#if(CXSC_INDEX_CHECK)
326template<class Tx, class Ty, class Tres>
327friend inline Tres fsp_vv_intersect(const Tx&, const Ty&);
328#else
329template<class Tx, class Ty, class Tres>
330friend inline Tres fsp_vv_intersect(const Tx&, const Ty&) noexcept;
331#endif
332
333#if(CXSC_INDEX_CHECK)
334template<class Tx, class Ty, class Tres>
335friend inline Tres slf_vv_intersect(const Tx&, const Ty&);
336#else
337template<class Tx, class Ty, class Tres>
338friend inline Tres slf_vv_intersect(const Tx&, const Ty&) noexcept;
339#endif
340
341#if(CXSC_INDEX_CHECK)
342template<class Tx, class Ty, class Tres>
343friend inline Tres fsl_vv_intersect(const Tx&, const Ty&);
344#else
345template<class Tx, class Ty, class Tres>
346friend inline Tres fsl_vv_intersect(const Tx&, const Ty&) noexcept;
347#endif
348
349#if(CXSC_INDEX_CHECK)
350template<class Tx, class Ty, class Tres, class TType>
351friend inline Tres slsl_vv_intersect(const Tx&, const Ty&);
352#else
353template<class Tx, class Ty, class Tres, class TType>
354friend inline Tres slsl_vv_intersect(const Tx&, const Ty&) noexcept;
355#endif
356
357template<class Tx, class Ty>
358friend inline bool spsp_vv_comp(const Tx&, const Ty&);
359
360template<class Tx, class Ty>
361friend inline bool slsp_vv_comp(const Tx&, const Ty&);
362
363template<class Tx, class Ty>
364friend inline bool spsl_vv_comp(const Tx&, const Ty&);
365
366template<class Tx, class Ty>
367friend inline bool spf_vv_comp(const Tx&, const Ty&);
368
369template<class Tx, class Ty>
370friend inline bool fsp_vv_comp(const Tx&, const Ty&);
371
372template<class Tx, class Ty>
373friend inline bool slf_vv_comp(const Tx&, const Ty&);
374
375template<class Tx, class Ty>
376friend inline bool fsl_vv_comp(const Tx&, const Ty&);
377
378template<class Tx, class Ty>
379friend inline bool slsl_vv_comp(const Tx&, const Ty&);
380
381template<class Tx, class Ty, class TType>
382friend inline bool spsp_vv_less(const Tx&, const Ty&);
383
384template<class Tx, class Ty, class TType>
385friend inline bool slsp_vv_less(const Tx&, const Ty&);
386
387template<class Tx, class Ty, class TType>
388friend inline bool spsl_vv_less(const Tx&, const Ty&);
389
390template<class Tx, class Ty, class TType>
391friend inline bool spf_vv_less(const Tx&, const Ty&);
392
393template<class Tx, class Ty, class TType>
394friend inline bool fsp_vv_less(const Tx&, const Ty&);
395
396template<class Tx, class Ty, class TType>
397friend inline bool slf_vv_less(const Tx&, const Ty&);
398
399template<class Tx, class Ty, class TType>
400friend inline bool fsl_vv_less(const Tx&, const Ty&);
401
402template<class Tx, class Ty, class TType>
403friend inline bool slsl_vv_less(const Tx&, const Ty&);
404
405template<class Tx, class Ty, class TType>
406friend inline bool spsp_vv_leq(const Tx&, const Ty&);
407
408template<class Tx, class Ty, class TType>
409friend inline bool slsp_vv_leq(const Tx&, const Ty&);
410
411template<class Tx, class Ty, class TType>
412friend inline bool spsl_vv_leq(const Tx&, const Ty&);
413
414template<class Tx, class Ty, class TType>
415friend inline bool spf_vv_leq(const Tx&, const Ty&);
416
417template<class Tx, class Ty, class TType>
418friend inline bool fsp_vv_leq(const Tx&, const Ty&);
419
420template<class Tx, class Ty, class TType>
421friend inline bool slf_vv_leq(const Tx&, const Ty&);
422
423template<class Tx, class Ty, class TType>
424friend inline bool fsl_vv_leq(const Tx&, const Ty&);
425
426template<class Tx, class Ty, class TType>
427friend inline bool slsl_vv_leq(const Tx&, const Ty&);
428
429template<class Tx, class Ty, class TType>
430friend inline bool spsp_vv_greater(const Tx&, const Ty&);
431
432template<class Tx, class Ty, class TType>
433friend inline bool slsp_vv_greater(const Tx&, const Ty&);
434
435template<class Tx, class Ty, class TType>
436friend inline bool spsl_vv_greater(const Tx&, const Ty&);
437
438template<class Tx, class Ty, class TType>
439friend inline bool spf_vv_greater(const Tx&, const Ty&);
440
441template<class Tx, class Ty, class TType>
442friend inline bool fsp_vv_greater(const Tx&, const Ty&);
443
444template<class Tx, class Ty, class TType>
445friend inline bool slf_vv_greater(const Tx&, const Ty&);
446
447template<class Tx, class Ty, class TType>
448friend inline bool fsl_vv_greater(const Tx&, const Ty&);
449
450template<class Tx, class Ty, class TType>
451friend inline bool slsl_vv_greater(const Tx&, const Ty&);
452
453template<class Tx, class Ty, class TType>
454friend inline bool spsp_vv_geq(const Tx&, const Ty&);
455
456template<class Tx, class Ty, class TType>
457friend inline bool slsp_vv_geq(const Tx&, const Ty&);
458
459template<class Tx, class Ty, class TType>
460friend inline bool spsl_vv_geq(const Tx&, const Ty&);
461
462template<class Tx, class Ty, class TType>
463friend inline bool spf_vv_geq(const Tx&, const Ty&);
464
465template<class Tx, class Ty, class TType>
466friend inline bool fsp_vv_geq(const Tx&, const Ty&);
467
468template<class Tx, class Ty, class TType>
469friend inline bool slf_vv_geq(const Tx&, const Ty&);
470
471template<class Tx, class Ty, class TType>
472friend inline bool fsl_vv_geq(const Tx&, const Ty&);
473
474template<class Tx, class Ty, class TType>
475friend inline bool slsl_vv_geq(const Tx&, const Ty&);
476
477template<class Tx, class Ts, class TType>
478friend inline Tx& sp_vs_assign(Tx&, const Ts&);
479
480template<class Tx, class Ts, class TType, class TIt>
481friend inline Tx& sl_vs_assign(Tx&, const Ts&);
482
483template<class Tx, class Ty, class TType>
484friend inline Tx& spf_vv_assign(Tx&, const Ty&);
485
486template<class Tx, class Ty, class TType>
487friend inline Tx& spsl_vv_assign(Tx&, const Ty&);
488
489template<class Tx, class Ty, class TType>
490friend inline Tx& fsp_vv_assign(Tx&, const Ty&);
491
492template<class Tx, class Ty, class TType>
493friend inline Tx& fsl_vv_assign(Tx&, const Ty&);
494
495#if(CXSC_INDEX_CHECK)
496template<class Tx, class Ty, class TType>
497friend inline Tx& fssp_vv_assign(Tx& v1, const Ty& v2);
498#else
499template<class Tx, class Ty, class TType>
500friend inline Tx& fssp_vv_assign(Tx& v1, const Ty& v2) noexcept;
501#endif
502
503#if(CXSC_INDEX_CHECK)
504template<class Tx, class Ty, class TType>
505friend inline Tx& fssl_vv_assign(Tx& v1, const Ty& v2);
506#else
507template<class Tx, class Ty, class TType>
508friend inline Tx& fssl_vv_assign(Tx& v1, const Ty& v2) noexcept;
509#endif
510
511#if(CXSC_INDEX_CHECK)
512template<class Tx, class Ty, class TType, class TIt>
513friend inline Tx& slsl_vv_assign(Tx&, const Ty&);
514#else
515template<class Tx, class Ty, class TType, class TIt>
516friend inline Tx& slsl_vv_assign(Tx&, const Ty&) noexcept;
517#endif
518
519#if(CXSC_INDEX_CHECK)
520template<class Tx, class Ty, class TType, class TIt>
521friend inline Tx& slsp_vv_assign(Tx&, const Ty&);
522#else
523template<class Tx, class Ty, class TType, class TIt>
524friend inline Tx& slsp_vv_assign(Tx&, const Ty&) noexcept;
525#endif
526
527#if(CXSC_INDEX_CHECK)
528template<class Tx, class Ty, class TType, class TIt>
529friend inline Tx& slf_vv_assign(Tx&, const Ty&);
530#else
531template<class Tx, class Ty, class TType, class TIt>
532friend inline Tx& slf_vv_assign(Tx&, const Ty&) noexcept;
533#endif
534
535template<class Tx, class TType>
536friend inline std::ostream& sp_v_output(std::ostream&, const Tx&);
537
538template<class Tx, class TType>
539friend inline std::ostream& sl_v_output(std::ostream&, const Tx&);
540
541template<class Tx, class TType>
542friend inline std::istream& sp_v_input(std::istream&, Tx&);
543
544template<class Tx, class TType>
545friend inline std::istream& sl_v_input(std::istream&, Tx&);
546
547template<class Tx>
548friend inline Tx sp_v_negative(const Tx&);
549
550template<class Tx, class Tres>
551friend inline Tres sl_v_negative(const Tx&);
552
553#if(CXSC_INDEX_CHECK)
554template<class Tx, class Ty>
555friend inline Tx& spf_vv_addassign(Tx&, const Ty&);
556#else
557template<class Tx, class Ty>
558friend inline Tx& spf_vv_addassign(Tx&, const Ty&) noexcept;
559#endif
560
561#if(CXSC_INDEX_CHECK)
562template<class Tx, class Ty>
563friend inline Tx& spsp_vv_addassign(Tx&, const Ty&);
564#else
565template<class Tx, class Ty>
566friend inline Tx& spsp_vv_addassign(Tx&, const Ty&) noexcept;
567#endif
568
569#if(CXSC_INDEX_CHECK)
570template<class Tx, class Ty>
571friend inline Tx& spsl_vv_addassign(Tx&, const Ty&);
572#else
573template<class Tx, class Ty>
574friend inline Tx& spsl_vv_addassign(Tx&, const Ty&) noexcept;
575#endif
576
577#if(CXSC_INDEX_CHECK)
578template<class Tx, class Ty>
579friend inline Tx& fsp_vv_addassign(Tx&, const Ty&);
580#else
581template<class Tx, class Ty>
582friend inline Tx& fsp_vv_addassign(Tx&, const Ty&) noexcept;
583#endif
584
585#if(CXSC_INDEX_CHECK)
586template<class Tx, class Ty>
587friend inline Tx& fsl_vv_addassign(Tx&, const Ty&);
588#else
589template<class Tx, class Ty>
590friend inline Tx& fsl_vv_addassign(Tx&, const Ty&) noexcept;
591#endif
592
593#if(CXSC_INDEX_CHECK)
594template<class Tx, class Ty>
595friend inline Tx& spf_vv_subassign(Tx&, const Ty&);
596#else
597template<class Tx, class Ty>
598friend inline Tx& spf_vv_subassign(Tx&, const Ty&) noexcept;
599#endif
600
601#if(CXSC_INDEX_CHECK)
602template<class Tx, class Ty>
603friend inline Tx& spsp_vv_subassign(Tx&, const Ty&);
604#else
605template<class Tx, class Ty>
606friend inline Tx& spsp_vv_subassign(Tx&, const Ty&) noexcept;
607#endif
608
609#if(CXSC_INDEX_CHECK)
610template<class Tx, class Ty>
611friend inline Tx& spsl_vv_subassign(Tx&, const Ty&);
612#else
613template<class Tx, class Ty>
614friend inline Tx& spsl_vv_subassign(Tx&, const Ty&) noexcept;
615#endif
616
617#if(CXSC_INDEX_CHECK)
618template<class Tx, class Ty>
619friend inline Tx& fsp_vv_subassign(Tx&, const Ty&);
620#else
621template<class Tx, class Ty>
622friend inline Tx& fsp_vv_subassign(Tx&, const Ty&) noexcept;
623#endif
624
625#if(CXSC_INDEX_CHECK)
626template<class Tx, class Ty>
627friend inline Tx& fsl_vv_subassign(Tx&, const Ty&);
628#else
629template<class Tx, class Ty>
630friend inline Tx& fsl_vv_subassign(Tx&, const Ty&) noexcept;
631#endif
632
633#if(CXSC_INDEX_CHECK)
634template<class Tx, class Ty>
635friend inline Tx& spf_vv_hullassign(Tx&, const Ty&);
636#else
637template<class Tx, class Ty>
638friend inline Tx& spf_vv_hullassign(Tx&, const Ty&) noexcept;
639#endif
640
641#if(CXSC_INDEX_CHECK)
642template<class Tx, class Ty>
643friend inline Tx& spsp_vv_hullassign(Tx&, const Ty&);
644#else
645template<class Tx, class Ty>
646friend inline Tx& spsp_vv_hullassign(Tx&, const Ty&) noexcept;
647#endif
648
649#if(CXSC_INDEX_CHECK)
650template<class Tx, class Ty>
651friend inline Tx& spsl_vv_hullassign(Tx&, const Ty&);
652#else
653template<class Tx, class Ty>
654friend inline Tx& spsl_vv_hullassign(Tx&, const Ty&) noexcept;
655#endif
656
657#if(CXSC_INDEX_CHECK)
658template<class Tx, class Ty>
659friend inline Tx& fsp_vv_hullassign(Tx&, const Ty&);
660#else
661template<class Tx, class Ty>
662friend inline Tx& fsp_vv_hullassign(Tx&, const Ty&) noexcept;
663#endif
664
665#if(CXSC_INDEX_CHECK)
666template<class Tx, class Ty>
667friend inline Tx& fsl_vv_hullassign(Tx&, const Ty&);
668#else
669template<class Tx, class Ty>
670friend inline Tx& fsl_vv_hullassign(Tx&, const Ty&) noexcept;
671#endif
672
673#if(CXSC_INDEX_CHECK)
674template<class Tx, class Ty>
675friend inline Tx& spf_vv_intersectassign(Tx&, const Ty&);
676#else
677template<class Tx, class Ty>
678friend inline Tx& spf_vv_intersectassign(Tx&, const Ty&) noexcept;
679#endif
680
681#if(CXSC_INDEX_CHECK)
682template<class Tx, class Ty>
683friend inline Tx& spsp_vv_intersectassign(Tx&, const Ty&);
684#else
685template<class Tx, class Ty>
686friend inline Tx& spsp_vv_intersectassign(Tx&, const Ty&) noexcept;
687#endif
688
689#if(CXSC_INDEX_CHECK)
690template<class Tx, class Ty>
691friend inline Tx& spsl_vv_intersectassign(Tx&, const Ty&);
692#else
693template<class Tx, class Ty>
694friend inline Tx& spsl_vv_intersectassign(Tx&, const Ty&) noexcept;
695#endif
696
697#if(CXSC_INDEX_CHECK)
698template<class Tx, class Ty>
699friend inline Tx& fsp_vv_intersectassign(Tx&, const Ty&);
700#else
701template<class Tx, class Ty>
702friend inline Tx& fsp_vv_intersectassign(Tx&, const Ty&) noexcept;
703#endif
704
705#if(CXSC_INDEX_CHECK)
706template<class Tx, class Ty>
707friend inline Tx& fsl_vv_intersectassign(Tx&, const Ty&);
708#else
709template<class Tx, class Ty>
710friend inline Tx& fsl_vv_intersectassign(Tx&, const Ty&) noexcept;
711#endif
712
713template<class Tx, class Ty>
714friend inline Tx& sp_vs_multassign(Tx& v, const Ty& s);
715
716template<class Tx, class Ty>
717friend inline Tx& sp_vs_divassign(Tx& v, const Ty& s);
718
719#if(CXSC_INDEX_CHECK)
720template<class Tx, class Ty, class TType>
721friend inline Tx& slf_vv_addassign(Tx&, const Ty&);
722#else
723template<class Tx, class Ty, class TType>
724friend inline Tx& slf_vv_addassign(Tx&, const Ty&) noexcept;
725#endif
726
727#if(CXSC_INDEX_CHECK)
728template<class Tx, class Ty>
729friend inline Tx& slsp_vv_addassign(Tx&, const Ty&);
730#else
731template<class Tx, class Ty>
732friend inline Tx& slsp_vv_addassign(Tx&, const Ty&) noexcept;
733#endif
734
735#if(CXSC_INDEX_CHECK)
736template<class Tx, class Ty>
737friend inline Tx& slsl_vv_addassign(Tx&, const Ty&);
738#else
739template<class Tx, class Ty>
740friend inline Tx& slsl_vv_addassign(Tx&, const Ty&) noexcept;
741#endif
742
743#if(CXSC_INDEX_CHECK)
744template<class Tx, class Ty, class TType>
745friend inline Tx& slf_vv_subassign(Tx&, const Ty&);
746#else
747template<class Tx, class Ty, class TType>
748friend inline Tx& slf_vv_subassign(Tx&, const Ty&) noexcept;
749#endif
750
751#if(CXSC_INDEX_CHECK)
752template<class Tx, class Ty>
753friend inline Tx& slsp_vv_subassign(Tx&, const Ty&);
754#else
755template<class Tx, class Ty>
756friend inline Tx& slsp_vv_subassign(Tx&, const Ty&) noexcept;
757#endif
758
759#if(CXSC_INDEX_CHECK)
760template<class Tx, class Ty>
761friend inline Tx& slsl_vv_subassign(Tx&, const Ty&);
762#else
763template<class Tx, class Ty>
764friend inline Tx& slsl_vv_subassign(Tx&, const Ty&) noexcept;
765#endif
766
767#if(CXSC_INDEX_CHECK)
768template<class Tx, class Ty, class TType>
769friend inline Tx& slf_vv_hullassign(Tx&, const Ty&);
770#else
771template<class Tx, class Ty, class TType>
772friend inline Tx& slf_vv_hullassign(Tx&, const Ty&) noexcept;
773#endif
774
775#if(CXSC_INDEX_CHECK)
776template<class Tx, class Ty>
777friend inline Tx& slsp_vv_hullassign(Tx&, const Ty&);
778#else
779template<class Tx, class Ty>
780friend inline Tx& slsp_vv_hullassign(Tx&, const Ty&) noexcept;
781#endif
782
783#if(CXSC_INDEX_CHECK)
784template<class Tx, class Ty>
785friend inline Tx& slsl_vv_hullassign(Tx&, const Ty&);
786#else
787template<class Tx, class Ty>
788friend inline Tx& slsl_vv_hullassign(Tx&, const Ty&) noexcept;
789#endif
790
791#if(CXSC_INDEX_CHECK)
792template<class Tx, class Ty, class TType>
793friend inline Tx& slf_vv_intersectassign(Tx&, const Ty&);
794#else
795template<class Tx, class Ty, class TType>
796friend inline Tx& slf_vv_intersectassign(Tx&, const Ty&) noexcept;
797#endif
798
799#if(CXSC_INDEX_CHECK)
800template<class Tx, class Ty>
801friend inline Tx& slsp_vv_intersectassign(Tx&, const Ty&);
802#else
803template<class Tx, class Ty>
804friend inline Tx& slsp_vv_intersectassign(Tx&, const Ty&) noexcept;
805#endif
806
807#if(CXSC_INDEX_CHECK)
808template<class Tx, class Ty>
809friend inline Tx& slsl_vv_intersectassign(Tx&, const Ty&);
810#else
811template<class Tx, class Ty>
812friend inline Tx& slsl_vv_intersectassign(Tx&, const Ty&) noexcept;
813#endif
814
815template<class Tx, class Ty>
816friend inline Tx& sl_vs_multassign(Tx&, const Ty&);
817
818template<class Tx, class Ty>
819friend inline Tx& sl_vs_divassign(Tx&, const Ty&);
820
821#if(CXSC_INDEX_CHECK)
822template<class TA, class Tx, class Tres, class TDot, class TElement>
823friend inline Tres spsl_mv_mult(const TA&, const Tx&);
824#else
825template<class TA, class Tx, class Tres, class TDot, class TElement>
826friend inline Tres spsl_mv_mult(const TA&, const Tx&) noexcept;
827#endif
828
829#if(CXSC_INDEX_CHECK)
830template<class TA, class Tx, class Tres, class TDot, class TElement>
831friend inline Tres spsp_mv_mult(const TA&, const Tx&);
832#else
833template<class TA, class Tx, class Tres, class TDot, class TElement>
834friend inline Tres spsp_mv_mult(const TA&, const Tx&) noexcept;
835#endif
836
837#if(CXSC_INDEX_CHECK)
838template<class TA, class Tx, class Tres, class TDot>
839friend inline Tres spf_mv_mult(const TA&, const Tx&);
840#else
841template<class TA, class Tx, class Tres, class TDot>
842friend inline Tres spf_mv_mult(const TA&, const Tx&) noexcept;
843#endif
844
845#if(CXSC_INDEX_CHECK)
846template<class TA, class Tx, class Tres, class TDot>
847friend inline Tres fsp_mv_mult(const TA&, const Tx&);
848#else
849template<class TA, class Tx, class Tres, class TDot>
850friend inline Tres fsp_mv_mult(const TA&, const Tx&) noexcept;
851#endif
852
853#if(CXSC_INDEX_CHECK)
854template<class TA, class Tx, class Tres, class TDot>
855friend inline Tres fsl_mv_mult(const TA&, const Tx&);
856#else
857template<class TA, class Tx, class Tres, class TDot>
858friend inline Tres fsl_mv_mult(const TA&, const Tx&) noexcept;
859#endif
860
861#if(CXSC_INDEX_CHECK)
862template<class Tx, class Ty>
863friend inline Tx& svsp_vv_assign(Tx&, const Ty&);
864#else
865template<class Tx, class Ty>
866friend inline Tx& svsp_vv_assign(Tx&, const Ty&) noexcept;
867#endif
868
869#if(CXSC_INDEX_CHECK)
870template<class Tx, class Ty>
871friend inline Tx& svsl_vv_assign(Tx&, const Ty&);
872#else
873template<class Tx, class Ty>
874friend inline Tx& svsl_vv_assign(Tx&, const Ty&) noexcept;
875#endif
876
877#if(CXSC_INDEX_CHECK)
878template<class Tx, class Ty>
879friend inline Tx& svf_vv_assign(Tx&, const Ty&);
880#else
881template<class Tx, class Ty>
882friend inline Tx& svf_vv_assign(Tx&, const Ty&) noexcept;
883#endif
884
885template<class Tx, class Ts>
886friend inline Tx& sv_vs_assign(Tx&, const Ts&);
887
888template<class Tx>
889friend inline bool sv_v_not(const Tx&);
890
891template<class Tx>
892friend inline bool sp_v_not(const Tx&);
893
894template<class Tx>
895friend inline bool sl_v_not(const Tx&);
896
897#if(CXSC_INDEX_CHECK)
898template<class TDot, class Tx, class Ty, class TSparseDot>
899friend inline void spsp_vv_accu(TDot&, const Tx&, const Ty&);
900#else
901template<class TDot, class Tx, class Ty, class TSparseDot>
902friend inline void spsp_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
903#endif
904
905#if(CXSC_INDEX_CHECK)
906template<class TDot, class Tx, class Ty, class TSparseDot>
907friend inline void spf_vv_accu(TDot&, const Tx&, const Ty&);
908#else
909template<class TDot, class Tx, class Ty, class TSparseDot>
910friend inline void spf_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
911#endif
912
913#if(CXSC_INDEX_CHECK)
914template<class TDot, class Tx, class Ty, class TSparseDot>
915friend inline void fsp_vv_accu(TDot&, const Tx&, const Ty&);
916#else
917template<class TDot, class Tx, class Ty, class TSparseDot>
918friend inline void fsp_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
919#endif
920
921#if(CXSC_INDEX_CHECK)
922template<class TDot, class Tx, class Ty, class TSparseDot>
923friend inline void slsl_vv_accu(TDot&, const Tx&, const Ty&);
924#else
925template<class TDot, class Tx, class Ty, class TSparseDot>
926friend inline void slsl_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
927#endif
928
929#if(CXSC_INDEX_CHECK)
930template<class TDot, class Tx, class Ty, class TSparseDot>
931friend inline void spsl_vv_accu(TDot&, const Tx&, const Ty&);
932#else
933template<class TDot, class Tx, class Ty, class TSparseDot>
934friend inline void spsl_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
935#endif
936
937#if(CXSC_INDEX_CHECK)
938template<class TDot, class Tx, class Ty, class TSparseDot>
939friend inline void slsp_vv_accu(TDot&, const Tx&, const Ty&);
940#else
941template<class TDot, class Tx, class Ty, class TSparseDot>
942friend inline void slsp_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
943#endif
944
945#if(CXSC_INDEX_CHECK)
946template<class TDot, class Tx, class Ty, class TSparseDot>
947friend inline void slf_vv_accu(TDot&, const Tx&, const Ty&);
948#else
949template<class TDot, class Tx, class Ty, class TSparseDot>
950friend inline void slf_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
951#endif
952
953#if(CXSC_INDEX_CHECK)
954template<class TDot, class Tx, class Ty, class TSparseDot>
955friend inline void fsl_vv_accu(TDot&, const Tx&, const Ty&);
956#else
957template<class TDot, class Tx, class Ty, class TSparseDot>
958friend inline void fsl_vv_accu(TDot&, const Tx&, const Ty&) noexcept;
959#endif
960
961#if(CXSC_INDEX_CHECK)
962template<class TDot, class Tx, class Ty, class TSparseDot>
963friend inline void spsp_vv_accuapprox(TDot&, const Tx&, const Ty&);
964#else
965template<class TDot, class Tx, class Ty, class TSparseDot>
966friend inline void spsp_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
967#endif
968
969#if(CXSC_INDEX_CHECK)
970template<class TDot, class Tx, class Ty, class TSparseDot>
971friend inline void spf_vv_accuapprox(TDot&, const Tx&, const Ty&);
972#else
973template<class TDot, class Tx, class Ty, class TSparseDot>
974friend inline void spf_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
975#endif
976
977#if(CXSC_INDEX_CHECK)
978template<class TDot, class Tx, class Ty, class TSparseDot>
979friend inline void fsp_vv_accuapprox(TDot&, const Tx&, const Ty&);
980#else
981template<class TDot, class Tx, class Ty, class TSparseDot>
982friend inline void fsp_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
983#endif
984
985#if(CXSC_INDEX_CHECK)
986template<class TDot, class Tx, class Ty, class TSparseDot>
987friend inline void slsl_vv_accuapprox(TDot&, const Tx&, const Ty&);
988#else
989template<class TDot, class Tx, class Ty, class TSparseDot>
990friend inline void slsl_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
991#endif
992
993#if(CXSC_INDEX_CHECK)
994template<class TDot, class Tx, class Ty, class TSparseDot>
995friend inline void spsl_vv_accuapprox(TDot&, const Tx&, const Ty&);
996#else
997template<class TDot, class Tx, class Ty, class TSparseDot>
998friend inline void spsl_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
999#endif
1000
1001#if(CXSC_INDEX_CHECK)
1002template<class TDot, class Tx, class Ty, class TSparseDot>
1003friend inline void slsp_vv_accuapprox(TDot&, const Tx&, const Ty&);
1004#else
1005template<class TDot, class Tx, class Ty, class TSparseDot>
1006friend inline void slsp_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
1007#endif
1008
1009#if(CXSC_INDEX_CHECK)
1010template<class TDot, class Tx, class Ty, class TSparseDot>
1011friend inline void slf_vv_accuapprox(TDot&, const Tx&, const Ty&);
1012#else
1013template<class TDot, class Tx, class Ty, class TSparseDot>
1014friend inline void slf_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
1015#endif
1016
1017#if(CXSC_INDEX_CHECK)
1018template<class TDot, class Tx, class Ty, class TSparseDot>
1019friend inline void fsl_vv_accuapprox(TDot&, const Tx&, const Ty&);
1020#else
1021template<class TDot, class Tx, class Ty, class TSparseDot>
1022friend inline void fsl_vv_accuapprox(TDot&, const Tx&, const Ty&) noexcept;
1023#endif
1024
1025template<class Tx>
1026friend inline void sp_v_resize(Tx &v) noexcept;
1027
1028#if(CXSC_INDEX_CHECK)
1029template <class Tx>
1030friend inline void sp_v_resize(Tx &v, const int &len);
1031#else
1032template <class Tx>
1033friend inline void sp_v_resize(Tx &v, const int &len) noexcept;
1034#endif
1035
1036#if(CXSC_INDEX_CHECK)
1037template<class Tx>
1038friend inline void sp_v_resize(Tx &v, const int &lb, const int &ub);
1039#else
1040template<class Tx>
1041friend inline void sp_v_resize(Tx &v, const int &lb, const int &ub) noexcept;
1042#endif