26 #ifndef _CXSC_LRVECTOR_HPP_INCLUDED
27 #define _CXSC_LRVECTOR_HPP_INCLUDED
29 #include "xscclass.hpp"
35 #include "rvector.hpp"
45 class l_rvector_slice;
67 template<
typename S,
typename T>
68 friend inline void addDot(
const S &x,
const T &y,
dotprecision &val);
71 #ifdef _CXSC_FRIEND_TPL
74 template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
80 template <
class V,
class M,
class S>
friend void _vmconstr(V &v,
const M &m)
86 template <
class V>
friend void _vresize(V &rv) noexcept;
87 template <
class V,
class S>
friend void _vresize(V &rv,
const int &len)
93 template <
class V,
class S>
friend void _vresize(V &rv,
const int &lb,
const int &ub)
99 template <
class V1,
class V2,
class S>
friend V1 &_vvassign(V1 &rv1,
const V2 &rv2) noexcept;
100 template <
class V,
class S>
friend V & _vsassign(V &rv,
const S &r) noexcept;
101 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl) noexcept;
102 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
103 #if(CXSC_INDEX_CHECK)
108 template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
109 #if(CXSC_INDEX_CHECK)
114 template <
class M,
class V,
class S>
friend M &_mvassign(M &m,
const V &v) noexcept;
115 template <
class V>
friend V _vconj(
const V &rv) noexcept;
116 template <
class VS,
class E>
friend E _vsconj(
const VS &sl) noexcept;
117 template <
class V,
class E>
friend E _vabs(
const V &rv) noexcept;
118 template <
class VS,
class E>
friend E _vsabs(
const VS &sl) noexcept;
119 template <
class MV,
class V>
friend V _mvabs(
const MV &mv) noexcept;
122 template <
class DP,
class V1,
class V2>
friend void _vvaccu(DP &dp,
const V1 & rv1,
const V2 &rv2)
123 #if(CXSC_INDEX_CHECK)
128 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
129 #if(CXSC_INDEX_CHECK)
134 template <
class V1,
class V2,
class E>
friend E _vvlmult(
const V1 & rv1,
const V2 &rv2)
135 #if(CXSC_INDEX_CHECK)
140 template <
class VS,
class V,
class E>
friend E _vsvlmult(
const VS & sl,
const V &rv)
141 #if(CXSC_INDEX_CHECK)
146 template <
class V,
class S>
friend V &_vsmultassign(V &rv,
const S &r) noexcept;
147 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
148 #if(CXSC_INDEX_CHECK)
153 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
154 #if(CXSC_INDEX_CHECK)
159 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
160 #if(CXSC_INDEX_CHECK)
165 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
166 #if(CXSC_INDEX_CHECK)
171 template <
class V1,
class V2>
friend V1 &_vvplusassign(V1 &rv1,
const V2 &rv2)
172 #if(CXSC_INDEX_CHECK)
177 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
178 #if(CXSC_INDEX_CHECK)
183 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
184 #if(CXSC_INDEX_CHECK)
189 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
190 #if(CXSC_INDEX_CHECK)
195 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
196 #if(CXSC_INDEX_CHECK)
201 template <
class V1,
class V2>
friend V1 &_vvminusassign(V1 &rv1,
const V2 &rv2)
202 #if(CXSC_INDEX_CHECK)
207 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
208 #if(CXSC_INDEX_CHECK)
213 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
214 #if(CXSC_INDEX_CHECK)
219 template <
class V>
friend V _vminus(
const V &rv) noexcept;
220 template <
class VS,
class V>
friend V _vsminus(
const VS &sl) noexcept;
221 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
222 #if(CXSC_INDEX_CHECK)
227 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
228 #if(CXSC_INDEX_CHECK)
233 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
234 #if(CXSC_INDEX_CHECK)
239 template <
class V,
class MV,
class S>
friend S _vmvlmult(
const V &rv1,
const MV &rv2)
240 #if(CXSC_INDEX_CHECK)
245 template <
class V1,
class V2,
class E>
friend E _vvconv(
const V1 &rv1,
const V2 &rv2)
246 #if(CXSC_INDEX_CHECK)
251 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
252 #if(CXSC_INDEX_CHECK)
257 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
258 #if(CXSC_INDEX_CHECK)
264 template <
class V,
class S,
class E>
friend E _vsdiv(
const V &rv,
const S &s) noexcept;
265 template <
class V,
class S>
friend V &_vsdivassign(V &rv,
const S &r) noexcept;
266 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s) noexcept;
267 template <
class V,
class S,
class E>
friend E _vsmult(
const V &rv,
const S &s) noexcept;
268 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s) noexcept;
269 template <
class MV,
class S,
class E>
friend E _mvsmult(
const MV &rv,
const S &s) noexcept;
270 template <
class MV1,
class MV2,
class E>
friend E _mvmvplus(
const MV1 &rv1,
const MV2 &rv2)
271 #if(CXSC_INDEX_CHECK)
276 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
277 #if(CXSC_INDEX_CHECK)
282 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
283 #if(CXSC_INDEX_CHECK)
288 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
289 #if(CXSC_INDEX_CHECK)
294 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
295 #if(CXSC_INDEX_CHECK)
300 template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
301 #if(CXSC_INDEX_CHECK)
306 template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
307 #if(CXSC_INDEX_CHECK)
312 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s) noexcept;
313 template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
314 #if(CXSC_INDEX_CHECK)
319 template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
320 #if(CXSC_INDEX_CHECK)
326 template <
class V1,
class V2>
friend bool _vveq(
const V1 &rv1,
const V2 &rv2) noexcept;
327 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv) noexcept;
328 template <
class V1,
class V2>
friend bool _vvneq(
const V1 &rv1,
const V2 &rv2) noexcept;
329 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv) noexcept;
330 template <
class V1,
class V2>
friend bool _vvless(
const V1 &rv1,
const V2 &rv2) noexcept;
331 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv) noexcept;
332 template <
class V1,
class V2>
friend bool _vvleq(
const V1 &rv1,
const V2 &rv2) noexcept;
333 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv) noexcept;
334 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl) noexcept;
335 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl) noexcept;
336 template <
class V>
friend bool _vnot(
const V &rv) noexcept;
337 template <
class V>
friend void *_vvoid(
const V &rv) noexcept;
338 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2) noexcept;
339 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2) noexcept;
340 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2) noexcept;
341 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2) noexcept;
342 template <
class VS>
friend bool _vsnot(
const VS &sl) noexcept;
343 template <
class VS>
friend void *_vsvoid(
const VS &sl) noexcept;
344 template <
class V>
friend std::ostream &_vout(std::ostream &s,
const V &rv) noexcept;
345 template <
class V>
friend std::istream &_vin(std::istream &s, V &rv) noexcept;
348 template <
class V,
class MV2,
class S>
friend V &_vmvassign(V &v,
const MV2 &rv) noexcept;
349 template <
class M,
class V,
class E>
friend E _mvlmult(
const M &m,
const V &v)
350 #if(CXSC_INDEX_CHECK)
355 template <
class V,
class M,
class E>
friend E _vmlmult(
const V &v,
const M &m)
356 #if(CXSC_INDEX_CHECK)
361 template <
class V,
class M,
class S>
friend V &_vmlmultassign(V &v,
const M &m)
362 #if(CXSC_INDEX_CHECK)
367 template <
class MS,
class V,
class E>
friend E _msvlmult(
const MS &ms,
const V &v)
368 #if(CXSC_INDEX_CHECK)
373 template <
class V,
class MS,
class E>
friend E _vmslmult(
const V &v,
const MS &ms)
374 #if(CXSC_INDEX_CHECK)
379 template <
class V,
class MS,
class S>
friend V &_vmslmultassign(V &v,
const MS &ms)
380 #if(CXSC_INDEX_CHECK)
388 template <
class V1,
class V2,
class E>
friend E _vvlimult(
const V1 & rv1,
const V2 &rv2)
389 #if(CXSC_INDEX_CHECK)
394 template <
class VS,
class V,
class E>
friend E _vsvlimult(
const VS & sl,
const V &rv)
395 #if(CXSC_INDEX_CHECK)
400 template <
class VS1,
class VS2,
class E>
friend E _vsvslimult(
const VS1 & sl1,
const VS2 &sl2)
401 #if(CXSC_INDEX_CHECK)
406 template <
class V1,
class V2,
class E>
friend E _vvsect(
const V1 &rv1,
const V2 &rv2)
407 #if(CXSC_INDEX_CHECK)
412 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
413 #if(CXSC_INDEX_CHECK)
418 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
419 #if(CXSC_INDEX_CHECK)
426 template <
class M,
class V,
class E>
friend E _mvlimult(
const M &m,
const V &v)
427 #if(CXSC_INDEX_CHECK)
432 template <
class V,
class M,
class E>
friend E _vmlimult(
const V &v,
const M &m)
433 #if(CXSC_INDEX_CHECK)
438 template <
class MS,
class V,
class E>
friend E _msvlimult(
const MS &ms,
const V &v)
439 #if(CXSC_INDEX_CHECK)
444 template <
class V,
class MS,
class E>
friend E _vmslimult(
const V &v,
const MS &ms)
445 #if(CXSC_INDEX_CHECK)
452 template <
class V1,
class V2>
friend V1 &_vvsetinf(V1 &rv1,
const V2 &rv2)
453 #if(CXSC_INDEX_CHECK)
458 template <
class V1,
class V2>
friend V1 &_vvsetsup(V1 &rv1,
const V2 &rv2)
459 #if(CXSC_INDEX_CHECK)
464 template <
class V1,
class V2>
friend V1 &_vvusetinf(V1 &rv1,
const V2 &rv2)
465 #if(CXSC_INDEX_CHECK)
470 template <
class V1,
class V2>
friend V1 &_vvusetsup(V1 &rv1,
const V2 &rv2)
471 #if(CXSC_INDEX_CHECK)
476 template <
class VS,
class V>
friend VS &_vsvsetinf(VS &sl,
const V &rv)
477 #if(CXSC_INDEX_CHECK)
482 template <
class VS,
class V>
friend VS &_vsvsetsup(VS &sl,
const V &rv)
483 #if(CXSC_INDEX_CHECK)
488 template <
class VS,
class V>
friend VS &_vsvusetinf(VS &sl,
const V &rv)
489 #if(CXSC_INDEX_CHECK)
494 template <
class VS,
class V>
friend VS &_vsvusetsup(VS &sl,
const V &rv)
495 #if(CXSC_INDEX_CHECK)
500 template <
class MV,
class V>
friend MV &_mvvsetinf(MV &v,
const V &rv)
501 #if(CXSC_INDEX_CHECK)
506 template <
class MV,
class V>
friend MV &_mvvsetsup(MV &v,
const V &rv)
507 #if(CXSC_INDEX_CHECK)
512 template <
class MV,
class V>
friend MV &_mvvusetinf(MV &v,
const V &rv)
513 #if(CXSC_INDEX_CHECK)
518 template <
class MV,
class V>
friend MV &_mvvusetsup(MV &v,
const V &rv)
519 #if(CXSC_INDEX_CHECK)
524 template <
class V,
class E>
friend E _vmid(
const V &rv) noexcept;
525 template <
class V,
class E>
friend E _vinf(
const V &rv) noexcept;
526 template <
class V,
class E>
friend E _vsup(
const V &rv) noexcept;
527 template <
class V,
class E>
friend E _vdiam(
const V &rv) noexcept;
528 template <
class VS,
class E>
friend E _vsmid(
const VS &sl) noexcept;
529 template <
class VS,
class E>
friend E _vsinf(
const VS &sl) noexcept;
530 template <
class VS,
class E>
friend E _vssup(
const VS &sl) noexcept;
531 template <
class VS,
class E>
friend E _vsdiam(
const VS &sl) noexcept;
532 template <
class MV,
class V>
friend V _mvdiam(
const MV &mv) noexcept;
533 template <
class MV,
class V>
friend V _mvmid(
const MV &mv) noexcept;
534 template <
class MV,
class V>
friend V _mvinf(
const MV &mv) noexcept;
535 template <
class MV,
class V>
friend V _mvsup(
const MV &mv) noexcept;
538 template <
class V1,
class V2>
friend V1 &_vvconvassign(V1 &rv1,
const V2 &rv2)
539 #if(CXSC_INDEX_CHECK)
544 template <
class V1,
class V2>
friend V1 &_vvsectassign(V1 &rv1,
const V2 &rv2)
545 #if(CXSC_INDEX_CHECK)
550 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
551 #if(CXSC_INDEX_CHECK)
556 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
557 #if(CXSC_INDEX_CHECK)
563 template <
class MV,
class V>
friend MV &_mvvconvassign(MV &v,
const V &rv)
564 #if(CXSC_INDEX_CHECK)
569 template <
class MV,
class V>
friend MV &_mvvsectassign(MV &v,
const V &rv)
570 #if(CXSC_INDEX_CHECK)
583 explicit INLINE
l_rvector(
const int &i) noexcept;
585 explicit INLINE
l_rvector(
const class index &i) noexcept;
588 explicit INLINE
l_rvector(
const int &i1,
const int &i2)
590 #if(CXSC_INDEX_CHECK)
601 #if(CXSC_INDEX_CHECK)
608 #if(CXSC_INDEX_CHECK)
626 #if(CXSC_INDEX_CHECK)
633 #if(CXSC_INDEX_CHECK)
650 #if(CXSC_INDEX_CHECK)
657 #if(CXSC_INDEX_CHECK)
673 #if(CXSC_INDEX_CHECK)
680 #if(CXSC_INDEX_CHECK)
694 #if(CXSC_INDEX_CHECK)
699 friend INLINE
int Lb(
const l_rvector &rv) noexcept {
return rv.l; }
702 friend INLINE
int Ub(
const l_rvector &rv) noexcept {
return rv.u; }
711 #if(CXSC_INDEX_CHECK)
720 #if(CXSC_INDEX_CHECK)
725 INLINE l_rvector_slice
operator ()(
const int &i1,
const int &i2)
727 #if(CXSC_INDEX_CHECK)
732 INLINE
operator void*() noexcept;
758 template<
typename S,
typename T>
759 friend inline void addDot(
const S &x,
const T &y,
dotprecision &val);
762 #ifdef _CXSC_FRIEND_TPL
766 template <
class VS1,
class VS2>
friend VS1 & _vsvsassign(VS1 &sl1,
const VS2 &sl2)
767 #if(CXSC_INDEX_CHECK)
772 template <
class V,
class VS,
class S>
friend V & _vvsassign(V &rv,
const VS &sl) noexcept;
773 template <
class VS,
class V>
friend VS & _vsvassign(VS &sl,
const V &rv)
774 #if(CXSC_INDEX_CHECK)
779 template <
class VS,
class S>
friend VS & _vssassign(VS &sl,
const S &r) noexcept;
781 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
782 #if(CXSC_INDEX_CHECK)
787 template <
class DP,
class VS1,
class VS2>
friend void _vsvsaccu(DP &dp,
const VS1 & sl1,
const VS2 &sl2)
788 #if(CXSC_INDEX_CHECK)
794 template <
class VS,
class S,
class E>
friend E _vssdiv(
const VS &sl,
const S &s) noexcept;
795 template <
class VS,
class S,
class E>
friend E _vssmult(
const VS &sl,
const S &s) noexcept;
797 template <
class VS,
class V,
class E>
friend E _vsvlmult(
const VS & sl,
const V &rv)
798 #if(CXSC_INDEX_CHECK)
803 template <
class VS,
class S>
friend VS &_vssmultassign(VS &rv,
const S &r) noexcept;
804 template <
class VS,
class S>
friend VS &_vssdivassign(VS &rv,
const S &r) noexcept;
805 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
806 #if(CXSC_INDEX_CHECK)
811 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
812 #if(CXSC_INDEX_CHECK)
817 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
818 #if(CXSC_INDEX_CHECK)
823 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
824 #if(CXSC_INDEX_CHECK)
829 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
830 #if(CXSC_INDEX_CHECK)
835 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
836 #if(CXSC_INDEX_CHECK)
841 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
842 #if(CXSC_INDEX_CHECK)
847 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
848 #if(CXSC_INDEX_CHECK)
853 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
854 #if(CXSC_INDEX_CHECK)
859 template <
class VS,
class V>
friend V _vsminus(
const VS &sl) noexcept;
860 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
861 #if(CXSC_INDEX_CHECK)
866 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
867 #if(CXSC_INDEX_CHECK)
872 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
873 #if(CXSC_INDEX_CHECK)
878 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
879 #if(CXSC_INDEX_CHECK)
884 template <
class VS,
class V>
friend bool _vsveq(
const VS &sl,
const V &rv) noexcept;
885 template <
class VS,
class V>
friend bool _vsvneq(
const VS &sl,
const V &rv) noexcept;
886 template <
class VS,
class V>
friend bool _vsvless(
const VS &sl,
const V &rv) noexcept;
887 template <
class VS,
class V>
friend bool _vsvleq(
const VS &sl,
const V &rv) noexcept;
888 template <
class V,
class VS>
friend bool _vvsless(
const V &rv,
const VS &sl) noexcept;
889 template <
class V,
class VS>
friend bool _vvsleq(
const V &rv,
const VS &sl) noexcept;
890 template <
class VS,
class E>
friend E _vsabs(
const VS &sl) noexcept;
891 template <
class VS1,
class VS2,
class E>
friend E _vsvslmult(
const VS1 & sl1,
const VS2 &sl2)
892 #if(CXSC_INDEX_CHECK)
897 template <
class VS1,
class VS2>
friend bool _vsvseq(
const VS1 &sl1,
const VS2 &sl2) noexcept;
898 template <
class VS1,
class VS2>
friend bool _vsvsneq(
const VS1 &sl1,
const VS2 &sl2) noexcept;
899 template <
class VS1,
class VS2>
friend bool _vsvsless(
const VS1 &sl1,
const VS2 &sl2) noexcept;
900 template <
class VS1,
class VS2>
friend bool _vsvsleq(
const VS1 &sl1,
const VS2 &sl2) noexcept;
901 template <
class VS>
friend bool _vsnot(
const VS &sl) noexcept;
902 template <
class VS>
friend void *_vsvoid(
const VS &sl) noexcept;
903 template <
class V>
friend std::ostream &_vsout(std::ostream &s,
const V &rv) noexcept;
904 template <
class V>
friend std::istream &_vsin(std::istream &s, V &rv) noexcept;
906 template <
class VS,
class M,
class S>
friend VS &_vsmlmultassign(VS &v,
const M &m)
907 #if(CXSC_INDEX_CHECK)
914 template <
class V,
class MS,
class E>
friend E _vmslmult(
const V &v,
const MS &ms)
915 #if(CXSC_INDEX_CHECK)
921 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
922 #if(CXSC_INDEX_CHECK)
927 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
928 #if(CXSC_INDEX_CHECK)
936 template <
class V1,
class V2,
class E>
friend E _vvlimult(
const V1 & rv1,
const V2 &rv2)
937 #if(CXSC_INDEX_CHECK)
942 template <
class VS,
class V,
class E>
friend E _vsvlimult(
const VS & sl,
const V &rv)
943 #if(CXSC_INDEX_CHECK)
948 template <
class VS1,
class VS2,
class E>
friend E _vsvslimult(
const VS1 & sl1,
const VS2 &sl2)
949 #if(CXSC_INDEX_CHECK)
954 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
955 #if(CXSC_INDEX_CHECK)
960 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
961 #if(CXSC_INDEX_CHECK)
982 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
983 #if(CXSC_INDEX_CHECK)
988 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
989 #if(CXSC_INDEX_CHECK)
994 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
995 #if(CXSC_INDEX_CHECK)
1000 template <
class VS1,
class VS2>
friend VS1 &_vsvssectassign(VS1 &sl1,
const VS2 &sl2)
1001 #if(CXSC_INDEX_CHECK)
1010 explicit INLINE
l_rvector_slice(
l_rvector &a,
const int &lb,
const int &ub) noexcept:dat(a.dat),l(a.l),u(a.u),size(ub-lb+1),start(lb),end(ub) { }
1020 #if(CXSC_INDEX_CHECK)
1027 #if(CXSC_INDEX_CHECK)
1036 #if(CXSC_INDEX_CHECK)
1043 #if(CXSC_INDEX_CHECK)
1053 #if(CXSC_INDEX_CHECK)
1060 #if(CXSC_INDEX_CHECK)
1069 #if(CXSC_INDEX_CHECK)
1076 #if(CXSC_INDEX_CHECK)
1085 template <
class V,
class VS>
friend V &_vvssetinf(V &rv,
const VS &sl)
1086 #if(CXSC_INDEX_CHECK)
1091 template <
class V,
class VS>
friend V &_vvssetsup(V &rv,
const VS &sl)
1092 #if(CXSC_INDEX_CHECK)
1097 template <
class V,
class VS>
friend V &_vvsusetinf(V &rv,
const VS &sl)
1098 #if(CXSC_INDEX_CHECK)
1103 template <
class V,
class VS>
friend V &_vvsusetsup(V &rv,
const VS &sl)
1104 #if(CXSC_INDEX_CHECK)
1109 template <
class VS1,
class VS2>
friend VS1 &_vsvssetinf(VS1 &sl1,
const VS2 &sl2)
1110 #if(CXSC_INDEX_CHECK)
1115 template <
class VS1,
class VS2>
friend VS1 &_vsvssetsup(VS1 &sl1,
const VS2 &sl2)
1116 #if(CXSC_INDEX_CHECK)
1121 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetinf(VS1 &sl1,
const VS2 &sl2)
1122 #if(CXSC_INDEX_CHECK)
1127 template <
class VS1,
class VS2>
friend VS1 &_vsvsusetsup(VS1 &sl1,
const VS2 &sl2)
1128 #if(CXSC_INDEX_CHECK)
1135 template <
class V,
class MS,
class E>
friend E _vmslimult(
const V &v,
const MS &ms)
1136 #if(CXSC_INDEX_CHECK)
1147 #if(CXSC_INDEX_CHECK)
1160 #if(CXSC_INDEX_CHECK)
1169 #if(CXSC_INDEX_CHECK)
1176 #if(CXSC_INDEX_CHECK)
1190 #if(CXSC_INDEX_CHECK)
1197 #if(CXSC_INDEX_CHECK)
1206 #if(CXSC_INDEX_CHECK)
1213 #if(CXSC_INDEX_CHECK)
1220 #if(CXSC_INDEX_CHECK)
1227 #if(CXSC_INDEX_CHECK)
1234 #if(CXSC_INDEX_CHECK)
1241 #if(CXSC_INDEX_CHECK)
1248 #if(CXSC_INDEX_CHECK)
1255 #if(CXSC_INDEX_CHECK)
1263 #if(CXSC_INDEX_CHECK)
1270 #if(CXSC_INDEX_CHECK)
1277 #if(CXSC_INDEX_CHECK)
1284 #if(CXSC_INDEX_CHECK)
1291 #if(CXSC_INDEX_CHECK)
1298 #if(CXSC_INDEX_CHECK)
1305 #if(CXSC_INDEX_CHECK)
1312 #if(CXSC_INDEX_CHECK)
1317 INLINE
operator void*() noexcept;
1326 INLINE l_rvector
_l_rvector(
const l_real &r) noexcept;
1330 INLINE l_rvector
_l_rvector(
const real &r) noexcept;
1332 INLINE l_rvector
_l_rvector(
const rvector_slice &rs) noexcept;
1334 INLINE l_rvector
_l_rvector(
const rvector &rs) noexcept;
1338 INLINE l_rvector
_l_rvector(
const rmatrix_subv &rs) noexcept;
1341 INLINE
void Resize(l_rvector &rv) noexcept;
1343 INLINE
void Resize(l_rvector &rv,
const int &len)
1344 #if(CXSC_INDEX_CHECK)
1349 INLINE
void Resize(l_rvector &rv,
const int &lb,
const int &ub)
1351 #if(CXSC_INDEX_CHECK)
1358 INLINE l_rvector
abs(
const l_rvector &rv) noexcept;
1360 INLINE l_rvector
abs(
const l_rvector_slice &sl) noexcept;
1362 INLINE
bool operator !(
const l_rvector &rv) noexcept;
1364 INLINE
bool operator !(
const l_rvector_slice &sl) noexcept;
1371 INLINE l_rvector
operator *(
const l_rvector &rv,
const l_real &s) noexcept;
1373 INLINE l_rvector
operator *(
const l_rvector_slice &sl,
const l_real &s) noexcept;
1375 INLINE l_rvector
operator *(
const l_real &s,
const l_rvector &rv) noexcept;
1377 INLINE l_rvector
operator *(
const l_real &s,
const l_rvector_slice &sl) noexcept;
1379 INLINE l_rvector &
operator *=(l_rvector &rv,
const l_real &r) noexcept;
1382 INLINE l_rvector
operator /(
const l_rvector &rv,
const l_real &s) noexcept;
1384 INLINE l_rvector
operator /(
const l_rvector_slice &sl,
const l_real &s) noexcept;
1386 INLINE l_rvector &
operator /=(l_rvector &rv,
const l_real &r) noexcept;
1391 INLINE l_rvector
operator *(
const l_rvector &rv,
const real &s) noexcept;
1393 INLINE l_rvector
operator *(
const l_rvector_slice &sl,
const real &s) noexcept;
1395 INLINE l_rvector
operator *(
const real &s,
const l_rvector &rv) noexcept;
1397 INLINE l_rvector
operator *(
const real &s,
const l_rvector_slice &sl) noexcept;
1399 INLINE l_rvector &
operator *=(l_rvector &rv,
const real &r) noexcept;
1402 INLINE l_rvector
operator /(
const l_rvector &rv,
const real &s) noexcept;
1404 INLINE l_rvector
operator /(
const l_rvector_slice &sl,
const real &s) noexcept;
1406 INLINE l_rvector &
operator /=(l_rvector &rv,
const real &r) noexcept;
1409 INLINE l_rvector
operator *(
const rvector &rv,
const l_real &s) noexcept;
1411 INLINE l_rvector
operator *(
const rvector_slice &sl,
const l_real &s) noexcept;
1413 INLINE l_rvector
operator *(
const l_real &s,
const rvector &rv) noexcept;
1415 INLINE l_rvector
operator *(
const l_real &s,
const rvector_slice &sl) noexcept;
1418 INLINE l_rvector
operator /(
const rvector &rv,
const l_real &s) noexcept;
1420 INLINE l_rvector
operator /(
const rvector_slice &sl,
const l_real &s) noexcept;
1426 INLINE std::ostream &operator <<(std::ostream &s,
const l_rvector &rv) noexcept;
1428 INLINE std::ostream &operator <<(std::ostream &o,
const l_rvector_slice &sl) noexcept;
1430 INLINE std::istream &operator >>(std::istream &s, l_rvector &rv) noexcept;
1432 INLINE std::istream &operator >>(std::istream &s, l_rvector_slice &rv) noexcept;
1437 INLINE
void accumulate(dotprecision &dp,
const l_rvector & rv1,
const l_rvector &rv2)
1438 #if(CXSC_INDEX_CHECK)
1443 INLINE
void accumulate(dotprecision &dp,
const l_rvector_slice & sl,
const l_rvector &rv)
1445 #if(CXSC_INDEX_CHECK)
1450 INLINE
void accumulate(dotprecision &dp,
const l_rvector &rv,
const l_rvector_slice &sl)
1452 #if(CXSC_INDEX_CHECK)
1457 INLINE
void accumulate(dotprecision &dp,
const l_rvector & rv1,
const l_rmatrix_subv &rv2)
1459 #if(CXSC_INDEX_CHECK)
1464 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rvector &rv2)
1466 #if(CXSC_INDEX_CHECK)
1471 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1473 #if(CXSC_INDEX_CHECK)
1478 INLINE
void accumulate(dotprecision &dp,
const l_rvector_slice & sl1,
const l_rvector_slice &sl2)
1480 #if(CXSC_INDEX_CHECK)
1485 INLINE
void accumulate(idotprecision &dp,
const l_rvector & rv1,
const l_rvector &rv2)
1487 #if(CXSC_INDEX_CHECK)
1492 INLINE
void accumulate(idotprecision &dp,
const l_rvector_slice & sl,
const l_rvector &rv)
1494 #if(CXSC_INDEX_CHECK)
1499 INLINE
void accumulate(idotprecision &dp,
const l_rvector &rv,
const l_rvector_slice &sl)
1501 #if(CXSC_INDEX_CHECK)
1506 INLINE
void accumulate(idotprecision &dp,
const l_rvector & rv1,
const l_rmatrix_subv &rv2)
1508 #if(CXSC_INDEX_CHECK)
1513 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rvector &rv2)
1515 #if(CXSC_INDEX_CHECK)
1520 INLINE
void accumulate(idotprecision &dp,
const l_rvector_slice & sl1,
const l_rvector_slice &sl2)
1522 #if(CXSC_INDEX_CHECK)
1527 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1529 #if(CXSC_INDEX_CHECK)
1537 INLINE l_real
operator *(
const l_rvector & rv1,
const l_rvector &rv2)
1538 #if(CXSC_INDEX_CHECK)
1543 INLINE l_real
operator *(
const l_rvector_slice &sl,
const l_rvector &rv)
1545 #if(CXSC_INDEX_CHECK)
1550 INLINE l_real
operator *(
const l_rvector &rv,
const l_rvector_slice &sl)
1552 #if(CXSC_INDEX_CHECK)
1557 INLINE l_real
operator *(
const l_rvector_slice & sl1,
const l_rvector_slice &sl2)
1559 #if(CXSC_INDEX_CHECK)
1566 INLINE
const l_rvector &operator +(
const l_rvector &rv) noexcept;
1568 INLINE l_rvector operator +(
const l_rvector_slice &sl) noexcept;
1571 INLINE l_rvector operator +(
const l_rvector &rv1,
const l_rvector &rv2)
1572 #if(CXSC_INDEX_CHECK)
1577 INLINE l_rvector operator +(
const l_rvector &rv,
const l_rvector_slice &sl)
1579 #if(CXSC_INDEX_CHECK)
1584 INLINE l_rvector operator +(
const l_rvector_slice &sl,
const l_rvector &rv)
1586 #if(CXSC_INDEX_CHECK)
1591 INLINE l_rvector operator +(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2)
1593 #if(CXSC_INDEX_CHECK)
1598 INLINE l_rvector &
operator +=(l_rvector &rv1,
const l_rvector &rv2)
1600 #if(CXSC_INDEX_CHECK)
1605 INLINE l_rvector &
operator +=(l_rvector &rv,
const l_rvector_slice &sl)
1607 #if(CXSC_INDEX_CHECK)
1614 INLINE l_rvector operator -(
const l_rvector &rv) noexcept;
1616 INLINE l_rvector operator -(
const l_rvector_slice &sl) noexcept;
1618 INLINE l_rvector operator -(
const l_rvector &rv1,
const l_rvector &rv2)
1619 #if(CXSC_INDEX_CHECK)
1624 INLINE l_rvector operator -(
const l_rvector &rv,
const l_rvector_slice &sl)
1626 #if(CXSC_INDEX_CHECK)
1631 INLINE l_rvector operator -(
const l_rvector_slice &sl,
const l_rvector &rv)
1633 #if(CXSC_INDEX_CHECK)
1638 INLINE l_rvector operator -(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2)
1640 #if(CXSC_INDEX_CHECK)
1645 INLINE l_rvector & operator -=(l_rvector &rv1,
const l_rvector &rv2)
1647 #if(CXSC_INDEX_CHECK)
1652 INLINE l_rvector &operator -=(l_rvector &rv,
const l_rvector_slice &sl)
1654 #if(CXSC_INDEX_CHECK)
1661 INLINE
bool operator ==(
const l_rvector &rv1,
const l_rvector &rv2) noexcept;
1663 INLINE
bool operator ==(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2) noexcept;
1665 INLINE
bool operator ==(
const l_rvector_slice &sl,
const l_rvector &rv) noexcept;
1667 INLINE
bool operator ==(
const l_rvector &rv,
const l_rvector_slice &sl) noexcept;
1669 INLINE
bool operator !=(
const l_rvector &rv1,
const l_rvector &rv2) noexcept;
1671 INLINE
bool operator !=(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2) noexcept;
1673 INLINE
bool operator !=(
const l_rvector_slice &sl,
const l_rvector &rv) noexcept;
1675 INLINE
bool operator !=(
const l_rvector &rv,
const l_rvector_slice &sl) noexcept;
1677 INLINE
bool operator <(
const l_rvector &rv1,
const l_rvector &rv2) noexcept;
1679 INLINE
bool operator <(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2) noexcept;
1681 INLINE
bool operator < (
const l_rvector_slice &sl,
const l_rvector &rv) noexcept;
1683 INLINE
bool operator < (
const l_rvector &rv,
const l_rvector_slice &sl) noexcept;
1685 INLINE
bool operator <=(
const l_rvector &rv1,
const l_rvector &rv2) noexcept;
1687 INLINE
bool operator <=(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2) noexcept;
1689 INLINE
bool operator <=(
const l_rvector_slice &sl,
const l_rvector &rv) noexcept;
1691 INLINE
bool operator <=(
const l_rvector &rv,
const l_rvector_slice &sl) noexcept;
1693 INLINE
bool operator >(
const l_rvector &rv1,
const l_rvector &rv2) noexcept;
1695 INLINE
bool operator >(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2) noexcept;
1697 INLINE
bool operator >(
const l_rvector_slice &sl,
const l_rvector &rv) noexcept;
1699 INLINE
bool operator >(
const l_rvector &rv,
const l_rvector_slice &sl) noexcept;
1701 INLINE
bool operator >=(
const l_rvector &rv1,
const l_rvector &rv2) noexcept;
1703 INLINE
bool operator >=(
const l_rvector_slice &sl1,
const l_rvector_slice &sl2) noexcept;
1705 INLINE
bool operator >=(
const l_rvector_slice &sl,
const l_rvector &rv) noexcept;
1707 INLINE
bool operator >=(
const l_rvector &rv,
const l_rvector_slice &sl) noexcept;
1713 INLINE
void accumulate(dotprecision &dp,
const l_rvector & rv1,
const rvector &rv2)
1714 #if(CXSC_INDEX_CHECK)
1719 INLINE
void accumulate(dotprecision &dp,
const rvector & rv1,
const l_rvector &rv2)
1721 #if(CXSC_INDEX_CHECK)
1726 INLINE
void accumulate(dotprecision &dp,
const rvector_slice & sl,
const l_rvector &rv)
1728 #if(CXSC_INDEX_CHECK)
1733 INLINE
void accumulate(dotprecision &dp,
const l_rvector_slice &sl,
const rvector &rv)
1735 #if(CXSC_INDEX_CHECK)
1740 INLINE
void accumulate(dotprecision &dp,
const rvector &rv,
const l_rvector_slice &sl)
1742 #if(CXSC_INDEX_CHECK)
1747 INLINE
void accumulate(dotprecision &dp,
const rvector & rv1,
const l_rmatrix_subv &rv2)
1749 #if(CXSC_INDEX_CHECK)
1754 INLINE
void accumulate(dotprecision &dp,
const l_rvector & rv1,
const rmatrix_subv &rv2)
1756 #if(CXSC_INDEX_CHECK)
1761 INLINE
void accumulate(dotprecision &dp,
const rvector_slice & rv1,
const l_rmatrix_subv &rv2)
1763 #if(CXSC_INDEX_CHECK)
1768 INLINE
void accumulate(dotprecision &dp,
const l_rvector_slice & rv1,
const rmatrix_subv &rv2)
1770 #if(CXSC_INDEX_CHECK)
1775 INLINE
void accumulate(dotprecision &dp,
const l_rvector &rv,
const rvector_slice &sl)
1777 #if(CXSC_INDEX_CHECK)
1782 INLINE
void accumulate(dotprecision &dp,
const rmatrix_subv & rv1,
const l_rvector &rv2)
1784 #if(CXSC_INDEX_CHECK)
1789 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const rvector &rv2)
1791 #if(CXSC_INDEX_CHECK)
1796 INLINE
void accumulate(dotprecision &dp,
const rmatrix_subv & rv1,
const l_rvector_slice &rv2)
1798 #if(CXSC_INDEX_CHECK)
1803 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const rvector_slice &rv2)
1805 #if(CXSC_INDEX_CHECK)
1810 INLINE
void accumulate(dotprecision &dp,
const l_rvector_slice & sl1,
const rvector_slice &sl2)
1812 #if(CXSC_INDEX_CHECK)
1817 INLINE
void accumulate(dotprecision &dp,
const rvector_slice & sl1,
const l_rvector_slice &sl2)
1819 #if(CXSC_INDEX_CHECK)
1824 INLINE
void accumulate(dotprecision &dp,
const rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1826 #if(CXSC_INDEX_CHECK)
1831 INLINE
void accumulate(dotprecision &dp,
const l_rmatrix_subv & rv1,
const rmatrix_subv &rv2)
1833 #if(CXSC_INDEX_CHECK)
1840 INLINE
void accumulate(idotprecision &dp,
const l_rvector & rv1,
const rvector &rv2)
1841 #if(CXSC_INDEX_CHECK)
1846 INLINE
void accumulate(idotprecision &dp,
const rvector & rv1,
const l_rvector &rv2)
1848 #if(CXSC_INDEX_CHECK)
1853 INLINE
void accumulate(idotprecision &dp,
const rvector_slice & sl,
const l_rvector &rv)
1855 #if(CXSC_INDEX_CHECK)
1860 INLINE
void accumulate(idotprecision &dp,
const l_rvector_slice &sl,
const rvector &rv)
1862 #if(CXSC_INDEX_CHECK)
1867 INLINE
void accumulate(idotprecision &dp,
const rvector &rv,
const l_rvector_slice &sl)
1869 #if(CXSC_INDEX_CHECK)
1874 INLINE
void accumulate(idotprecision &dp,
const rvector & rv1,
const l_rmatrix_subv &rv2)
1876 #if(CXSC_INDEX_CHECK)
1881 INLINE
void accumulate(idotprecision &dp,
const l_rvector & rv1,
const rmatrix_subv &rv2)
1883 #if(CXSC_INDEX_CHECK)
1888 INLINE
void accumulate(idotprecision &dp,
const rvector_slice & rv1,
const l_rmatrix_subv &rv2)
1890 #if(CXSC_INDEX_CHECK)
1895 INLINE
void accumulate(idotprecision &dp,
const l_rvector_slice & rv1,
const rmatrix_subv &rv2)
1897 #if(CXSC_INDEX_CHECK)
1902 INLINE
void accumulate(idotprecision &dp,
const l_rvector &rv,
const rvector_slice &sl)
1904 #if(CXSC_INDEX_CHECK)
1909 INLINE
void accumulate(idotprecision &dp,
const rmatrix_subv & rv1,
const l_rvector &rv2)
1911 #if(CXSC_INDEX_CHECK)
1916 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const rvector &rv2)
1918 #if(CXSC_INDEX_CHECK)
1923 INLINE
void accumulate(idotprecision &dp,
const rmatrix_subv & rv1,
const l_rvector_slice &rv2)
1925 #if(CXSC_INDEX_CHECK)
1930 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const rvector_slice &rv2)
1932 #if(CXSC_INDEX_CHECK)
1937 INLINE
void accumulate(idotprecision &dp,
const l_rvector_slice & sl1,
const rvector_slice &sl2)
1939 #if(CXSC_INDEX_CHECK)
1944 INLINE
void accumulate(idotprecision &dp,
const rvector_slice & sl1,
const l_rvector_slice &sl2)
1946 #if(CXSC_INDEX_CHECK)
1951 INLINE
void accumulate(idotprecision &dp,
const rmatrix_subv & rv1,
const l_rmatrix_subv &rv2)
1953 #if(CXSC_INDEX_CHECK)
1958 INLINE
void accumulate(idotprecision &dp,
const l_rmatrix_subv & rv1,
const rmatrix_subv &rv2)
1960 #if(CXSC_INDEX_CHECK)
1967 INLINE l_real
operator *(
const rvector & rv1,
const l_rvector &rv2)
1968 #if(CXSC_INDEX_CHECK)
1973 INLINE l_real
operator *(
const rvector_slice &sl,
const l_rvector &rv)
1975 #if(CXSC_INDEX_CHECK)
1980 INLINE l_real
operator *(
const rvector &rv,
const l_rvector_slice &sl)
1982 #if(CXSC_INDEX_CHECK)
1987 INLINE l_real
operator *(
const rvector_slice & sl1,
const l_rvector_slice &sl2)
1989 #if(CXSC_INDEX_CHECK)
1996 INLINE l_real
operator *(
const l_rvector & rv1,
const rvector &rv2)
1997 #if(CXSC_INDEX_CHECK)
2002 INLINE l_real
operator *(
const l_rvector_slice &sl,
const rvector &rv)
2004 #if(CXSC_INDEX_CHECK)
2009 INLINE l_real
operator *(
const l_rvector &rv,
const rvector_slice &sl)
2011 #if(CXSC_INDEX_CHECK)
2016 INLINE l_real
operator *(
const l_rvector_slice & sl1,
const rvector_slice &sl2)
2018 #if(CXSC_INDEX_CHECK)
2025 INLINE l_rvector operator +(
const rvector &rv1,
const l_rvector &rv2)
2026 #if(CXSC_INDEX_CHECK)
2031 INLINE l_rvector operator +(
const rvector &rv,
const l_rvector_slice &sl)
2033 #if(CXSC_INDEX_CHECK)
2038 INLINE l_rvector operator +(
const rvector_slice &sl,
const l_rvector &rv)
2040 #if(CXSC_INDEX_CHECK)
2045 INLINE l_rvector operator +(
const rvector_slice &sl1,
const l_rvector_slice &sl2)
2047 #if(CXSC_INDEX_CHECK)
2054 INLINE l_rvector operator +(
const l_rvector &rv1,
const rvector &rv2)
2055 #if(CXSC_INDEX_CHECK)
2060 INLINE l_rvector operator +(
const l_rvector &rv,
const rvector_slice &sl)
2062 #if(CXSC_INDEX_CHECK)
2067 INLINE l_rvector operator +(
const l_rvector_slice &sl,
const rvector &rv)
2069 #if(CXSC_INDEX_CHECK)
2074 INLINE l_rvector operator +(
const l_rvector_slice &sl1,
const rvector_slice &sl2)
2076 #if(CXSC_INDEX_CHECK)
2083 INLINE l_rvector &
operator +=(l_rvector &rv1,
const rvector &rv2)
2084 #if(CXSC_INDEX_CHECK)
2089 INLINE l_rvector &
operator +=(l_rvector &rv,
const rvector_slice &sl)
2091 #if(CXSC_INDEX_CHECK)
2098 INLINE l_rvector operator -(
const rvector &rv1,
const l_rvector &rv2)
2099 #if(CXSC_INDEX_CHECK)
2104 INLINE l_rvector operator -(
const rvector &rv,
const l_rvector_slice &sl)
2106 #if(CXSC_INDEX_CHECK)
2111 INLINE l_rvector operator -(
const rvector_slice &sl,
const l_rvector &rv)
2113 #if(CXSC_INDEX_CHECK)
2118 INLINE l_rvector operator -(
const rvector_slice &sl1,
const l_rvector_slice &sl2)
2120 #if(CXSC_INDEX_CHECK)
2127 INLINE l_rvector operator -(
const l_rvector &rv1,
const rvector &rv2)
2128 #if(CXSC_INDEX_CHECK)
2133 INLINE l_rvector operator -(
const l_rvector &rv,
const rvector_slice &sl)
2135 #if(CXSC_INDEX_CHECK)
2140 INLINE l_rvector operator -(
const l_rvector_slice &sl,
const rvector &rv)
2142 #if(CXSC_INDEX_CHECK)
2147 INLINE l_rvector operator -(
const l_rvector_slice &sl1,
const rvector_slice &sl2)
2149 #if(CXSC_INDEX_CHECK)
2154 INLINE l_rvector & operator -=(l_rvector &rv1,
const rvector &rv2)
2156 #if(CXSC_INDEX_CHECK)
2161 INLINE l_rvector &operator -=(l_rvector &rv,
const rvector_slice &sl)
2163 #if(CXSC_INDEX_CHECK)
2171 #ifdef _CXSC_INCL_INL
2172 #include "vector.inl"
2173 #include "l_rvector.inl"
2176 #ifdef _CXSC_RMATRIX_HPP_INCLUDED
2177 # ifdef _CXSC_INCL_INL
2178 # include "lrvecrmat.inl"
2180 # include "lrvecrmat.hpp"
2184 #ifdef _CXSC_IMATRIX_HPP_INCLUDED
2185 # ifdef _CXSC_INCL_INL
2186 # include "cvecimat.inl"
2188 # include "cvecimat.hpp"
2192 #ifdef _CXSC_IVECTOR_HPP_INCLUDED
2193 # ifdef _CXSC_INCL_INL
2194 # include "lrvecivec.inl"
2196 # include "lrvecivec.hpp"