26#ifndef _CXSC_LRVECTOR_HPP_INCLUDED
27#define _CXSC_LRVECTOR_HPP_INCLUDED
29#include "xscclass.hpp"
67template<
typename S,
typename T>
68friend inline void addDot(
const S &x,
const T &y,
dotprecision &val);
71#ifdef _CXSC_FRIEND_TPL
74template <
class V,
class MS,
class S>
friend void _vmsconstr(V &v,
const MS &m)
80template <
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)
108template <
class V,
class M,
class S>
friend V &_vmassign(V &v,
const M &m)
114template <
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;
119template <
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)
128 template <
class DP,
class VS,
class V>
friend void _vsvaccu(DP &dp,
const VS & sl,
const V &rv)
134 template <
class V1,
class V2,
class E>
friend E _vvlmult(
const V1 & rv1,
const V2 &rv2)
140 template <
class VS,
class V,
class E>
friend E _vsvlmult(
const VS & sl,
const V &rv)
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)
153 template <
class V,
class VS,
class E>
friend E _vvsplus(
const V &rv,
const VS &sl)
159 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
165 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
171 template <
class V1,
class V2>
friend V1 &_vvplusassign(V1 &rv1,
const V2 &rv2)
177 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
183 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
189 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
195 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
201 template <
class V1,
class V2>
friend V1 &_vvminusassign(V1 &rv1,
const V2 &rv2)
207 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
213 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
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)
227 template <
class V,
class VS,
class E>
friend E _vvsminus(
const V &rv,
const VS &sl)
233 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
239 template <
class V,
class MV,
class S>
friend S _vmvlmult(
const V &rv1,
const MV &rv2)
245 template <
class V1,
class V2,
class E>
friend E _vvconv(
const V1 &rv1,
const V2 &rv2)
251 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
257 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
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)
276 template <
class MV,
class V,
class E>
friend E _mvvplus(
const MV &rv1,
const V &rv2)
282 template <
class MV,
class V,
class E>
friend E _mvvminus(
const MV &rv1,
const V &rv2)
288 template <
class V,
class MV,
class E>
friend E _vmvminus(
const V &rv1,
const MV &rv2)
294 template <
class MV1,
class MV2,
class E>
friend E _mvmvminus(
const MV1 &rv1,
const MV2 &rv2)
300template <
class MV,
class V>
friend MV &_mvvplusassign(MV &v,
const V &rv)
306template <
class MV,
class V>
friend MV &_mvvminusassign(MV &v,
const V &rv)
312 template <
class MV,
class S,
class E>
friend E _mvsdiv(
const MV &rv,
const S &s)
noexcept;
313template <
class MV,
class V>
friend MV &_mvvassign(MV &v,
const V &rv)
319template <
class DP,
class V,
class SV>
friend void _vmvaccu(DP &dp,
const V & rv1,
const SV &rv2)
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;
348template <
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)
355 template <
class V,
class M,
class E>
friend E _vmlmult(
const V &v,
const M &m)
361 template <
class V,
class M,
class S>
friend V &_vmlmultassign(V &v,
const M &m)
367 template <
class MS,
class V,
class E>
friend E _msvlmult(
const MS &ms,
const V &v)
373 template <
class V,
class MS,
class E>
friend E _vmslmult(
const V &v,
const MS &ms)
379 template <
class V,
class MS,
class S>
friend V &_vmslmultassign(V &v,
const MS &ms)
388 template <
class V1,
class V2,
class E>
friend E _vvlimult(
const V1 & rv1,
const V2 &rv2)
394 template <
class VS,
class V,
class E>
friend E _vsvlimult(
const VS & sl,
const V &rv)
400 template <
class VS1,
class VS2,
class E>
friend E _vsvslimult(
const VS1 & sl1,
const VS2 &sl2)
406 template <
class V1,
class V2,
class E>
friend E _vvsect(
const V1 &rv1,
const V2 &rv2)
412 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
418 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
426 template <
class M,
class V,
class E>
friend E _mvlimult(
const M &m,
const V &v)
432 template <
class V,
class M,
class E>
friend E _vmlimult(
const V &v,
const M &m)
438 template <
class MS,
class V,
class E>
friend E _msvlimult(
const MS &ms,
const V &v)
444 template <
class V,
class MS,
class E>
friend E _vmslimult(
const V &v,
const MS &ms)
452 template <
class V1,
class V2>
friend V1 &_vvsetinf(V1 &rv1,
const V2 &rv2)
458 template <
class V1,
class V2>
friend V1 &_vvsetsup(V1 &rv1,
const V2 &rv2)
464 template <
class V1,
class V2>
friend V1 &_vvusetinf(V1 &rv1,
const V2 &rv2)
470 template <
class V1,
class V2>
friend V1 &_vvusetsup(V1 &rv1,
const V2 &rv2)
476 template <
class VS,
class V>
friend VS &_vsvsetinf(VS &sl,
const V &rv)
482 template <
class VS,
class V>
friend VS &_vsvsetsup(VS &sl,
const V &rv)
488 template <
class VS,
class V>
friend VS &_vsvusetinf(VS &sl,
const V &rv)
494 template <
class VS,
class V>
friend VS &_vsvusetsup(VS &sl,
const V &rv)
500template <
class MV,
class V>
friend MV &_mvvsetinf(MV &v,
const V &rv)
506template <
class MV,
class V>
friend MV &_mvvsetsup(MV &v,
const V &rv)
512template <
class MV,
class V>
friend MV &_mvvusetinf(MV &v,
const V &rv)
518template <
class MV,
class V>
friend MV &_mvvusetsup(MV &v,
const V &rv)
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;
532template <
class MV,
class V>
friend V _mvdiam(
const MV &mv)
noexcept;
533template <
class MV,
class V>
friend V _mvmid(
const MV &mv)
noexcept;
534template <
class MV,
class V>
friend V _mvinf(
const MV &mv)
noexcept;
535template <
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)
544 template <
class V1,
class V2>
friend V1 &_vvsectassign(V1 &rv1,
const V2 &rv2)
550 template <
class VS,
class V>
friend VS &_vsvconvassign(VS &sl,
const V &rv)
556 template <
class VS,
class V>
friend VS &_vsvsectassign(VS &sl,
const V &rv)
563template <
class MV,
class V>
friend MV &_mvvconvassign(MV &v,
const V &rv)
569template <
class MV,
class V>
friend MV &_mvvsectassign(MV &v,
const V &rv)
583 explicit INLINE
l_rvector(
const int &i)
noexcept;
586 explicit INLINE
l_rvector(
const class index &i)
noexcept;
589 explicit INLINE
l_rvector(
const int &i1,
const int &i2)
700 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; }
732 INLINE
operator void*()
noexcept;
758template<
typename S,
typename T>
759friend 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)
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)
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)
787 template <
class DP,
class VS1,
class VS2>
friend void _vsvsaccu(DP &dp,
const VS1 & sl1,
const VS2 &sl2)
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)
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)
811 template <
class VS1,
class VS2,
class E>
friend E _vsvsplus(
const VS1 &s1,
const VS2 &s2)
817 template <
class VS1,
class VS2,
class E>
friend E _vsvsminus(
const VS1 &s1,
const VS2 &s2)
823 template <
class V,
class VS>
friend V &_vvsplusassign(V &rv,
const VS &sl)
829 template <
class VS,
class V>
friend VS &_vsvplusassign(VS &sl,
const V &rv)
835 template <
class VS1,
class VS2>
friend VS1 &_vsvsplusassign(VS1 &sl1,
const VS2 &sl2)
841 template <
class VS1,
class VS2>
friend VS1 &_vsvsminusassign(VS1 &sl1,
const VS2 &sl2)
847 template <
class V,
class VS>
friend V &_vvsminusassign(V &rv,
const VS &sl)
853 template <
class VS,
class V>
friend VS &_vsvminusassign(VS &sl,
const V &rv)
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)
866 template <
class VS,
class V,
class E>
friend E _vsvminus(
const VS &sl,
const V &rv)
872 template <
class V,
class VS,
class E>
friend E _vvsconv(
const V &rv,
const VS &sl)
878 template <
class VS1,
class VS2,
class E>
friend E _vsvsconv(
const VS1 &s1,
const VS2 &s2)
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)
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)
914 template <
class V,
class MS,
class E>
friend E _vmslmult(
const V &v,
const MS &ms)
921 template <
class V,
class VS,
class E>
friend E _vvssect(
const V &rv,
const VS &sl)
927 template <
class VS1,
class VS2,
class E>
friend E _vsvssect(
const VS1 &s1,
const VS2 &s2)
936 template <
class V1,
class V2,
class E>
friend E _vvlimult(
const V1 & rv1,
const V2 &rv2)
942 template <
class VS,
class V,
class E>
friend E _vsvlimult(
const VS & sl,
const V &rv)
948 template <
class VS1,
class VS2,
class E>
friend E _vsvslimult(
const VS1 & sl1,
const VS2 &sl2)
954 template <
class V1,
class V2,
class E>
friend E _vvplus(
const V1 &rv1,
const V2 &rv2)
960 template <
class V1,
class V2,
class E>
friend E _vvminus(
const V1 &rv1,
const V2 &rv2)
982 template <
class V,
class VS>
friend V &_vvsconvassign(V &rv,
const VS &sl)
988 template <
class V,
class VS>
friend V &_vvssectassign(V &rv,
const VS &sl)
994 template <
class VS1,
class VS2>
friend VS1 &_vsvsconvassign(VS1 &sl1,
const VS2 &sl2)
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;
1344#if(CXSC_INDEX_CHECK)
1351#if(CXSC_INDEX_CHECK)
1362 INLINE
bool operator !(
const l_rvector &rv)
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;
1438#if(CXSC_INDEX_CHECK)
1445#if(CXSC_INDEX_CHECK)
1452#if(CXSC_INDEX_CHECK)
1459#if(CXSC_INDEX_CHECK)
1466#if(CXSC_INDEX_CHECK)
1473#if(CXSC_INDEX_CHECK)
1480#if(CXSC_INDEX_CHECK)
1487#if(CXSC_INDEX_CHECK)
1494#if(CXSC_INDEX_CHECK)
1501#if(CXSC_INDEX_CHECK)
1508#if(CXSC_INDEX_CHECK)
1515#if(CXSC_INDEX_CHECK)
1522#if(CXSC_INDEX_CHECK)
1529#if(CXSC_INDEX_CHECK)
1538#if(CXSC_INDEX_CHECK)
1545#if(CXSC_INDEX_CHECK)
1552#if(CXSC_INDEX_CHECK)
1559#if(CXSC_INDEX_CHECK)
1572#if(CXSC_INDEX_CHECK)
1579#if(CXSC_INDEX_CHECK)
1586#if(CXSC_INDEX_CHECK)
1593#if(CXSC_INDEX_CHECK)
1600#if(CXSC_INDEX_CHECK)
1607#if(CXSC_INDEX_CHECK)
1619#if(CXSC_INDEX_CHECK)
1626#if(CXSC_INDEX_CHECK)
1633#if(CXSC_INDEX_CHECK)
1640#if(CXSC_INDEX_CHECK)
1647#if(CXSC_INDEX_CHECK)
1654#if(CXSC_INDEX_CHECK)
1714#if(CXSC_INDEX_CHECK)
1721#if(CXSC_INDEX_CHECK)
1728#if(CXSC_INDEX_CHECK)
1735#if(CXSC_INDEX_CHECK)
1742#if(CXSC_INDEX_CHECK)
1749#if(CXSC_INDEX_CHECK)
1756#if(CXSC_INDEX_CHECK)
1763#if(CXSC_INDEX_CHECK)
1770#if(CXSC_INDEX_CHECK)
1777#if(CXSC_INDEX_CHECK)
1784#if(CXSC_INDEX_CHECK)
1791#if(CXSC_INDEX_CHECK)
1798#if(CXSC_INDEX_CHECK)
1805#if(CXSC_INDEX_CHECK)
1812#if(CXSC_INDEX_CHECK)
1819#if(CXSC_INDEX_CHECK)
1826#if(CXSC_INDEX_CHECK)
1833#if(CXSC_INDEX_CHECK)
1841#if(CXSC_INDEX_CHECK)
1848#if(CXSC_INDEX_CHECK)
1855#if(CXSC_INDEX_CHECK)
1862#if(CXSC_INDEX_CHECK)
1869#if(CXSC_INDEX_CHECK)
1876#if(CXSC_INDEX_CHECK)
1883#if(CXSC_INDEX_CHECK)
1890#if(CXSC_INDEX_CHECK)
1897#if(CXSC_INDEX_CHECK)
1904#if(CXSC_INDEX_CHECK)
1911#if(CXSC_INDEX_CHECK)
1918#if(CXSC_INDEX_CHECK)
1925#if(CXSC_INDEX_CHECK)
1932#if(CXSC_INDEX_CHECK)
1939#if(CXSC_INDEX_CHECK)
1946#if(CXSC_INDEX_CHECK)
1953#if(CXSC_INDEX_CHECK)
1960#if(CXSC_INDEX_CHECK)
1968#if(CXSC_INDEX_CHECK)
1975#if(CXSC_INDEX_CHECK)
1982#if(CXSC_INDEX_CHECK)
1989#if(CXSC_INDEX_CHECK)
1997#if(CXSC_INDEX_CHECK)
2004#if(CXSC_INDEX_CHECK)
2011#if(CXSC_INDEX_CHECK)
2018#if(CXSC_INDEX_CHECK)
2026#if(CXSC_INDEX_CHECK)
2033#if(CXSC_INDEX_CHECK)
2040#if(CXSC_INDEX_CHECK)
2047#if(CXSC_INDEX_CHECK)
2055#if(CXSC_INDEX_CHECK)
2062#if(CXSC_INDEX_CHECK)
2069#if(CXSC_INDEX_CHECK)
2076#if(CXSC_INDEX_CHECK)
2084#if(CXSC_INDEX_CHECK)
2091#if(CXSC_INDEX_CHECK)
2099#if(CXSC_INDEX_CHECK)
2106#if(CXSC_INDEX_CHECK)
2113#if(CXSC_INDEX_CHECK)
2120#if(CXSC_INDEX_CHECK)
2128#if(CXSC_INDEX_CHECK)
2135#if(CXSC_INDEX_CHECK)
2142#if(CXSC_INDEX_CHECK)
2149#if(CXSC_INDEX_CHECK)
2156#if(CXSC_INDEX_CHECK)
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"
The Data Type dotprecision.
The Data Type idotprecision.
The Multiple-Precision Data Type l_imatrix.
The Multiple-Precision Data Type l_ivector.
The Multiple-Precision Data Type l_real.
l_real(void) noexcept
Constructor of class l_real.
The Multiple-Precision Data Type l_rmatrix_slice.
The Multiple-Precision Data Type l_rmatrix_subv.
The Multiple-Precision Data Type l_rmatrix.
The Multiple-Precision Data Type l_rvector_slice.
l_rvector_slice & operator-=(const l_rvector &rv) noexcept
Implementation of subtraction and allocation operation.
l_rvector_slice & operator&=(const l_rvector &rv) noexcept
Allocates the intersection of the arguments to the first argument.
l_rvector_slice(const l_rvector_slice &a) noexcept
Constructor of class l_rvector_slice.
l_rvector_slice & operator()() noexcept
Operator for accessing the whole vector.
l_rvector_slice(l_rvector &a, const int &lb, const int &ub) noexcept
Constructor of class l_rvector_slice.
l_rvector_slice & operator+=(const l_rvector &rv) noexcept
Implementation of addition and allocation operation.
l_rvector_slice & operator=(const l_rvector_slice &sl) noexcept
Implementation of standard assigning operator.
l_rvector_slice(l_rvector_slice &a, const int &lb, const int &ub) noexcept
Constructor of class l_rvector_slice.
friend int VecLen(const l_rvector_slice &sl) noexcept
Returns the dimension of the vector.
l_rvector_slice & operator*=(const l_real &r) noexcept
Implementation of multiplication and allocation operation.
l_real & operator[](const int &i) const noexcept
Operator for accessing the single elements of the vector.
friend int Ub(const l_rvector_slice &sl) noexcept
Returns the upper bound of the vector.
friend int Lb(const l_rvector_slice &sl) noexcept
Returns the lower bound of the vector.
l_rvector_slice & operator|=(const l_rvector &rv) noexcept
Allocates the convex hull of the arguments to the first argument.
l_rvector_slice & operator/=(const l_real &r) noexcept
Implementation of division and allocation operation.
The Multiple-Precision Data Type l_rvector.
l_rvector() noexcept
Constructor of class l_rvector.
friend l_rvector & SetUb(l_rvector &rv, const int &u) noexcept
Sets the upper bound of the vector.
friend int Ub(const l_rvector &rv) noexcept
Returns the upper bound of the vector.
l_rvector & operator=(const l_rvector &rv) noexcept
Implementation of standard assigning operator.
friend int VecLen(const l_rvector &rv) noexcept
Returns the dimension of the vector.
l_real & operator[](const int &i) const noexcept
Operator for accessing the single elements of the vector.
l_rvector & operator()() noexcept
Operator for accessing the whole vector.
friend l_rvector & SetLb(l_rvector &rv, const int &l) noexcept
Sets the lower bound of the vector.
friend int Lb(const l_rvector &rv) noexcept
Returns the lower bound of the vector.
The Data Type rmatrix_slice.
The Data Type rmatrix_subv.
The Data Type rvector_slice.
The namespace cxsc, providing all functionality of the class library C-XSC.
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc) noexcept
Implementation of standard algebraic addition and allocation operation.
civector operator/(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of division operation.
INLINE l_rvector _l_rvector(const rmatrix_subv &rs) noexcept
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
cimatrix & operator*=(cimatrix &m, const cinterval &c) noexcept
Implementation of multiplication and allocation operation.
ivector abs(const cimatrix_subv &mv) noexcept
Returns the absolute value of the matrix.
civector operator*(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of multiplication operation.
void Resize(cimatrix &A) noexcept
Resizes the matrix.
cimatrix & operator/=(cimatrix &m, const cinterval &c) noexcept
Implementation of division and allocation operation.